<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>장인개발자를 꿈꾸는 :: 기록하는 공간</title>
    <link>https://devbox.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 10:50:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>devbox</managingEditor>
    <item>
      <title>request XSS 처리</title>
      <link>https://devbox.tistory.com/entry/request-XSS-%EC%B2%98%EB%A6%AC</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;public static String getCheckReqXSS(Map&amp;lt;String, String&amp;gt; map, String parameter, String default_value) {&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;String req_value = (map.get(parameter) == null || &amp;nbsp;map.get(parameter).equals(&quot;&quot;)) ? default_value : map.get(parameter);&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;req_value = req_value.replaceAll(&quot;&amp;lt;/?[a-zA-Z][0-9a-zA-Z가-\uD7A3ㄱ-ㅎ=/\&quot;\'%;:,._()\\-# ]+&amp;gt;&quot;,&quot;&quot;);&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;req_value = req_value.replaceAll(&quot;&amp;gt;&quot;,&quot;&quot;);&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;req_value = req_value.replaceAll(&quot;&amp;gt;&quot;,&quot;&quot;);&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;return req_value;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;</description>
      <category>ETC</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/220</guid>
      <comments>https://devbox.tistory.com/entry/request-XSS-%EC%B2%98%EB%A6%AC#entry220comment</comments>
      <pubDate>Mon, 29 May 2017 11:07:17 +0900</pubDate>
    </item>
    <item>
      <title>남신의주 유동 박씨봉방</title>
      <link>https://devbox.tistory.com/entry/%EB%82%A8%EC%8B%A0%EC%9D%98%EC%A3%BC-%EC%9C%A0%EB%8F%99-%EB%B0%95%EC%94%A8%EB%B4%89%EB%B0%A9</link>
      <description>&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;어느 사이에 나는 아내도 없어지고, 또&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;아내와 같이 살던 집도 없어지고&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;그리고 살뜰한 부모며 동생들하고도 멀리 떨어져서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;그 어느 바람 세인 쓸쓸한 거리 끝에 헤매이었다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;바로 날도 저물어서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;바람은 더욱 세게 불고, 추위는 점점 더해 오는데&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;나는 어느 목수네 집 헌 삿을 깐&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;한 방에 들어서 쥔을 붙이었다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;이리하여 나는 이 습내 나는 춥고 누긋한 방에서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;낮이나 밤이나 나는 나 혼자도 너무 많은 것 같이 생각하며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;딜옹배기에 북덕불이라도 담겨 오면&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;이것을 안고 손을 쬐며 재 우에 뜻없이 글자를 쓰기도 하며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;또 문 밖에 나가지도 않고 자리에 누워서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;머리에 손깎지베개를 하고 굴기도 하면서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;나는 내 슬픔이며 어리석음이며를 소처럼 연하게 쌔김질하는 것이었다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;내 가슴이 꽉 매어올 적이며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;내 눈에 뜨거운 것이 핑 괴일 적이며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;또 내 스스로 화끈 낯이 붉도록 부끄러울 적이며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;나는 내 슬픔과 어리석음에 눌리어 죽을 수밖에 없는 것임을 느끼는 것이었다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;그러나 잠시 뒤에 나는 고개를 들어&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;허연 문창을 바라보든가 또 눈을 떠서 높은 천장을 쳐다보는 것인데&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;이때 나는 내 뜻이며 힘으로, 나를 이끌어 가는 것이 힘든 일인 것을 생각하고&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;이것들보다 더 크고 높은 것이 있어서, 나를 마음대로 굴려 가는 것을 생각하는 것인데&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;이렇게 하여 여러 날이 지나는 동안에&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;내 어지러운 마음에는 슬픔이며, 한탄이며, 가라앉을 것은 차츰 앙금이 되어 가라앉고&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;외로운 생각만이 드는 때쯤 해서는&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;더러 나줏손에 쌀랑쌀랑 싸락눈이 와서 문창을 치기도 하는 때가 있는데&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;나는 이런 저녁에는 화로를 더욱 다가 끼며, 무릎을 꿇어 보며&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;어느 먼 산 뒷옆에 바우섶에 따로 외로이 서서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;어두워 오는데 하이야니 눈을 맞을, 그 마른 잎새에는&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;쌀랑쌀랑 소리도 나며 눈을 맞을&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 22px; font-size: 15px;&quot;&gt;그 드물다는 굳고 정한 갈매나무라는 나무를 생각하는 것이었다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>좋은글정보</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/217</guid>
      <comments>https://devbox.tistory.com/entry/%EB%82%A8%EC%8B%A0%EC%9D%98%EC%A3%BC-%EC%9C%A0%EB%8F%99-%EB%B0%95%EC%94%A8%EB%B4%89%EB%B0%A9#entry217comment</comments>
      <pubDate>Wed, 16 Sep 2015 02:53:45 +0900</pubDate>
    </item>
    <item>
      <title>이클립스 eclipse.ini 설정</title>
      <link>https://devbox.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-eclipseini-%EC%84%A4%EC%A0%95</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 12pt; line-height: 1.5;&quot;&gt;&lt;b&gt;이클립스 eclipse.ini 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-startup&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--launcher.library&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-product&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;org.eclipse.epp.package.jee.product&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--launcher.defaultAction&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;openFile&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--launcher.XXMaxPermSize&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;256M&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-showsplash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;image/tan_helios.bmp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;▶ 이클립스 실행시 이미지변경&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--launcher.XXMaxPermSize&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;256m&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--launcher.defaultAction&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;openFile&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-vmargs&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-Dosgi.requiredJavaVersion=1.5&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-Xverify:none&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;클래스 검사 생략. 이클립스 실행 시간이 줄어듭니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:+UseParallelGC&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Parallel Collector를 사용. 병렬 가비지 컬렉션입니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:-UseConcMarkSweepGC&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;병행 mark-sweepGC 기능을 수행하여 GUI 응답 속도 처리&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:+AggressiveOpts&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;컴파일러 소수점 최적화 기능&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:PermSize=32M&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이클립스 클래스 로딩 기본 메모리&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:MaxPermSize=128M&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이클립스 클래스 로딩 최대 메모리&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:MaxNewSize=32M&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;JVM에서 새로운 객체가 생성 될때 로딩되는 최소 영역&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-XX:NewSize=32M&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;JVM에서 새로운 객체가 생성 될때 로딩되는 최대 영역&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-Xms256m&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이클립스 실행시 잡는 최소 메모리&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-Xmx512m&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이클립스 실행시 잡는 최대 메모리&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>ETC</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/215</guid>
      <comments>https://devbox.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-eclipseini-%EC%84%A4%EC%A0%95#entry215comment</comments>
      <pubDate>Tue, 1 Sep 2015 11:25:09 +0900</pubDate>
    </item>
    <item>
      <title>홈페이지 제작해드립니다.</title>
      <link>https://devbox.tistory.com/entry/%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%A0%9C%EC%9E%91%ED%95%B4%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-2</link>
      <description>&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;안녕하세요... 블로그 운영자 입니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;순수한 개발 레퍼런스 목적하에 만든 블로그에 광고성 글을 기재하게 되어 조심스러운 감이 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;다름이 아니라,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(255, 0, 0); font-size: 12pt;&quot;&gt;소규모 웹 사이트 제작할 수 있는 개발자 구하는 분&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;들을 위해&amp;nbsp;글 하나 남깁니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;현재 저는 대형 SI에 근무 중에 있으나, 주말이나 평일 저녁 시간을 이용하여 부업을 하나 하려 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;일단 화면에 관해서는 다양한 템플릿을 보여드리겠습니다. (아래 주소를 클릭해주세요.)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;a href=&quot;https://wrapbootstrap.com/themes&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;color: rgb(66, 139, 202); box-sizing: border-box; background: transparent;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;https://wrapbootstrap.com/themes&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;box-sizing: border-box; max-width: 100%; display: inline-block; width: 550px; height: auto;&quot;&gt;&lt;span dir=&quot;https://t1.daumcdn.net/cfile/tistory/220A583B5558362B0C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220A583B5558362B0C&quot; height=&quot;370&quot; width=&quot;550&quot; style=&quot;box-sizing: border-box; border: 0px; vertical-align: middle; display: block; max-width: 100%; height: auto;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;위 사이트는 외국의 전문 디자이너들이 만든 것으로&amp;nbsp;세련되고&amp;nbsp;깔끔한 디자인 템플릿을 제공해주고 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;다만, 고객의 요구사항에 맞게 커스터마이징하는 부분은 개발자의 역량에 맞기고 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;수많은 사이트를 보았지만, 퀄리티 자체는 대한민국 어느 사이트를 뒤져봐도 떨어지지가 않습니다. 다양한 테마을 검색해보고 골라주시면 됩니다. ㅎㅎㅎ&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;개발함에 있어 업무분담은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 85, 255); font-size: 12pt;&quot;&gt;①&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 85, 255); font-size: 12pt;&quot;&gt;&amp;nbsp;퍼블리싱(화면개발)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;② Java/JSP 코딩&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 9pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;③ 분석,설계,서버(웹 호스팅, DBA), 고객관리'&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0); font-size: 12pt;&quot;&gt;로 나누어져 있으며,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 9pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(255, 0, 0); font-size: 12pt;&quot;&gt;이 모든 것을 저 한 사람이 모두 도맡을 수 있을 수도 있고, 부분적으로 필요한 part만 맡아서 개발도 가능합니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;실제 위 사이트를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;이용하여 웹 사이트를 구축한 경험이 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;포트폴리오를 공개하고 싶지만, 특정 회사의 상호가 명시&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;되었으므로 블로그에서는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;비공개로 하고, 요청시 URL 주소 보내드리겠습니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font color=&quot;#0055ff&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(0, 0, 0); font-size: 12pt;&quot;&gt;마지막으로 강조하고 싶은 말은 홈페이지 제작비용이 매우 저렴하고, 책임감 있고 성실하면서도 장인정신&amp;nbsp;개발마인드를 가진 개발자가 참여한다는 것입니다.ㅋ&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;자세히 살펴보시고, 연락주시길 바랍니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 14px; line-height: 20px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;카톡아이디: hujii0711&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 의뢰&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#666666&quot; face=&quot;Benton Sans, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif&quot; style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 8pt; letter-spacing: 0.5px; line-height: 22px; color: rgb(0, 0, 0);&quot;&gt;웹&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 10.6667px; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 의뢰&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#666666&quot; face=&quot;Benton Sans, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif&quot; style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 8pt; letter-spacing: 0.5px; line-height: 22px; color: rgb(0, 0, 0);&quot;&gt;웹&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 10.6667px; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 의뢰&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#666666&quot; face=&quot;Benton Sans, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif&quot; style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 8pt; letter-spacing: 0.5px; line-height: 22px; color: rgb(0, 0, 0);&quot;&gt;웹&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 10.6667px; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; line-height: 22px; color: rgb(0, 0, 0); font-size: 8pt; letter-spacing: 0.5px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; line-height: 20px; font-size: 8pt; color: rgb(0, 0, 0);&quot;&gt;홈페이지 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;쇼핑몰 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 의뢰&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;졸작 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;포트폴리오 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;게시판 제작&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;사이트 유지보수&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;font color=&quot;#666666&quot; face=&quot;Benton Sans, Helvetica Neue, Helvetica, Roboto, Arial, sans-serif&quot; style=&quot;line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 8pt; letter-spacing: 0.5px; line-height: 22px; color: rgb(0, 0, 0);&quot;&gt;웹&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 제작 &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;i 웹&lt;/span&gt;&lt;span style=&quot;font-family: 나눔고딕, NanumGothic, 'Apple SD Gothic Neo', 돋움, dotum, Arial, sans-serif; font-size: 8pt; line-height: 20px; color: rgb(0, 0, 0);&quot;&gt;사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt; 웹&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 255, 255); font-family: 'Benton Sans', 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; font-size: 8pt; letter-spacing: 0.5px; line-height: 22px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;사&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;이트 유지보수&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>공지사항</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/213</guid>
      <comments>https://devbox.tistory.com/entry/%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%A0%9C%EC%9E%91%ED%95%B4%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-2#entry213comment</comments>
      <pubDate>Wed, 20 May 2015 16:54:03 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 객체를 제거하는 방법</title>
      <link>https://devbox.tistory.com/entry/Java-%EA%B0%9D%EC%B2%B4%EB%A5%BC-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 12pt; color: rgb(0, 0, 0);&quot;&gt;객체를 제거하는 방법&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;1. 레퍼런스가 영원히 영역을 벗어남&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(159, 211, 49); padding: 10px; background-color: rgb(231, 253, 181);&quot;&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;void A()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; margin-left: 2em; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;School s = new School();&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;메소드가 종료되면 's' 라는 레퍼런스도 죽어버립니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;2. 레퍼런스에 다른 객체를 대입&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(159, 211, 49); padding: 10px; background-color: rgb(231, 253, 181);&quot;&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;School s = new School();&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;s = new School();&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;레퍼런스 's' 에 새로운 객체를 대입하면 첫번째 객체는 버려집니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;3. 레퍼런스를 직접 'null' 로 설정&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(159, 211, 49); padding: 10px; background-color: rgb(231, 253, 181);&quot;&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;School s = new School();&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;s = null;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;'s' 를 '해제' 하면 첫번째 객체는 버려집니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;즉 레퍼런스 's' 가 아무 객체도 참조하지 않는 것입니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: Dotum, Verdana, AppleGothic, sans-serif; font-size: 16px; line-height: 24px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;레퍼런스가 참조하지 않는 객체는&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 11pt;&quot;&gt;가비지&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 11pt;&quot;&gt;컬렉션&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0);&quot;&gt;의 대상이 되어 자동으로 정리됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Programing/Java</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/212</guid>
      <comments>https://devbox.tistory.com/entry/Java-%EA%B0%9D%EC%B2%B4%EB%A5%BC-%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry212comment</comments>
      <pubDate>Tue, 19 May 2015 11:07:42 +0900</pubDate>
    </item>
    <item>
      <title>홈페이지 제작해드립니다.</title>
      <link>https://devbox.tistory.com/notice/210</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;안녕하세요... 블로그 운영자 입니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;순수한 개발 레퍼런스 목적하에 만든 블로그에 광고성 글을 기재하게 되어 조심스러운 감이 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;다름이 아니라, &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 12pt;&quot;&gt;소규모 웹 사이트 제작할 수 있는 개발자 구하는 분&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;들을 위해&amp;nbsp;글 하나 남깁니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;현재 저는 대형 SI에 근무 중에 있으나, 주말이나 평일 저녁 시간을 이용하여 부업을 하나 하려 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;일단 화면에 관해서는 다양한 템플릿을 보여드리겠습니다. (아래 주소를 클릭해주세요.)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://wrapbootstrap.com/themes&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;https://wrapbootstrap.com/themes&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 550px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220A583B5558362B0C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F220A583B5558362B0C&quot; width=&quot;550&quot; height=&quot;370&quot; filename=&quot;20150517_150125.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;위 사이트는 외국의 전문 디자이너들이 만든 것으로&amp;nbsp;세련되고&amp;nbsp;깔끔한 디자인 템플릿을 제공해주고 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;다만, 고객의 요구사항에 맞게 커스터마이징하는 부분은 개발자의 역량에 맞기고 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;수많은 사이트를 보았지만, 퀄리티 자체는 대한민국 어느 사이트를 뒤져봐도 떨어지지가 않습니다. 다양한 테마을 검색해보고 골라주시면 됩니다. ㅎㅎㅎ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;개발함에 있어 업무분담은 &lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-size: 12pt;&quot;&gt;①&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 85, 255); font-size: 12pt;&quot;&gt; 퍼블리싱(화면개발)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;② Java/JSP 코딩 &lt;/span&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;③ 분석,설계,서버(웹 호스팅, DBA), 고객관리'&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 12pt;&quot;&gt;로 나누어져 있으며,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; color: rgb(0, 85, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 12pt;&quot;&gt;이 모든 것을 저 한 사람이 모두 도맡을 수 있을 수도 있고, 부분적으로 필요한 part만 맡아서 개발도 가능합니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;실제 위 사이트를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;이용하여 웹 사이트를 구축한 경험이 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;포트폴리오를 공개하고 싶지만, 특정 회사의 상호가 명시&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;되었으므로 블로그에서는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;비공개로 하고, 요청시 URL 주소 보내드리겠습니다.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#0055ff&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 12pt;&quot;&gt;마지막으로 강조하고 싶은 말은 홈페이지 제작비용이 매우 저렴하고, 책임감 있고 성실하면서도 장인정신&amp;nbsp;개발마인드를 가진 개발자가 참여한다는 것입니다.ㅋ&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;자세히 살펴보시고, 연락주시길 바랍니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;카톡아이디: hujii0711&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px; line-height: 24px;&quot;&gt;&lt;span style=&quot;font-size: 8pt; color: rgb(255, 255, 255);&quot;&gt;i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(255, 255, 255);&quot;&gt;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사d&lt;/span&gt;&lt;span style=&quot;font-size: 10.6667px; line-height: 24px;&quot;&gt;웹사이트&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작 &amp;nbsp;i 웹사이트 만들기 i 웹사이트 유지보수i 쇼핑몰 제작 i 홈페이지 제작 i 홈페이지 만들기 i 쇼핑몰 만들기 i 졸작 의뢰 i 졸작 만들기 i 포트폴리오 만들기 i 포트폴리오 제작 i 게시판만들기 i 게시판 제작 i 사이트 제작 &amp;nbsp;i 사이트 만들기&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 24px; color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp;i 사이트 유지보수 i 웹사이트 제작&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/notice/210</guid>
      <pubDate>Sun, 17 May 2015 16:04:35 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Wrapper 클래스</title>
      <link>https://devbox.tistory.com/entry/Java-Wrapper-%ED%81%B4%EB%9E%98%EC%8A%A4</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 12pt; line-height: 1.5;&quot;&gt;&lt;b&gt;Wrapper 클래스&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Wrapper 클래스라는 것은 그 이름이 의미하듯이 '&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;wrap(포장)'하는 기능의 클래스를 의미한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이것은 주로 JDK1.5 이전에 많이 쓰였던 기능들인데 설명하자만 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 10pt;&quot;&gt;기본자료형을 객체자료형으로 변환&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하기 위해서 사용하는 클래스라고 생각하면 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;1. 문제제기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Object 타입의 변수는 모든 객체형 자룔를 표현할 수 있지만, int나 byte와 같은 기본형 자료는 선언할 수 없다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Object a = 123; //컴파일오류&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;2. 문제를 일으키는 경우&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 변수의 최초 선언&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 메소드의 파라미터, 리턴타입&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 배열과 같은 자료구조&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;3. 기본형 자료를 객체형 자료로 처리하기 위한 클래스&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;295&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; font-family: 돋움; font-size: 12px; width: 295px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 217, 250);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기본자료형&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 250);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Wapper 클래스&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;byte&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Byte 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;shor&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Short 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer 클래스&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;long&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Long 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Double 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;float&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Float 클래스&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Boolean 클래스&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 139px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 155px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Character 클래스&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;4. 사용법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer data = new Integer(3);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;int intValue = data.intValue();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;double doubleValue = data.doubleValue();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;String StringValue = data.toString();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;예제)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer aa = new Integer(10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer bb = aa;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;aa = aa + new Integer(1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;System.out.println(&quot;aa: &amp;nbsp;&quot;+aa);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;System.out.println(&quot;bb: &amp;nbsp;&quot;+bb);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;실행결과&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;aa: &amp;nbsp; 11&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;bb: &amp;nbsp; 10&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;5. 문자열 --&amp;gt; 기본자료형 / 숫자 --&amp;gt; 문자열&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;609&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; font-family: 돋움; font-size: 12px; width: 609px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 217, 250);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;문자를 기본 자료형으로 바꿀 때&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 250);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기본 자료형을 문자형으로 바꿀 때&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;byte b = Byte.parseByt&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;e(문자열);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Byte.toString(byte 값);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;short s = Short.parseshort(문자열);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Short.toString(short 값);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;int i = Integer.parseInt(문자열);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer.toString(int 값);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;double d = Double.parseDouble(문자열);&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Double.toString(double 값);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;long l = Long.parseLong(문자열);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Long.toString(long 값);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;float f = Float.parseFloat(문자열);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Float.toString(float 값);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;boolean b = new Boolean(문자열);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Boolean.toString(boolean 값);&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 297px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;char c = String.클래스의 메소드 이용&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 311px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Character.toString(char 값);&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;6. Autoboxing / Unboxing&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Autoboxing / Unboxing는&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;JDK1.5에서 지원하는 자동 변환이다. 이 방식 때문에 기본 자료형이나 객체 자료형을 간단히 변환할 수 있게 되었다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;(1) Autoboxing&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Autoboxing은 기본 자료형의 데이터를 자동으로 객체 자료형으로 변환하는 것을 의미한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;int i = 10;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer J = 1;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;(2) Unboxing&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Unboxing은 Wrapper 자료형을 기본 자료형으로 자동 변환한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Integer i = new Integer(10);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;int j = 1;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programing/Java</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/209</guid>
      <comments>https://devbox.tistory.com/entry/Java-Wrapper-%ED%81%B4%EB%9E%98%EC%8A%A4#entry209comment</comments>
      <pubDate>Mon, 13 Apr 2015 00:11:03 +0900</pubDate>
    </item>
    <item>
      <title>[DesignPattern] 옵서버 패턴</title>
      <link>https://devbox.tistory.com/entry/DesignPattern-%EC%98%B5%EC%84%9C%EB%B2%84-%ED%8C%A8%ED%84%B4</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;옵서버 패턴&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Observer 패턴에서는 관찰 대상의 상태가 변화하면 관찰자에게 알려준다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Observer 패턴은 상태 변화에 따른 처리를 기술할 때 효과적이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;옵서버 패턴은 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용하다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;예를 들어 새로운 파일이 추가되거나 기존 파일이 삭제되었을 때 탐색기는 이를 즉시 표시할 필요가 있다. 탐색기를 복수 개 실행하는 상황이나 하나의 탐색기에서 파일 시스템을 변경했을 때는 다른 탐색기에게 즉각적으로 이 변경을 통보해야 한다. 다른 예로는 차량의 연로가 소진될 때까지의 주행 가능 거리를 출력하는 클래스, 연료량이 부족하면 경고 메시지를 보내는 클래스, 연료량이 부족하면 자동으로 근처 주유소를 표시하는 클래스 등에 연료량의 변화를 통보하는 경우가 있다. 이런 경우에 연료량 클래스는 연료량에 관심을 가지는 구체적인 클래스에 직접 의존하지 않는 방식으로 설계하는 것이 바람직하다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;--&amp;gt; 옵서버 패턴은 통보 대상 객체의 관리를 Subject 클래스와 Observer 인터페이스로 일반화한다. 그러면 데이터 변경을 통보하는 클래스(ConcreateSubject)는 통보 대상 클래스나 객체(ConcreateObserver)에 대한 의존성을 없앨 수 있다. 결과적으로 옵서버 패턴은 통보 대상 클래스나 대상 객체의 변경에도 ConcreateSubject 클래스를 수정없이 그대로 사용할 수 있도록 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 824px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2161284054CF92AE3C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2161284054CF92AE3C&quot; width=&quot;824&quot; height=&quot;308&quot; filename=&quot;20150203_000644.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;▶&amp;nbsp;등장인물&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;490&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; font-family: 돋움; font-size: 12px; width: 490px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;이름&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;해설&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Observer&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;관찰자를 나타내는 인터페이스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;NumberGenerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;수를 생성하는 오브젝트를 나타내는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;RandomNumberGenerator&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;랜덤으로 수를 생성하는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;숫자로 수를 표시하는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;간이 그래프로 수를 표시하는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 196px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Main&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 293px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;동작 테스트용 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;예제 프로그램 해설&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Observer 패턴을 사용한 예제 프로그램을 살펴보자. 이번 예제 프로그램은 많은 수를 생성하는 오브젝트를 관찰자가 관찰해서 그 값을 표시하는 단순한 것이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단, 표시의 방법은 관찰자에 따라서 다르다. DigitObserver는 값을 숫자로 표시하지만, GraphObserver는 값을 간이 그래프로 표시한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1. Observer&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;Observer(관찰자)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Observer는 Subject 역할로부터 '상태가 변했습니다.'라고 전달 받는 역할을 한다. 이를 위한 메서드는 update이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;데이터의 변경을 통보 받는 인터페이스 즉, Subject에서는 Observer 인터페이스의 update 메서드를 호출함으로써 ConcreateSubject의 데이터 변경을 ConcreateObserver에게 통보한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public interface Observer {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public abstract void update(NumberGenerator generator);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Observer 인터페이스는 '관찰자'를 표현하는 인터페이스이고, 구체적인 관찰자는 이 인터페이스를 구현한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;update 메서드는 수를 생성하는 NumberGenerator 클래스에서 호출된다.(generator는 '생성하는 것', '발생장치'라는 의미이다.) update 메서드는 NumberGenerator 클래스가 '나의 내용이 갱신되었습니다. 표시 쪽도 갱신해 주십시오'라고 Observer에게 전달하기 위한 메서드이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;2. NumberGenerator&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;Subject(관찰 대상자)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;: Subject는 '관찰되는 대상'을 나타낸다. Subject 역할은 관찰자인 Observer 역할을 등록하는 메서드와 삭제하는 메서드를 가지고 있다. 또 '현재의 상태를 취득하는' 메서드도 선언되어 있다. ConcrerateObserver 객체를 관리하는 요소. Observer 인터페이스를 참조해서 ConcreateObserver를 관리하므로 ConcreateObserver의 변화에 독립적일 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import java.util.ArrayList;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import java.util.Iterator;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public abstract class NumberGenerator {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; private ArrayList observers = new ArrayList(); // Observer를 저장&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void addObserver(Observer observer) { // Observer를 추가&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; observers.add(observer);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void deleteObserver(Observer observer) { // Observer를 삭제&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; observers.remove(observer);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void notifyObservers() { // Observer에 알림&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Iterator it = observers.iterator(); &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (it.hasNext()) { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Observer o = (Observer)it.next(); &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; o.update(this); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public abstract int getNumber(); // 수를 취득한다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public abstract void execute(); // 수를 생성한다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;NumberGenerator 클래스는 수를 생성하는 추상 클래스이다. 실제의 수의 생성(excute 메서드)과 수를 취득하는 부분(getNumber 메서드)은 하위 클래스에서 구현되도록 추상 메서드로 되어 있다.(subclass responsibilty).&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;observers 필드는 NumberGenerator를 관찰하는 Observer를 보존하는 필드이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;addObserver는 Observer를 추가하는 메서드이고, deleteObserver는 Observer를 삭제하는 메서드이다. notifyObservers 메서드는 Observer 전원에 대해서 '나의 내용이 갱신되었으므로, 당신의 표시를 갱신해 주십시오'라고 전한다. 이 메서드 안에서는 observer 안의 Observer들 한 사람 한 사함의 update 메서드를 호출하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;3. RandomNumberGenerator&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;ConcreateSubject(구체적인 관찰 대상자)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;ConcreateSubject는 구체적으로 '관찰되는 대상'을 표현하는 역할이다. 상태가 변화하면 그것이 등록되어 있는 Observeer 역할에 전한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;변경 관리 대상이 되는 데이터가 있는 클래스. 데이터 변경을 위한 메서드인 excute가 있으며, excute에서는 자신의 데이터인 subjectObserver를 변경하고 Subject의 notifyObservers 메서드를 호출해서&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;ConcreateObserver 객체에 변경을 통보한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import java.util.Random;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class RandomNumberGenerator extends NumberGenerator {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; private Random random = new Random(); // 난수 발생기&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; private int number;&amp;nbsp;// 현재의 수&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public int getNumber() { // 수를 취득한다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return number;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void execute() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; 20; i++) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; number = random.nextInt(50);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; notifyObservers(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;RandomNumberGemerator 클래스는 NumberGenerator의 하위 클래스이고, 난수를 생성한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;execute 메서드는 난수(0~49의 범위의 정수)를 20개 생성하고, 그때마다 notifyObservers를 사용해서 관찰자에게 통지한다. 여기에서 사용되고 있는 nextInt 메서드는 java.util.Random 클래스의 메서드로 랜덤인 정수를 반환값으로 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class DigitObserver implements Observer {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void update(NumberGenerator generator) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;DigitObserver:&quot; + generator.getNumber());&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thread.sleep(100);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (InterruptedException e) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;DigitObserver 클래스는 Observer 인터페이스를 구현하는 클래스로 관찰한 수를 '숫자'로 표시하기 위한 것이다. update 메서드 안에서 인수로 주어진 NumberGenerator의 getNumber 메서드를 사용해서 수를 취득하고 그것을 표시한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;5. GraphObserver&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;ConcreateObserver(구체적인 관찰자)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;ConcreateObserver는 구체적인 Observer이다. update 메서드가 호출되면 그 메서드안에서 Subject 역할의 현재 상태를 취득한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;ConcreateSubject의 변경을 통보받는 클래스. Observer 인터페이스의 update 메서드를 구현함으로써 변경을 통보받는다. 변경된 데이터는 ConcreateSubject의 getNumber 메서드를 호출함으로써 변경을 조회한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class GraphObserver implements Observer {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void update(NumberGenerator generator) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.print(&quot;GraphObserver:&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int count = generator.getNumber();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; count; i++) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.print(&quot;*&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thread.sleep(100);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } catch (InterruptedException e) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;GraphObserver 클래스도 Observer 인터페이스를 구현하는 클래스이다. 이 클래스는 관찰한 수를 '간이 그래프'로 표시한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;6.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Main&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(243, 197, 52); padding: 10px; background-color: rgb(254, 254, 184);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package observer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class Main {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NumberGenerator generator = new RandomNumberGenerator();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Observer observer1 = new DigitObserver();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Observer observer2 = new GraphObserver();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; generator.addObserver(observer1);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; generator.addObserver(observer2);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; generator.execute();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;실행결과)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:26&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:***&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:4&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:****&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:37&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*************************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:32&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:********************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:26&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:22&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**********************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:15&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:***************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:10&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**********&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:19&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*******************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:29&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*****************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:42&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:******************************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:20&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:********************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:39&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:***************************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:18&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:******************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:43&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*******************************************&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:**&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;DigitObserver:21&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;GraphObserver:*********************&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Main 클래스에서는 RandomNumberGenerator의 인스턴스를 한 개 만들고, 그 관찰자를 두 개 만든다. observer1은 DigitObserver, observer2는 GraphObserver의 인스턴스이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;addObserver 메서드를 사용해서 관찰자를 등록한 후 generator.excute를 사용해서 수를 생성한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;cp.) 디자인 패턴의 목적 중의 하나는 클래스를 재이용 가능한 부품으로 만드는 일이다. Observer 패턴에서는 상태를 가지고 있는 ConcreateSubject 역할과 상태변화를 전달 받는 ConcreateObserver 역할이 등장했다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 이 두 가지의 역할을 연결하는 것이 인터페이스인 Subject 역할과 Observer 역할이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;RandomNumberGenerator 클래스는 현재 자신을 관찰하고 있는 것이 (자신이 알려주는 상대가) DigitObserver 클래스의 인스턴스인지 GraphObserver 클래스의 인스턴스인지 몰라도 상관없다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그러나 observer 필드에 저장되어 있는 인스턴스들이 Obsever 인터페이스를 구현하고 있다는 것은 알고 있다. 이 인스턴스들은 addObserver에서 추가 된 것이므로 반드시 Observer 인터페이스를 구현하고 있으며 update 메서드를 호출할 수 있다. 한편, DigitObserver 클래스는 자신이 관찰하고 있는 것이 RandomNumberGenerator 클래스의 인스턴스인지, 다른 XXXNumberGenerator 클래스의 인스턴스인지 신경 쓰지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단지 NumberGenarator의 하위 클래스의 인스턴스이고, getNumber 메서드를 가지고 있다는 것은 알고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;cf.) MVC&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Model/View/Controller(MVC) 안의 Model과 View의 관계는 Observer 패턴의 Subject 역할과 Observer 역할의 관계에 대응한다. Model은 '표시 형식에 의존하지 않는 내부 모델'을 조작하는 부분이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;또 View는 Model이 '어떻게 보일 것인지'를 관리하고 있는 부분이다. 일반적으로 하나의 Model에 복수의 View가 대응한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programing/DesignPattern</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/207</guid>
      <comments>https://devbox.tistory.com/entry/DesignPattern-%EC%98%B5%EC%84%9C%EB%B2%84-%ED%8C%A8%ED%84%B4#entry207comment</comments>
      <pubDate>Tue, 3 Feb 2015 00:07:59 +0900</pubDate>
    </item>
    <item>
      <title>[DesignPattern] 팩토리 메서드 패턴</title>
      <link>https://devbox.tistory.com/entry/DesignPattern-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;팩토리 메서드 패턴&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;팩토리 메서드 패턴에서는 상위 클래스에서 처리의 골격을 만들고, 하위 클래스에서 구체적인 처리의 내용을 만들었다. &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;이 패턴을 인스턴스 생성의 장면에 적용&lt;/span&gt;한 것이 바로 팩토리 메서드 패턴이다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;factory는 공장이라는 의미이다. &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;인스턴스를 생성하는 공장을 템플릿&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;메서드 패턴으로 구성한 것이 팩토리 메서드 패턴&lt;/span&gt;이다. 즉, 팩토리 메서드 패턴을 사용하면 객체 생성 기능을 제공하는 Factory 클래스를 정의하고 이를 활용하는 방식으로 설계하면 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;펙토리 메서드 패턴에서는 인스턴스를 만드는 방법을 상위 클래스 측에서 결정하지만 구체적인 클래스 이름까지는 결정하지 않는다. 따라서 인스턴스 생성을 위한 골격과 실제의 인스턴스 생성의 클래스를 분리해서 생각할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;cp.) 팩토리 메서드 패턴은 객체의 생성 코드를 별도의 클래스/메서드로 분리함으로써 객체 생성의 변화에 대비하는 데 유용하다. 또한 팩토리 메서드 패턴은 객체 생성을 전담하는 별도의 클래스를 두는 대신 하위 클래스에서 적합한 클래스의 객체를 생성하는 방식으로도 적용할 수 있다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 695px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2112753D54CE5CE901&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2112753D54CE5CE901&quot; width=&quot;695&quot; height=&quot;290&quot; filename=&quot;20150202_015124.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;▶ 등장인물&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;655&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; font-family: 돋움; font-size: 12px; width: 655px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 113px; height: 24px; border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;패키지&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;이름&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;해설&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 113px; height: 48px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;framework&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Product&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;추상메서드 use만 정의되어 있는 추상 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Factory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 create을 구현하고 있는 추상 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 113px; height: 48px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot; colspan=&quot;1&quot; rowspan=&quot;2&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;idcard&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;IDCard&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 use를 구현하고 있는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;IDCardFactory&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 createProduct, registerProduct를 구현하고 있는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 113px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Anonymous&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 117px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Main&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 423px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;동작 테스트용 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;▶ 예제 프로그램 해설&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;아래의 예제 프로그램에서는 신분증명서 카드(ID 카드)를 만드는 공장을 소재로 하였다. 여기에는 다섯 개의 클래스가 있다. Product 클래스와 Factory 클래스는 framework라는 패키지에 속해 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;이 두 개의 클래스가 인스턴스 생성을 위한 골격(framework)의 역할을 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;IDCard 클래스와 IDCardFactory 클래스는 구체적인 내용을 구현하며 idcard라는 패키지에 속해 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;Main 클래스는 동작 테스트를 위한 클래스이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;1. Product&lt;/b&gt;: 팩토리 메서드로 생성될 객체의 공통 인터페이스&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;span style=&quot;color: rgb(65, 116, 217);&quot;&gt;Product(제품)의 역할&lt;/span&gt;: 이것은 framework 쪽에 포함되어 있다. 이 패턴에서 생성되는 인스턴스가 가져야 할 인터페이스를 결정하는 것은 추상 클래스이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구체적인 내용은 하위 클래스의 ConcreateProduct 역할이 결정한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package framework;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public abstract class Product {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public abstract void use();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;framework 패키지의 Product 클래스는 '제품'을 표현한 클래스이다. 이 클래스에는 추상 메서드 use만이 선언되어 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구체적인 use의 구현은 모두 Product의 하위 클래스에게 맡기고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 framework에서는 제품이란 '무엇이든 use할 수 있는(사용할 수 있는) 것'으로 규정하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;2. Factory&lt;/b&gt;: 구체적으로 객체가 생성되는 클래스&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;span style=&quot;color: rgb(65, 116, 217);&quot;&gt;Creator(작성자)의 역할&lt;/span&gt;: Product 역할을 생성하는 추상 클래스는 framework 쪽에 가깝다. 구체적인 내용은 하위 클래스의 ConcreateCreator 역할이 결정한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Creator 역할은 실제로 생성하는 ConcreateProduct 역할에 가지고 있는 정보가 없다. Creator 역할이 가지고 있는 정보는 Product 역할과 인스턴스 생성의 메소드를 호출하면 Product가 생성된다는 것뿐이다. 예제 프로그램에서는 createProduct 메서드가 인스턴스 생성을 위한 메서드가 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;new를 사용해서 실제의 인스턴스를 생성하는 대신에, 인스턴스 생성을 위한 메서드를 호출해서 구체적인 클래스 이름에 의한 속박에서 상위 클래스를 자유롭게 만든다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package framework;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public abstract class Factory {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public final Product create(String owner) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Product p = createProduct(owner);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; registerProduct(p);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return p;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; protected abstract Product createProduct(String owner);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; protected abstract void registerProduct(Product product);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;framework 패키지의 Factory 클래스에서는 템플릿 메서드 패턴이 사용되고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;추상 메서드 createProduct에서는 '제품을 만들고', 만든 제품을 추상 메서드 registerProduct에서 '등록'한다. '제품을 만들고', '등록'하는 구현은 하위 클래스에서 수행한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 framework에서 공장이란 'create 메서드에서 Product의 인스턴스를 생성하는 것'으로 규정하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 create 메서드는 'createProduct에서 제품을 만들어서 registerProduct에서 등록한다.'라는 순서로 구현되고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구체적인 구현 내용은 Factory Method 패턴을 적용한 프로그램에 따라 다르다. Factory Method 패턴에서는 인스턴스를 생성할 때 Templete Method 패턴을 사용한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;3. IDCard&lt;/b&gt;: 구체적으로 객체가 생성되는 클래스&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;span style=&quot;color: rgb(65, 116, 217);&quot;&gt;ConcreateProduct(구체적인 제품)의 역할&lt;/span&gt;: 구제적인 제품을 결정하며, idcard 쪽에 해당된다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package idcard;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import framework.*;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class IDCard extends Product {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; private String owner;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; IDCard(String owner) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(owner + &quot;의 카드를 만듭니다.&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.owner = owner;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public void use() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(owner + &quot;의 카드를 사용합니다.&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public String getOwner() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return owner;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;내용을 실행하는 측(idcard 패키지)을 살펴보자. 인식번호 카드를 나타내는 IDCard라는 클래스를 만들어보자.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;framework에서 분리된 것을 표시하기 위해 idcard 패키지라는 별도의 패키지를 만들고, IDCard 클래스를 제품 product 클래스의 하위 클래스로 정의한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4. IDCardFactory&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;: 팩토리 메서드를 구현하는 클래스로 ConcreateProduct 객체를 생성한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;span style=&quot;color: rgb(65, 116, 217);&quot;&gt;ConcreateCreator(구체적인 작성자)의 역할&lt;/span&gt;: 구체적인 제품을 만드는 클래스를 결정하며, idcard 쪽에 해당된다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;package idcard;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import framework.*;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import java.util.*;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class IDCardFactory extends Factory {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; private List owners = new ArrayList();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; protected Product createProduct(String owner) { // 인스턴스 생성을 위한 메서드&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new IDCard(owner);// IDCard의 인스턴스를 생성해서 제품을 만드는 일을 실현&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// new를 사용해서 실제 인스턴스를 사용하는 대신에, 인스턴스 생성을 위한 메서드를 호출해서&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 구체적인 클래스 이름에 의한 속박에서 상위클래스를 자유롭게 만든다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; protected void registerProduct(Product product) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; owners.add(((IDCard)product).getOwner());&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public List getOwners() {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return owners;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;IDCardFactory 클래스에서는 createProduct와 registerProduct의 두 가지 메서드를 구현하고 있다. createProduct에서는 IDCard의 인스턴스를 생성해서 '제품을 만드는'을 실현하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;registerProduct에서는 IDCard의 owner(소유자)를 owners 필드를 추가해서 '등록'이라는 기능을 실현하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;5. Main&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import framework.*;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;import idcard.*;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class Main {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Factory factory = new IDCardFactory();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Product card1 = factory.create(&quot;홍길동&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Product card2 = factory.create(&quot;이순신&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Product card3 = factory.create(&quot;강감찬&quot;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; card1.use();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; card2.use();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; card3.use();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;실행결과)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;홍길동의 카드를 만듭니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이순신의 카드를 만듭니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;강감찬의 카드를 만듭니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;홍길동의 카드를 사용합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이순신의 카드를 사용합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:10pt;&quot;&gt;강감찬의 카드를 사용합니다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programing/DesignPattern</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/206</guid>
      <comments>https://devbox.tistory.com/entry/DesignPattern-%ED%8C%A9%ED%86%A0%EB%A6%AC-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4#entry206comment</comments>
      <pubDate>Mon, 2 Feb 2015 02:23:37 +0900</pubDate>
    </item>
    <item>
      <title>[DesignPattern] 템플릿 메서드 패턴</title>
      <link>https://devbox.tistory.com/entry/DesignPattern-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;템플릿 메서드 패턴&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Templete Method 패턴은 템플릿의 기능을 가진 패턴이다. 상위 클래스 쪽에 템플릿에 해당하는 메서드가 정의되어 있고, 그 메서드의 정의 안에는 추상 메서드가 사용되고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;따라서 상위 클래스의 프로그램만 보면 추상 메서드를 어떻게 호출하고 있는지 알 수 있지만, 최종적으로 어떤 처리가 수행되는지는 알 수 없다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;추상 메서드를 실제로 구현하는 것은 하위 클래스이다. 하위 클래스 측에서 메서드를 구현하면 구체적인 처리가 결정된다. 서로 다른 하위 클래스가 서로 다른 구현을 실행하면 서로 다른 처리가 결정된다. 서로 다른 하위 클래스가 서로 다른 구현을 실행하면 서로 다른 처리가 실행될 것이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그러나 어떤 하위 클래스에서 어떤 구현을 하더라도 처리의 큰 흐름은 상위 클래스에서 결정한대로 이루어진다. 이와 같이 상위 클래스에서 처리의 뼈대를 결정하고, 하위 클래스에서 그 구체적인 내용을 결정하는 디자인 패턴을 템플릿 메서드 패턴이라고 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 718px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/214F754D54CE4BD028&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F214F754D54CE4BD028&quot; width=&quot;718&quot; height=&quot;354&quot; filename=&quot;20150202_004507.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;등장인물&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;450&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; font-family: 돋움; font-size: 12px; width: 450px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 127px; height: 24px; border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;이름&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 322px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(204, 204, 204); background-color: rgb(255, 217, 236);&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;해설&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 127px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;AbstractDisplay&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 322px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 display만 구현되고 있는 추상 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 127px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;CharDisplay&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 322px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 open, print, close를 구현하고 있는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 127px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;StringDisplay&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 322px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;메서드 open, print, close를 구현하고 있는 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 127px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Main&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 322px; height: 24px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid; border-right-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;동작 테스트용 클래스&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1. AbstractDisplay&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;AbstractClass(추상 클래스)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;AbstractClass는 템플릿 메서드를 구현한다. 또한 그 템플릿 메서드에서 사용하고 있는 추상 메서드를 선언한다. 이 추상 메서드를 선언한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;이 추상 메서드는 하위 클래스인 ConcreateClass 역할에 의해 구현된다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public abstract class AbstractDisplay { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 추상 클래스 AbstractDisplay&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; public abstract void open(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 하위 클래스에 구현을 맡기는 추상 메소드 (1) open&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; public abstract void print(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 하위 클래스에 구현을 맡기는 추상 메소드 (2) print&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; public abstract void close();&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 하위 클래스에 구현을 맡기는 추상 메소드 (3) close&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; public final void display() { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 추상 클래스에서 구현되고 있는 메소드 display&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp; open(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 우선 open하고…&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; for (int i = 0; i &amp;lt; 5; i++) { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 5번 print을 반복하고…&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;		&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; print(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;close(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// … 마지막으로 close한다. 이것이 display 메소드에서 구현되고 있는 내용.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;CharDisplay&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: rgb(65, 116, 217); font-size: 10pt;&quot;&gt;ConcreateClass(구현 클래스)의 역할&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AbstractClass 역할에서 정의되어 있는 추상 메서드를 구체적으로 구현한다. 여기에서 구현한 메서드는&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;AbstractClass역의 템플릿 메서드에서 호출된다. 예제 프로그램에서는 CharDisplay 클래스나 StringClass 클래스가 이 역할을 한다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class CharDisplay extends AbstractDisplay { &amp;nbsp;// CharDisplay는 AbstractDisplay의&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;하위 클래스.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;private char ch; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 표시해야 할 문자&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;public CharDisplay(char ch) { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 생성자에서 전달된 문자 ch을&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ch = ch; &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 필드에 기억해 둔다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;public void open() { // 상위 클래스에서는 추상 메소드였다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;여기에서 오버라이드해서 구현.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.print(&quot;&amp;lt;&amp;lt;&quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;public void print() { // print 메소드도 여기에서 구현한다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;이것이 display에서 반복해서 호출된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.print(ch); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 필드에 기억해 둔 문자를 1개 표시한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;public void close() { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// close 메소드도 여기에서 구현.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;&amp;gt;&amp;gt;&quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333330154419px; line-height: 20px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;3. StringDisplay&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class StringDisplay extends AbstractDisplay { &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// StringDisplay도&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;AbstrctDisplay의 하위 클래스.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;private String string; &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;// 표시해야 할 문자열.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;private int width; &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 바이트 단위로 계산한 문자열의 「폭」.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;public StringDisplay(String string) { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 생성자에서 전달된 문자열 string을&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.string = string; &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 필드에 기억.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.width = string.getBytes().length; // 그리고 바이트 단위의 폭도 필드에&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;기억해 두고 나중에 사용한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;public void open() { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 오버라이드해서 정의한 open 메소드.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printLine(); // 이 클래스의 메소드 printLine에서&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;선을 그리고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;public void print() { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// print 메소드는&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;|&quot; + string + &quot;|&quot;);&amp;nbsp;// 필드에 기억해 둔 문자열의&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;&amp;nbsp;전후에 “|”을 붙여서 표시.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;public void close() { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// close 메소드는&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printLine(); // open 처럼 printLine 메소드에서&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;선을 그리고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;private void printLine() {&amp;nbsp;// open과 close에서 호출된 printLine 메소드이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 1.5;&quot;&gt;private이기 때문에 이 클래스 안에서만 사용된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.print(&quot;+&quot;); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 테두리의 모서리를 표현하는”+” 마크를 표시.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; width; i++) { &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// width개의 “-“을 표시하고&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.print(&quot;-&quot;); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 테두리 선으로 이용한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;+&quot;); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 테두리의 모서리를 표현하는 “+” 마크를 표시.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;Main&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px dashed rgb(121, 165, 228); padding: 10px; background-color: rgb(219, 232, 251);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;public class Main {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; public static void main(String[] args) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AbstractDisplay d1 = new CharDisplay('H');&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;// 'H'을 가진 CharDisplay 인스턴스를 1개 만든다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AbstractDisplay d2 = new StringDisplay(&quot;Hello, world.&quot;);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;// “Hello, world.”을 가진 StringDisplay의 인스턴스를 1개 만든다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AbstractDisplay d3 = new StringDisplay(&quot;안녕하세요.&quot;);&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; line-height: 20px;&quot;&gt;// “안녕하세요.”를 가진 StringDisplay의 인스턴스를 1개 만든다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;d1.display(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// d1, d2, d3 모두 AbstractDisplay의 하위클래스의 인스턴스이기 때문에&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;d2.display(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 상속한 display메소드를 호출할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 10pt;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;d3.display(); &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;// 실제 동작은 CharDisplay나 StringDisplay에서 결정한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;실행결과)&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border: 1px solid rgb(238, 238, 238); padding: 10px; background-color: rgb(238, 238, 238);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;lt;&amp;lt;HHHHH&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;+-------------+&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|Hello, world.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|Hello, world.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|Hello, world.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|Hello, world.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|Hello, world.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;+-------------+&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;+----------------+&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|안녕하세요.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|안녕하세요.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|안녕하세요.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|안녕하세요.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;|안녕하세요.|&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;+----------------+&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programing/DesignPattern</category>
      <author>devbox</author>
      <guid isPermaLink="true">https://devbox.tistory.com/205</guid>
      <comments>https://devbox.tistory.com/entry/DesignPattern-%ED%85%9C%ED%94%8C%EB%A6%BF-%EB%A9%94%EC%84%9C%EB%93%9C-%ED%8C%A8%ED%84%B4#entry205comment</comments>
      <pubDate>Mon, 2 Feb 2015 01:01:10 +0900</pubDate>
    </item>
  </channel>
</rss>