<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>InfiniteJava</title>
    <link>https://infinitejava.tistory.com/</link>
    <description>현재 스터디를 진행하며 공부한 내용을 정리하는 블로그</description>
    <language>ko</language>
    <pubDate>Wed, 15 Jul 2026 05:28:18 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>CaffeLatte</managingEditor>
    <item>
      <title>[개발 도구] 온라인 스터디시 사용하기 좋은 툴</title>
      <link>https://infinitejava.tistory.com/79</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;네이버 두레이&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;a style=&quot;letter-spacing: 0px;&quot; href=&quot;https://dooray.com/home/&quot;&gt;https://dooray.com/home/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1586700394043&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;All about collaboration tools, Dooray!&quot; data-og-description=&quot;Issue tracker, Messenger, Wiki, Mail, Calendar, Drive, Contacts and more. Experience the beginning and end of collaboration tools.&quot; data-og-host=&quot;dooray.com&quot; data-og-source-url=&quot;https://dooray.com/home/&quot; data-og-url=&quot;https://dooray.com/home&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cZruV5/hyFFqbRpkJ/zsfMn2rFg8MZSwswa2yvGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bhZcPJ/hyFDlDgt2R/ZhVnjVnJQCooyq5kWEDKa0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://dooray.com/home/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dooray.com/home/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cZruV5/hyFFqbRpkJ/zsfMn2rFg8MZSwswa2yvGk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bhZcPJ/hyFDlDgt2R/ZhVnjVnJQCooyq5kWEDKa0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;All about collaboration tools, Dooray!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Issue tracker, Messenger, Wiki, Mail, Calendar, Drive, Contacts and more. Experience the beginning and end of collaboration tools.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;dooray.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;영상 통화 가능&lt;/li&gt;
&lt;li&gt;화면 공유 가능&lt;/li&gt;
&lt;li&gt;채팅 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;vsCode&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확장 프로그램 설치 ( Live share extension pack )&lt;/li&gt;
&lt;li&gt;실시간 코딩 가능&lt;/li&gt;
&lt;li&gt;코드의 실행 가능 ( 현재까진 Host에서만 가능한 것으로 확인되나 추가 확인이 필요 )&lt;/li&gt;
&lt;li&gt;음성 통화 가능&lt;/li&gt;
&lt;li&gt;채팅 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코드쉐어&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;a style=&quot;letter-spacing: 0px;&quot; href=&quot;https://codeshare.io/&quot;&gt;https://codeshare.io/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1586700681355&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Codeshare - Share code in real-time with developers in your browser&quot; data-og-description=&quot;Code with your team Open a Codeshare editor, write or copy code, then share it with friends and colleagues. Pair program and troubleshoot together. Hack together&quot; data-og-host=&quot;codeshare.io&quot; data-og-source-url=&quot;https://codeshare.io/&quot; data-og-url=&quot;https://codeshare.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cetqQf/hyFFc5KYvp/5pgSwtExH7GGMIQd2Uehxk/img.png?width=2004&amp;amp;height=1268&amp;amp;face=0_0_2004_1268,https://scrap.kakaocdn.net/dn/xlI8x/hyFDA8gzda/2eKa5nt6DCXJwq15yd48a1/img.png?width=2004&amp;amp;height=1268&amp;amp;face=0_0_2004_1268&quot;&gt;&lt;a href=&quot;https://codeshare.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://codeshare.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cetqQf/hyFFc5KYvp/5pgSwtExH7GGMIQd2Uehxk/img.png?width=2004&amp;amp;height=1268&amp;amp;face=0_0_2004_1268,https://scrap.kakaocdn.net/dn/xlI8x/hyFDA8gzda/2eKa5nt6DCXJwq15yd48a1/img.png?width=2004&amp;amp;height=1268&amp;amp;face=0_0_2004_1268');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Codeshare - Share code in real-time with developers in your browser&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Code with your team Open a Codeshare editor, write or copy code, then share it with friends and colleagues. Pair program and troubleshoot together. Hack together&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;codeshare.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실시간 코딩 가능&lt;/li&gt;
&lt;li&gt;영상 통화 가능&lt;/li&gt;
&lt;li&gt;채팅 가능&lt;/li&gt;
&lt;li&gt;코드의 실행 불가능&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>개발 도구</category>
      <author>CaffeLatte</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/79</guid>
      <comments>https://infinitejava.tistory.com/79#entry79comment</comments>
      <pubDate>Sun, 12 Apr 2020 23:16:52 +0900</pubDate>
    </item>
    <item>
      <title>[Spring]  클래스 패스 알기</title>
      <link>https://infinitejava.tistory.com/77</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;classpath&lt;/b&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;br /&gt;&lt;/p&gt;&lt;p&gt;빌드 결과도 gradle과 maven도 다르다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;우리가 확인해야 할 것은 jar 파일. 실제 실행되는게 jar파일이기 떄문&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;hello-shop-0.0.1.SNAPSHOT.jar 를 확인해보자&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;jar를 압축 해제하면 나타나는 파일계층이 실제 classpath라고 보면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;META-INF&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저, META-INF는 jar에 대한 메타 데이터.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 안에 MANIFEST.MF는 중요한 파일이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;start class, library 위치 등의 정보가 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여기서 classpath를 알 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;BOOT-INF/classes&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여기가 classpath이다! 여기를 기준으로 경로를 잡으면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그렇다면 원래 resources의 위치는 static아래 위치하고 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 그렇게 classpath를 잡으면 참조되지 않는다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;왜일까?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;Spring이 먼저 로드되기 때문에!&lt;/b&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&gt;소스코드가 올라가기 전에 먼저 Spring이 올라간다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이때 Spring이 resource의 위치를 미리 잡아준다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이 페이지에서 &amp;nbsp;&quot;&lt;span style=&quot;color: rgb(127, 0, 127); background-color: rgb(248, 248, 248); font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Courier, monospace; font-size: 15px;&quot;&gt;spring.resources.static-locations&lt;/span&gt;&quot; 를 검색해보자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;spring에서 이미 /static/ 폴더를 classpath로 잡아 놓은 것을 알 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여기서 이 값을 원하는 대로 바꿀 수 있다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>프레임워크</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/77</guid>
      <comments>https://infinitejava.tistory.com/77#entry77comment</comments>
      <pubDate>Sat, 8 Jul 2017 11:45:44 +0900</pubDate>
    </item>
    <item>
      <title>mysql에서 datetime 타입의 데이터에서 나타나는 오류</title>
      <link>https://infinitejava.tistory.com/68</link>
      <description>&lt;p&gt;g5_shop_order 테이블에서 od_invoice_time이라는 필드가 있다.&lt;/p&gt;&lt;p&gt;필드 정보는 다음과 같다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Field : od_invoice_time&lt;/p&gt;&lt;p&gt;Type : datetime&lt;/p&gt;&lt;p&gt;Default : 0000-00-00 00:00:00&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러나 이 필드를 불러와 Java Class에 매핑하며 문제가 발생했다.&lt;/p&gt;&lt;p&gt;오류 내용은 다음과 같다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;hr&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;There was an unexpected error (type=Internal Server Error, status=500).&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Error attempting to get column 'od_invoice_time' from result set. Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp ; SQL []; Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp; nested exception is java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;hr&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 문제는 datetime 타입의 필드에 Default값을 0000-00-00 00:00:00 으로 주었을 때 나타나는 문제라고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다음과 같이 .properties 파일에 datasource 세팅을 해주어 해결하였다. mysql에서 데이터를 읽어올 때 제로값을 가진 데이터는 null로 읽어오라는 설정을 추가하는 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;pre style=&quot;background-color:#2b2b2b;color:#a9b7c6;font-family:'D2Coding';font-size:9.0pt;&quot;&gt;&lt;span style=&quot;color:#cc7832;background-color:#344134;&quot;&gt;spring.datasource.tomcat.connection-properties&lt;/span&gt;&lt;span style=&quot;color:#808080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#6a8759;&quot;&gt;zeroDateTimeBehavior=convertToNull;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: 나눔고딕; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>슬램덩크/soing2의 슬램덩크(쇼핑몰)</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/68</guid>
      <comments>https://infinitejava.tistory.com/68#entry68comment</comments>
      <pubDate>Sun, 28 May 2017 18:46:20 +0900</pubDate>
    </item>
    <item>
      <title>Git push시 Permission to denied 에러와 관련된 내용</title>
      <link>https://infinitejava.tistory.com/67</link>
      <description>&lt;p&gt;$ git push origin master&lt;/p&gt;&lt;p&gt;remote: Permission to 저장소주소 denied to A.&lt;/p&gt;&lt;p&gt;fatal: unable to access '저장소전체주소' : The requested URL returned error: 403&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&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;임시 해결책&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;로컬PC의 github키를 삭제(windows 기준)&lt;br /&gt;: &lt;b&gt;제어판 - 사용자 계정 - 자격 증명 관리 - Windows 자격 증명 - 일반 자격 증명에서 github키 제거&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;그 후 push를 해보면 github사용자 계정을 다시 물어봄.&lt;br /&gt;&amp;nbsp;이 방법의 단점은&amp;nbsp;로컬PC의 초기 사용자가 아니라면 다시 키 제거를 해야함.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-끝-&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;추신,&lt;/p&gt;&lt;p&gt;SSH 설정 관련 글을 찾아보고&amp;nbsp;여러 계정에 접근할 수 있게 적용해보자!&lt;/p&gt;</description>
      <category>개발 도구</category>
      <author>CaffeLatte</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/67</guid>
      <comments>https://infinitejava.tistory.com/67#entry67comment</comments>
      <pubDate>Fri, 12 May 2017 03:10:13 +0900</pubDate>
    </item>
    <item>
      <title>Git Bash로 프로젝트 올리기</title>
      <link>https://infinitejava.tistory.com/66</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;1. 깃다운로드&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://git-scm.com/downloads&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot; style=&quot;box-sizing: border-box; background-color: transparent; color: rgb(74, 74, 74); transition: all 0.2s ease-in-out; outline: none !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;https://git-scm.com/downloads&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;: OS에 맞게 다운로드 후 설치&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;2. git bash를 실행&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;3. &lt;b&gt;$ git --version&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: git이 설치되었는지 확인&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;4. git의 초기 설정으로 한번만 해주면 되고 변경이 필요할 때도 사용&lt;/span&gt;&lt;br /&gt;&lt;b&gt;$ git config --global user.name &quot;이름&quot;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;$ git config --global user.email &quot;이메일&quot;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;4-1. 4번에서 설정한&amp;nbsp;파일을 보려면,&lt;/span&gt;&lt;br /&gt;&lt;b&gt;$ cd ~&lt;/b&gt;&lt;br /&gt;: 홈&amp;nbsp;디렉토리로 이동&lt;br /&gt;&lt;b&gt;$ ls -al | grep git&lt;/b&gt;&lt;br /&gt;: 검색하면 .gitconfig가 나옴&lt;br /&gt;&lt;b&gt;$ vi .gitconfig&lt;/b&gt;&lt;br /&gt;: vi로 들어가면 설정한 '이름'과 '이메일'이 나오고 나옴&lt;br /&gt;(:wq는 저장 후 종료, :w 저장만, :q! 강제종료)&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;5. &lt;b&gt;$ git config --list&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 이름과 이메일 설정 정보 확인&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;6. &lt;b&gt;$ cd Desktop/git-test&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 예를 들어 바탕화면의 git-test 폴더가 있다고 가정&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;7. &lt;b&gt;$ git init&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 해당 폴더를 git 로컬저장소로 등록&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;8. &lt;b&gt;$ git add .&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 해당 폴더의 모든 내용을 index함&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;9. &lt;b&gt;$ git commit -m &quot;커밋 메시지 입력&quot;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 로컬저장소에 commit하면서 메시지를 남김&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;10. 웹브라우저로&amp;nbsp;github.com에 접속해서 new Repository로 저장소를 만듬&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;11. &lt;b&gt;$ git remote add origin&amp;nbsp;저장소주소&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: origin은 '단축이름'이라 원하는 다른 이름으로 지정해도 되며,&amp;nbsp;'저장소주소'는 '10.번'에서 만든 저장소의 주소를 입력&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;12. &lt;b&gt;$ git push [-u] origin master&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 원격저장소로 업로드, -u는 생략가능하며 사용시 옵션을 기억하여 이후에는 &lt;b&gt;$ git push&lt;/b&gt;만 입력하면 된다고 함.&lt;br /&gt;원격저장소의 id, pw를 물어보면 입력&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;13. &lt;b&gt;$ git remote show origin&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;: 원격저장소에 잘 올라갔는지 확인&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;-끝-&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px; color: rgb(119, 119, 119); font-family: &amp;quot;Open Sans&amp;quot;;&quot;&gt;참고사이트&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px;&quot;&gt;&lt;font color=&quot;#777777&quot; face=&quot;Open Sans&quot;&gt;&lt;a href=&quot;http://freeprog.tistory.com/72&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://freeprog.tistory.com/72&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; line-height: 24px;&quot;&gt;&lt;font color=&quot;#777777&quot; face=&quot;Open Sans&quot;&gt;&lt;a href=&quot;http://nalam.tistory.com/category/Develope/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://nalam.tistory.com/category/Develope/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>개발 도구</category>
      <author>CaffeLatte</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/66</guid>
      <comments>https://infinitejava.tistory.com/66#entry66comment</comments>
      <pubDate>Thu, 11 May 2017 17:59:56 +0900</pubDate>
    </item>
    <item>
      <title>[UML] Class Diagram 심화 (편집중)</title>
      <link>https://infinitejava.tistory.com/62</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;b&gt;Class Diagram 심화&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;참고 :&amp;nbsp;http://www.uml-diagrams.org/class-diagrams-overview.html&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;img id=&quot;tx_entry_23296_&quot; class=&quot;txc-image&quot; src=&quot;https://t1.daumcdn.net/cfile/tistory/2543F63C58E8BDD604&quot; width=&quot;820&quot; height=&quot;595&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;button type=&quot;button&quot; class=&quot;btn_more&quot; id=&quot;more62_0&quot; data-id=&quot;62_0&quot;&gt;목차 펼치기&lt;/button&gt;&lt;div class=&quot;moreless_content&quot; id=&quot;content62_0&quot; style=&quot;display: none;&quot;&gt;&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less62_0&quot; data-id=&quot;62_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;목차 접기&lt;/span&gt;&lt;/button&gt;
  &lt;p class=&quot;txt_view&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;1. 개요&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;1.1 UML 다이어그램 종류&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;1.2 클래스 다이어그램(Class Diagram)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;1.2.1 개요&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;1.2.2 언제 사용할까&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;1.2.3 작성시 주의사항&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;2. Class Diagram Overview&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;3. Class&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;3.1 Class Overview&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;3.1.1 Classifier&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;3.1.2 Feature&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2 표기방법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.1 이름 (Name)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.2 속성 (Attributes)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.2.1 클래스 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.2.2 문법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.2.3 Property Modifier Detail&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.2.4 multiplicity, default-value, property-modifier를 사용한 예&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.3 행위 (Operations)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.3.1 클래스 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.3.2 문법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.3.3 Properties of operation&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4 기타 문법들&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4.1 접근제어자 (Visiblity)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4.2 스테레오 타입 (Stereo Type)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4.3 제약사항 (Constraints)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4.4 개수 표현 (Multiplicity)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;3.2.4.5 생략표기&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4. Relationship&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.1 Relationship Overview&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.2 Generalization&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.2.1 정의&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.2.2 표기법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.2.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3 Dependency&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.1 Dependency&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.1.1 정의&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.1.2 표기법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.1.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.2 Realization&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.2.1 정의&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.2.2 표기법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(166, 166, 166); font-family: Georgia;&quot;&gt;4.3.2.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4 Association&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.1 Association&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.1.1 정의&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.1.2 표기법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.1.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.2 Aggreagation (Shared Aggregation)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.2.1 정의&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.2.2 표기법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.2.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.3 Composition (Composite Aggregation)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.3.1 정의&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.3.2 표기법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 6em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.3.3 다이어그램과 소스코드 비교&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.4.4 Measuring system complexity&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;4.5 Nested (Inner class)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;5. Common/Extra&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;5.1 코멘트(주석)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;5.2 기타 표기법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;6. 참고&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;6.1 사이트&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(0, 0, 0); margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;6.2 Tools and Plugins&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;
&lt;button type=&quot;button&quot; class=&quot;btn_less&quot; id=&quot;less62_0&quot; data-id=&quot;62_0&quot;&gt;&lt;span class=&quot;txt_fold&quot;&gt;목차 접기&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;2. Class Diagram Overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Class&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Relationship&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;3. Class&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;3.1 Class Overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-compartments-analysis.png&quot; alt=&quot;Middle compartment holds attributes and the bottom one holds operations - analysis.&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-no-compartments.png&quot; alt=&quot;Class is shown as solid-outline rectangle containing the class name.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 8px 0px 5px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;A&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;class&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;is a&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/classifier.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;classifier&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;which describes a set of objects that share the same&lt;/span&gt;&lt;/p&gt;&lt;ul type=&quot;circle&quot; style=&quot;list-style: inside; padding: 0px; margin: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/uml-core.html#feature&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;features&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/constraint.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;constraints&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;semantics (meaning)&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Georgia, Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;Class는 같은 Feature, Constraints, Semantics를 가지는 Object를 표현하는 Classifier이다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;쉽게 정의하면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;는 객체지향에서 사용되는 클래스의 개념과 같다고 보면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;3.1.1 Classifier&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 8px 0px 5px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;Classifier&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;is an abstract metaclass which describes (classifies) set of instances having common&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/uml-core.html#feature&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;features&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;. A&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;feature&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;declares a structural or behavioral characteristic of instances of classifiers.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; padding: 8px 0px 5px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;More formally,&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;classifier&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;is (extends):&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style: inside; padding: 0px; margin: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/uml-core.html#type&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;type&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/template.html#templateable-element&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;templateable element&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/uml-core.html#redefinable-element&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;redefinable element&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background: transparent;&quot;&gt;&lt;a href=&quot;http://www.uml-diagrams.org/namespace.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background: transparent; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;namespace&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Georgia, Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14.4px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;Classifier는 같은 Feautre를 가지는 인스턴스들을 표현하기 위한 Abstract Metaclass이다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;다음 &amp;lt;그림3-1&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;과 같이 Type, Templateable Element, Refindable Element, Namespace를 상속받은 것들을 Classifier라고 한다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;그리고 &amp;lt;그림3-2&amp;gt;와 같이&amp;nbsp;Classifier의 속성을 기반으로 하는&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;DataType, Interface, Class, Collaboration, Use Case, Actor 등을&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;모두 Classifier라고 한다&lt;/span&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/uml-core/classifier.png&quot; alt=&quot;UML classifier is type, templateable element, redefinable element, and namespace.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;lt;그림3-1&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;UML classifier is type, templateable element, redefinable element, and a namespace.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;http://www.uml-diagrams.org/classifier.html#abstract-classifier&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/uml-core/uml-classifiers.png&quot; alt=&quot;The most important UML 2.5 classifiers.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;lt;그림3-2&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;The most important UML 2.5 classifiers -&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/class.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;class&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/interface.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;interface&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/data-type.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;data type&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/component.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;component&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/collaboration-diagrams/collaboration.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;collaboration&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.uml-diagrams.org/use-case.html&quot; class=&quot;ref-link&quot; style=&quot;color: green; margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-weight: bold; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 13.248px; font-style: italic;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;use case&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;, etc.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#000066&quot; face=&quot;Georgia, Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 13.248px;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;http://www.uml-diagrams.org/classifier.html#abstract-classifier&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;3.1.2 Feature&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/uml-core/class-feature-overview.png&quot; alt=&quot;UML classifier feature overview diagram.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&amp;lt;그림 3-3&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(0, 0, 102); font-family: Georgia; font-size: 13.248px; font-style: italic;&quot;&gt;Feature overview diagram&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;http://www.uml-diagrams.org/uml-core.html#feature&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Menlo, Monaco, Consolas, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;UML에서는 Feature를 두 가지로 구분한다.&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Structural Features&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Behavioral Features&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;UML Class Diagram에서는 Feature를 다음 두가지로 구분한다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Structural Features : Attributes&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;Behavioral Features : Operations&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;3.2 표기 방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;3.2.1 이름 (Name)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 14.4px;&quot;&gt;Class name should be&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;centered&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia; font-size: 14.4px;&quot;&gt;&amp;nbsp;and in&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;bold&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia; font-size: 14.4px;&quot;&gt;&amp;nbsp;face, with the first letter of class name capitalized (if the character set supports upper case).&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;클래스 이름은 다음과 같이 네모 박스 안에 기입한다.&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;상자의 가운데에 위치해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;굵은 글씨체로 기입해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;첫번째 글자는 대문자로 기입해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-compartments-analysis.png&quot; alt=&quot;Middle compartment holds attributes and the bottom one holds operations - analysis.&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-no-compartments.png&quot; alt=&quot;Class is shown as solid-outline rectangle containing the class name.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;3.2.2.1 클래스 다이어그램과 소스코드 비교&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot; style=&quot;border: none; border-collapse: collapse;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 26px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 392px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-compartments-analysis.png&quot; alt=&quot;Middle compartment holds attributes and the bottom one holds operations - analysis.&quot;&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;package com.tistory.devdasom;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;public class SearchService {&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;private SearchEngine engine;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;private SearchRequest query;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre; font-size: 13.3333px;&quot;&gt;&lt;font face=&quot;Georgia&quot;&gt;	&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;...&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;3.2.2.2 문법&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot; style=&quot;border: none; border-collapse: collapse;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 784px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;Syntax&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; 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: 784px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;property&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;&amp;nbsp;&lt;/span&gt;::= [&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;visibility&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;]&amp;nbsp;&amp;nbsp;['/'] &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-name&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp; [ ':'&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-type&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;] &amp;nbsp; [ '['&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;multiplicity&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;']' ] &amp;nbsp; [ '='&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;default-value&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;] &amp;nbsp; [&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-modifiers&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 784px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;visibility&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;&amp;nbsp;&lt;/span&gt;::= &amp;nbsp; '+' &amp;nbsp; | &amp;nbsp; '~' | &amp;nbsp; '#' &amp;nbsp; | &amp;nbsp; '-' &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 784px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;property-modifiers&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;::= '{'&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-modifier&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp; [ &amp;nbsp; ',' &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-modifier&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;] * &amp;nbsp; '}'&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 784px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;property-modifier&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&lt;span style=&quot;color: rgb(34, 116, 28);&quot;&gt;&amp;nbsp;&lt;/span&gt;::= &amp;nbsp; 'id' &amp;nbsp;|&amp;nbsp; 'readOnly' &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;|&amp;nbsp; 'ordered' &amp;nbsp;|&amp;nbsp; (&amp;nbsp; 'seq' &amp;nbsp;|&amp;nbsp; 'sequence' &amp;nbsp;) &amp;nbsp;|&amp;nbsp; 'unique' &amp;nbsp;|&amp;nbsp; 'nonunique' &amp;nbsp; | &amp;nbsp; 'union' &amp;nbsp;| &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: Georgia; 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; 'redefines' &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-name&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;|&amp;nbsp; 'subsets' &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-name&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;nonterm&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; margin: 0px; padding: 0px; line-height: 1.4; font-weight: bold; font-style: italic; font-family: Georgia; font-size: 10pt;&quot;&gt;property-constraint&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;4.4 Association&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 360px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/271A5A3858F208622E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F271A5A3858F208622E&quot; width=&quot;360&quot; height=&quot;273&quot; filename=&quot;class-association-overview.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;Aggregation과 Composition은 Associaiton의 한 종류(?)이다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 368px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2552AE3458F20C6E22&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2552AE3458F20C6E22&quot; width=&quot;368&quot; height=&quot;192&quot; filename=&quot;class-diagram-association-3.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;Association은 표현방법이 굉장히 다양한데, 이렇게 표현하는 방법도 있다. 화살표 방향으로 읽는다. &lt;b&gt;Driver &lt;/b&gt;&lt;i&gt;dirves &lt;/i&gt;&lt;b&gt;Car &lt;/b&gt;이런식으로.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>UML</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/62</guid>
      <comments>https://infinitejava.tistory.com/62#entry62comment</comments>
      <pubDate>Sat, 15 Apr 2017 19:50:30 +0900</pubDate>
    </item>
    <item>
      <title>[UML] Class Diagram 기본</title>
      <link>https://infinitejava.tistory.com/61</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Georgia; font-size: 14pt;&quot;&gt;Class Diagram 기본&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;참고&amp;nbsp;&lt;a href=&quot;http://www.uml-diagrams.org/class-diagrams-overview.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.uml-diagrams.org/class-diagrams-overview.html&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&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: 820px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2543F63C58E8BDD604&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2543F63C58E8BDD604&quot; width=&quot;820&quot; height=&quot;595&quot; filename=&quot;class-diagram-example-hasp-licensing-domain.png&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;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: Georgia;&quot;&gt;1. 개요&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;1.1 UML 다이어그램 종류&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.nextree.co.kr/content/images/2016/09/--1-UML---.png&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px; color: rgb(166, 166, 166);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;Structure Diagram : 정적이고, 구조 표현을 위한 다이어그램&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt; color: rgb(0, 0, 0);&quot;&gt;Behavior Diagram : 동적이고, 시퀀셜한 표현을 위한 다이어그램&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스 다이어그램은 Structure Diagram에 속한다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;1.2 클래스 다이어그램 (Class Diagram)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;1.2.1 개요&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스 내부의 정적인 내용이나 클래스 사이의 관계를 표현할 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스 다이어그램은 의존 관계를 명확히 보게 해주며, 순환 의존이 발생하는 지점을 찾아내서 어떻게 이 순환 고리를 깨는 것이 가장 좋은지 결정할 수 있게 해준다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;UML은 목적에 따라 다르게 그려지고 사용된다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.nextree.co.kr/content/images/2016/09/--2--------------2.png&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;https://frepple.com/docs/2.4/_images/classdiagram_model.png&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Georgia; font-size: 10pt;&quot;&gt;.2.2 언제 사용할까&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;다른 사람들과의 의사소통 또는 설계 논의&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;전체 시스템의 구조 및 클래스의 의존성 파악&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;유지보수를 위한 설계의 back-end 문서&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;1.2.3 작성 시 주의사항&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;Access : 다이어그램을 보고 직관적으로 이해할 수 있도록 의미있고 명확한 이름을 부여한다.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;Simplicity : 불필요한 내용을 제외하고 모델을 간결하게 그려야 한다. (Getter, Setter, Constructor는 생략이 가능하다)&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;Cost : UML을 작성하는 것이 개발비용보다 더 들어가는 경우도 있으므로 비용을 고려하여 작성여부를 검토하는 것이 좋다.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: Georgia;&quot;&gt;2. Class Diagram Overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;Class&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: rgb(0, 0, 0); font-family: Georgia;&quot;&gt;Relationship&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt; font-family: Georgia;&quot;&gt;3. Class&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;3.1 Class Overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;는 객체지향에서 사용되는 클래스를 표현하는 모델링 언어이다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-compartments-analysis.png&quot; alt=&quot;Middle compartment holds attributes and the bottom one holds operations - analysis.&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-no-compartments.png&quot; alt=&quot;Class is shown as solid-outline rectangle containing the class name.&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;3.2 표기 방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;3.2.1 클래스 (Class)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스를 표현할 때에는 세 가지 부분으로 나누어 표현한다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 270px; width: 270px; height: 104px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2456E33958F1FC5002&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2456E33958F1FC5002&quot; width=&quot;270&quot; height=&quot;104&quot; filename=&quot;class-diagram-class-description.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 270px; height: 104px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;3.2.1 이름 (Name)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;Class name should be&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;centered&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;and in&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; line-height: 1.4; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; font-family: Georgia, Verdana, Arial, Helvetica, sans-serif; font-size: 14.4px;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;bold&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;face, with the first letter of class name capitalized (if the character set supports upper case).&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;클래스 이름은 다음과 같이 네모 박스 안에 기입한다. 다음의 규칙을 따라야 한다.&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;상자의 가운데에 위치해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;굵은 글씨체로 기입해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;첫번째 글자는 대문자로 기입해야 한다.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;3.2.2 멤버변수 (Attributes)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스의 멤버변수는 UML에서 Property라고 하는 개념의 한 종류이다. 각 멤버변수 하나 하나가 property 하나 하나이다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;property는 다음과 같은 순서로 작성한다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;[visiblity] property-name : property-type&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;visiblity는 접근제어자를 표현한다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;+ &amp;nbsp;: public&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;- &amp;nbsp;: private&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;# &amp;nbsp;: protected&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;~ &amp;nbsp;: package&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;property-name은 변수명이고, property-type은 변수타입이다. 다음 클래스 다이어그램과 소스코드를 비교하며 확인해보자&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 391px; height: 26px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 391px; height: 119px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-compartments-analysis.png&quot; alt=&quot;Middle compartment holds attributes and the bottom one holds operations - analysis.&quot;&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 119px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;

&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;package com.tistory.devdasom;

public class SearchService {
	private SearchEngine engine;
	private SearchRequest query;
	
	...
}
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Menlo, Monaco, Consolas, monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Menlo, Monaco, Consolas, monospace; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;3.2.3&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;메서드&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;(Operations)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;클래스의 메서드&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;는 UML에서 &lt;/span&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;Operation&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;이&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;라고 하는 개념의 한 종류이다. 각 메서드 하나 하나가 operation &lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;하나 하나이다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;operation&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;다음과 같은 순서로 작성한다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;[visiblity] operation-name (property1, property2, ...&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;) : return-type&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;operation-name은 메서드명이다. 메서드의 파라미터는 ( ) 괄호 안에 작성하면 되고 작성방법은 property와 동일하다. 리턴타입은 : 콜론 뒤에 작성한다. 다음 클래스 다이어그램과 소스코드를&amp;nbsp;비교하며 확인해보자.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt; class diagram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;source code&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img src=&quot;http://www.uml-diagrams.org/class-diagrams/class-operation-visibility.png&quot; alt=&quot;Visibility of the operation could be public, proected, package, or private.&quot;&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;
&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;package com.tistory.devdasom;

public class SQLStatement {
	public ResultSet executeQuery(String sql) { ... }
	protected Boolean isPoolable() { ... }
	int getQueryTimeout() { ... }
        void clearWarnings() { ... }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;4. Relationship&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;UML에서 Relationship은 클래스의 관계를 표현하기 위한 모델링 언어이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;4.1 Relationship 종류&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 41px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;이름&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 41px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;의미&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 41px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;표기법&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 41px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;설명&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 41px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 39px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Generalization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 39px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;상속관계&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 39px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/216D443658F202C510&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F216D443658F202C510&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-generalization.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 125px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 39px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;class A가 Super class&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;class B가 Sub class&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 39px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 73px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Dependency&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 73px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;지역변수로 사용하거나, 파라미터로 사용하는 등 멤버변수로 갖지 않고 사용하는 관계&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 73px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257AFB3B58F202ED27&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F257AFB3B58F202ED27&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-dependency.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 125px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 73px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;class A의 메서드가 class B의 메서드를 호출하거나, class B를 메서드의 인자로 받는 등 사용하는 경우&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 73px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Realization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;Dependency의 한 종류이고, 인터페이스를 구현하는 관계&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 117px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/224F0D3C58F2033038&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F224F0D3C58F2033038&quot; width=&quot;70&quot; height=&quot;117&quot; filename=&quot;class-diagram-realization.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 117px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;interface A가 있고, class B가 interface A를 구현한 경우&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 46px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Association&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 46px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;Dependency와 달리 멤버변수로 가지고 사용하는 관계&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 46px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 129px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2101653B58F203CC30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2101653B58F203CC30&quot; width=&quot;70&quot; height=&quot;129&quot; filename=&quot;class-diagram-association.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 129px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 46px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;class A가 class B를 멤버변수로 가지고 있고, 사용하는 경우&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 46px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Aggregation&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Association의 한 종류이며 전체와 부분의 관계를 가지는 클래스에 적용된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;멤버변수로 가지고 있지만, new를 직접하지 않는 관계&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2502653B58F2040E08&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2502653B58F2040E08&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-aggregation.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 125px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;c&lt;/span&gt;&lt;span style=&quot;font-family: Georgia; font-size: 10pt;&quot;&gt;lass A가 class B를 멤버변수로 가지고 있는 경우.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;class A가 전체개념이고, class B가 부분의 개념이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;하지만 class A가 직접 class B를 new 하지는 않는다.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 58px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Composition&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Association의 한 종류이며 전체와 부분의 관계를 가지는 클래스에 적용된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;멤버변수로 가지고 있고, Aggregation과 달리 직접 new를 하는 관계&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21631A3958F2043C05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21631A3958F2043C05&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-composition.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 125px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;class A가 class B를 멤버변수로 가지고 있는 경우.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;class A가 전체개념이고, class B가 부분의 개념이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Georgia; font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;class A가 직접 class B를 new 해서 생성한다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 76px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 156px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;Nested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;Inner Class의 관계&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 70px; width: 70px; height: 134px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/260B8D3758F204C72F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F260B8D3758F204C72F&quot; width=&quot;70&quot; height=&quot;134&quot; filename=&quot;class-diagram-nested.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 70px; height: 134px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 157px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;class A의 안에 class B가 이너클래스로 존재하는 경우&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 156px; height: 35px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;4.2 Generalization&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/216D443658F202C510&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F216D443658F202C510&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-generalization.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 125px;&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; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;상속관계의 클래스를 실선으로 연결하고 Super class 쪽에 빈 삼각형을 그린다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;4.3 Dependency&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;b&gt;4.3.1 Dependency&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257AFB3B58F202ED27&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F257AFB3B58F202ED27&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-dependency.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 125px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;Dependency는 의존관계이다. 단, 한 클래스가 다른 클래스를 멤버변수로 가지지 않고 지역변수, 파라미터 등 일시적으로 사용하는 경우에 성립되는 관계이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;다음 클래스 다이어그램과 소스코드를 비교해보자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;Sale 클래스가 ProductDescription 클래스를 사용하고 있지만 멤버변수로 가지고 있지는 않다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 400px; width: 400px; height: 209px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2415923B58F2067F34&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2415923B58F2067F34&quot; width=&quot;400&quot; height=&quot;209&quot; filename=&quot;class-diagram-dependency2.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 400px; height: 209px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;

&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;public class Sale {
    ...

    void updatePriceFor(ProductDescription description) {
        description.xx();
        ...
    }
}

&lt;/pre&gt;

&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;b&gt;4.3.2 Realization&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 117px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/224F0D3C58F2033038&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F224F0D3C58F2033038&quot; width=&quot;70&quot; height=&quot;117&quot; filename=&quot;class-diagram-realization.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 117px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;Realization은 인터페이스와 구현 관계이다. 두 클래스를 점선으로 연결하고&amp;nbsp;인터페이스쪽에 화살표를 그린다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;다음 클래스 다이어그램과 소스코드를 비교해보자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 391px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 300px; width: 300px; height: 242px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2162EA3958F2074B22&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2162EA3958F2074B22&quot; width=&quot;300&quot; height=&quot;242&quot; filename=&quot;class-diagram-realization2.gif&quot; filemime=&quot;image/gif&quot; style=&quot;width: 300px; height: 242px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 391px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;
&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;class Person {
    String firstName;
    String lastName;
}

class Professor extends Person {
    Dollars salary;
}

class Student extends Student {
    String major;
}


&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;4.4 Association&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4.4.1 Association&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 129px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2101653B58F203CC30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2101653B58F203CC30&quot; width=&quot;70&quot; height=&quot;129&quot; filename=&quot;class-diagram-association.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 129px;&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; font-family: Georgia;&quot;&gt;Association은 한 클래스가 다른 클래스를 멤버변수로 가지는 경우이다. 두 클래스를 실선으로 연결하고 사용 당하는 클래스쪽에 화살표를 그린다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;다음 클래스 다이어그램과 소스코드를 비교해보자.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;이 클래스 다이어그램은 화살표 근처에 -address 라는 표현이 되어 있다. 이것은 Person이 Address라는 클래스를 address라는 변수명으로 가지고 있다는 것을 의미한다. - 표시는 private으로 가지고 있다는 것을 의미한다. 그래서 class diagram에서의 Person에는 address라는 필드가 없지만 코드를 구현할 때에는 -address를 필드로 구현해야 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 407px; width: 407px; height: 145px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/223C9D4458F208E50D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F223C9D4458F208E50D&quot; width=&quot;407&quot; height=&quot;145&quot; filename=&quot;class-diagram-association-2.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 407px; height: 145px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;
&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;class Person {
    private String name;
    private Address address;
    
    public void doSomething() { ... }
}

class Address {
    ...
}
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;여기서 중요한 것은, 화살표가 없거나 한쪽만 있거나 양쪽 다 있는 경우 등 다양하게 있다. 화살표가 아예 없다는 것은 Unspecifiy로 구현하는 사람이 적절하게 구현하면 되는 것이다. 한쪽만 있다는 것은 그 한쪽은 확실하게 구현해야 한다는 것이고 양쪽 다 있는 경우는 서로를 멤버변수로 가지고 있다는 것을 의미한다. (심화편에서 자세하게 설명할 예정입니다!)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4.4.2 Aggregation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2502653B58F2040E08&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2502653B58F2040E08&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-aggregation.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 125px;&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; font-family: Georgia;&quot;&gt;Aggregation은 한 클래스가 전체의 역할을 하고 다른 클래스가 부분의 역할을 하는 전체-부분 관계일 때 사용되는 표현이다. Composition 또한 전체-부분 관계에서 사용되는 표현이며 둘의 차이는 전체가 부분 클래스를 new 하는지 여부이다. Aggregation은 전체 클래스가 부분 클래스를 new하지 않고 외부에서 주입받는다. 반면 Composition은 전체가 부분 클래스를 직접 new 하여 사용한다. 이 차이를 기억하며 다음 클래스 다이어그램과 코드를 비교해보자.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;다음 코드 중 Car 클래스에는 Wheel이나 Engine을 new하는 코드가 없는 것을 볼 수 있을 것이다. 이는 부분 클래스(Engine, Wheel)을 외부에서 생성한 뒤 Car 클래스에 주입해준다는 의미이고, 결국 이들은 서로 다른 생명 주기를 가지게 된다. 이것이 Composition과의 차이이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 411px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2648114058F20A4233&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2648114058F20A4233&quot; width=&quot;411&quot; height=&quot;264&quot; filename=&quot;class-diagram-aggregation-2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:392;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;
&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;class Car {
    private Engine m_Engine;
    private Wheel[] m_Wheel;

    public void setEngine(Engine m_Engine) {
        this.m_Engine = m_Engine;
    }

    public void setWheel(Wheel[] m_Wheel) {
        this.m_Wheel = m_Wheel;
    }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 14pt; font-family: Georgia;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4.4.3 Composition&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 70px; text-align: center; width: 70px; height: 125px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21631A3958F2043C05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21631A3958F2043C05&quot; width=&quot;70&quot; height=&quot;125&quot; filename=&quot;class-diagram-composition.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 70px; height: 125px;&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; font-family: Georgia;&quot;&gt;Composition은 Aggregation과 거의 동일하고 다른점은 사용하는 클래스에서 직접 new를 해준다는 점이다. 정확히 말하자면 부분 클래스의 생명주기를 관리하는 경우이다. 다음 클래스 다이어그램과 소스코드를 비교해보자. Aggregation과 비교하여 보자.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;Telephone의 생성자에서 new를 통해 각 클래스를 생성하는 것을 볼 수 있다. Aggregation관계에서는 new가 없지만, Composition 관계에서는 전체클래스가 부분클래스의 생명주기를 관리하는 것이다. 이 차이점을 확실하게 이해하자!&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Georgia&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;그리고, 정확하게는 Composition관계에서는 전체 클래스가 부분 클래스의 &lt;b&gt;생명주기를 관장&lt;/b&gt;하는 것이지 new를 할때만 Composition 관계가 아니라는 것을 이해해야 한다. 그렇다면 new를 하는 위치가 꼭 생성자가 아니어도 상관없다는 것도 이해할 수 있어야 한다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;class diagram&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204); background-color: rgb(234, 234, 234);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;source code&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 392px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&amp;nbsp;&lt;/span&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: 400px; width: 400px; height: 274px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21720D3958F20CF702&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21720D3958F20CF702&quot; width=&quot;400&quot; height=&quot;274&quot; filename=&quot;class-diagram-composition-2.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 400px; height: 274px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 392px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;
&lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;class Telephone {
    private Button m_Button;
    private Headset m_Headset;

    public Telephone () {
        m_Button = new Button();
        m_Headset = new Headset();
    }
}
&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt; font-family: Georgia;&quot;&gt;&lt;b&gt;5. 연습&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;다음 클래스 다이어그램은 도서관 관리 시스템이다. 이 다이어그램을&amp;nbsp;코드로 구현해보고, 구현한 코드를 UML 툴로 표현하였을 때 동일한 결과가 나오는지 확인해보자. (궁금한 것은 다솜이에게 질문주세요!ㅋㅋ)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;(*이나 0..* 등 앞서 설명하지 않은 내용은 건너뛰고 구현해도 된다!)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&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: 820px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/252EBB4458F20E2E14&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F252EBB4458F20E2E14&quot; width=&quot;820&quot; height=&quot;595&quot; filename=&quot;class-diagram-example-hasp-licensing-domain.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: Georgia;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;코드 하이라이터 정보&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;pre class=&quot;prettyprint linenums lang-java&quot; style=&quot;font-size: 10pt; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(204, 61, 61);&quot;&gt;여기에 코드&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/pre&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>UML</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/61</guid>
      <comments>https://infinitejava.tistory.com/61#entry61comment</comments>
      <pubDate>Sat, 8 Apr 2017 16:27:41 +0900</pubDate>
    </item>
    <item>
      <title>Vim 단축키 정리</title>
      <link>https://infinitejava.tistory.com/57</link>
      <description>&lt;span style=&quot;font-size: 10pt;&quot;&gt;지금까지 배운거 정리&lt;/span&gt;&lt;div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;(무작정&amp;nbsp;외우기보다&amp;nbsp;코딩하면서 필요해 의해 찾아보며 실행해보는게 좋다는 개인적인 의견ㅋ)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;table class=&quot;txc-table&quot; width=&quot;507&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 507px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 26px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;단&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;b&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;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 364px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;설명&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;k&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;위로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;j&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;아래로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;h&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;왼쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;l&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;오른쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;w&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;단어의 첫음절&amp;nbsp;오른쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;e&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;단어의 끝음절&amp;nbsp;오른쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;b&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;단어나 기호&amp;nbsp;첫음절&amp;nbsp;왼쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;B (shift + b)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;단어와 기호를 합친 첫음절 왼쪽으로 이동&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;(공백 다음위치로 이동)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;I (shift + i)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;문장 맨앞으로 이동 후 입력모드&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;A (shift + a)&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;문장 맨뒤로 이동 후 입력모드&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;u&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;실행취소&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;Ctrl + r&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;다시 실행&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;gg&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;전체코드의 맨첫줄로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&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;G (shift&amp;nbsp;+ g)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;전체코드의 맨끝줄로 이동&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;&amp;nbsp;x&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; 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: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;dd&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;잘라내기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;D (shift + d)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;현재 커서를 포함하여 끝라인까지&amp;nbsp;삭제&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;J (shift + j)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;:&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;명령어 모드로 전환&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;esc&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 26px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;일반&amp;nbsp;모드로 전환&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;숫자선택&amp;nbsp;후&amp;nbsp;Y&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;p&lt;/span&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;숫자선택&amp;nbsp;후&amp;nbsp;p&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;td style=&quot;width: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;검색&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;n&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: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&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;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 142px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;N&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: 364px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot; rowspan=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;검색된 결과 내에서 이전 항목으로 이동&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;Vim 연습이 가능한 게임사이트(Level3 이후는 유료)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;a href=&quot;https://vim-adventures.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;https://vim-adventures.com/&lt;/span&gt;&lt;/a&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;Vim 단축키 정리된 사이트(잘 정리된거 같아 참고용)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;a href=&quot;https://aweekj.github.io/2016-09-11/vim-cheatsheet/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://aweekj.github.io/2016-09-11/vim-cheatsheet/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://seungdols.tistory.com/537&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://seungdols.tistory.com/537&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;https://kldp.org/node/102947&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;https://kldp.org/node/102947&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발 도구</category>
      <author>CaffeLatte</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/57</guid>
      <comments>https://infinitejava.tistory.com/57#entry57comment</comments>
      <pubDate>Tue, 7 Mar 2017 00:22:10 +0900</pubDate>
    </item>
    <item>
      <title>JVM 제이브이앰</title>
      <link>https://infinitejava.tistory.com/55</link>
      <description>&lt;p&gt;http://hipercube.tistory.com/entry/JAVA-JVM%EA%B3%BC-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0%EC%84%B1%EB%8A%A5%EA%B0%9C%EC%84%A0%EC%9D%84-%EC%9C%84%ED%95%9C-GC%EC%9D%98-%ED%99%9C%EC%9A%A9&lt;/p&gt;</description>
      <category>and so on</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/55</guid>
      <comments>https://infinitejava.tistory.com/55#entry55comment</comments>
      <pubDate>Sat, 25 Feb 2017 12:13:56 +0900</pubDate>
    </item>
    <item>
      <title>우분투 USB로 설치하기</title>
      <link>https://infinitejava.tistory.com/54</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(아래는 추가 설명)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다운로드 링크 들어가서 우분투랑 refus usb installer 두 개를 다운받고 스샷대로 진행한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;부팅 순서에서 usb를 맨 위에 놓고 켜면 리눅스 화면이 뜬다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;install 말고 live인가(?) 설치없이 리눅스로 바로 부팅할 수 있게 선택하는게 있는데 그걸로 리눅스를 부팅한다.&lt;/p&gt;</description>
      <category>and so on</category>
      <author>CaffeLatte</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/54</guid>
      <comments>https://infinitejava.tistory.com/54#entry54comment</comments>
      <pubDate>Thu, 23 Feb 2017 21:47:08 +0900</pubDate>
    </item>
    <item>
      <title>옵저버 패턴 Observer Pattern</title>
      <link>https://infinitejava.tistory.com/53</link>
      <description>&lt;p&gt;@참고 사이트&lt;/p&gt;&lt;p&gt;-&lt;a href=&quot;http://hyeonstorage.tistory.com/165&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://hyeonstorage.tistory.com/165&lt;/a&gt;&lt;/p&gt;&lt;p&gt;-&lt;a href=&quot;http://blog.lifeis.gift/175&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://blog.lifeis.gift/175&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@옵저버 패턴 예제&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 자동차를 탈 때&lt;/p&gt;&lt;p&gt;-연료가 소진될 때까지의 주행가능거리를 출력하는 클래스&lt;/p&gt;&lt;p&gt;-연료량이 부족하면 경고 메세지를 보내는 클래스&lt;/p&gt;&lt;p&gt;-연료량이 부족하면 자동으로 근처 주유소를 표시하는 클래스&lt;/p&gt;&lt;p&gt;--&amp;gt;이 세 클래스는 차량의 연료량의 변화를 알아야 한다.(통보받아야 한다)&lt;/p&gt;&lt;p&gt;이 때 옵저버 패턴을 이용해서 Subject Class(연료량 데이터를 가진 클래스)가 연료량이 변화할 때마다 세 클래스에 연료량을 통보해주면 된다.&lt;/p&gt;&lt;p&gt;-세 클래스가 Observer가 된다. Observer끼리는 같은 형태의&amp;nbsp;클래스일 필요가 없다. Observer의 인터페이스만 구현되어 있으면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 센서값 출력할 때&lt;/p&gt;&lt;p&gt;-다양한 센서에서 들어오는 데이터를 여러 출력기기에 출력할 때를 생각해보자.&lt;/p&gt;&lt;p&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: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/273F583A5870942F05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F273F583A5870942F05&quot; width=&quot;500&quot; height=&quot;269&quot; filename=&quot;observer_pattern.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;3. 게임에서 파티가 함께 몬스터를 잡을 때&lt;/p&gt;&lt;p&gt;-몬스터가 Subject가 되고, 파티원들은 몬스터의 상태변화를 모두 알고 있어야 한다.&lt;/p&gt;&lt;p&gt;-마법사가 몬스터를 공격해서 몬스터의 상태가 변화되면, 이 변화를 사냥꾼, 전사, 사제 등의 파티원들이 모두 알아야 한다.&lt;/p&gt;&lt;p&gt;-이런 상황에서 옵저버 패턴이 유용할 것이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4.&lt;/p&gt;&lt;p&gt;참고 사이트-&lt;a href=&quot;https://www.sitepoint.com/understanding-the-observer-pattern/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://www.sitepoint.com/understanding-the-observer-pattern/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;-Ignatius Teo라는 사람의 경험.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(33, 33, 33); font-family: inherit; font-size: 12pt; white-space: pre-wrap;&quot;&gt;최근에 제 3 자 포럼 소프트웨어를 기존 웹 포털에 통합하라는 요청을 받았습니다. 문제는 두 응용 프로그램 모두 자체적 인 별도의 인증 메커니즘이 있다는 것입니다. 사용자 관점에서 포럼에 별도로 로그인 할 필요없이 사용자가 포털에 로그인하는 것이 이상적입니다. 그리고이 경우 관리 코드가 불필요하게 수정되기를 원하지 않았습니다. 이후의 업데이트와 버그 수정을 벤더에서 병합하고 수정 사항을 덮어 쓰지 않도록주의해야합니다. 이것은 옵서버 패턴이 나에게 유용했던 곳이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(33, 33, 33); font-family: inherit; font-size: 12pt; white-space: pre-wrap;&quot;&gt;--&amp;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&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@옵저버 패턴의 특징&lt;/p&gt;&lt;p&gt;-인터페이스를 사용하여 느슨한 결합/낮은 의존성을 추구하는 것이 좋다.&lt;/p&gt;&lt;p&gt;-데이터가 변경되었을 때 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용하다.&lt;/p&gt;&lt;p&gt;-Push방식과 Pull방식이 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>디자인 패턴</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/53</guid>
      <comments>https://infinitejava.tistory.com/53#entry53comment</comments>
      <pubDate>Sat, 7 Jan 2017 16:09:56 +0900</pubDate>
    </item>
    <item>
      <title>프로토타입 패턴</title>
      <link>https://infinitejava.tistory.com/52</link>
      <description>&lt;p&gt;@참고링크&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/art-design-patterns-android-4-prototype-pattern-ahmed-iraki&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://www.linkedin.com/pulse/art-design-patterns-android-4-prototype-pattern-ahmed-iraki&lt;/a&gt;&lt;/p&gt;</description>
      <category>디자인 패턴</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/52</guid>
      <comments>https://infinitejava.tistory.com/52#entry52comment</comments>
      <pubDate>Sat, 24 Dec 2016 11:56:14 +0900</pubDate>
    </item>
    <item>
      <title>싱글턴 패턴</title>
      <link>https://infinitejava.tistory.com/51</link>
      <description>&lt;p&gt;@저널데브&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@저널데브 해석한 곳&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.seotory.com/post/2016/03/java-singleton-pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://blog.seotory.com/post/2016/03/java-singleton-pattern&lt;/a&gt;&lt;br /&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;br /&gt;&lt;/p&gt;&lt;p&gt;@싱글턴을 사용하며 생긴 문제가 멀티스레드 환경의 동기화 문제!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;@그렇다면 싱글턴 패턴은 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;언제 사용해야 할까?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;...?!!!!!!!????&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;-&lt;/span&gt;&lt;font color=&quot;#ff0000&quot;&gt;A singleton should be used when managing access to a resource which is shared by the entire application, and it would be destructive to potentially have multiple instances of the same class. Making sure that access to shared resources thread safe is one very good example of where this kind of pattern can be vital.&lt;/font&gt;&lt;/p&gt;&lt;pre class=&quot;tw-data-text tw-ta tw-text-small&quot; data-placeholder=&quot;번역&quot; id=&quot;tw-target-text&quot; data-fulltext=&quot;&quot; dir=&quot;ltr&quot; style=&quot;unicode-bidi: isolate; background-color: rgb(255, 255, 255); border: none; padding: 0px 0.14em 0px 0px; position: relative; margin-top: 0px; margin-bottom: 0px; resize: none; font-family: inherit; overflow: hidden; width: 276px; white-space: pre-wrap; word-wrap: break-word; color: rgb(33, 33, 33); height: 192px; font-size: 16px !important; line-height: 24px !important;&quot;&gt;&lt;p&gt;&lt;span lang=&quot;ko&quot;&gt;전체 응용 프로그램에서 공유하는 리소스에 대한 액세스를 관리 할 때는 싱글 톤을 사용해야하며 잠재적으로 동일한 클래스의 인스턴스가 여러 개있는 경우 파괴적입니다. 이런 종류의 패턴이 중요 할 수있는 곳 중 하나 인 공유 리소스에 대한 스레드 안전 액세스가 아주 좋은 예임을 확인하십시오.&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@싱글턴 패턴의 특징&lt;/p&gt;&lt;p&gt;1. 생성자가 private&lt;/p&gt;&lt;p&gt;2. 인스턴스를 반환하는 메서드&lt;/p&gt;&lt;p&gt;3. ??&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@Thread Safe Singleton&lt;/p&gt;&lt;p&gt;이 방식은 메서드를 동기화 한 방식이다. 그런데 싱글턴패턴은 객체가 생성될 때만 동기화를 하면 되는데 이 메서드에 접근할 때마다 동기화를 하게 되어 많은 메모리를 잡아먹는다. 그래서 개선한 것이 메서드 안에서 동기화를 해 주는 것이다. 이것이 Double Checked Locking 방법이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기본 ThreadSafeSingleton 방식&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 16px; white-space: pre-wrap; padding: 10px; border: 1px solid rgb(136, 136, 136); margin: 5px 5px 15px; max-height: 900px; overflow: auto; background-color: rgb(248, 248, 248); color: rgb(102, 102, 102);&quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;package&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; com&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;journaldev&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;singleton&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;

&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;

    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; instance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    
    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(){}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    
    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;synchronized&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; getInstance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;instance &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
            instance &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;();&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; instance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Double Checked Locking 방식&lt;/p&gt;&lt;pre class=&quot;prettyprint prettyprinted&quot; style=&quot;box-sizing: border-box; font-family: monospace, serif; font-size: 16px; white-space: pre-wrap; padding: 10px; border: 1px solid rgb(136, 136, 136); margin: 5px 5px 15px; max-height: 900px; overflow: auto; background-color: rgb(248, 248, 248); color: rgb(102, 102, 102);&quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; getInstanceUsingDoubleLocking&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(){&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;instance &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;synchronized&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;instance &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;){&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
                instance &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: border-box; color: rgb(102, 0, 102);&quot;&gt;ThreadSafeSingleton&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;();&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 136);&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt; instance&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: border-box; color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: border-box; color: rgb(102, 102, 0);&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;--&amp;gt; 찾아보니, 이전에 빌더패턴에서 보았던 SessionBuilder에도 이 방식을 사용하고 있었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;b&gt;싱글턴 패턴이 사용된 코드&amp;nbsp;리뷰&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@JDK의 java.lang의 Runtime 클래스&lt;/p&gt;&lt;p&gt;getRuntime()에서 인스턴스를 얻어온다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;별거 없다...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;@JDK의 awt의 Desktop 클래스&lt;/p&gt;&lt;p&gt;-getDesktop()으로 인스턴스를 가져온다.&lt;/p&gt;&lt;p&gt;-또 얘는 메서드 동기화를 했다.&lt;/p&gt;&lt;p&gt;-얘는 인스턴스가 사용되는 시점에 객체를 생성하는 LazyInitialization 방법이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>디자인 패턴</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/51</guid>
      <comments>https://infinitejava.tistory.com/51#entry51comment</comments>
      <pubDate>Sat, 10 Dec 2016 14:21:30 +0900</pubDate>
    </item>
    <item>
      <title>자바 디자인 패턴 참고 자료 및 정리</title>
      <link>https://infinitejava.tistory.com/42</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(242, 150, 97);&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;@참고 자료&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;1. 디자인 패턴 목록&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://en.wikipedia.org/wiki/Software_design_pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;W&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Software_design_pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;ikipedi&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Software_design_pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;a&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Software_design_pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Software_design_pattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&amp;nbsp;&amp;lt;software design patterns&amp;gt; (영문)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; -&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4_(%EC%B1%85)&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;위키 백과 &amp;lt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4_(%EC%B1%85)&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;디자인 패턴&amp;gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;2. 도서&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788968480911&amp;amp;orderClick=LAQ&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Java 객체&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788968480911&amp;amp;orderClick=LAQ&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;지향 디자인 패턴&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788979143409&amp;amp;orderClick=LEB&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Head First 디자인 패턴&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788931436914&amp;amp;orderClick=LAH&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Java 언어로 배우는 디자인 패턴&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9788965400141&amp;amp;orderClick=LAH&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;열혈강의 자바 디자인 패턴&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;amp;mallGb=KOR&amp;amp;barcode=9791195444953&amp;amp;orderClick=LEB&amp;amp;Kc=&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;GOF의 디자인 패턴&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;3. 학습&amp;nbsp;사이트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/?action=curriculum&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Inflearn 자바 디자인 패턴의 이해&lt;/a&gt;&lt;a href=&quot;https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/?action=curriculum&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&amp;nbsp;&lt;/a&gt;&lt;a href=&quot;https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/?action=curriculum&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;(동영상)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://iilii.egloos.com/tag/%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;삼실청년 블로그&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;https://www.tutorialspoint.com/design_pattern/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;t&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;https://www.tutorialspoint.com/design_pattern/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;utorialspoint (영문)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://sourcemaking.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;S&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;https://sourcemaking.com/design_patterns&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://sourcemaking.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;ourceMaking (영문)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://www.journaldev.com/1827/java-design-patterns-example-tutorial&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Jo&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;http://www.journaldev.com/1827/java-design-patterns-example-tutorial&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;urnalDev (영문)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;https://github.com/iluwatar/java-design-patterns&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;iluwatar's github (영문/GitHub)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;https://www.javacodegeeks.com/2015/09/java-design-patterns.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Java Code Geeks (영문)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;4. 기타&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;/span&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns-in-javas-core-libraries&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;자바 코어 라이브러리에서&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;a href=&quot;http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns-in-javas-core-libraries&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;자바 디자인 패턴이 구현된 사례&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. 고민해볼 것&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 필드값을 초기화 해주는 것과 초기화해주지 않는 것에 성능차이가 있을까?&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;color: rgb(242, 150, 97); font-size: 18.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;@정리&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(47, 157, 39);&quot;&gt;&lt;b&gt;@Facade 패턴&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;1. 소개&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 1) 설명: 특정 서비스를 구성하는&amp;nbsp;&lt;span style=&quot;color: rgb(152, 0, 0);&quot;&gt;다수의 복잡한&amp;nbsp;AP&lt;span style=&quot;color: rgb(152, 0, 0);&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(152, 0, 0);&quot;&gt;들을&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 하나의 간단한 API로 포장(wrapping)하여&amp;nbsp;제공해주는 객체(퍼샤드 객체)를 생성하고&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(152, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 클라이언트 코드가&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;이 객체를 통해&amp;nbsp;특정 서비스를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(152, 0, 0);&quot;&gt;쉽게 사용&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;할 수 있게 하는&amp;nbsp;패턴 &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 2) 조건: &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;- 시스템의 API가 많아지고 복잡해질 때, 퍼샤드 패턴의 도입을 고려한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;- 기존&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;시스템의 API는&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;변경하지 말고 그대로 유지한 채 별도의 퍼샤드 객체를 생성한다.&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;- 기존&amp;nbsp;시스템의 API는 퍼샤드 객체를 알지 못하며, 퍼샤드 객체에 대한&amp;nbsp;참조를 가지지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 3) 다이어그램:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 4) 주요 학습 자료:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;- &lt;a href=&quot;https://www.javacodegeeks.com/2015/09/facade-design-pattern.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;CodeGeeks tutorial: Facade Pattern&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;- &lt;a href=&quot;http://www.journaldev.com/1557/facade-design-pattern-in-java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;JournalDev tutorial&lt;/a&gt;&lt;a href=&quot;http://www.journaldev.com/1557/facade-design-pattern-in-java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;: Facade Pattern&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;2. 구현 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://github.com/deokju/java-designpattern&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;덕주가 만든 샘플 코드&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://mvnrepository.com/artifact/javax.faces/jsf-api/2.1&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;javax.faces.context.ExternalContext&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://github.com/apache/tomcat85/blob/trunk/java/org/apache/catalina/connector/RequestFacade.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;org.apache.catalina.connector.RequestFacade&lt;/a&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: 14pt; color: rgb(47, 157, 39);&quot;&gt;&lt;b&gt;@Builder&amp;nbsp;패턴&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;1. 소개&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 1)&amp;nbsp;설명: 생성의 책임을 별도의 클래스에 넘기도록 구현하는 방법(Builder클래스에서 Product를 생성한 뒤 반환하는 패턴)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;열린생각 : 객체의 유효성 체크는 객체자체에서 해야 할까? 아니면 빌더객체에서 해야 할까?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;빌더객체의 기본구성은 다음과 같다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1. 빌더 객체 생성&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BookBuilder.getInstance() { &amp;nbsp;return new BookBuilder(); &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;객체 생성에 필요한 값 세팅&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BookBuilder.setParameter(...) { &amp;nbsp; ...; &amp;nbsp; return this; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3. 객체를 생성하여 반환&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BookBuilder.build() { &amp;nbsp; return new Book(...) &amp;nbsp; }&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&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: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*시간이 없어 정리하다 마무리를 못했습니다ㅠㅠ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 제 블로그에 조금 더럽게 정리되었지만 정리된 내용이 있으니 참고하시면 좋을 것 같아요^^!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://devdasom.tistory.com/103&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;다솜 블로그 - 빌더패턴 정리&lt;/a&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&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; 2)&amp;nbsp;다이어그램:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267B0E41584287C233&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267B0E41584287C233&quot; width=&quot;500&quot; height=&quot;171&quot; filename=&quot;500px-Builder_UML_class_diagram.svg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; 3)&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;주요 학습&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;자료:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;- &lt;a href=&quot;http://jdm.kr/blog/217&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;JDM's 블로그: 빌더 패턴&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;- &lt;a href=&quot;http://www.informit.com/articles/article.aspx?p=1216151&amp;amp;seqNum=2&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;이펙티브 자바 2판: 규칙 2&amp;lt;생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라&amp;gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;- &lt;a href=&quot;http://softwareengineering.stackexchange.com/questions/241309/builder-pattern-when-to-fail&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;빌더 패턴에서 객체 유효성 검사는 어떻게 해야 하는가&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;- &lt;a href=&quot;http://stackoverflow.com/search?q=%22builder+pattern%22+java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;스택오버플로우 빌더패턴 관련 질문들&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;2. 구현 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - &lt;a href=&quot;https://github.com/fyhertz/libstreaming/blob/master/src/net/majorkernelpanic/streaming/SessionBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;안드로이드 실시간 스트리밍 라이브러리 중 세션빌더&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp; -&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt; white-space: pre;&quot;&gt;&lt;a href=&quot;https://github.com/google/guava/blob/master/guava/src/com/google/common/graph/GraphBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;com.google.common.graph.GraphBuilder&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt; white-space: pre;&quot;&gt;  - &lt;a href=&quot;https://github.com/openjdk-mirror/jdk/blob/jdk8u/jdk8u/master/src/share/classes/java/lang/StringBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;java.lang.StringBuilder&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt; white-space: pre;&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt; white-space: pre;&quot;&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-framework/blob/4.3.x/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;org.springframework.beans.factory.support.BeanDefinitionBuilder&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&amp;nbsp; &lt;/span&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-size: 11pt; white-space: pre;&quot;&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-framework/blob/4.3.x/spring-messaging/src/main/java/org/springframework/messaging/support/MessageBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;org.springframework.messaging.support.MessageBuilder&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&amp;nbsp; &lt;/span&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-size: 11pt; white-space: pre;&quot;&gt;&lt;a href=&quot;https://github.com/mybatis/mybatis-3/blob/3.3.x/src/main/java/org/apache/ibatis/jdbc/SqlBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;org.apache.ibatis.jdbc.SqlBuilder&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; &lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt; white-space: pre;&quot;&gt;&lt;a href=&quot;https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/common/cache/CacheBuilder.java&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;org.elasticsearch.common.cache.CacheBuilder&lt;/a&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: 11pt;&quot;&gt;&lt;b&gt;3. 다양한 구현 방법들&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;u&gt;빌더 방식1&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder.build(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, ...){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return new Booke(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, ...);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&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: 11pt;&quot;&gt;&lt;u&gt;빌더 방식2&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder.build(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return new Book(this);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&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: 11pt;&quot;&gt;&lt;u&gt;빌더 방식3&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder.build(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; Book book = new Book();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; //로직&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; switch(type){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1: book.setAuthor(&quot;a&quot;); break;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2: book.setAuthor(&quot;b&quot;); break;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; ....&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; return book;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;u&gt;빌더 방식4&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static BookBuilder directed(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ... &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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static BookBuilder undirected(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return ...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;build(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new 객체;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&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: 11pt;&quot;&gt;&lt;u&gt;빌더 방식5&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;static BookBuilder rootBookBuilder(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new BookBuilder();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; new Book();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private BookBuilder{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&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&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;u&gt;빌더 방식6&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;// 객체 생성 방식이 두개&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;BookBuilder{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; build(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Book();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // factory method&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; createBook(){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&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: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Book();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&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: 14pt; color: rgb(47, 157, 39);&quot;&gt;&lt;b&gt;@Singleton&amp;nbsp;패턴&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;1. 소개&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - 설명:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; - 다이어그램:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;2. 구현 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; -&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>디자인 패턴</category>
      <author>알 수 없는 사용자</author>
      <guid isPermaLink="true">https://infinitejava.tistory.com/42</guid>
      <comments>https://infinitejava.tistory.com/42#entry42comment</comments>
      <pubDate>Sun, 20 Nov 2016 16:59:29 +0900</pubDate>
    </item>
  </channel>
</rss>