<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>랑쓰노트</title>
    <link>https://rang22.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 26 May 2026 09:30:08 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>사랑짱</managingEditor>
    <image>
      <title>랑쓰노트</title>
      <url>https://tistory1.daumcdn.net/tistory/4740074/attach/421f2542a31f420e8f85873f7bfd8971</url>
      <link>https://rang22.tistory.com</link>
    </image>
    <item>
      <title>[Vue] Vue 라우터</title>
      <link>https://rang22.tistory.com/136</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5pYlE/btrfs57lISN/ilpDXJJKGSQYZsA5o3ypBk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5pYlE/btrfs57lISN/ilpDXJJKGSQYZsA5o3ypBk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5pYlE/btrfs57lISN/ilpDXJJKGSQYZsA5o3ypBk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5pYlE%2Fbtrfs57lISN%2FilpDXJJKGSQYZsA5o3ypBk%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1633402473380&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Router | Cracking Vue.js&quot; data-og-description=&quot;뷰 라우터 뷰 라우터는 뷰 라이브러리를 이용하여 싱글 페이지 애플리케이션을 구현할 때 사용하는 라이브러리입니다. 뷰 라우터 설치 프로젝트에 뷰 라우터를 설치하는 방법은 CDN 방식과 NPM &quot; data-og-host=&quot;joshua1988.github.io&quot; data-og-source-url=&quot;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&quot; data-og-url=&quot;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://joshua1988.github.io/vue-camp/vue/router.html#%E1%84%87%E1%85%B2-%E1%84%85%E1%85%A1%E1%84%8B%E1%85%AE%E1%84%90%E1%85%A5-%E1%84%89%E1%85%A5%E1%86%AF%E1%84%8E%E1%85%B5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Router | Cracking Vue.js&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;뷰 라우터 뷰 라우터는 뷰 라이브러리를 이용하여 싱글 페이지 애플리케이션을 구현할 때 사용하는 라이브러리입니다. 뷰 라우터 설치 프로젝트에 뷰 라우터를 설치하는 방법은 CDN 방식과 NPM&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;joshua1988.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 뷰 라우터&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 페이지를 이동할 때 사용하는 공식 라이브러리이자 기능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 뷰에서 싱글 페이지 어플리케이션, &lt;b&gt;페이지 간 이동하는 기능&lt;/b&gt;을 구현할 때 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 뷰 라우터 설치&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 뷰 스크립트 &amp;rarr; 뷰 라우터 순으로 import&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fa508c;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #fae8b6;&quot;&gt;&lt;a href=&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&gt;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fa508c;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #fa508c;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #fae8b6;&quot;&gt;&lt;a href=&quot;https://unpkg.com/vue-router/dist/vue-router.js&quot;&gt;https://unpkg.com/vue-router/dist/vue-router.js&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: #e6a1ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #fa508c;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #fff0f5;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;412&quot; width=&quot;650&quot; height=&quot;330&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XG4L9/btrgFR8R8hh/ZEbVy1SLie7DVlKK4eHnVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XG4L9/btrgFR8R8hh/ZEbVy1SLie7DVlKK4eHnVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XG4L9/btrgFR8R8hh/ZEbVy1SLie7DVlKK4eHnVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXG4L9%2FbtrgFR8R8hh%2FZEbVy1SLie7DVlKK4eHnVK%2Fimg.png&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;412&quot; width=&quot;650&quot; height=&quot;330&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 뷰 라우터 등록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step1&lt;/b&gt;. router 인스턴스 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step2&lt;/b&gt;. Vue 인스턴스 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step3&lt;/b&gt;. Vue 인스턴스의 router 속성에 router&amp;nbsp;인스턴스 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 결과적으로 뷰라우터의 속성을 주입하는 것과 동일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;398&quot; width=&quot;650&quot; height=&quot;334&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bex1lX/btrgGrPcpEl/QMLtUoQb7RLOtjAxgJ1cZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bex1lX/btrgGrPcpEl/QMLtUoQb7RLOtjAxgJ1cZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bex1lX/btrgGrPcpEl/QMLtUoQb7RLOtjAxgJ1cZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbex1lX%2FbtrgGrPcpEl%2FQMLtUoQb7RLOtjAxgJ1cZ1%2Fimg.png&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;398&quot; width=&quot;650&quot; height=&quot;334&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 뷰&lt;span&gt; 라우터 옵션&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;※&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;mode&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: url의 해쉬 값을 없애는 속성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;※ routes&lt;/b&gt; : 페이지의 라우팅 정보(어떤 url로 이동했을 때 어떤 컴포넌트와 연결되는지)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- path : 페이지의 url&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- component : 해당 &lt;span style=&quot;color: #000000;&quot;&gt;url에서 표시될&lt;/span&gt; 하나의 컴포넌트를 연결하는 속성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;523&quot; width=&quot;650&quot; height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBFYtk/btrgRMSenIi/wC7t0WEBErf9Yeb8KkRNiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBFYtk/btrgRMSenIi/wC7t0WEBErf9Yeb8KkRNiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBFYtk/btrgRMSenIi/wC7t0WEBErf9Yeb8KkRNiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBFYtk%2FbtrgRMSenIi%2FwC7t0WEBErf9Yeb8KkRNiK%2Fimg.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;523&quot; width=&quot;650&quot; height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ router-view&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 라우터와 연결되는 영역&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- URL이 변경되었을 때 특정 URL에 따라 뿌려지는 컴포넌트의 영역&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ router-link&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 라우터에서 페이지 이동을 위한 링크태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;781&quot; width=&quot;650&quot; height=&quot;642&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dKTrHB/btrgFSzUcWL/TRUMQSVKeVkoAOVVCmQXJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dKTrHB/btrgFSzUcWL/TRUMQSVKeVkoAOVVCmQXJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dKTrHB/btrgFSzUcWL/TRUMQSVKeVkoAOVVCmQXJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKTrHB%2FbtrgFSzUcWL%2FTRUMQSVKeVkoAOVVCmQXJ1%2Fimg.png&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;781&quot; width=&quot;650&quot; height=&quot;642&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 라우터 학습 코드&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;46&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;47&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;48&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;49&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;50&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;51&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;52&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;53&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;54&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;55&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;56&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;57&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;!DOCTYPE&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;lang&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;en&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;meta&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;charset&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;meta&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;http-equiv&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;X-UA-Compatible&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;content&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;IE=edge&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;meta&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;viewport&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;content&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;width=device-width,&amp;nbsp;initial-scale=1.0&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;Document&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;app&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt;!--router-link&amp;nbsp;:&amp;nbsp;라우터에서&amp;nbsp;페이지&amp;nbsp;이동을&amp;nbsp;위한&amp;nbsp;링크태그--&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-link&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;to&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;/login&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;Login&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-link&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-link&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;to&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;/main&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;Main&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-link&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt;!--router-view&amp;nbsp;:&amp;nbsp;라우터와&amp;nbsp;연결--&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-view&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;router-view&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://unpkg.com/vue-router/dist/vue-router.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;LoginComponent&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;login&amp;lt;/div&amp;gt;'&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;MainComponent&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;main&amp;lt;/div&amp;gt;'&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;router&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;VueRouter({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//routes&amp;nbsp;속성&amp;nbsp;:&amp;nbsp;페이징의&amp;nbsp;라우팅&amp;nbsp;정보(어떤&amp;nbsp;url로&amp;nbsp;이동했을&amp;nbsp;때&amp;nbsp;어떤&amp;nbsp;url이&amp;nbsp;나타날지)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//페이지의&amp;nbsp;개수만큼&amp;nbsp;객체의&amp;nbsp;형태로&amp;nbsp;배열로&amp;nbsp;담긴다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;routes&amp;nbsp;:&amp;nbsp;[&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//1.&amp;nbsp;로그인페이지&amp;nbsp;정보&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//페이지의&amp;nbsp;url&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'/login'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//해당&amp;nbsp;url에서&amp;nbsp;표시될&amp;nbsp;컴포넌트&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;component:&amp;nbsp;LoginComponent&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//2.&amp;nbsp;메인&amp;nbsp;페이지&amp;nbsp;정보&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'/main'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;component:&amp;nbsp;MainComponent&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;],&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//Vue&amp;nbsp;인스턴스&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;el:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'#app'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;router:&amp;nbsp;router&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//위에서&amp;nbsp;정의한&amp;nbsp;router&amp;nbsp;변수를&amp;nbsp;의미&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/136</guid>
      <comments>https://rang22.tistory.com/136#entry136comment</comments>
      <pubDate>Mon, 20 Sep 2021 22:14:15 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] 컴포넌트 통신방식 응용(동일레벨 컴포넌트 / 이벤트 버스)</title>
      <link>https://rang22.tistory.com/135</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q9VbB/btrfpCk9Mjq/s8v9qQBPTRmoteVkC46uwK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q9VbB/btrfpCk9Mjq/s8v9qQBPTRmoteVkC46uwK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q9VbB/btrfpCk9Mjq/s8v9qQBPTRmoteVkC46uwK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ9VbB%2FbtrfpCk9Mjq%2Fs8v9qQBPTRmoteVkC46uwK%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 동일 레벨 컴포넌트 통신방식&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 두 개의 컴포넌트가 같은 레벨에 있을 때 통신하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 직접 전달은 없고, &lt;u&gt;부모-자식 간의 전달을 통해&lt;/u&gt; 통신이 가능하다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step1.&lt;/b&gt; 하위컴포넌트에서 $emit()으로 이벤트를 발생&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step2.&lt;/b&gt; 상위컴포넌트에서 v-on:으로 이벤트 수신&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step3.&lt;/b&gt; 하위컴포넌트들에게 props로 데이터 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;app&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-bind:propsdata&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;num&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-on:pass&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;deliverNum&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appHeader&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;header&amp;lt;/div&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;props:&amp;nbsp;[&lt;span style=&quot;color: #63a35c;&quot;&gt;'propsdata'&lt;/span&gt;]&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appContent&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;content&amp;lt;button&amp;nbsp;v-on:click=&quot;passNum&quot;&amp;gt;pass&amp;lt;/button&amp;gt;&amp;lt;/div&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;passNum:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.$emit(&lt;span style=&quot;color: #63a35c;&quot;&gt;'pass'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;10&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//인자값:&amp;nbsp;10&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue&amp;nbsp;({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;el:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'#app'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;components:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-header'&lt;/span&gt;:&amp;nbsp;appHeader,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-content'&lt;/span&gt;:&amp;nbsp;appContent&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;data:{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;num:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;deliverNum:&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(value){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.num&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;value;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 관계없는 컴포넌트 간 통신방식(이벤트 버스)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지정한 2개의 컴포넌트 간에 데이터를 주고받는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상위-하위 구조를 유지하지 않아도 데이터 간 직접 전달이 가능하다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step1. 이벤트 버스를 위한 추가 인스턴스 생성&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이벤트버스는 비어있는 Vue 인스턴스 객체를 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이벤트 버스는 데이터 전달자 역할을 하는 빈그릇일 뿐 event 사용과 동일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step2. 이벤트를 보내는 컴포넌트&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터를 주고자하는 컴포넌트에서 $emit을 사용하여 eventBus 객체에 값을 넣는다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Step3. 이벤트를 받는 컴포넌트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터를 받는 컴포넌트에서는 $on()을 사용하여 이벤트를 받는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터를 받고자하는 컴포넌트에서 Vue인스턴스가 생성될 때(created)으로 미리 이벤트 핸들러 등록한 후, 데이터가 오면 methods에 정의한 변수로 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;app&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;child-component&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;child-component&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//1.&amp;nbsp;이벤트버스&amp;nbsp;생성(비어있는&amp;nbsp;Vue인스턴스)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//eventBus로&amp;nbsp;새로운&amp;nbsp;인스턴스&amp;nbsp;속성과&amp;nbsp;메소드에&amp;nbsp;접근&amp;nbsp;가능&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;eventBus&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Vue.component(&lt;span style=&quot;color: #63a35c;&quot;&gt;'child-component'&lt;/span&gt;,&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;하위&amp;nbsp;컴포넌트&amp;nbsp;영역&amp;lt;button&amp;nbsp;v-on:click=&quot;showLog&quot;&amp;gt;show&amp;lt;/button&amp;gt;&amp;lt;/div&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//2.&amp;nbsp;이벤트를&amp;nbsp;보내는&amp;nbsp;컴포넌트($emit&amp;nbsp;사용)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;showLog:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//eventBus.$emit('이벤트명',&amp;nbsp;'데이터');&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eventBus.$emit(&lt;span style=&quot;color: #63a35c;&quot;&gt;'triggerEventBus'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;100&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;})&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;vm&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;el:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'#app'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//3.&amp;nbsp;이벤트를&amp;nbsp;받는&amp;nbsp;컴포넌트($on&amp;nbsp;사용)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;created:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//eventBus.$on('이벤트명',&amp;nbsp;function(데이터){...});&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;eventBus.$on(&lt;span style=&quot;color: #63a35c;&quot;&gt;'triggerEventBus'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(value){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;console&lt;/span&gt;.log(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;이벤트를&amp;nbsp;전달받음.&amp;nbsp;전달받은&amp;nbsp;값&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;,&amp;nbsp;value);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;※ 이벤트버스를 사용하면, props 속성을 이용하지 않아 원하는 컴포넌트 간 데이터 전달이 편리하지만, 컴포넌트가 많아지면 어떤 컴포넌트에서 어느 컴포넌트로 보냈는지 관리에 어려움이 발생한다.&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;※ 이에 따라, 컴포넌트가 많아지면 컴포넌트 간의 통신을 관리하기 위해 상태관리 도구인 &lt;u&gt;Vuex를 사용&lt;/u&gt;한다!!&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;i&gt;&lt;b&gt;※&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;Vuex란? 중, 대형 어플리케이션에서 컴포넌트 간의 데이터 관리를 효율적으로 하는 라이브러리이다!!&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/135</guid>
      <comments>https://rang22.tistory.com/135#entry135comment</comments>
      <pubDate>Sun, 19 Sep 2021 22:34:21 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] 컴포넌트 통신방식/데이터 전달방식(props / $emit)</title>
      <link>https://rang22.tistory.com/134</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diB5se/btrfn41thkh/ufsYmakFyg45anDLBzO2Q0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diB5se/btrfn41thkh/ufsYmakFyg45anDLBzO2Q0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diB5se/btrfn41thkh/ufsYmakFyg45anDLBzO2Q0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiB5se%2Fbtrfn41thkh%2FufsYmakFyg45anDLBzO2Q0%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue 컴포넌트 통신방식(데이터 전달방식)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 뷰 컴포넌트는 각각 고유한 데이터 유효범위를 갖는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 따라서, 컴포넌트 간에 데이터를 주고받기 위한 규칙이 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;데이터의 흐름(Props/Event)을 추정할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;412&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d9VNwY/btrfBq37Dl6/cRkpaPvCLmKma4VPsugpy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d9VNwY/btrfBq37Dl6/cRkpaPvCLmKma4VPsugpy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d9VNwY/btrfBq37Dl6/cRkpaPvCLmKma4VPsugpy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd9VNwY%2FbtrfBq37Dl6%2FcRkpaPvCLmKma4VPsugpy1%2Fimg.png&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;412&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ &lt;b&gt;Props&lt;/b&gt; : 상위에서 하위로 데이터를 내려준다. / props를 전달한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※&lt;b&gt; Event emit&lt;/b&gt; : 하위에서 상위로 이벤트를 올려준다. / 이벤트가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 상위에서 하위로 데이터 전달 Props&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트 간에 데이터를 전달할 수 있는 컴포넌트 통신 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상위컴포넌트에서 하위 컴포넌트로만 이동!!&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;▷ 상위컴포넌트의 HTML 코드&lt;/b&gt;&lt;br /&gt;&amp;lt;child-component v-bind: props 속성이름 = &quot;상위컴포넌트 data이름&quot;&amp;gt;&amp;lt;/child-component&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;▷&amp;nbsp;하위컴포넌트의 props 속성 정의&lt;/b&gt;&lt;br /&gt;Vue.component('child-component', {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;props: [ 'props 속성이름' ]&lt;br /&gt;});&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;app&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt;!--&amp;lt;app-header&amp;nbsp;v-bind:프롭스&amp;nbsp;속성&amp;nbsp;이름&amp;nbsp;=&quot;상위&amp;nbsp;컴포넌트의&amp;nbsp;데이터&amp;nbsp;이름&quot;&amp;gt;&amp;lt;/app-header&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-bind:propsdata&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;message&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-bind:propsdata&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;num&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appHeader&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;h1&amp;gt;{{&amp;nbsp;propsdata&amp;nbsp;}}&amp;lt;/h1&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;props:&amp;nbsp;[&lt;span style=&quot;color: #63a35c;&quot;&gt;'propsdata'&lt;/span&gt;]&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appContent&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;div&amp;gt;{{&amp;nbsp;propsdata&amp;nbsp;}}&amp;lt;/div&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;props:&amp;nbsp;[&lt;span style=&quot;color: #63a35c;&quot;&gt;'propsdata'&lt;/span&gt;]&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;el:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'#app'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;components:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-header'&lt;/span&gt;:&amp;nbsp;appHeader,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-content'&lt;/span&gt;:&amp;nbsp;appContent&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;data:{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'hi'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;num&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;10&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 하위에서 상위컴포넌트로 이벤트 전달 $emit&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하위컴포넌트에서 상위 컴포넌트로 이벤트를 발생시키는 통신 방법&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이벤트 발생은 &lt;b&gt;$emit( )&lt;/b&gt;을 사용, 이벤트 수신은 &lt;b&gt;v-on: 속성 &lt;/b&gt;을 사용&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;▷이벤트 발생 : &lt;/b&gt;하위컴포넌트의 특정 메소드 내부&lt;br /&gt;this.$emit('이벤트명');&lt;br /&gt;&lt;br /&gt;&lt;b&gt;▷ 이벤트 수신&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&amp;lt;child-component v-on: 이벤트명 = &quot;상위컴포넌트 method명&quot;&amp;gt;&amp;lt;/child-component&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;46&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;47&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;48&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;app&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;&amp;lt;!--&amp;lt;app-header v-on:하위 컴포넌트에서 발생한 이벤트 이름=&quot;상위 컴포넌트의 메소드 이름&quot;&amp;gt;&amp;lt;/app-header&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-on:pass&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;logText&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-header&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;v-on:add&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;logNum&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;app-content&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appHeader&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;button&amp;nbsp;v-on:click=&quot;passOn&quot;&amp;gt;click&amp;nbsp;me&amp;lt;/button&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;passOn:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.$emit(&lt;span style=&quot;color: #63a35c;&quot;&gt;'pass'&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;appContent&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;template:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'&amp;lt;button&amp;nbsp;v-on:click=&quot;addNumber&quot;&amp;gt;add&amp;lt;/button&amp;gt;'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;addNumber:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.$emit(&lt;span style=&quot;color: #63a35c;&quot;&gt;'add'&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Vue({&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;el:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'#app'&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;components:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-header'&lt;/span&gt;:&amp;nbsp;appHeader,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;'app-content'&lt;/span&gt;:&amp;nbsp;appContent&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;data:&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;num:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;10&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;methods:{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logText:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;&amp;nbsp;()&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;console&lt;/span&gt;.log(&lt;span style=&quot;color: #63a35c;&quot;&gt;'hi'&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logNum:&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.num;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;console&lt;/span&gt;.log(&lt;span style=&quot;color: #066de2;&quot;&gt;this&lt;/span&gt;.num);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/134</guid>
      <comments>https://rang22.tistory.com/134#entry134comment</comments>
      <pubDate>Fri, 17 Sep 2021 17:22:08 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue 컴포넌트</title>
      <link>https://rang22.tistory.com/133</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KyXLs/btrfhlJHFDq/5wthokAeoqMAYjv1uv0dFk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KyXLs/btrfhlJHFDq/5wthokAeoqMAYjv1uv0dFk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KyXLs/btrfhlJHFDq/5wthokAeoqMAYjv1uv0dFk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKyXLs%2FbtrfhlJHFDq%2F5wthokAeoqMAYjv1uv0dFk%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue 컴포넌트&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트(Component)란 화면을 구성할 수 있는 블록(영역)을 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 화면을 영역별로 구분해서 코드를 관리하는 뷰의 기능&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;1. 화면을 빠르게 구조화&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. 일관적인 패턴으로 개발(속도 향상)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;3. 재사용 가능&lt;br /&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 컴포넌트 등록&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트를 등록하는 방법은 전역(Global)과 지역(Local)의 두 가지 방법이 존재&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) 전역컴포넌트&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 플러그인, 라이브러리 형태로 공통으로 사용해야하는 컴포넌트에 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스를 생성하지 않아도 모든 인스턴스에 사용가능!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;※ 전역컴포넌트 등록&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Vue 변수를 이용하여 .component( )를 호출하여 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트이름 : template 속성에서 사용할 HTML 태그를 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트내용 : 컴포넌트 태그가 HTML 요소로 변환될 때 표시될 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;744&quot; width=&quot;700&quot; height=&quot;556&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/owTKy/btrfsew7DKr/FL8kk9rnk05aTZsnTAcs71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/owTKy/btrfsew7DKr/FL8kk9rnk05aTZsnTAcs71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/owTKy/btrfsew7DKr/FL8kk9rnk05aTZsnTAcs71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FowTKy%2Fbtrfsew7DKr%2FFL8kk9rnk05aTZsnTAcs71%2Fimg.png&quot; data-origin-width=&quot;937&quot; data-origin-height=&quot;744&quot; width=&quot;700&quot; height=&quot;556&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) 지역컴포넌트&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일반적으로 지역컴포넌트 형태로 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 특정 인스턴스에서만 유효하여 인스턴스마다 새롭게 생성해야 사용가능!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;※ 지역컴포넌트 등록&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스에 components 속성을 추가하여 등록할 컴포넌트 이름/내용 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트이름 : HTML에 등록할 태그를 의미(전역컴포넌트와 동일)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트내용 : 컴포넌트 태그가 HTML 요소로 변환될 때 표시될 속성(전역컴포넌트와 동일)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;850&quot; width=&quot;700&quot; height=&quot;620&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JLhHj/btrfsddWJMD/arewGDKK2BvApfmUPWhZpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JLhHj/btrfsddWJMD/arewGDKK2BvApfmUPWhZpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JLhHj/btrfsddWJMD/arewGDKK2BvApfmUPWhZpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJLhHj%2FbtrfsddWJMD%2FarewGDKK2BvApfmUPWhZpk%2Fimg.png&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;850&quot; width=&quot;700&quot; height=&quot;620&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Root 컴포넌트&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스를 생성하면 최상위(Root) 컴포넌트가 생성된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스가 생성될 때 정의한 옵션은 Root 컴포넌트를 구성하는데 사용된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/133</guid>
      <comments>https://rang22.tistory.com/133#entry133comment</comments>
      <pubDate>Thu, 16 Sep 2021 23:38:44 +0900</pubDate>
    </item>
    <item>
      <title>[GitHub] 깃허브 토큰(Token)생성하는 방법</title>
      <link>https://rang22.tistory.com/132</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot; width=&quot;500&quot; height=&quot;281&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bopxot/btrfbANtznd/lUUOnIhxS3ZybCNUisn1L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bopxot/btrfbANtznd/lUUOnIhxS3ZybCNUisn1L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bopxot/btrfbANtznd/lUUOnIhxS3ZybCNUisn1L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbopxot%2FbtrfbANtznd%2FlUUOnIhxS3ZybCNUisn1L1%2Fimg.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot; width=&quot;500&quot; height=&quot;281&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2021년 8월 13일부터 GitHub는 Git 작업을 인증할 때 비밀번호 대신 Token을 사용하도록 변경되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 사항이 변경된지 이틀 지난 시점에서 바뀐 줄도 모르고, 비밀번호를 수없이 입력했던 슬픈 경험이 떠올라 다시 한번 토큰 생성에 대해 정리해놓으려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step1. GitHub 로그인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;454&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rTZFq/btrfbRalgDE/2YH5UXckJMBQS4S309apdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rTZFq/btrfbRalgDE/2YH5UXckJMBQS4S309apdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rTZFq/btrfbRalgDE/2YH5UXckJMBQS4S309apdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrTZFq%2FbtrfbRalgDE%2F2YH5UXckJMBQS4S309apdK%2Fimg.png&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;454&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step2. Settings &lt;/b&gt;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;설정 메뉴 클릭&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;509&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4DXKQ/btre6kY9iUo/cdODRznnZc99aNqeLKDASK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4DXKQ/btre6kY9iUo/cdODRznnZc99aNqeLKDASK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4DXKQ/btre6kY9iUo/cdODRznnZc99aNqeLKDASK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4DXKQ%2Fbtre6kY9iUo%2FcdODRznnZc99aNqeLKDASK%2Fimg.png&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;509&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step3. Developer &lt;b&gt;Settings&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;설정 메뉴 - 개발자 설정 클릭&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;252&quot; data-origin-height=&quot;311&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMRo7H/btre9EJQ83B/mLEdhWYXjt6TGpw4c7jJ6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMRo7H/btre9EJQ83B/mLEdhWYXjt6TGpw4c7jJ6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMRo7H/btre9EJQ83B/mLEdhWYXjt6TGpw4c7jJ6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMRo7H%2Fbtre9EJQ83B%2FmLEdhWYXjt6TGpw4c7jJ6K%2Fimg.png&quot; data-origin-width=&quot;252&quot; data-origin-height=&quot;311&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step4.&lt;span&gt; Personal access tokens &lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개발자 설정 메뉴 - 개인 액세스 토큰 클릭&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1033&quot; data-origin-height=&quot;387&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SMcoB/btrfblXkDvt/dWUzQmTy65UQlnnYTd6v0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SMcoB/btrfblXkDvt/dWUzQmTy65UQlnnYTd6v0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SMcoB/btrfblXkDvt/dWUzQmTy65UQlnnYTd6v0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSMcoB%2FbtrfblXkDvt%2FdWUzQmTy65UQlnnYTd6v0k%2Fimg.png&quot; data-origin-width=&quot;1033&quot; data-origin-height=&quot;387&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step5. Token 관련 세부사항 체크 및 입력&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nj18D/btre6DLtlxU/bezntd1lrJ17KNQv6tPm71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nj18D/btre6DLtlxU/bezntd1lrJ17KNQv6tPm71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nj18D/btre6DLtlxU/bezntd1lrJ17KNQv6tPm71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnj18D%2Fbtre6DLtlxU%2Fbezntd1lrJ17KNQv6tPm71%2Fimg.png&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;720&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Step6.&amp;nbsp; 토큰 생성 완료!!&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 주의!!&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span&gt;새로 생성된 token은 보안상의 이유로 &lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;span&gt;해당 페이지를 벗어나면 다시 볼 수 없으므로 잘 보관하고 있도록 한다!!&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps/Git</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/132</guid>
      <comments>https://rang22.tistory.com/132#entry132comment</comments>
      <pubDate>Thu, 16 Sep 2021 00:35:21 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 원격저장소 Github</title>
      <link>https://rang22.tistory.com/131</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pAyeu/btrfcwcIpcH/ke0rqRnhVju7j9h9TCdh0k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pAyeu/btrfcwcIpcH/ke0rqRnhVju7j9h9TCdh0k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pAyeu/btrfcwcIpcH/ke0rqRnhVju7j9h9TCdh0k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpAyeu%2FbtrfcwcIpcH%2Fke0rqRnhVju7j9h9TCdh0k%2Fimg.jpg&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 원격저장소 Github&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 깃허브(Github)는 분산 버전 관리 툴인 깃(Git)를 사용하는 프로젝트를 지원하는 웹호스팅 서비스&lt;/span&gt;&lt;br /&gt;- &quot;버전관리&quot;와 &quot;협업&quot;을 위한 코드 웹 호스팅 플랫폼으로 언제, 어디서나 프로젝트를 진행할 수 있도록 돕는 역할&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;※ 원격저장소란?&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;-&amp;nbsp;지역저장소가&amp;nbsp;아닌&amp;nbsp;컴퓨터나&amp;nbsp;서버에&amp;nbsp;만든&amp;nbsp;저장소&lt;br /&gt;-&amp;nbsp;지역저장소와&amp;nbsp;연결되어&amp;nbsp;'백업',&amp;nbsp;'협업'에서&amp;nbsp;중요한&amp;nbsp;역할&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ Github 이용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step 1. Create a new repository &lt;/b&gt;&lt;br /&gt;-&amp;nbsp;깃허브에&amp;nbsp;원격저장소&amp;nbsp;만들기 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2. 지역저장소를 원격저장소에 연결하기 &lt;/b&gt;&lt;br /&gt;-&amp;nbsp;도스창에&amp;nbsp;명령어&amp;nbsp;입력(원격저장소&amp;nbsp;하나당&amp;nbsp;한번만&amp;nbsp;해주면&amp;nbsp;됨) &lt;br /&gt;&amp;nbsp; &amp;nbsp;$ git remote add origin 복사한 주소 붙여넣기 &lt;br /&gt;&amp;nbsp; &amp;nbsp;(깃허브 저장 주소를 origin으로 줄여서 표현하고 remote에 추가함)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;원격&amp;nbsp;저장소에&amp;nbsp;제대로&amp;nbsp;연결됐는지&amp;nbsp;확인 &lt;br /&gt;&amp;nbsp; &amp;nbsp;$ git remote -v&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;-&amp;nbsp;remote에&amp;nbsp;origin이&amp;nbsp;연결되어&amp;nbsp;있고&amp;nbsp;origin이&amp;nbsp;가리키는&amp;nbsp;주소가&amp;nbsp;바로&amp;nbsp;옆에&amp;nbsp;표시되면&amp;nbsp;성공 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;&lt;/span&gt;지역저장소에서 원격저장소에 접근하는 여러방법&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;1.&amp;nbsp;아이디/암호(폐지됨)&amp;nbsp;-&amp;nbsp;XXX&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.&amp;nbsp;아이디/개인토큰(변경)&amp;nbsp;-&amp;nbsp;OK&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.&amp;nbsp;SSH&amp;nbsp;암호화&amp;nbsp;통신&amp;nbsp;프로토콜&amp;nbsp;이용&amp;nbsp;-&amp;nbsp;OK &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Secure&amp;nbsp;Shell&amp;nbsp;(보안이&amp;nbsp;적용된&amp;nbsp;shell) &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;더이상&amp;nbsp;아이디/토큰이&amp;nbsp;필요&amp;nbsp;없다!!! &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;원격저장소&amp;nbsp;주소&amp;nbsp;URL도&amp;nbsp;https를&amp;nbsp;안쓰고,&amp;nbsp;&quot;ssh&amp;nbsp;주소&quot;&amp;nbsp;사용(*) &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;&quot;공개키/개인키&quot;를&amp;nbsp;이용하는&amp;nbsp;방식(비유:&amp;nbsp;공인인증서) &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;직접&amp;nbsp;공개키와&amp;nbsp;개인키를&amp;nbsp;만들어야&amp;nbsp;함! &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$&amp;nbsp;ssh-keygen&amp;nbsp;-t&amp;nbsp;rsa&amp;nbsp;&amp;lt;enter&amp;gt;&amp;nbsp;=&amp;gt;&amp;nbsp; &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RSA비대칭키&amp;nbsp;암호화&amp;nbsp;알고리즘을&amp;nbsp;이용한&amp;nbsp;키&amp;nbsp;생성&amp;nbsp;명령 &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;직접&amp;nbsp;만든&amp;nbsp;공개키와&amp;nbsp;개인키&amp;nbsp;중에,&amp;nbsp;&quot;공개키&quot;를 &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GitHub&amp;nbsp;사이트에&amp;nbsp;등록&amp;nbsp;(**************) &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;더이상&amp;nbsp;원격저장소&amp;nbsp;접근시,&amp;nbsp;아이디/토큰은&amp;nbsp;필요가&amp;nbsp;없음! &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;더불어서,&amp;nbsp;암호화&amp;nbsp;통신을&amp;nbsp;하기&amp;nbsp;때문에,&amp;nbsp;보안에도&amp;nbsp;강력함!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps/Git</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/131</guid>
      <comments>https://rang22.tistory.com/131#entry131comment</comments>
      <pubDate>Thu, 16 Sep 2021 00:10:36 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue 인스턴스</title>
      <link>https://rang22.tistory.com/130</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/md0Kc/btrfa1rgGFO/clfZN0IuRGoUkv4TfZNkB1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/md0Kc/btrfa1rgGFO/clfZN0IuRGoUkv4TfZNkB1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/md0Kc/btrfa1rgGFO/clfZN0IuRGoUkv4TfZNkB1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmd0Kc%2Fbtrfa1rgGFO%2FclfZN0IuRGoUkv4TfZNkB1%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;◆ Vue의 특징&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 컴포넌트를 이용한 개발&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하나의 템플릿을 컴포넌트 형식으로 만들어 여러 곳에서 사용가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Vue는 화면(view) 라이브러리로 다음과 같은 역할을 가진다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. Dom Listeners : DOM을 이용한 조작&lt;br /&gt;2. Data B‭indings : 데이터 바인딩&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;뷰의 모든 시작은 뷰 인스턴스를 만드는 것부터 시작된다.&lt;br /&gt;지금부터 Vue 인스턴스에 대해 알아보자!!&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue 인스턴스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스는 뷰를 개발할 때 필수로 생성해야 하는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스 안에는 &lt;b&gt;뷰에서 제공하는 API(기능)과 속성&lt;/b&gt;이 들어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 인스턴스를 생성하기 위해서는 &lt;b&gt;new Vue() 생성자를 호출&lt;/b&gt;해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;601&quot; width=&quot;650&quot; height=&quot;481&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbT8Hf/btrfhosUzut/Q53Kkp2eh111hdkxaOU4Hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbT8Hf/btrfhosUzut/Q53Kkp2eh111hdkxaOU4Hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbT8Hf/btrfhosUzut/Q53Kkp2eh111hdkxaOU4Hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbT8Hf%2FbtrfhosUzut%2FQ53Kkp2eh111hdkxaOU4Hk%2Fimg.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;601&quot; width=&quot;650&quot; height=&quot;481&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;예제에서는 생성자의 속성으로 el, data와 같이 2개만 사용되었으나,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;template, methods, created 등 여러 속성이 있으니 아래에서 알아보도록 하자!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ Vue 인스턴스와 생성자함수&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;- 뷰인스턴스는 &lt;u&gt;생성자함수의 형태&lt;/u&gt;로 사용된다.&lt;br /&gt;&amp;nbsp; 생성자함수의 형태와 동일함에 따라 사용효과도 동일하다고 볼 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;rarr; 생성자함수&lt;/b&gt; : 매번 함수를 정의하지 않고 미리 정의된 함수를 사용할 수 있다.&lt;br /&gt;&lt;b&gt;&amp;rarr; 뷰 인스턴스&lt;/b&gt; : 뷰에서 API와 속성들을 미리 정의해놓고 재사용할 수 있는 패턴을 가진다.&lt;/blockquote&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ 인스턴스의 속성과 옵션&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- 인스턴스의 속성은 key : value의 형태로 들어간다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- 객체 표기법으로 객체를 정의하여 new Vue() 생성자의 인자값으로 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1015&quot; data-origin-height=&quot;499&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rYyKD/btrfdZAFEYm/FUi1YqHKQJzcJM3Tkz6qTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rYyKD/btrfdZAFEYm/FUi1YqHKQJzcJM3Tkz6qTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rYyKD/btrfdZAFEYm/FUi1YqHKQJzcJM3Tkz6qTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrYyKD%2FbtrfdZAFEYm%2FFUi1YqHKQJzcJM3Tkz6qTk%2Fimg.png&quot; data-origin-width=&quot;1015&quot; data-origin-height=&quot;499&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/130</guid>
      <comments>https://rang22.tistory.com/130#entry130comment</comments>
      <pubDate>Wed, 15 Sep 2021 23:55:29 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue 프로젝트 구조 알아보기</title>
      <link>https://rang22.tistory.com/129</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ehehN1/btrePXiZTwW/hn2GDnmvmVKAKg5FRDBaU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ehehN1/btrePXiZTwW/hn2GDnmvmVKAKg5FRDBaU0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ehehN1/btrePXiZTwW/hn2GDnmvmVKAKg5FRDBaU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FehehN1%2FbtrePXiZTwW%2Fhn2GDnmvmVKAKg5FRDBaU0%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Vue-cli가 생성한 기본 프로젝트의 구조에 대해 알아보자&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue&amp;nbsp;프로젝트&amp;nbsp;구조&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Vue project 환경을 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본 vue 개발환경을 설정해주는 도구로 기본적인 프로젝트를 세팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;475&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCatAB/btrfdWWgEar/KNjQ70S6CejNR7K6gP7PkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCatAB/btrfdWWgEar/KNjQ70S6CejNR7K6gP7PkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCatAB/btrfdWWgEar/KNjQ70S6CejNR7K6gP7PkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCatAB%2FbtrfdWWgEar%2FKNjQ70S6CejNR7K6gP7PkK%2Fimg.png&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;475&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;▷ node_modules &lt;/b&gt;: 앱 개발과 배포에 필요한 npm 패키지 저장&lt;br /&gt;&lt;b&gt;▷ public&lt;/b&gt; : 배포 버전을 빌드할 때 필요한 파일(컴파일되지 않는 요소)&lt;br /&gt;&lt;b&gt;▷ src&lt;/b&gt; : 컴포넌트들을 구성하는 영역으로 Vue가 컴파일하는 대상&lt;br /&gt;&amp;nbsp; - &lt;b&gt;assets&lt;/b&gt; : img와 같은 자원들을 저장하는 곳으로 컴포넌트에서 사용한 파일들은 자동배포&lt;br /&gt;&amp;nbsp;- &lt;b&gt;components&lt;/b&gt; : component를 만드는 곳&lt;br /&gt;&lt;b&gt;▷package.json&lt;/b&gt; : 프로젝트에 대한 전반적인 설정&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ package.json 파일&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 프로젝트의 설정을 담는 파일로&amp;nbsp; spring application의 pom.xml 역할과 비슷&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;662&quot; width=&quot;800&quot; height=&quot;612&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b80Qv9/btrfbsBPwSo/XPC5CFljdy6gyBXHOpR4l0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b80Qv9/btrfbsBPwSo/XPC5CFljdy6gyBXHOpR4l0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b80Qv9/btrfbsBPwSo/XPC5CFljdy6gyBXHOpR4l0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb80Qv9%2FbtrfbsBPwSo%2FXPC5CFljdy6gyBXHOpR4l0%2Fimg.png&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;662&quot; width=&quot;800&quot; height=&quot;612&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;▷ scripts는 $npm run serve 명령어로 실행&amp;nbsp;&lt;br /&gt;▷ 의존성 라이브러리는 용도(프로젝트 동작/개발)에 따라 설치하여 사용&lt;br /&gt;▷ eslintConfig를 통해 eslint에 대한 설정을 진행하여 문법 및 관행적인 부분을 체크&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 외에 궁금한 것들도 앞으로 차차 알아가보자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;참고&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://cli.vuejs.org/config/#vue-config-js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://cli.vuejs.org/config/#vue-config-js&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1631717668270&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Configuration Reference | Vue CLI&quot; data-og-description=&quot;Configuration Reference Global CLI Config Some global configurations for @vue/cli, such as your preferred package manager and your locally saved presets, are stored in a JSON file named .vuerc in your home directory. You can edit this file directly with yo&quot; data-og-host=&quot;cli.vuejs.org&quot; data-og-source-url=&quot;https://cli.vuejs.org/config/#vue-config-js&quot; data-og-url=&quot;https://cli.vuejs.org/config/#vue-config-js&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://cli.vuejs.org/config/#vue-config-js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cli.vuejs.org/config/#vue-config-js&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Configuration Reference | Vue CLI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Configuration Reference Global CLI Config Some global configurations for @vue/cli, such as your preferred package manager and your locally saved presets, are stored in a JSON file named .vuerc in your home directory. You can edit this file directly with yo&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cli.vuejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/129</guid>
      <comments>https://rang22.tistory.com/129#entry129comment</comments>
      <pubDate>Mon, 13 Sep 2021 23:28:13 +0900</pubDate>
    </item>
    <item>
      <title>[Vue] Vue  시작하기</title>
      <link>https://rang22.tistory.com/128</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WhJri/btreYm9ip2w/HEQtJvxuiqyRMkYbKjkOak/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WhJri/btreYm9ip2w/HEQtJvxuiqyRMkYbKjkOak/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WhJri/btreYm9ip2w/HEQtJvxuiqyRMkYbKjkOak/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWhJri%2FbtreYm9ip2w%2FHEQtJvxuiqyRMkYbKjkOak%2Fimg.jpg&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;246&quot; data-filename=&quot;vue.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;아래 사이트를 보며 Vue.js에 대해 알아보자&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kr.vuejs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kr.vuejs.org/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1631539910642&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Vue.js&quot; data-og-description=&quot;Vue.js - 프로그레시브 자바스크립트 프레임워크&quot; data-og-host=&quot;kr.vuejs.org&quot; data-og-source-url=&quot;https://kr.vuejs.org/&quot; data-og-url=&quot;https://kr.vuejs.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/rDPVd/hyLBCdqJgy/PCcmi7NmbcaS1MUjLuUryk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/LkZEx/hyLz1lztN2/7n81HwGBltvfV3Zb8b0rI1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://kr.vuejs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kr.vuejs.org/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/rDPVd/hyLBCdqJgy/PCcmi7NmbcaS1MUjLuUryk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/LkZEx/hyLz1lztN2/7n81HwGBltvfV3Zb8b0rI1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Vue.js&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Vue.js - 프로그레시브 자바스크립트 프레임워크&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kr.vuejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1631542073799&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Vue 시작하기 - Web 개발 학습하기 | MDN&quot; data-og-description=&quot;이제&amp;nbsp;우리가 배울&amp;nbsp;세 번째 프레임워크인 Vue를 소개하겠습니다. 이 글에서&amp;nbsp;우리는 Vue에 대한 간단한 배경지식을 얻고, Vue를 설치하고&amp;nbsp;새로운 프로젝트를 만드는 방법을 배웁니다. 또한 전체 &quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/LY4ZF/hyLzWdvQkk/vK8F9F1GoGVr6oMkwHTq7K/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/LY4ZF/hyLzWdvQkk/vK8F9F1GoGVr6oMkwHTq7K/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Vue 시작하기 - Web 개발 학습하기 | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이제&amp;nbsp;우리가 배울&amp;nbsp;세 번째 프레임워크인 Vue를 소개하겠습니다. 이 글에서&amp;nbsp;우리는 Vue에 대한 간단한 배경지식을 얻고, Vue를 설치하고&amp;nbsp;새로운 프로젝트를 만드는 방법을 배웁니다. 또한 전체&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue 란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #1b1b1b;&quot;&gt;JavaScript 프레임워크 중 하나로 &lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;b&gt;&lt;u&gt;점진적 향상&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;을 위한 유용한 기능을 제공&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;- 애플리케이션에 Vue를 점진적으로 통합시키며, 마크업 작성에 대해서도 점진적 접근법을 제공&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;- 기존의 HTML 코드를 향상시킴으로써 JQuery 등의 라이브러리를 Vue로 대체가능&lt;/span&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- View에 최적화시킨 프레임워크이며 MVVM 패턴을 따른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OcU6P/btre6EwNTu8/YWdsiKijqyrtL7oetLQod0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OcU6P/btre6EwNTu8/YWdsiKijqyrtL7oetLQod0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OcU6P/btre6EwNTu8/YWdsiKijqyrtL7oetLQod0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOcU6P%2Fbtre6EwNTu8%2FYWdsiKijqyrtL7oetLQod0%2Fimg.png&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ MVVM패턴&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;Model&lt;/b&gt; &lt;/span&gt;: 일종의 Data로 데이터 뿐 아니라 데이터를 가공해서 처리하는 간단한 로직도 포함&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;View &lt;/b&gt;&lt;/span&gt;: 사용자에게 렌더링 되어 보여주는 화면을 의미&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;View Model&lt;/b&gt;&lt;/span&gt;&amp;nbsp;: View를 위한 Model로 view를 나타내기 위한 데이터 처리를 담당&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&amp;rarr; Model과 View는 MVC 패턴과 동일하고, Controller 대신 ViewModel이 존재&lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;&lt;/span&gt;Vue-cli 란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Vue project 환경을 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기본 vue 개발환경을 설정해주는 도구로 기본적인 프로젝트를 세팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;◆ Vue 설치하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법1. &amp;lt;script&amp;gt; 요소 추가&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 아래 &amp;lt;script&amp;gt; 요소 중 하나를 페이지에 추가함으로써&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;&amp;nbsp; 속성, 커스텀 컴포넌트, 데이터 관리 등 수많은 Vue의 핵심 기능 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;※ 개발 스크립트 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;- 최적화되지 않음. 콘솔 경고 포함. 개발용으로 좋다.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue/dist/vue.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;※ &lt;span style=&quot;color: #1b1b1b;&quot;&gt;상용 스크립트 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;- 최적화 버전. 콘솔 경고 최소화. 업데이트로 인해 사이트가 영향을 받지 않도록 버전 번호를 명시하는 것이 좋다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/vue@2&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법2. Vue NPM package 사용&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #1b1b1b;&quot;&gt;Vue NPM 패키지를 사용하면 Vue의 고급 기능 이용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #1b1b1b;&quot;&gt;WebPack 같은 번들 도구 활용가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #1b1b1b;&quot;&gt;Vue&amp;nbsp;CLI를 사용하면 개발 과정을 간소화해 Vue 앱을 더욱 쉽게 구성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. CLI 설치 &lt;br /&gt;&lt;/b&gt;&lt;/span&gt;$ npm install -g @vue/cli&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2. 프로젝트 생성 : &lt;span style=&quot;background-color: #fcfcfc; color: #666666;&quot;&gt;프로젝트명은 케밥식&lt;/span&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666;&quot;&gt;(ex:apple-pie)으로 작성&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;$ vue create 프로젝트명 (vue/cli 버전 3.x)&lt;br /&gt;$ vue init webpack 프로젝트명(vue/cli 버전 3.x 미만)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3. 설치 옵션선택&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;? Please pick a preset: (Use arrow keys)&lt;br /&gt;=&amp;gt; Default ([Vue 2] babel, eslint)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //선택 시 바로 설치 진행&lt;br /&gt;=&amp;gt; Default (Vue 3) ([Vue 3] babel, eslint)&amp;nbsp; &amp;nbsp; //선택 시 바로 설치 진행&lt;br /&gt;=&amp;gt; Manually select features&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//선택 시 아래 질문 사항 진행&lt;br /&gt;&lt;br /&gt;? Check the features needed for your project: &lt;br /&gt;=&amp;gt; Babel, Router &lt;br /&gt;&lt;br /&gt;? Use history mode for router? (Requires ~ in production) (Y/n) &lt;br /&gt;=&amp;gt; Y &lt;br /&gt;&lt;br /&gt;? Where do you prefer placing config for ~ &lt;br /&gt;=&amp;gt; In package.json &lt;br /&gt;&lt;br /&gt;? Save this as a preset for future project? (Y/n) &lt;br /&gt;=&amp;gt; n&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;4. 설치 완료&lt;br /&gt;&lt;br /&gt;5. 서버실행&lt;br /&gt;&lt;/b&gt;$ cd 프로젝트명&lt;br /&gt;$ npm run serve&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. 브라우저 접속&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #222426;&quot;&gt;- 서버 실행 후 [Local]에 표시된 url을 ctrl과 함께 클릭&lt;br /&gt;&lt;/span&gt;- 또는 &lt;span style=&quot;color: #222426;&quot;&gt;롬 브라우저에서 해당 url로 접속&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같은 화면이 브라우저에 출력된다면 성공!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;634&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVo5v5/btrePWdntKr/rkOmiIvDxd0kRUoGkXhUt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVo5v5/btrePWdntKr/rkOmiIvDxd0kRUoGkXhUt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVo5v5/btrePWdntKr/rkOmiIvDxd0kRUoGkXhUt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVo5v5%2FbtrePWdntKr%2FrkOmiIvDxd0kRUoGkXhUt1%2Fimg.png&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;634&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/128</guid>
      <comments>https://rang22.tistory.com/128#entry128comment</comments>
      <pubDate>Mon, 13 Sep 2021 23:08:15 +0900</pubDate>
    </item>
    <item>
      <title>[Git] Git 브랜치란?</title>
      <link>https://rang22.tistory.com/127</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7nfcm/btreYlvMpA5/Iycb52EtHUYhrwMcruijMK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7nfcm/btreYlvMpA5/Iycb52EtHUYhrwMcruijMK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7nfcm/btreYlvMpA5/Iycb52EtHUYhrwMcruijMK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7nfcm%2FbtreYlvMpA5%2FIycb52EtHUYhrwMcruijMK%2Fimg.jpg&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ git branch&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;하나의&amp;nbsp;버전관리를&amp;nbsp;수행하는&amp;nbsp;흐름을&amp;nbsp;의미 &lt;br /&gt;- branch를 통해 버전관리가 가능 &lt;br /&gt;&lt;br /&gt;※ 이전 저번에서는 'master'가 기본 브랜치 이름이였으나, &lt;br /&gt;&amp;nbsp; &amp;nbsp;현재는 'main'으로 변경되었음.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;브랜치 관련 명령어&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&amp;nbsp;1. 새로운 브랜치 생성&lt;/b&gt;&lt;br /&gt;$ git branch &amp;lt;새로운 branch명&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;2. 기존 브랜치 삭제&lt;/b&gt;&lt;br /&gt;$git branch -d &amp;lt;삭제할 branch명&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. branch간 이동&lt;/b&gt;&lt;br /&gt;$git switch &amp;lt;이동할 branch명&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. 현재 전체 branch목록과 내가 사용중인 branch확인&lt;/b&gt;&lt;br /&gt;$git branch&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;&lt;/span&gt;브랜치의&amp;nbsp;병합(Merge)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;Step 1. 병합될 브랜치와 병합의 기준이 되는 브랜치 구분 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 예 : 기준 브랜치(main), 병합될 브랜치(apple) &lt;br /&gt;&lt;br /&gt;Step&lt;span&gt; &lt;/span&gt;2. 기준 브랜치로 이동 &lt;br /&gt;$&amp;nbsp;git&amp;nbsp;switch&amp;nbsp;main &lt;br /&gt;&lt;br /&gt;Step&lt;span&gt;&amp;nbsp;&lt;/span&gt;3. 병합될 브랜치를 기준브랜치에 병합 수행 &lt;br /&gt;$ git merge apple ==&amp;gt; apple -&amp;gt; main 브랜치로 병합 &lt;br /&gt;&lt;br /&gt;=&amp;gt; 결과 : apple 브랜치의 모든 커밋로그를 main브랜치로 넣어준다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;※ &quot;HEAD&quot; 는 현재 버전관리 중인 브랜치를 가리킴 (&lt;b&gt;branch pointer&lt;/b&gt; 역할)&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps/Git</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/127</guid>
      <comments>https://rang22.tistory.com/127#entry127comment</comments>
      <pubDate>Mon, 13 Sep 2021 21:22:23 +0900</pubDate>
    </item>
    <item>
      <title>[Git] Git 사용하기</title>
      <link>https://rang22.tistory.com/126</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEdyO9/btreRSf2KWX/VhdWqiSQVvoiFDpgx1Z160/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEdyO9/btreRSf2KWX/VhdWqiSQVvoiFDpgx1Z160/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEdyO9/btreRSf2KWX/VhdWqiSQVvoiFDpgx1Z160/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEdyO9%2FbtreRSf2KWX%2FVhdWqiSQVvoiFDpgx1Z160%2Fimg.jpg&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&amp;nbsp; Git 사용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;lt;사전준비&amp;gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1.&amp;nbsp;user.name,&amp;nbsp;user.email&amp;nbsp;등록(단&amp;nbsp;한번만&amp;nbsp;실행)&lt;br /&gt;2.&amp;nbsp;init.defaultbranch&amp;nbsp;등록&lt;br /&gt;3.&amp;nbsp;CMD창에서&amp;nbsp;프로젝트에&amp;nbsp;사용될&amp;nbsp;디렉토리&amp;nbsp;지정&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1)&amp;nbsp;git&amp;nbsp;init&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&quot;나 이 디렉토리에서 버전관리할거야~~&quot;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;깃의&amp;nbsp;저장소&amp;nbsp;초기화를&amp;nbsp;의미 &lt;br /&gt;-&amp;nbsp;프로젝트를&amp;nbsp;진행할&amp;nbsp;디렉토리를&amp;nbsp;깃에게&amp;nbsp;알려주는&amp;nbsp;기능 &lt;br /&gt;-&amp;nbsp;프로젝트를&amp;nbsp;진행한다는&amp;nbsp;것은&amp;nbsp;버전관리가&amp;nbsp;필요하다는&amp;nbsp;것! &lt;br /&gt;&lt;br /&gt;=&amp;gt; 실행결과 : '.git' 디렉토리 생성 / 모든 버전정보가 저장 &lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;2)&amp;nbsp;git&amp;nbsp;status&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&quot;지금 이런 상태야~~&quot;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;git의&amp;nbsp;상태를&amp;nbsp;의미 &lt;br /&gt;-&amp;nbsp;버전관리를&amp;nbsp;진행하고&amp;nbsp;있는&amp;nbsp;디렉토리&amp;nbsp;정보 &lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;3)&amp;nbsp;git&amp;nbsp;add&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&quot;이제 버전관리 시작해볼까~~&quot;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;- 추적해야할 디렉토리를 명확하게 지정하여 스테이지에 올리는 기능 &lt;br /&gt;-&amp;nbsp;프로젝트&amp;nbsp;작업을&amp;nbsp;위한&amp;nbsp;임시적인&amp;nbsp;파일은&amp;nbsp;배제하기&amp;nbsp;위해&amp;nbsp;명확하게!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- commit 대기 상태 (= stage area)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=&amp;gt; 실행결과 : 'new file'로 인식된 정보들 출력&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;※ 수정(modified) 이후&amp;nbsp;&amp;nbsp;새로운 버전을 생성할 때도 사용&lt;br /&gt;- Why? commit하는 시기를 놓치면 거대한 버전을 만들어야 한다. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; add를 한 파일만 commit =&amp;gt; 선택적으로 commit가능!!&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;4)&amp;nbsp;git&amp;nbsp;commit&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&quot;새로운 버전을 생성하자~~&quot;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&amp;nbsp;- git commit -m &quot;message&quot; &lt;br /&gt;&amp;nbsp; &amp;nbsp;(commit 결과 저장되는 곳 = repository) &lt;br /&gt;-&amp;nbsp;해당&amp;nbsp;디렉토리의&amp;nbsp;버전을&amp;nbsp;생성하는&amp;nbsp;기능 &lt;br /&gt;-&amp;nbsp;commit은&amp;nbsp;하나의&amp;nbsp;작업단위로&amp;nbsp;관리하는&amp;nbsp;것을&amp;nbsp;권장&amp;nbsp; &lt;br /&gt;-&amp;nbsp;message&amp;nbsp;:&amp;nbsp;이&amp;nbsp;변화가&amp;nbsp;왜&amp;nbsp;발생했는지,&amp;nbsp;변화내용은&amp;nbsp;무엇인지&amp;nbsp;작성 &lt;br /&gt;&amp;nbsp;예쁘고 간결하게 작성하는 것이 포인트!&lt;br /&gt;&lt;br /&gt;=&amp;gt; 실행결과 : status에 대한 내용 출력/ 버전에&amp;nbsp;대한&amp;nbsp;정보확인하고싶다면,&amp;nbsp;'git&amp;nbsp;log'사용&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5)&amp;nbsp;버전&amp;nbsp;비교하기(log/diff)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;git&amp;nbsp;log&amp;nbsp;:&amp;nbsp;버전관리에&amp;nbsp;대한&amp;nbsp;정보&amp;nbsp;출력 &lt;br /&gt;-&amp;nbsp;git&amp;nbsp;log&amp;nbsp;-p&amp;nbsp;:&amp;nbsp;각각의&amp;nbsp;commit&amp;nbsp;사이의&amp;nbsp;소스&amp;nbsp;차이를&amp;nbsp;출력 &lt;br /&gt;-&amp;nbsp;git&amp;nbsp;log&amp;nbsp;commitID&amp;nbsp;:&amp;nbsp;commitID&amp;nbsp;이전의&amp;nbsp;버전관리에&amp;nbsp;대한&amp;nbsp;정보만&amp;nbsp;출력 &lt;br /&gt;-&amp;nbsp;git&amp;nbsp;diff&amp;nbsp;:&amp;nbsp;&quot;commit하기&amp;nbsp;전&quot;에&amp;nbsp;변경된&amp;nbsp;작업&amp;nbsp;내용에&amp;nbsp;대한&amp;nbsp;점검/리뷰&amp;nbsp; &lt;br /&gt;-&amp;nbsp;git&amp;nbsp;diff&amp;nbsp;commitID..commitID&amp;nbsp;:&amp;nbsp;두&amp;nbsp;버전&amp;nbsp;사이의&amp;nbsp;소스상의&amp;nbsp;차이를&amp;nbsp;출력&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;6)&amp;nbsp;이전으로&amp;nbsp;돌아가기&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;git&amp;nbsp;reset&amp;nbsp;commitID&amp;nbsp;--hard&amp;nbsp;:&amp;nbsp;해당&amp;nbsp;commitID&amp;nbsp;상태로&amp;nbsp;돌아감 &lt;br /&gt;&amp;nbsp; But, 아예 사라진 것이 아니라 눈에 보이지 않는 것일 뿐 복구방법 有 &lt;br /&gt;&amp;nbsp; &lt;u&gt;&lt;i&gt;또한, 원격저장소를 통해 &quot;공유한 뒤&quot;에는 절대 reset 하지 말자!!&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;-&amp;nbsp;git&amp;nbsp;revert&amp;nbsp;:&amp;nbsp;해당&amp;nbsp;commit을&amp;nbsp;취소하면서&amp;nbsp;새로운&amp;nbsp;버전을&amp;nbsp;생성 &lt;br /&gt;&lt;br /&gt;★★★ 옵션에 따라 더 편리하게 사용할 수 있는 방법들이 존재!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps/Git</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/126</guid>
      <comments>https://rang22.tistory.com/126#entry126comment</comments>
      <pubDate>Mon, 13 Sep 2021 00:58:43 +0900</pubDate>
    </item>
    <item>
      <title>[Git] Git-깃이란?</title>
      <link>https://rang22.tistory.com/125</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JXk2O/btreJZgDvpT/anh2LTKkPfmDChkGWshe3K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JXk2O/btreJZgDvpT/anh2LTKkPfmDChkGWshe3K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JXk2O/btreJZgDvpT/anh2LTKkPfmDChkGWshe3K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJXk2O%2FbtreJZgDvpT%2Fanh2LTKkPfmDChkGWshe3K%2Fimg.jpg&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;245&quot; data-filename=&quot;git.JPG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Git에 대해 알아보자!!&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1)&amp;nbsp;git이란?&lt;/b&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;형상관리시스템(Version&amp;nbsp;Control&amp;nbsp;System) &lt;br /&gt;- &quot;파일의 이름을 더럽히지 말아라!&quot; &lt;br /&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 파일의 이름을 유지하되 파일 안에 있는 &quot;변경된 내용&quot;들은 컴퓨터가 관리한다.&lt;br /&gt;&lt;br /&gt;※&amp;nbsp;형상관리&amp;nbsp;:&amp;nbsp;변경사항을&amp;nbsp;체계적으로&amp;nbsp;추적,&amp;nbsp;통제한다는&amp;nbsp;것!! &lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&amp;lt;잠깐!&amp;gt;&lt;/b&gt; &lt;br /&gt;버전과 변화는 다르다! &lt;br /&gt;버전이란 작업이 완결된 상태이며, 의미있는 변화를 의미한다!! &lt;br /&gt;&lt;br /&gt;★★★ 버전단위에 대해서는 git을 사용하면서 생각해보자!&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;2)&amp;nbsp;git의&amp;nbsp;효용가치&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;-&amp;nbsp;소스코드&amp;nbsp;백업(Backup) &lt;br /&gt;-&amp;nbsp;이전&amp;nbsp;상태로&amp;nbsp;회복(Recovery) &lt;br /&gt;-&amp;nbsp;다른&amp;nbsp;사람들과의&amp;nbsp;협업(Collaboration) &lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3) 지역저장소와 원격저장소&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;※&amp;nbsp;지역저장소(Local&amp;nbsp;Repository)&amp;nbsp;:&amp;nbsp;우리가&amp;nbsp;사용하는&amp;nbsp;PC &lt;/b&gt;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;버전관리&amp;nbsp;대상파일의&amp;nbsp;버전기록을&amp;nbsp;저장하는&amp;nbsp;곳 &lt;br /&gt;&amp;nbsp;-&amp;nbsp;버전관리의&amp;nbsp;대상이&amp;nbsp;되는&amp;nbsp;폴더를&amp;nbsp;의미 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;※&amp;nbsp;원격저장소(Remote&amp;nbsp;Repository)&amp;nbsp;:&amp;nbsp;백업PC,&amp;nbsp;원격에&amp;nbsp;존재 &lt;/b&gt;&lt;br /&gt;&amp;nbsp;-&amp;nbsp;지역저장소에&amp;nbsp;누적된&amp;nbsp;버전기록들을&amp;nbsp;백업하는&amp;nbsp;곳&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DevOps/Git</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/125</guid>
      <comments>https://rang22.tistory.com/125#entry125comment</comments>
      <pubDate>Mon, 13 Sep 2021 00:48:44 +0900</pubDate>
    </item>
    <item>
      <title>JAVA  14-4. LIFO와 FIFO 컬렉션</title>
      <link>https://rang22.tistory.com/107</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC591X/btq9sIJBlNR/sbR4AbrKVI7B8QAO4Qe9J0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC591X/btq9sIJBlNR/sbR4AbrKVI7B8QAO4Qe9J0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC591X/btq9sIJBlNR/sbR4AbrKVI7B8QAO4Qe9J0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC591X%2Fbtq9sIJBlNR%2FsbR4AbrKVI7B8QAO4Qe9J0%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Stack 클래스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;203&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I89QT/btq9sCwpTrr/WQmfFnn6ly0RGVMISDy1wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I89QT/btq9sCwpTrr/WQmfFnn6ly0RGVMISDy1wK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I89QT/btq9sCwpTrr/WQmfFnn6ly0RGVMISDy1wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI89QT%2Fbtq9sCwpTrr%2FWQmfFnn6ly0RGVMISDy1wK%2Fimg.png&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;203&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 후입선출(LIFO : Last In First Out) 구조&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- JVM스택 메모리&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;30&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QBvcM/btq9pDCHlsw/TAj00ETwXOarmRIILswKR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QBvcM/btq9pDCHlsw/TAj00ETwXOarmRIILswKR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QBvcM/btq9pDCHlsw/TAj00ETwXOarmRIILswKR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQBvcM%2Fbtq9pDCHlsw%2FTAj00ETwXOarmRIILswKR1%2Fimg.png&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;30&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;122&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAVasJ/btq9rdKpTQH/BuN2ZcHnQKdqqrPuBSrHFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAVasJ/btq9rdKpTQH/BuN2ZcHnQKdqqrPuBSrHFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAVasJ/btq9rdKpTQH/BuN2ZcHnQKdqqrPuBSrHFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAVasJ%2Fbtq9rdKpTQH%2FBuN2ZcHnQKdqqrPuBSrHFk%2Fimg.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;122&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Queue 인터페이스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;171&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XaZsS/btq9nC43uTr/l0Jr2xzbEAJi3jrmz2zCNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XaZsS/btq9nC43uTr/l0Jr2xzbEAJi3jrmz2zCNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XaZsS/btq9nC43uTr/l0Jr2xzbEAJi3jrmz2zCNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXaZsS%2Fbtq9nC43uTr%2Fl0Jr2xzbEAJi3jrmz2zCNk%2Fimg.png&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;171&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 선입선출(FIFO : First In First Out) 구조&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 작업 큐, 메시지 큐 등&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;30&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baxNOP/btq9pDP8riW/QnxHxXxl4jbksiNn08XJD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baxNOP/btq9pDP8riW/QnxHxXxl4jbksiNn08XJD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baxNOP/btq9pDP8riW/QnxHxXxl4jbksiNn08XJD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaxNOP%2Fbtq9pDP8riW%2FQnxHxXxl4jbksiNn08XJD1%2Fimg.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;30&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;142&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM79GM/btq9reo3byi/lr1r6ViMA1Gc20fpmOIR9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM79GM/btq9reo3byi/lr1r6ViMA1Gc20fpmOIR9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM79GM/btq9reo3byi/lr1r6ViMA1Gc20fpmOIR9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM79GM%2Fbtq9reo3byi%2Flr1r6ViMA1Gc20fpmOIR9K%2Fimg.png&quot; data-origin-width=&quot;867&quot; data-origin-height=&quot;142&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/107</guid>
      <comments>https://rang22.tistory.com/107#entry107comment</comments>
      <pubDate>Thu, 8 Jul 2021 19:47:39 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 14-3. 컬렉션 프레임워크 - Map컬렉션</title>
      <link>https://rang22.tistory.com/106</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tx4Ir/btq9dvpYl9r/RkS8i8bZWENQqiuR71KUWK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tx4Ir/btq9dvpYl9r/RkS8i8bZWENQqiuR71KUWK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tx4Ir/btq9dvpYl9r/RkS8i8bZWENQqiuR71KUWK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTx4Ir%2Fbtq9dvpYl9r%2FRkS8i8bZWENQqiuR71KUWK%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆Map컬렉션&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;하나의&amp;nbsp;요소를&amp;nbsp;넣을&amp;nbsp;때,&amp;nbsp;키/값&amp;nbsp;쌍(pair)으로 저장&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키(Key) 객체와 값(value) 객체로 구성된 &lt;b&gt;Map.Entry 객체&lt;/b&gt;를 저장하는 구조&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키는 중복될 수 없지만, 값은 중복 저장 가능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;257&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8X61b/btq85UL0ITe/fMYkicvJI8wxY00mnQbZVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8X61b/btq85UL0ITe/fMYkicvJI8wxY00mnQbZVk/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8X61b/btq85UL0ITe/fMYkicvJI8wxY00mnQbZVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8X61b%2Fbtq85UL0ITe%2FfMYkicvJI8wxY00mnQbZVk%2Fimg.png&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;257&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;1) HashMap&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키 객체는 중복되지 않기 때문에 hashCode()와 equals()를 재정의하여 동등객체 조건을 체크&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키 타입으로 String 많이 사용(hashCode()와 equals()가 이미 재정의 되어있기 때문)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;2) Hashtable&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HashMap과 동일하며 hread synchronization(스레드 동기화)가 가능하여&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;멀티 스레드 환경에서 안정성 확보&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;204&quot; width=&quot;400&quot; height=&quot;175&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uYLjh/btq89Nk659Z/LVVTXGXahiz3bWIo9oX7s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uYLjh/btq89Nk659Z/LVVTXGXahiz3bWIo9oX7s0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uYLjh/btq89Nk659Z/LVVTXGXahiz3bWIo9oX7s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuYLjh%2Fbtq89Nk659Z%2FLVVTXGXahiz3bWIo9oX7s0%2Fimg.png&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;204&quot; width=&quot;400&quot; height=&quot;175&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;3)&lt;/b&gt;&amp;nbsp;&lt;b&gt;Properties&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키와 값을 String 타입으로 제한한 Map 컬렉션&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;프로퍼티&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(~.properties) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;파일을 읽어 들일 때 주로 사용&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ &lt;span style=&quot;color: #000000;&quot;&gt;프로퍼티&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(~.properties)&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;파일&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #adb9ad;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;옵션 정보&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터베이스 연결 정보&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 국제화&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다국어&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;정보를 기록한 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;텍스트 파일로 활용&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #adb9ad;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;애플리케이션에서 주로 변경이 잦은 문자열을 저장하여 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;유지 보수를 편리하게 만듦&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #adb9ad;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;키와 값이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; '='&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기호로 연결되어 있는 텍스트 파일&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;ndash;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ISO 8859-1 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문자셋으로 저장&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;ndash;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한글은 유니코드&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(Unicode)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;로 변환되어 저장&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;4) TreeMap&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 이진트리(&lt;span style=&quot;color: #000000;&quot;&gt;binary tree)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 기반으로 한&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Map 컬렉션&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #adb9ad;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;키와 값이 저장된&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Map.Entry&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 저장&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;- 왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 저장과 동시에 TreeMap의 키는 자동 오름차순 정렬&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;숫자(Integer, Double) 타입일 경우에 값으로 정렬&lt;br /&gt;문자열(String) 타입일 경우에는 유니코드로 정렬&lt;br /&gt;&lt;b&gt;=&amp;gt; java.lang.Comparable 구현 객체가 아닌 경우&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;직접 Comparable인터페이스를&amp;nbsp;implement하고 오버라이딩해줘야 한다.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;216&quot; width=&quot;500&quot; height=&quot;264&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caL9XN/btq88zgUBSB/fCvkrXD8rqFU3Wie5qZJKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caL9XN/btq88zgUBSB/fCvkrXD8rqFU3Wie5qZJKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caL9XN/btq88zgUBSB/fCvkrXD8rqFU3Wie5qZJKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaL9XN%2Fbtq88zgUBSB%2FfCvkrXD8rqFU3Wie5qZJKk%2Fimg.png&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;216&quot; width=&quot;500&quot; height=&quot;264&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ Map 컬렉션의 주요 메소드&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp7ZKf/btq9bkWMmIj/5qwr3tpEuHqOgK2hbpIBO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp7ZKf/btq9bkWMmIj/5qwr3tpEuHqOgK2hbpIBO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp7ZKf/btq9bkWMmIj/5qwr3tpEuHqOgK2hbpIBO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp7ZKf%2Fbtq9bkWMmIj%2F5qwr3tpEuHqOgK2hbpIBO1%2Fimg.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;489&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ Map의 요소를 순회(traverse)하는 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;46&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;47&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;48&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;49&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;50&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;HashMapExam1&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;,&amp;nbsp;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;map&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;HashMap&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;,&amp;nbsp;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.put(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;신용권&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #308ce5;&quot;&gt;85&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.put(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #308ce5;&quot;&gt;90&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.put(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;동장군&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #308ce5;&quot;&gt;80&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//-----------------------------------------------------//&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map의&amp;nbsp;전체&amp;nbsp;요소를&amp;nbsp;순회하는&amp;nbsp;방법들&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//-----------------------------------------------------//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//1.&amp;nbsp;method&amp;nbsp;:&amp;nbsp;keySet()&amp;nbsp;을&amp;nbsp;이용한&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;keySet&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;map.keySet();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Iterator&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;keyIterator&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;keySet.iterator();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;while&lt;/span&gt;(keyIterator.hasNext())&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;keyIterator.next();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;Integer&amp;nbsp;value&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;map.get(key);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;\t&amp;nbsp;+&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #993333;&quot;&gt;&quot;&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;value);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//while&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//2.method&amp;nbsp;:&amp;nbsp;entrySet()&amp;nbsp;을&amp;nbsp;이용한&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;Map.Entry&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;,&amp;nbsp;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;entrySet&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;map.entrySet();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Iterator&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;Map.Entry&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;,&amp;nbsp;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;entryIterator&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;entrySet.iterator();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;while&lt;/span&gt;(entryIterator.hasNext())&amp;nbsp;{&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;Map.Entry&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;,&amp;nbsp;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;entry&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;entryIterator.next();&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;entry.getKey();&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;Integer&amp;nbsp;value&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;entry.getValue();&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;\t&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #993333;&quot;&gt;&quot;&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;value);&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;while&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//3.&amp;nbsp;method&amp;nbsp;:&amp;nbsp;forEach()&amp;nbsp;최종처리&amp;nbsp;메소드를&amp;nbsp;이용한&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.forEach(&amp;nbsp;(t,&amp;nbsp;v)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&amp;nbsp;formatted&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #0099cc;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;name&amp;nbsp;:&amp;nbsp;%s,&amp;nbsp;value&amp;nbsp;:&amp;nbsp;%s&quot;&lt;/span&gt;,t,&amp;nbsp;v);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(formatted);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(map);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 자원 해제하는 방법(아주 중요&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;★&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;★&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;★&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;★&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;★&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 컬렉션 객체 사용 후, 메모리 활용을 위해 자원 해제(List, Set, Map 동일)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;137&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dM0WpK/btq89EuF5ls/lk4KJ4b5GfG9XF3m8Z4UKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dM0WpK/btq89EuF5ls/lk4KJ4b5GfG9XF3m8Z4UKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dM0WpK/btq89EuF5ls/lk4KJ4b5GfG9XF3m8Z4UKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdM0WpK%2Fbtq89EuF5ls%2Flk4KJ4b5GfG9XF3m8Z4UKK%2Fimg.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;137&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/106</guid>
      <comments>https://rang22.tistory.com/106#entry106comment</comments>
      <pubDate>Thu, 8 Jul 2021 13:37:38 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 14-2. 컬렉션 프레임워크 - Set컬렉션</title>
      <link>https://rang22.tistory.com/105</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DZ8Bo/btq84uGG40a/owsIgYqshYrkPe9McsHSm1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DZ8Bo/btq84uGG40a/owsIgYqshYrkPe9McsHSm1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DZ8Bo/btq84uGG40a/owsIgYqshYrkPe9McsHSm1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDZ8Bo%2Fbtq84uGG40a%2FowsIgYqshYrkPe9McsHSm1%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Set 컬렉션&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 수학의 집합의 비유되어 객체의 중복 저장이 불가&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 저장 순서가 유지되지 않음&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하나의 null만 저장 가능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;233&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wrauh/btq869OTiDR/ZNXKQnRkyTaRzHOouk2oEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wrauh/btq869OTiDR/ZNXKQnRkyTaRzHOouk2oEK/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wrauh/btq869OTiDR/ZNXKQnRkyTaRzHOouk2oEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwrauh%2Fbtq869OTiDR%2FZNXKQnRkyTaRzHOouk2oEK%2Fimg.png&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;233&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;1) HashsSet&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 동일 객체 및 동등 객체는 중복 저장하지 않음.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 동등객체 판단 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 1단계 : hashCode( ) - Object ID 객체 식별자를 확인한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;혹은 비지니스 로직에 따라 오버라이딩하여 객체의 중복을 추가로 비교한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 2단계 : equals( ) - 비지니스 로직에 따라 오버라이딩하여 객체를 중복을 비교한다.&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;i&gt;&lt;b&gt;why?&lt;/b&gt; &lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;i&gt;예를 들어 한 사람이 두번 중복하여 회원가입을 했을 때(객체를 두개 생성)&lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;i&gt;Object ID 객체 식별자는 다르나, 그 객체의 내용 즉 회원 정보는 동일할 수 있다.&lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;i&gt;이러한 경우를 구분하기 위해 비지니스로직에 따라 &lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;i&gt;&lt;i&gt;hashCode( )와 equals( )메소드를 오버라이딩 혹은 &lt;i&gt;노테이션 (@EqualsAndHashCode)사용해야 한다!!!!!!&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;★&lt;i&gt;★&lt;/i&gt;&lt;i&gt;★&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;String 외 참조객체의 경우, hashCode( )와 equals( )메소드를 오버라이딩,&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 혹은 어노테이션 (@EqualsAndHashCode)사용하여 판단하도록 해야한다.&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;158&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AA3Iu/btq88yAKGxI/Sbym2k8Cebjt5fMThUWUl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AA3Iu/btq88yAKGxI/Sbym2k8Cebjt5fMThUWUl0/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AA3Iu/btq88yAKGxI/Sbym2k8Cebjt5fMThUWUl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAA3Iu%2Fbtq88yAKGxI%2FSbym2k8Cebjt5fMThUWUl0%2Fimg.png&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;158&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;) TreeSet&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;-&lt;span style=&quot;color: #adb9ad;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이진 트리&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(binary tree)&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 기반으로 한&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Set&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;컬렉션&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자동 정렬의 기능이 있음&lt;b&gt;(저장과 동시에 자동 오름차순 정렬)&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;u&gt;숫자(Integer, Double) 타입&lt;/u&gt;일 경우에 값으로 정렬&lt;br /&gt;&lt;u&gt;문자열(String) 타입&lt;/u&gt;일 경우에는 유니코드로 정렬&lt;br /&gt;&lt;b&gt;&lt;b&gt;=&amp;gt; java.lang.Comparable 구현 객체가 아닌 경우 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;직접 &lt;b&gt;&lt;b&gt;Comparable인터페이스를 &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;implement하고 오버라이딩해줘야 한다.&lt;br /&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;500&quot; height=&quot;219&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;256&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mEA9c/btq9blBt9Ea/A4bpOjMJtcu8BUwUi4IPzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mEA9c/btq9blBt9Ea/A4bpOjMJtcu8BUwUi4IPzK/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mEA9c/btq9blBt9Ea/A4bpOjMJtcu8BUwUi4IPzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmEA9c%2Fbtq9blBt9Ea%2FA4bpOjMJtcu8BUwUi4IPzK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;219&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;256&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 이진트리의 구조&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;167&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckT6oc/btq9nCQtQwv/jksnWanLhoX5p0KFB7qE01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckT6oc/btq9nCQtQwv/jksnWanLhoX5p0KFB7qE01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckT6oc/btq9nCQtQwv/jksnWanLhoX5p0KFB7qE01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckT6oc%2Fbtq9nCQtQwv%2FjksnWanLhoX5p0KFB7qE01%2Fimg.png&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;167&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모노드와 자식 노드로 구성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 왼쪽 자식 노드 : 부모 보다 작은 값&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 오른쪽 자식 노드 : 부모보다 큰 값&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;TreeSetExample&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//1.&amp;nbsp;TreeSet&amp;nbsp;객체&amp;nbsp;생성&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TreeSet&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;Integer&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;scores&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;TreeSet&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//2.&amp;nbsp;새로운&amp;nbsp;요소를&amp;nbsp;추가&amp;nbsp;:&amp;nbsp;Auto-Boxing을&amp;nbsp;이용한&amp;nbsp;자동&amp;nbsp;Integer&amp;nbsp;객체&amp;nbsp;생성&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #308ce5;&quot;&gt;87&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #308ce5;&quot;&gt;98&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #308ce5;&quot;&gt;75&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #308ce5;&quot;&gt;95&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scores.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #308ce5;&quot;&gt;80&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//3.&amp;nbsp;TreeSet&amp;nbsp;안에&amp;nbsp;구성된&amp;nbsp;이진트리를&amp;nbsp;탐색하는&amp;nbsp;메소드의&amp;nbsp;활용&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Integer&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.first();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//first&amp;nbsp;:&amp;nbsp;가장&amp;nbsp;작은&amp;nbsp;값을&amp;nbsp;반환&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;가장&amp;nbsp;작은&amp;nbsp;값을&amp;nbsp;반환&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.last();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//last&amp;nbsp;:&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;값을&amp;nbsp;반환&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;가장&amp;nbsp;zms&amp;nbsp;값을&amp;nbsp;반환&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.lower(&lt;span style=&quot;color: #308ce5;&quot;&gt;95&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//lower&amp;nbsp;:&amp;nbsp;지정된&amp;nbsp;값보다&amp;nbsp;작은&amp;nbsp;바로&amp;nbsp;아래의&amp;nbsp;하나의&amp;nbsp;값을&amp;nbsp;반환(&amp;nbsp;&amp;lt;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;95점&amp;nbsp;아래&amp;nbsp;점수&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.higher(&lt;span style=&quot;color: #308ce5;&quot;&gt;95&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//higher&amp;nbsp;:&amp;nbsp;지정된&amp;nbsp;값보다&amp;nbsp;큰&amp;nbsp;바로&amp;nbsp;위의&amp;nbsp;하나의&amp;nbsp;값을&amp;nbsp;반환(&amp;nbsp;&amp;gt;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;95점&amp;nbsp;위의&amp;nbsp;점수&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.floor(&lt;span style=&quot;color: #308ce5;&quot;&gt;95&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//floor : 지정된 값이거나 작은 바로 아래 하나의 값을 반환( &amp;lt;= )&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;95점이거나&amp;nbsp;바로&amp;nbsp;아래&amp;nbsp;점수&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;scores.ceiling(&lt;span style=&quot;color: #308ce5;&quot;&gt;85&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//ceiling&amp;nbsp;:&amp;nbsp;지정된&amp;nbsp;값이거나&amp;nbsp;바로&amp;nbsp;위의&amp;nbsp;하나의&amp;nbsp;값을&amp;nbsp;반환(&amp;nbsp;&amp;gt;=&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;85점이거나&amp;nbsp;바로&amp;nbsp;위의&amp;nbsp;점수&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;score);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;while&lt;/span&gt;(scores.isEmpty())&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;score&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt; scores.pollFirst();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//pollFirst&amp;nbsp;:&amp;nbsp;first()와&amp;nbsp;비슷하되,&amp;nbsp;노드까지&amp;nbsp;삭제&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;남은&amp;nbsp;객체&amp;nbsp;수&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;scores.size());&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//while&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ Set 컬렉션의 주요&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;263&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYY57t/btq84wqXCi1/2hni9U2kktc38ubflpIpP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYY57t/btq84wqXCi1/2hni9U2kktc38ubflpIpP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYY57t/btq84wqXCi1/2hni9U2kktc38ubflpIpP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYY57t%2Fbtq84wqXCi1%2F2hni9U2kktc38ubflpIpP0%2Fimg.png&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;263&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ Set의 요소를 순회(traverse)하는 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Set에는 인덱스가 없기 때문에&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 전체 객체 대상으로 한번씩 반복하여 가져오는 반복자(Iterator) 제공&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;Iterator&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;Set객체&amp;nbsp;타입&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;iterator&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;Set객체&amp;nbsp;참조변수.iterator();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;while&lt;/span&gt;(iterator.hasNext())&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set객체타입&amp;nbsp;변수&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;iterator.next();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//while&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/105</guid>
      <comments>https://rang22.tistory.com/105#entry105comment</comments>
      <pubDate>Thu, 8 Jul 2021 09:39:36 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 6. 서블릿의 핵심 API (2)</title>
      <link>https://rang22.tistory.com/104</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;400\&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccs8Wr/btq9tHxtogQ/0WGETHYwl9SKkRrdYKiJpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccs8Wr/btq9tHxtogQ/0WGETHYwl9SKkRrdYKiJpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccs8Wr/btq9tHxtogQ/0WGETHYwl9SKkRrdYKiJpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fccs8Wr%2Fbtq9tHxtogQ%2F0WGETHYwl9SKkRrdYKiJpk%2Fimg.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;400\&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ ServletConfig&amp;nbsp;API&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;485&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8rjeV/btq9s2aMKRy/I7R38cOfyyQiRkSyi6V0mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8rjeV/btq9s2aMKRy/I7R38cOfyyQiRkSyi6V0mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8rjeV/btq9s2aMKRy/I7R38cOfyyQiRkSyi6V0mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8rjeV%2Fbtq9s2aMKRy%2FI7R38cOfyyQiRkSyi6V0mk%2Fimg.png&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;485&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 서블릿이 초기화될 때 공통적으로 적용해야되는 작업(초기화 파라미터) 접근에 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 재컴파일 없이 변경된 정보 참조가 가능하기 때문에 유지보수에 유리&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 95.4651%; height: 169px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8007%; text-align: center;&quot;&gt;리턴타입&lt;/td&gt;
&lt;td style=&quot;width: 24.5869%; text-align: center;&quot;&gt;메소드명&lt;/td&gt;
&lt;td style=&quot;width: 59.6123%; text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8007%; text-align: center;&quot;&gt;String&lt;/td&gt;
&lt;td style=&quot;width: 24.5869%; text-align: center;&quot;&gt;getInitParameter(name)&lt;/td&gt;
&lt;td style=&quot;width: 59.6123%;&quot;&gt;name에 해당되는 초기화 파라미터 값을 리턴한다. &lt;br /&gt;만약 지정된 name의 파라미터 값이 없으면 null을 리턴한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8007%; text-align: center;&quot;&gt;Enumeration&lt;/td&gt;
&lt;td style=&quot;width: 24.5869%; text-align: center;&quot;&gt;getInitParameterNames( )&lt;/td&gt;
&lt;td style=&quot;width: 59.6123%;&quot;&gt;모든 초기화 파라미터 name 값을 Enumeration 타입으로 리턴한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.8007%; text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;String&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.5869%; text-align: center;&quot;&gt;getServletName( )&lt;/td&gt;
&lt;td style=&quot;width: 59.6123%;&quot;&gt;요청한 서블릿의 이름을 리턴한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 초기화 파라미터 등록 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) web.xml 등록&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;lt;servlet&amp;gt;&amp;nbsp;태그&amp;nbsp;안에서&amp;nbsp;&amp;lt;init-param&amp;gt;&amp;nbsp;태그를&amp;nbsp;사용하여&amp;nbsp;지정&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;servlet&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-name&amp;gt;서블릿별명&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-class&amp;gt;패키지를 포함한 서블릿명&amp;lt;/servlet-class&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;&amp;lt;init-param&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param-name&amp;gt;초기화파라미터 이름&amp;lt;/param-name&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param-value&amp;gt;초기화파라미터 값&amp;lt;/param-value&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;init-param&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-name&amp;gt;초기화파라미터 이름&amp;lt;/param-name&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-value&amp;gt;초기화파라미터 값&amp;lt;/param-value&amp;gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt;&lt;/b&gt; &lt;br /&gt;&amp;lt;/servlet&amp;gt; &lt;br /&gt;&amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servlet-name&amp;gt;서블릿별명&amp;lt;/servlet-name&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url-pattern&amp;gt;/맵핑명&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&amp;lt;/servlet-mapping&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) @WebInitParam 어노테이션 이용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- @WebServlet 어노테이션의 속성으로 initParams을 선언하고,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; @WebInitParam 어노테이션으로 초기화 파라미터를 배열로 지정 (다수의 파라미터 지정이 가능)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ ServletContext&amp;nbsp;API&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;206&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s4WjG/btq9lUk11Ww/FCqGgLVJmdkWmqpVP70KJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s4WjG/btq9lUk11Ww/FCqGgLVJmdkWmqpVP70KJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s4WjG/btq9lUk11Ww/FCqGgLVJmdkWmqpVP70KJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs4WjG%2Fbtq9lUk11Ww%2FFCqGgLVJmdkWmqpVP70KJk%2Fimg.png&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;206&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;ServletContext는 웹 어플리케이션(Context)마다 하나씩 생성되는 객체&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;getServletContext() 메서드를 이용&lt;/b&gt;하여 ServletContext 객체를 얻는다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 어플리케이션의 LifeCycle과 일치하기 때문에 컨테이너에 존재한다면 계속 사용 가능 &lt;br /&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;공유되는&amp;nbsp;데이터가&amp;nbsp;저장되어있는&amp;nbsp;context&amp;nbsp;메모리&amp;nbsp;공간을&amp;nbsp;application&amp;nbsp;scope이라고&amp;nbsp;부른다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; (Ex. 로그인 후, 로그인처리가 지속되는 것 또한 context 메모리 공간에 저장되어 있기 때문)&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 121px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6589%; height: 20px; text-align: center;&quot;&gt;리턴타입&lt;/td&gt;
&lt;td style=&quot;width: 25.5426%; height: 20px; text-align: center;&quot;&gt;메소드명&lt;/td&gt;
&lt;td style=&quot;width: 58.7984%; height: 20px; text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 41px;&quot;&gt;
&lt;td style=&quot;width: 15.6589%; height: 41px; text-align: center;&quot;&gt;String&lt;/td&gt;
&lt;td style=&quot;width: 25.5426%; height: 41px; text-align: center;&quot;&gt;getInitParameter(name)&lt;/td&gt;
&lt;td style=&quot;width: 58.7984%; height: 41px;&quot;&gt;name에 해당되는 컨텍스트 파라미터 값 을 리턴한다. &lt;br /&gt;만약 지정된 name의 파라미 터 값이 없으면 null을 리턴한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6589%; height: 20px; text-align: center;&quot;&gt;InputStream&lt;/td&gt;
&lt;td style=&quot;width: 25.5426%; height: 20px; text-align: center;&quot;&gt;getResourceAsStream(path)&lt;/td&gt;
&lt;td style=&quot;width: 58.7984%; height: 20px;&quot;&gt;웹 어플리케이션의 path 경로에 해당되는 파일을 &lt;br /&gt;읽기모드로 접근가능하다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6589%; height: 20px; text-align: center;&quot;&gt;void&lt;/td&gt;
&lt;td style=&quot;width: 25.5426%; height: 20px; text-align: center;&quot;&gt;setAttribute(name,value)&lt;/td&gt;
&lt;td style=&quot;width: 58.7984%; height: 20px;&quot;&gt;application scope 해당되는 속성 값을 저장할 때 사용한다. &lt;br /&gt;브라우저를 종료해도 속성 값을 사용할 수 있다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6589%; height: 20px; text-align: center;&quot;&gt;Object&lt;/td&gt;
&lt;td style=&quot;width: 25.5426%; height: 20px; text-align: center;&quot;&gt;getAttribute(name)&lt;/td&gt;
&lt;td style=&quot;width: 58.7984%; height: 20px;&quot;&gt;name에 해당되는 속성 값을 리턴한다&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공유영역에 속성을 넣고 빼고 삭제하는 메소드는 아래와 같다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;(1)&amp;nbsp;setAttribute(name,&amp;nbsp;value)&amp;nbsp;:&amp;nbsp;공유영역에&amp;nbsp;속성&amp;nbsp;바인딩&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;(2)&amp;nbsp;getAttribute(name)&amp;nbsp;:&amp;nbsp;바인딩&amp;nbsp;속성값&amp;nbsp;얻기 &lt;br /&gt;&amp;nbsp;&amp;nbsp;(3)&amp;nbsp;removeAttribute(name)&amp;nbsp;:&amp;nbsp;공유영역의&amp;nbsp;속성&amp;nbsp;언바인딩&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;※ 컨텍스트 파라미터 설정 방법&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;초기화 파라미터와 마찬가지로 web.xml에 등록하여 사용하고,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;ServletContext 객체의 getInitParameter(name) 메서드를 사용해서 컨텍스트 파라미터 값을 얻는다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- web.xml 등록&amp;nbsp; 시,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;lt;context-param&amp;gt; 태그를 사용하여 컨텍스트 파라미터를 등록하며,&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;반드시 &amp;lt;servlet&amp;gt; 태그 전에 설정해야 된다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;context-param&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-name&amp;gt;driver&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-value&amp;gt;oracle.jdbc.driver.OracleDriver&amp;lt;/param-value&amp;gt; &lt;br /&gt;&amp;lt;/context-param&amp;gt; &lt;br /&gt;&amp;lt;context-param&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-name&amp;gt;savePath&amp;lt;/param-name&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;param-value&amp;gt;c:\\save&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ application&amp;nbsp;scope의&amp;nbsp;유형&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sevlet Container는 공유데이터를 저장할 공유영역(shared Scope) 4가지를 제공&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(1) Application scope &lt;/b&gt;&lt;br /&gt;- ServletContext객체가 관리한다고 표현&lt;br /&gt;- LifeCycle이 가장 길며, WAS의 생명주기와 동일하다.&lt;br /&gt;- 단, 메모리 차지로 인해 많은 양의 데이터를 보관하지 않는다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(2) Session scope &lt;/b&gt;&lt;br /&gt;- HTTPSession 객체가 관리한다고 표현&lt;br /&gt;- 웹 개발 시 가장 많이 사용하는 공유영역으로 웹 브라우저와 생명주기가 동일&lt;br /&gt;- 대부분의 웹서비스는 로그인 정보/장바구니 정보 등을 여기에 저장하여 공유 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;(3) Request scope&amp;nbsp;&lt;/b&gt;&lt;br /&gt;- HTTPServletRequest 객체가 관리한다고 표현&lt;br /&gt;- 웹 개발 시 가장 많이 사용하는 공유영역 &lt;br /&gt;- 하나의 Requst에 대해서 Response 문서가 웹브라우저로 전송되면 바로 사라지는 영역 &lt;br /&gt;- 기본 프로토콜 연결과 동일(응답 후 연결 끊기!) =&amp;gt; 스프링에서 많이 사용하는 영역 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;(4) Page scope &lt;/b&gt;&lt;br /&gt;- JSP에서만 제공되는 공유영역 &lt;br /&gt;- XXX.jsp 파일이 처음부터 끝까지 수행되고나면 파괴되는 공유영역&lt;br /&gt;-가장 생명주기가 짧다! -&amp;gt; 제공은 되나 거의 사용하지 않는다..!&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ ServletContextListener API&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;105&quot; width=&quot;700&quot; height=&quot;121&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmvkry/btq9ngm8Phq/K3ZTyn8wF5A2d97SIeB1Tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmvkry/btq9ngm8Phq/K3ZTyn8wF5A2d97SIeB1Tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmvkry/btq9ngm8Phq/K3ZTyn8wF5A2d97SIeB1Tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmvkry%2Fbtq9ngm8Phq%2FK3ZTyn8wF5A2d97SIeB1Tk%2Fimg.png&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;105&quot; width=&quot;700&quot; height=&quot;121&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 어플리케이션이 초기화되고 제거되는 이벤트를 감지하는 역할&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 리스너 등록 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;ServletContextListener 인터페이스를 구현하는 클래스를 작성한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이후, web.xml에 구현한 클래스를 태그로 등록하거나 @WebListener 어노테이션을 이용한다.&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;/b&gt;1) web.xml 등록&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;lt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666;&quot;&gt;listener&lt;/span&gt;&amp;gt; 태그로 이용하여 지정&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;listener&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;listener-class&amp;gt;com.test2.ContextListenerImpl&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&amp;lt;/listener&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) @WebListener 어노테이션 이용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- ServletContextListener 인터페이스를 구현하는 클래스에 @WebListener 어노테이션을 추가&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ Filter API&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;285&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q1WwB/btq9wgsDLx7/UGXhmKldz1VmqWcIRyAOiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q1WwB/btq9wgsDLx7/UGXhmKldz1VmqWcIRyAOiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q1WwB/btq9wgsDLx7/UGXhmKldz1VmqWcIRyAOiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq1WwB%2Fbtq9wgsDLx7%2FUGXhmKldz1VmqWcIRyAOiK%2Fimg.png&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;285&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 컴포넌트가 실행되기 전의 선처리(pre-processing/Request Filter)) 작업과&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;응답되기 전의 후처리(post-processing/(Response Filter)) 작업을 수행하는 API&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 다수의 Filter&lt;span&gt; 등록이 가능하며, 등록시킨 순서대로 Filter가 수행 =&amp;gt; &lt;b&gt;&quot;필터체인&quot;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 필터 적용 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Filter 인터페이스를 구현한 클래스를 작성한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이후, web.xml에 구현한 클래스를 태그로 등록하거나 @WebFilter어노테이션을 이용한다.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) web.xml 등록&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;lt;filter&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;gt; 태그로 이용하여 지정&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;filter&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;filter-name&amp;gt;myFilter&amp;lt;/filter-name&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;filter-class&amp;gt;com.test2.MyFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;&amp;lt;/filter&amp;gt; &lt;br /&gt;&amp;lt;filter-mapping&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;filter-name&amp;gt;myFilter&amp;lt;/filter-name&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt; &lt;br /&gt;&amp;lt;/filter-mapping&amp;gt;&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) @WebFilter어노테이션 이용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Filter&lt;span&gt;&amp;nbsp;&lt;/span&gt;인터페이스를 구현하는 클래스에 @WebFilter어노테이션을 추가&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/104</guid>
      <comments>https://rang22.tistory.com/104#entry104comment</comments>
      <pubDate>Tue, 6 Jul 2021 14:38:10 +0900</pubDate>
    </item>
    <item>
      <title>[SQL]</title>
      <link>https://rang22.tistory.com/103</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;/p&gt;</description>
      <category>DevOps/DB-데이터베이스설계</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/103</guid>
      <comments>https://rang22.tistory.com/103#entry103comment</comments>
      <pubDate>Tue, 6 Jul 2021 07:23:41 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 5. 서블릿의 파라미터 처리</title>
      <link>https://rang22.tistory.com/101</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;400&quot; height=&quot;323&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6Apk/btq9sDvB7m3/akVTiuW5ObPPwsvMSjyKx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6Apk/btq9sDvB7m3/akVTiuW5ObPPwsvMSjyKx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6Apk/btq9sDvB7m3/akVTiuW5ObPPwsvMSjyKx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6Apk%2Fbtq9sDvB7m3%2FakVTiuW5ObPPwsvMSjyKx0%2Fimg.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;400&quot; height=&quot;323&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 서블릿의 파라미터 처리&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- form태그를 통해 서버에 전송된 파라미터는&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; HttpServletRequest 객체의 세 가지 메소드를 사용하여 처리한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) getParameter(name)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 : String&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- name에 해당하는 파라미터 값을 리턴(값이 없는 경우, null리턴)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) getParameterName(name)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 : String[ ]&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- radio, checkbox 태그처럼 하나의 name에 여러 값을 가지는 경우 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) getParameterValues(name)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 : Enumeration&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 폼 태그 안에 여러 개의 input태그가 있는 경우 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Enumeration의 hasMoreElements() 메서드와 nextElement() 메서드를 사용하여 name 값을 먼저 얻고,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; getParameter(name) 메서드를 사용하여 value 값을 나중에 얻어 출 력&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ 입력받은 모든 데이터는 문자열로 처리한다!!!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;span&gt; 서블릿의 한글 처리&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- 기본적으로 브라우저에서 문자를 처리하는 방식과 &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&amp;nbsp; 서버에서 문자를 처리하는 방식이 일치해야 한글이 깨지지 않고 처리 가능&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;1) POST 처리 방식&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- &lt;span&gt;Tomcat&lt;/span&gt;&amp;nbsp;서버의 web.xml 수정 (주석처리 해제)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;286&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DrtTb/btq9s8IAJGz/MLZVZU8DW4B1KRwJWVgkeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DrtTb/btq9s8IAJGz/MLZVZU8DW4B1KRwJWVgkeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DrtTb/btq9s8IAJGz/MLZVZU8DW4B1KRwJWVgkeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDrtTb%2Fbtq9s8IAJGz%2FMLZVZU8DW4B1KRwJWVgkeK%2Fimg.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;286&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;2) GET 처리 방식&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- Tomcat의 설정 파일인 server.xml을 수정&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;152&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lBohT/btq9rdKBEjD/U29g1XziO3qHDbcLbSU5PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lBohT/btq9rdKBEjD/U29g1XziO3qHDbcLbSU5PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lBohT/btq9rdKBEjD/U29g1XziO3qHDbcLbSU5PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlBohT%2Fbtq9rdKBEjD%2FU29g1XziO3qHDbcLbSU5PK%2Fimg.png&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;152&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/101</guid>
      <comments>https://rang22.tistory.com/101#entry101comment</comments>
      <pubDate>Mon, 5 Jul 2021 21:23:36 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 4. 서블릿 핵심 API (1)</title>
      <link>https://rang22.tistory.com/100</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;350&quot; height=&quot;283&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nboLA/btq88xQphrk/93fKUgbhkA1Tyb9TeSXLF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nboLA/btq88xQphrk/93fKUgbhkA1Tyb9TeSXLF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nboLA/btq88xQphrk/93fKUgbhkA1Tyb9TeSXLF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnboLA%2Fbtq88xQphrk%2F93fKUgbhkA1Tyb9TeSXLF0%2Fimg.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;350&quot; height=&quot;283&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 서블릿 아키텍처(구조)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트에서 웹 브라우저를 이용하여 적절한 URL형식으로 서블릿에 요청하면,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;웹 컨테이너에서 서블릿을 실행하고 결과값을 html로 구성하여 클라이언트로 응답을 처리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;272&quot; width=&quot;700&quot; height=&quot;313&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b16k2l/btq9sCQW9Vc/0C2LTJ4JkHwFRbFtVA5mmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b16k2l/btq9sCQW9Vc/0C2LTJ4JkHwFRbFtVA5mmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b16k2l/btq9sCQW9Vc/0C2LTJ4JkHwFRbFtVA5mmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb16k2l%2Fbtq9sCQW9Vc%2F0C2LTJ4JkHwFRbFtVA5mmk%2Fimg.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;272&quot; width=&quot;700&quot; height=&quot;313&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ HttpServletRequest API&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HTTP Request인 요청과 관련된 작업을 처리하는 핵심 API&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클래스가 아닌 인터페이스(규격)으로 제공&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ HttpServletResponse API&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HTTP Response인 요청과 관련된 작업을 처리하는 핵심 API&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클래스가 아닌 인터페이스(규격)으로 제공&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 서블릿의 응답처리 : html 형식으로 응답처리&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) response.setContentType(&quot;text/html;charset=UTF-8&quot;)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 브라우저에게 처리할 데이터의 MIME 타입을 알려주는 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) response.getWriter( )&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 응답처리 출력을 위한 메소드(자바 I/O기술 이용)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 문자 데이터를 처리하기 위해서는 PrintWriter를 이용하고,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 바이너리(binary) 데이터를 위해서 는 ServletOutputStream 클래스를 사용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ HttpServlet API&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 서블릿을 구현하기 위한 핵심 API&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상클래스로 제공&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;476&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBjogP/btq9pCRouAs/kBUbU4P7fn4wRKBAhXcBwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBjogP/btq9pCRouAs/kBUbU4P7fn4wRKBAhXcBwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBjogP/btq9pCRouAs/kBUbU4P7fn4wRKBAhXcBwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBjogP%2Fbtq9pCRouAs%2FkBUbU4P7fn4wRKBAhXcBwk%2Fimg.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;476&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;※ 상위-&amp;nbsp;GenericServlet 추상클래스&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 초기화 작업에 필요한 init(ServletConfing)메서드&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 핵심 로직 작업에 필요한 service(request,respons) 메서드&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 자원 반납 처리작업에 필요한 destroy() 메서드&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 초기화 파라미터 작업에 필요한 getInitParameter(String) 메서드&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 서블릿명을 알 수 있는 getServletName() 메서드&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;※&amp;nbsp;하위-HttpServlet 추상클래스&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- HttpServletRequest와 HttpServletResponse 2개의 인자를 가진 doGet 또는 doPost 메서드&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;span&gt; LifeCycle 메소드&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 톰캣 컨테이너는 nit, service, destroy 3가지 메서드를 사용하여 서블릿 인스턴스를 관리&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;241&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgw5i3/btq9lntfZIF/xsQ0gK7rQQhVXjQpve1arK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgw5i3/btq9lntfZIF/xsQ0gK7rQQhVXjQpve1arK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgw5i3/btq9lntfZIF/xsQ0gK7rQQhVXjQpve1arK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdgw5i3%2Fbtq9lntfZIF%2FxsQ0gK7rQQhVXjQpve1arK%2Fimg.png&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;241&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) init 메소드(초기화 작업)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 웹 컨테이너에 의해 서블릿 인스턴스가 처음 생성될 때 단 한번 생성&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) service 메소드&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트가 요청할 때마다 호출&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트가 원하는 동적인 처리 작업 시 필요&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) destroy 메소드&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 서블릿 인스턴스가 웹 컨테이너에서 제거될 때 호출&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 초기화 작업을 반납처리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;※ 서블릿의 선처리 후처리 작업&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;@PostConstruct&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- init 메서드가 호출되기 전에 수행되는 선처리 작업 메서드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 반드시 리턴 타입은 void로 지정하고, 예외 클래스를 throws 할 수 없다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;@PreDestroy&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- destroy 메서드가 호출된 후에 수행되는 후처리 작업 메서드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 반드시 리턴 타입은 void로 지정하고, 예외 클래스를 throws 할 수 없다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/100</guid>
      <comments>https://rang22.tistory.com/100#entry100comment</comments>
      <pubDate>Mon, 5 Jul 2021 13:32:48 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 3. 서블릿(Servlet)이란?</title>
      <link>https://rang22.tistory.com/95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;350&quot; height=&quot;283&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cP8TH6/btq8NvZrBVM/8h7JLiqKi7I2dXK0g28wLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cP8TH6/btq8NvZrBVM/8h7JLiqKi7I2dXK0g28wLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cP8TH6/btq8NvZrBVM/8h7JLiqKi7I2dXK0g28wLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcP8TH6%2Fbtq8NvZrBVM%2F8h7JLiqKi7I2dXK0g28wLK%2Fimg.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;202&quot; width=&quot;350&quot; height=&quot;283&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ Servlet이란?&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 컨테이너에 의해 관리되며 클라이언트 요청에 의해&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 다양한 동적인 콘텐츠로 응답 가능한 자바 기반의 웹 컴포넌트&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 사용자 요청이 전달되면 코드로 이루어진 &lt;b&gt;Server Application을 처리하는 영역&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;◆ &lt;b&gt;Servlet의 특징&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트 요청에 의해 동적으로 실행된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트는 브라우저를 이용한 URL 지정을 통해 요청 가능하다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 서블릿의 응답 결과는 HTML 형식으로 서비스된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 이때, MVC 패턴을 적용하면 JSP에서 HTML 코드를 작성하게된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;nbsp;MVC 패턴의 Controller 역할로서 사용된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 서블릿은 웹 컨테이너에 의해 관리되며 자바 스레드로 동작한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자바 기반 웹 컴포넌트로 .java 확장자를 갖는다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 자바 기반으로서 갖는 특징&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;- 서블릿은 싱글톤 객체처럼 한번 생성되면 더이상 생성하지 않는다.(멀티쓰레드로 작업!)&lt;/b&gt;&lt;br /&gt;- 서블릿은 클래스 기반으로 부모클래스-HttpServlet를 무조건 상속받는다.&lt;br /&gt;- 서블릿 클래스는 무조건 매개변수 없는 public 접근제한자의 생성자만 갖는다.&lt;br /&gt;&amp;nbsp; (why? 서블릿 객체는 외부에서 컨테이너가 생성하기 때문에)&lt;br /&gt;- 서블릿 컨테이너에 의해 service 메소드가 호출된다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ URI mapping&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- URI : / Context Root(Path) - 경로 / Servlet의 호출 이름&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트가&amp;nbsp;요구하는&amp;nbsp;자원의&amp;nbsp;식별자(&amp;zwnj;indicator)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;-여러 개 지정 가능하며, 보안을 위해 물리적인 클래스의 이름과 맵핑주소를 분리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;방법 1) @WebServlet 어노테이션 사용 (서블릿 3.0대부터 제공)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;방법 2) web.xml파일에 &amp;lt;servlet&amp;gt; 태그와 &amp;lt;servlet-mapping&amp;gt; 태그를 사용하여 직접 등록&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ webapp이란?&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- web application으로 웹 어플리케이션들이 모여있는 폴더&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;- DocumentRoot : 정적/동적 문서들이 존재하는 폴더 (경로 : src/main/webapp)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;527&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci9RWO/btq8KcsYqQ7/LdUrK2boVUR0n7HUvVyiY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci9RWO/btq8KcsYqQ7/LdUrK2boVUR0n7HUvVyiY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci9RWO/btq8KcsYqQ7/LdUrK2boVUR0n7HUvVyiY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci9RWO%2Fbtq8KcsYqQ7%2FLdUrK2boVUR0n7HUvVyiY0%2Fimg.png&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;527&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;b&gt;src/main/java&lt;/b&gt; : Java 소스 파일들(*.java 형태)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;src/test/java&lt;/b&gt;&amp;nbsp;: Java Test 파일&lt;/li&gt;
&lt;li&gt;&lt;b&gt;resources&lt;/b&gt; : properties나 기타 xml 설정파일&lt;br /&gt;(ex. datapase.properties, log4j.properties, log4j.xml etc.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;webapp(Context-Root)&lt;/b&gt; : Web application 관련 파일&lt;br /&gt;&lt;b&gt;1.&amp;nbsp;static&lt;/b&gt; : css, img, js 등 정적 컨텐츠 관련 파일&lt;br /&gt;&lt;b&gt;2. WEB-INF&lt;/b&gt; : 웹 어플리케이션 설정정보 및 jsp 파일&lt;br /&gt;(context.xml, decorators.xml, infrastructure.xml, sitemesh.xml, web.xml 등)&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2-1. lib&lt;/b&gt; : 라이브러리 폴더(*.jar 형태)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;&amp;nbsp;2-2. Classes&lt;/b&gt; : 클래스파일( *.class 형태)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;2-3. Web.xml&lt;/b&gt; : 설정파일, 서블릿 등록&lt;/li&gt;
&lt;li&gt;&lt;b&gt;target&lt;/b&gt; : 빌드된 서블릿 파일 출력 (*.class형태)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;pom.xml&lt;/b&gt; : Maven 관련 파일 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ webapps 가 웹서버 최상위폴더 '/ (Root)' 이다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ web.xml&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 설정파일을 의미하는 배치설명자&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;- 런타임할 WAS에 배치하는 것을 설정하는 배치설명자&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;- 서블릿 명과 서블릿 맵핑명, 초기 파라미터 및 필터 기능과 관련된 정보 파악 가능&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;※&amp;nbsp;&amp;nbsp;DD(Deployment&amp;nbsp;Descriptor)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- web.xml를 다른 방식으로 보여주는 것&amp;nbsp; &lt;br /&gt;-&amp;nbsp;우리가&amp;nbsp;만든&amp;nbsp;웹&amp;nbsp;어플리케이션들이&amp;nbsp;담겨있는&amp;nbsp;것(서블릿,&amp;nbsp;JSP&amp;nbsp;등)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/95</guid>
      <comments>https://rang22.tistory.com/95#entry95comment</comments>
      <pubDate>Sun, 4 Jul 2021 22:22:08 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 14-1. 컬렉션 프레임워크 - List 컬렉션</title>
      <link>https://rang22.tistory.com/94</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/560E9/btq86fOUUlF/cRHkdxvvH21kdHNYjec6tK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/560E9/btq86fOUUlF/cRHkdxvvH21kdHNYjec6tK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/560E9/btq86fOUUlF/cRHkdxvvH21kdHNYjec6tK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F560E9%2Fbtq86fOUUlF%2FcRHkdxvvH21kdHNYjec6tK%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 컬렉션 프레임워크(Collection Framwork)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- C.R.U.D를&amp;nbsp; 효율적으로 하기 위해 제공되는 컬렉션 라이브러리&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스 이용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Java.util 패키지에 포함&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 컬렉션 프레임워크의 주요 인터페이스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;332&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wtIfg/btq83jedEJc/1Z57CTLZ6FLBNto3H0nwkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wtIfg/btq83jedEJc/1Z57CTLZ6FLBNto3H0nwkK/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wtIfg/btq83jedEJc/1Z57CTLZ6FLBNto3H0nwkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwtIfg%2Fbtq83jedEJc%2F1Z57CTLZ6FLBNto3H0nwkK%2Fimg.png&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;332&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) List 계열 - ArrayList, Vector, LinkedList&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 순서를 유지하고 저장&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 중복 저장이 가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) Set 계열 - HashSet, TreeSet&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 순서를 유지하지 않고 저장&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 중복 저장 불가&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) Map 계열 - HashMap, Hashtable, TreeMap, Properties&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키와 값의 쌍으로 저장&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 키는 중복 저장 불가/ 값은 상관없음&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ List 컬렉션&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- List&amp;lt;T&amp;gt; 인터페이스의 성질 : 순서를 보장하고 객체의 중복을 허용한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;215&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSagjY/btq86f2vBI8/gCxPZYBdUnUceJihGKzc7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSagjY/btq86f2vBI8/gCxPZYBdUnUceJihGKzc7K/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSagjY/btq86f2vBI8/gCxPZYBdUnUceJihGKzc7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSagjY%2Fbtq86f2vBI8%2FgCxPZYBdUnUceJihGKzc7K%2Fimg.png&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;215&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;1) ArrayList&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 초기용량 : 10 (따로 지정 가능)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 저장 용량을 초과하여 객체가 들어오면 자동적으로 늘어남.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체 제거가 가능(&lt;i&gt;단, 삭제된 인덱스 뒤부터 마지막 인덱스까지 모두 앞으로 1씩 당겨짐&lt;/i&gt;)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;132&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEqsz9/btq81TsF74I/KkGwQ1aBf26uQAKk3QYu41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEqsz9/btq81TsF74I/KkGwQ1aBf26uQAKk3QYu41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEqsz9/btq81TsF74I/KkGwQ1aBf26uQAKk3QYu41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEqsz9%2Fbtq81TsF74I%2FKkGwQ1aBf26uQAKk3QYu41%2Fimg.png&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;132&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 배열의 Helper class :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Arrays&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Arrays의 메소드를 활용하여 다양한 기능(asList(), sort() 등)을 지원 받자!!!!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;2) Vector&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;u&gt;내부 구현은 &amp;nbsp;ArrayList와 동일&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Thread synchronization(스레드 동기화)가 가능하여&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 복수의 Thread가 동시에 접근하여 객체를 추가/삭제하여 안전하게 조작 가능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;3) LinkedList&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인접 참조를 링크하여 체인처럼 관리&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;211&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dorIsA/btq873HnFoE/8q9ImXsQnImcPSvavveWbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dorIsA/btq873HnFoE/8q9ImXsQnImcPSvavveWbk/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dorIsA/btq873HnFoE/8q9ImXsQnImcPSvavveWbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdorIsA%2Fbtq873HnFoE%2F8q9ImXsQnImcPSvavveWbk%2Fimg.png&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;211&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ ArrayList와 LinkedList 비교&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체 추가/제거 빈번하다면 LinkedList 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체 검색 및 순차적 객체 추가는 ArrayList 혹은 배열 사용&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;순차적으로 추가/제거&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;중간에 추가/제거&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;검색&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;&lt;b&gt;ArrayList&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;빠르다&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;느리다&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;빠르다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;&lt;b&gt;LinkedList&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;느리다&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;빠르다&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center;&quot;&gt;느리다&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ List 컬렉션의 주요 메소드&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;309&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cr0Ycf/btq85DiheIL/DrGO53k17kKJq6EYuDWtPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cr0Ycf/btq85DiheIL/DrGO53k17kKJq6EYuDWtPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cr0Ycf/btq85DiheIL/DrGO53k17kKJq6EYuDWtPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcr0Ycf%2Fbtq85DiheIL%2FDrGO53k17kKJq6EYuDWtPk%2Fimg.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;309&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ List의 전체 요소를 순회(traverse)하는 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;46&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;47&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;ArrayListExam&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;list&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;ArrayList&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;Stirng_1&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;Stirng_2&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;Stirng_3&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;Stirng_4&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.&lt;span style=&quot;color: #0099cc;&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;Stirng_5&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//-----------------------------------------------------//&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;리스트의 전체 요소를 순회하는 방법들&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//-----------------------------------------------------//&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//1. method : 직접 for문과 리스트의 크기를 이용하여 순회(traverse)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #0099cc;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #308ce5;&quot;&gt;0&lt;/span&gt;&amp;nbsp;;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;list.size();&amp;nbsp;i&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//전체&amp;nbsp;리스트의&amp;nbsp;요소&amp;nbsp;순&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&amp;nbsp;str&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;list.get(i);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//해당&amp;nbsp;인덱스&amp;nbsp;번호의&amp;nbsp;구슬(객체)&amp;nbsp;얻기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(str);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//Classical&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;======================&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//2.&amp;nbsp;method&amp;nbsp;:&amp;nbsp;enhanced&amp;nbsp;for문을&amp;nbsp;이용하는&amp;nbsp;방법(단,&amp;nbsp;인덱스&amp;nbsp;번호가&amp;nbsp;필요없을&amp;nbsp;때)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #0099cc;&quot;&gt;String&lt;/span&gt;&amp;nbsp;s&amp;nbsp;:&amp;nbsp;list)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//전체&amp;nbsp;리스트의&amp;nbsp;요소&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(s);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//enhanced&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;======================&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//3-1. method : List.forEach() 최종처리 메소드를 이용한 순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//void&amp;nbsp;accept(T&amp;nbsp;t);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.forEach(t&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;log.info(t));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//람다식을 구현하여 요소 출력&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #993333;&quot;&gt;&quot;======================&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//3-2.&amp;nbsp;method&amp;nbsp;:&amp;nbsp;List.forEach()&amp;nbsp;최소처리&amp;nbsp;메소드를&amp;nbsp;이용한&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list.forEach(log::info);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #999999;&quot;&gt;//메소드&amp;nbsp;참조를&amp;nbsp;이용하여&amp;nbsp;요소&amp;nbsp;순회&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//-----------------------------------------------------//&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5text-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/94</guid>
      <comments>https://rang22.tistory.com/94#entry94comment</comments>
      <pubDate>Sun, 4 Jul 2021 21:14:16 +0900</pubDate>
    </item>
    <item>
      <title>[SQL]</title>
      <link>https://rang22.tistory.com/91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;/p&gt;</description>
      <category>DevOps/DB-데이터베이스설계</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/91</guid>
      <comments>https://rang22.tistory.com/91#entry91comment</comments>
      <pubDate>Fri, 2 Jul 2021 19:36:45 +0900</pubDate>
    </item>
    <item>
      <title>[SQL]</title>
      <link>https://rang22.tistory.com/90</link>
      <description></description>
      <category>DevOps/DB-데이터베이스설계</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/90</guid>
      <comments>https://rang22.tistory.com/90#entry90comment</comments>
      <pubDate>Thu, 1 Jul 2021 21:39:39 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] 데이터베이스(Data Base)란?</title>
      <link>https://rang22.tistory.com/89</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 데이터베이스(Data&amp;nbsp;Base)란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 데이터의 집합&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 단순히 통합이 아닌, 논리적인 관계에 따라 연관시키고 구조화함으로써 효율적으로 관리!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 데이터베이스의 특징&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 공유해서 사용되는 공용데이터&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 여러 사용자들이 공유하여 사용할 목적을 지님!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 통합데이터&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 데이터의 통합으로 효율적인 데이터 관리 가능!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 영속성데이터&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 중요하게 관리되어야 하는 데이터가 삭제되지 않고 보존되도록 관리!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 운영/관리 데이터&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 단순 데이터의 집합이 아닌, 실제로 유용하게 사용할 수 있는 명확한 데이터를 의미!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 데이터베이스의 관리 시스템(DBMS)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DataBase Management System&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 데이터를 효율적으로 저장하고 관리/검색하기 위한 소프트웨어&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 데이터베이스의 중재자로서 응용프로그램들이 데이터베이스를 공유하여 사용하도록 관리!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;198&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KKiRo/btq8Bmg7sjY/F0vP61HoJOkWa8kZdjLl1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KKiRo/btq8Bmg7sjY/F0vP61HoJOkWa8kZdjLl1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KKiRo/btq8Bmg7sjY/F0vP61HoJOkWa8kZdjLl1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKKiRo%2Fbtq8Bmg7sjY%2FF0vP61HoJOkWa8kZdjLl1K%2Fimg.png&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;198&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 관계형 데이터베이스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DBMS가 효율적으로 데이터를 관리하기 위해 사용되는 모델이자 방법론&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 2차원 테이블 형태로 데이터를 관리!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ SQL(Structured Query Language)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구조화된 언어로 일정한 규칙과 패턴에 맞게 조건들을 나열하여 결과를 얻을 수 있다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ SQL 문장의 종류&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DQL(질의어) : SELECT문을 사용하여 데이터 검색 시 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DML(데이터 조작어) : 데이터를 조작하기 위해 사용(INSERT, UPDATE, DELETE, MERGR)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DDL(데이터 정의어) : 데이터베이스에서 사용가능한 객체를 생성할 때 사용(CREAT, ALTER, DROP...)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- TCL(트랜잭션 처리어) : 트랜잭션을 처리하기 위해 사용(ROLLBACK, COMMIT...)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- DCL(데이터 제어어) : 저장된 데이터를 보호하기 위한 권한부여에 사용(GRANT, REVOKE..)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;384&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ekkAFg/btq8A84vQcw/6PacjBkK72Sdy4m4eipqJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ekkAFg/btq8A84vQcw/6PacjBkK72Sdy4m4eipqJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ekkAFg/btq8A84vQcw/6PacjBkK72Sdy4m4eipqJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FekkAFg%2Fbtq8A84vQcw%2F6PacjBkK72Sdy4m4eipqJk%2Fimg.png&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;384&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;SQL 언어는 DBMS를 만든 회사마다 자체적으로 추가된 문법이 존재하기도 하지만&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공통적으로 사용가능한 ANSI SQL문이 제공되기 때문에 접근성이 쉽다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;앞으로 SQL 언어에 대해 정리해보자!&lt;/h4&gt;</description>
      <category>DevOps/DB-데이터베이스설계</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/89</guid>
      <comments>https://rang22.tistory.com/89#entry89comment</comments>
      <pubDate>Thu, 1 Jul 2021 21:34:17 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 13-3. 람다식 - 디폴트 메소드</title>
      <link>https://rang22.tistory.com/88</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt5G6X/btq872VQMNk/pQBeUhIdEXot4Q2kfUNtAk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt5G6X/btq872VQMNk/pQBeUhIdEXot4Q2kfUNtAk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt5G6X/btq872VQMNk/pQBeUhIdEXot4Q2kfUNtAk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt5G6X%2Fbtq872VQMNk%2FpQBeUhIdEXot4Q2kfUNtAk%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식의 디폴트 메소드 : andThen() 과 compose()&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;함수적 인터페이스가 가지있는 디폴트 메소드가 존재한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;디폴트 메소드를 통해 두 개의 함수적 인터페이스를 순차적으로 연결하고 실행할 수 있는데,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;실행 과정에서 첫 번째 리턴값을 두 번째 매개값으로 제공하여 최종 결과값을 리턴&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) andThen()&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;68&quot; width=&quot;550&quot; height=&quot;73&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mh9Yl/btq85eJF3pc/8elm6aGCFJmkO94RKOvkx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mh9Yl/btq85eJF3pc/8elm6aGCFJmkO94RKOvkx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mh9Yl/btq85eJF3pc/8elm6aGCFJmkO94RKOvkx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMh9Yl%2Fbtq85eJF3pc%2F8elm6aGCFJmkO94RKOvkx1%2Fimg.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;68&quot; width=&quot;550&quot; height=&quot;73&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;240&quot; width=&quot;550&quot; height=&quot;228&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccXFBj/btq84KIQ7ux/8U6MqCQj4jEeNP3CKCuWr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccXFBj/btq84KIQ7ux/8U6MqCQj4jEeNP3CKCuWr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccXFBj/btq84KIQ7ux/8U6MqCQj4jEeNP3CKCuWr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccXFBj%2Fbtq84KIQ7ux%2F8U6MqCQj4jEeNP3CKCuWr0%2Fimg.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;240&quot; width=&quot;550&quot; height=&quot;228&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) compose()&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;68&quot; width=&quot;550&quot; height=&quot;73&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LhmIx/btq806sdQX5/d1jdbKZSr7v0qMXWXFJH1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LhmIx/btq806sdQX5/d1jdbKZSr7v0qMXWXFJH1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LhmIx/btq806sdQX5/d1jdbKZSr7v0qMXWXFJH1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLhmIx%2Fbtq806sdQX5%2Fd1jdbKZSr7v0qMXWXFJH1K%2Fimg.png&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;68&quot; width=&quot;550&quot; height=&quot;73&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;247&quot; width=&quot;550&quot; height=&quot;232&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r8QEf/btq84g9je97/ioF2adxDjtcY2Snl9Id1ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r8QEf/btq84g9je97/ioF2adxDjtcY2Snl9Id1ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r8QEf/btq84g9je97/ioF2adxDjtcY2Snl9Id1ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr8QEf%2Fbtq84g9je97%2FioF2adxDjtcY2Snl9Id1ZK%2Fimg.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;247&quot; width=&quot;550&quot; height=&quot;232&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;427&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NCBTe/btq85DCu4cm/sP3xKl6uE12jyqVh7fFY0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NCBTe/btq85DCu4cm/sP3xKl6uE12jyqVh7fFY0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NCBTe/btq85DCu4cm/sP3xKl6uE12jyqVh7fFY0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNCBTe%2Fbtq85DCu4cm%2FsP3xKl6uE12jyqVh7fFY0k%2Fimg.png&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;427&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;106&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAz3Ad/btq83jkZnHj/wuonXt3FD3XrfuoU26Njak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAz3Ad/btq83jkZnHj/wuonXt3FD3XrfuoU26Njak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAz3Ad/btq83jkZnHj/wuonXt3FD3XrfuoU26Njak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAz3Ad%2Fbtq83jkZnHj%2FwuonXt3FD3XrfuoU26Njak%2Fimg.png&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;106&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 함수적 인터페이스의 순차적 연결&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Consumer 의 순차적 연결&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;: 처리 결과를 리턴하지 않으며, 호출되는 디폴트 메소드의 따라&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; 함수적 인터페이스의 호출 순서만 정해짐&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Operator과 Function의 순차적 연결&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;: 먼저 실행한 함수적 인터페이스의 결과를 다음 함수적 인터페이스의&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; 매개값으로 넘겨주고, 최종 처리 결과를 리턴&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식의 디폴트 메소드 : and(), or(), negate()&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #b1ae6b;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Predicate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;함수적 인터페이스의 디폴트 메소드&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #b1ae6b;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;and() (&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;와 대응) : &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Predicate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가 모두 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 리턴이면 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최종적으로 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 리턴&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #b1ae6b;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;or() (&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 와 대응) :&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #adb9ad;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Predicate &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;중 하나만 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 리턴이면 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최종적으로 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 리턴&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #b1ae6b;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;negate() (&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;! &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;와 대응) : &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Predicate&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 결과가 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이면 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;false, false&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이면 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 리턴&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;188&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0VaEa/btq9lmgHZKi/IMAxEglpW3wPrHMlCuLl80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0VaEa/btq9lmgHZKi/IMAxEglpW3wPrHMlCuLl80/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0VaEa/btq9lmgHZKi/IMAxEglpW3wPrHMlCuLl80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0VaEa%2Fbtq9lmgHZKi%2FIMAxEglpW3wPrHMlCuLl80%2Fimg.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;188&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; 람다식의 정적 메소드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;isEqual&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;정적 메소드&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;minBy&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;() 정적 메소드&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;maxBy&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;() 정적 메소드&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 메소드 참조&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드 참조를 통해 매개변수의 정보 및 리턴타입을 알아낸다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드 참조는 람다식에서 불필요한 매개변수를 제거하는 것이 목적&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (종종 기존메소드를 단순하게 호출만하는 경우로 존재)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 정적 메소드와 인스턴스 참조&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 정적 메소드 참조 :&amp;nbsp; 클래스 :: 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인스턴스 메소드 참조 : 참조변수 :: 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 매개변수의 메소드 참조&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;39&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYsbB9/btq9uA5GW11/Nk9ystzAzPHHyQHhA5YPqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYsbB9/btq9uA5GW11/Nk9ystzAzPHHyQHhA5YPqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYsbB9/btq9uA5GW11/Nk9ystzAzPHHyQHhA5YPqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYsbB9%2Fbtq9uA5GW11%2FNk9ystzAzPHHyQHhA5YPqK%2Fimg.png&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;39&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 생성자 참조&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cy1keN/btq9kRhyghE/vMuuzHueagKsmaUc3K3vZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cy1keN/btq9kRhyghE/vMuuzHueagKsmaUc3K3vZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cy1keN/btq9kRhyghE/vMuuzHueagKsmaUc3K3vZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcy1keN%2Fbtq9kRhyghE%2FvMuuzHueagKsmaUc3K3vZ1%2Fimg.png&quot; data-origin-width=&quot;539&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/88</guid>
      <comments>https://rang22.tistory.com/88#entry88comment</comments>
      <pubDate>Thu, 1 Jul 2021 08:47:57 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 13-2. 람다식 - 표준 API의 함수적 인터페이스</title>
      <link>https://rang22.tistory.com/86</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdlVf9/btq8JuzhYbV/toZ8ys3oS7GHO3kfLONwRk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdlVf9/btq8JuzhYbV/toZ8ys3oS7GHO3kfLONwRk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdlVf9/btq8JuzhYbV/toZ8ys3oS7GHO3kfLONwRk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdlVf9%2Fbtq8JuzhYbV%2FtoZ8ys3oS7GHO3kfLONwRk%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;자바 8부터 표준 API로 제공되는 함수적 인터페이스는 &lt;span style=&quot;color: #000000;&quot;&gt;java.util.function&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;패키지로 제공&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제공된 함수적 인터페이스의 목적은 &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;메소드 또는 생성자의 매개 타입으로 사용되어 람다식을 대입할 수 있도록 하기 위함이다.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이를 통해 &lt;b&gt;&lt;u&gt;비지니스 로직을 더욱 빠르게 구현&lt;/u&gt;&lt;/b&gt;할 수 있다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&lt;span&gt; Consumer 함수적 인터페이스&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개값만 있고 리턴값이 없는 추상메소드를 가짐.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;전달인자로 받은 &lt;b&gt;매개값을 소비만하는/리턴값이 없는 로직에 사용&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Consumer 인터페이스는 특정 객체를 소비합니다. 소비한다는 것이 뭘까요? 바로, 매개 변수를 사용만 하고 리턴을 하지 않는다는 뜻입니다. 그래서 추상 메소드의 리턴 형태가 void가 됩니다. 그리고 모두 추상 메소드로 accpet()를 가지고 있기 때문에 인터페이스를 사용하기 위해서는 이를 정의해 주어야 합니다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 매개 변수의 타입과 수에 따라 분류&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W0Jed/btq8OrQL2mP/HlExuEEpCvumSG256mk46K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W0Jed/btq8OrQL2mP/HlExuEEpCvumSG256mk46K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W0Jed/btq8OrQL2mP/HlExuEEpCvumSG256mk46K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW0Jed%2Fbtq8OrQL2mP%2FHlExuEEpCvumSG256mk46K%2Fimg.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Supplier 함수적 인터페이스&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개값은 없고 리턴값만 있는 추상메소드를 가짐.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Supplier 인터페이스는 특정 값을 리턴합니다. 이때, 주의하실 점이 이 인터페이스는 매개변수를 갖지 않습니다. 따라서 &lt;b&gt;람다 바디 내에서 변수를 정의한 후 값을 리턴&lt;/b&gt;하도록 설계해야합니다. 추상 메소드는 공통적으로 getXXX() 형태이며, 이를 정의해 주어야 인터페이스를 사용할 수 있습니다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※&lt;span&gt; 리턴타입에 따라 분류&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;231&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv9Q1s/btq8W56kjJj/kiNOQC0r6kVT4Wk6kAE7qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv9Q1s/btq8W56kjJj/kiNOQC0r6kVT4Wk6kAE7qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv9Q1s/btq8W56kjJj/kiNOQC0r6kVT4Wk6kAE7qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv9Q1s%2Fbtq8W56kjJj%2FkiNOQC0r6kVT4Wk6kAE7qk%2Fimg.png&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;231&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Function 함수적 인터페이스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개값과 리턴값이 모두 있는 추상 메소드를 가짐.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 주로 &lt;b&gt;매개값을 리턴값으로 매핑(타입변환)할 경우 사용&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Function 함수적 인터페이스는 매개값을 리턴값으로 매핑(타입 변환)합니다. 추상 메소드는 공통적으로 applyXXX() 형태이며, 이를 정의해 주어야 인터페이스를 사용할 수 있습니다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 매개 변수 타입과 리턴 타입에 따라 분류&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;390&quot; width=&quot;805&quot; height=&quot;388&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X2lJt/btq8W7ShMeT/RRWhWZHu3arjKx7aZBn17K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X2lJt/btq8W7ShMeT/RRWhWZHu3arjKx7aZBn17K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X2lJt/btq8W7ShMeT/RRWhWZHu3arjKx7aZBn17K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX2lJt%2Fbtq8W7ShMeT%2FRRWhWZHu3arjKx7aZBn17K%2Fimg.png&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;390&quot; width=&quot;805&quot; height=&quot;388&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Operator 함수적 인터페이스&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개값과 리턴값이 모두 있는 추상 메소드를 가짐.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 주로 &lt;b&gt;매개값을 연산하고 그 결과를 리턴&lt;/b&gt;할 경우에 사용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Operator 함수적 인터페이스는 Function과 동일하게 매개 변수와 리턴값이 있는 applyXXX() 메소드를 가지고 있습니다. 하지만 이 메소드들은 매개값을 리턴값으로 매핑하는 역할보다는 매개값을 이용해서 연산을 수행한 후 동일한 타입으로 리턴값을 제공하는 역할을 합니다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 매개 변수 타입과 수에 따라 분류&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;282&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nAHi8/btq8YXaQhu0/Rw2bjCOsk1fhzcgTewU3y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nAHi8/btq8YXaQhu0/Rw2bjCOsk1fhzcgTewU3y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nAHi8/btq8YXaQhu0/Rw2bjCOsk1fhzcgTewU3y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnAHi8%2Fbtq8YXaQhu0%2FRw2bjCOsk1fhzcgTewU3y1%2Fimg.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;282&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ &lt;span&gt;&amp;nbsp;Predicate 함수적 인터페이스&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개값 조사하여 &lt;b&gt;true 또는 false를 리턴할 때 사용(필터링 목적!)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;따라서 리턴타입은 boolean이다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Predicate 인터페이스는 매개 변수와 boolean 리턴값이 있는 test() 추상 메소드를 가지고 있습니다. 이 메소드는 매개값을 조사해서 true 또는 false를 리턴하는 역할을 합니다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ 매개변수 타입과 수에 따라 분류&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;208&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4Ltak/btq8ZPiLxiQ/QjkURw6cTilF5ZXrp6qgy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4Ltak/btq8ZPiLxiQ/QjkURw6cTilF5ZXrp6qgy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4Ltak/btq8ZPiLxiQ/QjkURw6cTilF5ZXrp6qgy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Ltak%2Fbtq8ZPiLxiQ%2FQjkURw6cTilF5ZXrp6qgy0%2Fimg.png&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;208&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;똑같은 메소드이름일지라도,&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;익명구현객체에서 오버로딩된 내용&lt;span style=&quot;color: #000000;&quot;&gt;에 따라&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;모두 다른 기능으로 사용할 수 있다!!!&lt;br /&gt;&lt;br /&gt;결국 익명구현객체의 역할이 중요하다!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[참고]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://steady-coding.tistory.com/308&quot;&gt;https://steady-coding.tistory.com/308&lt;/a&gt;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/86</guid>
      <comments>https://rang22.tistory.com/86#entry86comment</comments>
      <pubDate>Tue, 29 Jun 2021 11:49:27 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 13-1. 람다식(Lambda Expressions)</title>
      <link>https://rang22.tistory.com/83</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zYrX3/btq8BCkmffT/Wj5TxlDDPVOaDJEUplfhKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zYrX3/btq8BCkmffT/Wj5TxlDDPVOaDJEUplfhKK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zYrX3/btq8BCkmffT/Wj5TxlDDPVOaDJEUplfhKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzYrX3%2Fbtq8BCkmffT%2FWj5TxlDDPVOaDJEUplfhKK%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식(Lambda Expressions)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 익명 함수(anonymous function)을 생성하기 위한 식&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;span&gt;※ 람다식을 이용함으로써 매개변수를 가진 코드 블록(추상메소드)를&lt;/span&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;구현하여 익명 구현 객체를 생성한다!!!&lt;/span&gt;&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식(Lambda Expressions)의 장점&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;-&amp;nbsp; 코드가 매우 간결해진다 (간결한 실행문에 적용하자!!).&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- 컬렉션 요소(대용량 데이터)를 필터링 또는 맵핑하여 집계하는 데 수월해진다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- 람다식을&lt;b&gt; 함수적 인터페이스(Functional Interface)&lt;/b&gt;의 익명 구현 객체로 취급한다.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;※&lt;span&gt; 타겟 타입이란?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 람다식이 구현할 함수적 인터페이스 =&amp;gt; &quot;타겟 타입&quot;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;(대입되는 인터페이스(타겟타입)에 따라 구현 내용이 달라진다!!)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;※ 함수적 인터페이스란?&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- 오직 단 하나의 추상 메소드를 가진 인터페이스&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- @FunctionalInterface&amp;nbsp; 어노테이션이 붙어있는 인터페이스(안 붙어있을 수도 있다!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터페이스에 올 수 있는 멤버 4가지 중에, 추상메소드 이외에 나머지 멤버는 영향을 주지 않는다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식 기본 문법&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;66&quot; width=&quot;500&quot; height=&quot;61&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpcL2b/btq8RUw0MZN/iX1leX4IkfeGrhXK5T84Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpcL2b/btq8RUw0MZN/iX1leX4IkfeGrhXK5T84Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpcL2b/btq8RUw0MZN/iX1leX4IkfeGrhXK5T84Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpcL2b%2Fbtq8RUw0MZN%2FiX1leX4IkfeGrhXK5T84Fk%2Fimg.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;66&quot; width=&quot;500&quot; height=&quot;61&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Lvalue : 타겟타입의 인터페이스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Rvalue : ( 매개변수 ) -&amp;gt; { 실행내용 } ;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;46&quot; width=&quot;400&quot; height=&quot;51&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLBJ1k/btq8L7rmlXq/cVKjjpe8DbJLm9jwZGqvsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLBJ1k/btq8L7rmlXq/cVKjjpe8DbJLm9jwZGqvsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLBJ1k/btq8L7rmlXq/cVKjjpe8DbJLm9jwZGqvsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLBJ1k%2Fbtq8L7rmlXq%2FcVKjjpe8DbJLm9jwZGqvsK%2Fimg.png&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;46&quot; width=&quot;400&quot; height=&quot;51&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 소괄호 ( ) : 추상메소드의 매개변수(개수, 타입 동일) 선언블록&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 중괄호 { } : 추상메소드의 실행블록(구현부)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 람다식 작성방법 및 생략조건&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1) 매개변수와 리턴값이 없는 람다식&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;39&quot; width=&quot;400&quot; height=&quot;45&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sgRCw/btq8RTyb40I/MARxwJCPmt2ugIqmUD2xC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sgRCw/btq8RTyb40I/MARxwJCPmt2ugIqmUD2xC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sgRCw/btq8RTyb40I/MARxwJCPmt2ugIqmUD2xC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsgRCw%2Fbtq8RTyb40I%2FMARxwJCPmt2ugIqmUD2xC0%2Fimg.png&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;39&quot; width=&quot;400&quot; height=&quot;45&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2) 매개변수가 있는 람다식&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxeU7Q/btq8RUKCnYz/ftfHWevcOpRQln5F9C97KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxeU7Q/btq8RUKCnYz/ftfHWevcOpRQln5F9C97KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxeU7Q/btq8RUKCnYz/ftfHWevcOpRQln5F9C97KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxeU7Q%2Fbtq8RUKCnYz%2FftfHWevcOpRQln5F9C97KK%2Fimg.png&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) 리턴값이 있는 람다식&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhvHJI/btq8SA6c3Iu/woXGAcsOU28KzimkQ29Gak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhvHJI/btq8SA6c3Iu/woXGAcsOU28KzimkQ29Gak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhvHJI/btq8SA6c3Iu/woXGAcsOU28KzimkQ29Gak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhvHJI%2Fbtq8SA6c3Iu%2FwoXGAcsOU28KzimkQ29Gak%2Fimg.png&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;38&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 람다식 작성 시 생략 조건&lt;/b&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;b&gt;전제조&lt;/b&gt;&lt;b&gt;건&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;- 타겟타입의 &lt;b&gt;추상메소드의 시그니처&lt;/b&gt;를 알고 있어야 한다!!!&lt;/i&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 런타임 시&lt;span&gt;&amp;nbsp;&lt;/span&gt;매개변수의 타입은 대입값에 따라 타입추론하기 때문에 생략 OK&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하나의 매개 변수만 있을 경우 소괄호( ) 생략 OK&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하나의 실행문만 있는 경우 중괄호{ } 생략 OK&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 중괄호{ }에 return문만 있는 경우 생략&lt;span&gt;&amp;nbsp;&lt;/span&gt;OK&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;u&gt;매개변수가 없더라도 소괄호(&amp;nbsp; ) 생략 불가&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; 클래스 멤버와 로컬변수 사용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;클래스의 멤버 사용&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 람다식 실행블록에는 클래스의 멤버인 필드와 메소드를 제약 없이 사용가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;람다식 실행블록 내&lt;/b&gt;에서 &lt;u&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&quot;this&quot;&lt;/b&gt;&lt;/span&gt;는 람다식을 실행한 객체(클래스)의 참조&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (따라서, 람다식 내 'this'는 람다식이 만들어내는 '익명구현객체'의 주소를 가리키지 못한다!!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;446&quot; width=&quot;750&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kFrHt/btq8SAUcIn1/gf1P5kaUUNUkzRbhNICmf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kFrHt/btq8SAUcIn1/gf1P5kaUUNUkzRbhNICmf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kFrHt/btq8SAUcIn1/gf1P5kaUUNUkzRbhNICmf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkFrHt%2Fbtq8SAUcIn1%2Fgf1P5kaUUNUkzRbhNICmf1%2Fimg.png&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;446&quot; width=&quot;750&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;로컬 변수 사용&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 람다식은 함수적 인터페이스의 익명 구현 객체 생성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 람다식에서 사용하는 외부 로컬 변수는 final 특성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;364&quot; width=&quot;600&quot; height=&quot;369&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqKK4l/btq8RTGwwaN/hNIDqgrqTh4P9n0aBQwYz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqKK4l/btq8RTGwwaN/hNIDqgrqTh4P9n0aBQwYz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqKK4l/btq8RTGwwaN/hNIDqgrqTh4P9n0aBQwYz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqKK4l%2Fbtq8RTGwwaN%2FhNIDqgrqTh4P9n0aBQwYz1%2Fimg.png&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;364&quot; width=&quot;600&quot; height=&quot;369&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/83</guid>
      <comments>https://rang22.tistory.com/83#entry83comment</comments>
      <pubDate>Mon, 28 Jun 2021 14:51:58 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 12. 제네릭(Generic)</title>
      <link>https://rang22.tistory.com/82</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; width=&quot;300&quot; height=&quot;300&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crlrLa/btq8ui6iGZR/uwNE5apbdDEIBRqI1hHCTk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crlrLa/btq8ui6iGZR/uwNE5apbdDEIBRqI1hHCTk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crlrLa/btq8ui6iGZR/uwNE5apbdDEIBRqI1hHCTk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrlrLa%2Fbtq8ui6iGZR%2FuwNE5apbdDEIBRqI1hHCTk%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; width=&quot;300&quot; height=&quot;300&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 제네릭(Generic) 타입이란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입을 파라미터로 가지는 클래스와 인터페이스, 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 선언 시 클래스 또는 인터페이스 이름 뒤에 '&amp;lt;&amp;gt;부호'를 붙이며,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; '&amp;lt;&amp;gt;' 사이에는 타입 파라미터가 위치.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;u&gt;개발코드에서 &lt;b&gt;구체적인 타입&lt;/b&gt;을 지정하여 제네릭타입을 사용&lt;/u&gt; ---&amp;gt; &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;타입의 일반화&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 타입 파라미터&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 대문자 알파벳 한 문자로 표현&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 왜 제네릭을 사용해야할까?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 컴파일 시 강한 타입 체크가 가능 ---&amp;gt; 잘못된 타입이 사용될 수 있는 문제를 제거&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(컴파일 시 제네릭 타입이 구체적인 타입으로 일괄 변환된다!!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입변환 제거 가능 ---&amp;gt; 프로그램 성능 효율적&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;104&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0El7O/btq8q1Y2mL2/aeE29TAQ5N5f1m0Tvo7bJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0El7O/btq8q1Y2mL2/aeE29TAQ5N5f1m0Tvo7bJ0/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0El7O/btq8q1Y2mL2/aeE29TAQ5N5f1m0Tvo7bJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0El7O%2Fbtq8q1Y2mL2%2FaeE29TAQ5N5f1m0Tvo7bJ0%2Fimg.png&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;104&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 제네릭 타입 사용 여부에 따른 비교&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) 클래스 생성 시 제네릭타입으로 선언하는 과정 비교&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클래스 선언할 때 타입 파라미터를 사용한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;372&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S31kX/btq8s7RANKV/j3vCUfVUyYCoOBaT0j2ASK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S31kX/btq8s7RANKV/j3vCUfVUyYCoOBaT0j2ASK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S31kX/btq8s7RANKV/j3vCUfVUyYCoOBaT0j2ASK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS31kX%2Fbtq8s7RANKV%2Fj3vCUfVUyYCoOBaT0j2ASK%2Fimg.png&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;372&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) 객체 생성 시, 제네릭타입 객체 생성/사용하는 과정 비교&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 컴파일 시 타입 파라미터가 구체적인 클래스로 변경된다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;678&quot; width=&quot;700&quot; height=&quot;647&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YjUji/btq8wmIEClz/WHmaVl7jS8tSlZqfIzi7I0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YjUji/btq8wmIEClz/WHmaVl7jS8tSlZqfIzi7I0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YjUji/btq8wmIEClz/WHmaVl7jS8tSlZqfIzi7I0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYjUji%2Fbtq8wmIEClz%2FWHmaVl7jS8tSlZqfIzi7I0%2Fimg.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;678&quot; width=&quot;700&quot; height=&quot;647&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 멀티 타입 파라미터&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 제네릭 타입은 두 개 이상의 타입 파라미터 사용 가능&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;285&quot; width=&quot;700&quot; height=&quot;236&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9LLRQ/btq8vgNPQGl/N0qKTDFiKjPszwXsI26si0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9LLRQ/btq8vgNPQGl/N0qKTDFiKjPszwXsI26si0/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9LLRQ/btq8vgNPQGl/N0qKTDFiKjPszwXsI26si0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9LLRQ%2Fbtq8vgNPQGl%2FN0qKTDFiKjPszwXsI26si0%2Fimg.png&quot; data-origin-width=&quot;846&quot; data-origin-height=&quot;285&quot; width=&quot;700&quot; height=&quot;236&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 제네릭 메소드&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 매개변수 타입과 리턴타입으로 타입 파라미터를 갖는 메소드&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 제네릭 메소드 선언 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;35&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J8Pu7/btq8v9v1Sku/ZkjwSl5rA4K8NiumvcKjK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J8Pu7/btq8v9v1Sku/ZkjwSl5rA4K8NiumvcKjK1/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J8Pu7/btq8v9v1Sku/ZkjwSl5rA4K8NiumvcKjK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ8Pu7%2Fbtq8v9v1Sku%2FZkjwSl5rA4K8NiumvcKjK1%2Fimg.png&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;35&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 앞에 '&amp;lt;&amp;gt;'기호를 추가하여 메소드에 사용될 타입파라미터를 기재&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- '&amp;lt;&amp;gt;'기호 안에 있는 &lt;u&gt;타입 파라미터는 &lt;b&gt;리턴 타입&lt;/b&gt;과 &lt;b&gt;매개 변수&lt;/b&gt;에 사용 가능&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 메소드 사용 시 구체적 타입으로 컴파일러가 바꿔줌!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 제네릭 메소드 호출 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 변수 = &amp;lt;구체적타입&amp;gt; 메소드명(매개값);&amp;nbsp; --&amp;gt; 명시적으로 구체적 타입 지정&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 리턴타입 변수 = 메소드명(매개값);&amp;nbsp; --&amp;gt; 매개값을 보고 구체적 타입을 추정&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (단, 멀티타입 파라미터 사용 시 결과값에 오류가 발생할 수도 있다!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;533&quot; width=&quot;500&quot; height=&quot;568&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMQZhm/btq8ydxfV3Q/KPKELgHG0w9G2avQ5ObRqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMQZhm/btq8ydxfV3Q/KPKELgHG0w9G2avQ5ObRqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMQZhm/btq8ydxfV3Q/KPKELgHG0w9G2avQ5ObRqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMQZhm%2Fbtq8ydxfV3Q%2FKPKELgHG0w9G2avQ5ObRqK%2Fimg.png&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;533&quot; width=&quot;500&quot; height=&quot;568&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;참고&amp;gt; 제네릭 타입의 배열은 어떻게 생성해야할까?&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;228&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ch4Ls3/btq8Bkjoreb/Z9G3EDa8ivXhGfKbBRKuKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ch4Ls3/btq8Bkjoreb/Z9G3EDa8ivXhGfKbBRKuKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ch4Ls3/btq8Bkjoreb/Z9G3EDa8ivXhGfKbBRKuKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fch4Ls3%2Fbtq8Bkjoreb%2FZ9G3EDa8ivXhGfKbBRKuKk%2Fimg.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;228&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;- 타입파라미터 즉, 제네릭타입의 배열은 직접 new 연산자로 생성이 불가능하다!&lt;br /&gt;&amp;nbsp; 따라서, 아래와 같은 순서로 생성해야 한다.&lt;br /&gt;&lt;br /&gt;(1) Object[] 타입의 배열을 먼저 생성한다.&lt;br /&gt;(2) (T[]) 강제 형변환하여 초기화 수행해야 한다.&lt;br /&gt;&lt;br /&gt;(+) . 매개변수를 통해 인자값으로 배열의 길이를 받도록 하자!!&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 제네릭 타입의 상속과 구현&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 제네릭타입을 부모클래스로 사용하는 경우, 타입파라미터는 자식클래스에도 기술!!&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 자식만의 타입 파라미터도 추가로 가질 수 있다!&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buQQRl/btq8DdjNdWz/h65cLck2sNEyZZujLnx92K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buQQRl/btq8DdjNdWz/h65cLck2sNEyZZujLnx92K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buQQRl/btq8DdjNdWz/h65cLck2sNEyZZujLnx92K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuQQRl%2Fbtq8DdjNdWz%2Fh65cLck2sNEyZZujLnx92K%2Fimg.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 제한된 타입 파라미터&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입 파라미터에 지정되는 구체적인 타입을 제한해야하는 경우 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입 파라미터를 대체할 구체적일 타입 지정 가능!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ HOW?&amp;nbsp;상속 및 구현 관계를 이용한 타입 제한&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;lt;T extends 상위타입&amp;gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;: 지정가능한 구체타입에는 해당 상위타입이거나 상위타입을 상속받은 하위타입으로 제한&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; (이 때, 상위타입의 멤버(필드, 메소드)들만 사용가능하다.)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xcPFq/btq8Fdi46Nw/K8WZBvEIhqRwXl1JxvnKT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xcPFq/btq8Fdi46Nw/K8WZBvEIhqRwXl1JxvnKT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xcPFq/btq8Fdi46Nw/K8WZBvEIhqRwXl1JxvnKT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxcPFq%2Fbtq8Fdi46Nw%2FK8WZBvEIhqRwXl1JxvnKT1%2Fimg.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &amp;lt;T super 하위타입&amp;gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;: 지정가능한 구체타입에는 해당 하위타입이거나 하위타입이 상속받고 있는 상위타입으로 제한&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjRegR/btq8DQhBNeB/jxG14INnHWb3xpXkDnOLYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjRegR/btq8DQhBNeB/jxG14INnHWb3xpXkDnOLYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjRegR/btq8DQhBNeB/jxG14INnHWb3xpXkDnOLYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjRegR%2Fbtq8DQhBNeB%2FjxG14INnHWb3xpXkDnOLYK%2Fimg.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;79&quot; width=&quot;700&quot; height=&quot;66&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 와일드카드 타입&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 제네릭 객체를 인자값으로 받는 매개변수, 또는 지역변수(Lvalue)에&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 제네릭타입을 &lt;b&gt;사용할 때&lt;/b&gt; 와일드카드 타입 사용하여 여러 개의 구체타입 수용 가능!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;(단, 지역변수(Lvalue) 와일드카드 타입으로 선언 시, 메소드 호출에서 오류 발생!!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 제네릭타입&amp;lt;?&amp;gt; : Unbounded Wildcards(제한없음)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입 파라미터를 대치하는 구체적인 타입으로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 모든 클래스나 인터페이스 타입 수용가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 제네릭타입&amp;lt;? extends 상위타입&amp;gt; : Upper Bounded Wildcards(상위 클래스 제한)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입 파라미터를 대치하는 구체적인 타입으로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 해당 상위타입이나 상위타입을 상속받은 하위타입만 수용가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 제네릭타입&amp;lt;? super 하위타입&amp;gt; : Lower Bounded Wildcards(하위 클래스 제한)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 타입 파라미터를 대치하는 구체적인 타입으로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 해당 하위타입이거나 하위타입이 상속받고 있는 상위타입만 수용가능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예시를 통해 와일드카드의 사용에 대해 직접 확인해보자!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;503&quot; width=&quot;400&quot; height=&quot;366&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2AT0c/btq8Bmvj9S6/OktCkynh0w6wniFpoQjec0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2AT0c/btq8Bmvj9S6/OktCkynh0w6wniFpoQjec0/img.png&quot; data-alt=&quot;클래스 간 관계&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2AT0c/btq8Bmvj9S6/OktCkynh0w6wniFpoQjec0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2AT0c%2Fbtq8Bmvj9S6%2FOktCkynh0w6wniFpoQjec0%2Fimg.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;503&quot; width=&quot;400&quot; height=&quot;366&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;클래스 간 관계&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width:900px; position:relative !important;overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0;padding:0;border:none;background-color:#fafafa;border-radius:4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px;border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0;padding:0;word-break:normal;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:160%&quot;&gt;&lt;div style=&quot;line-height:160%&quot;&gt;1&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;2&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;3&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;4&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;5&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;6&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;7&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;8&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;9&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;10&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;11&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;12&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;13&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;14&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;15&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;16&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;17&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;18&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;19&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;20&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;21&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;22&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;23&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;24&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;25&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;26&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;27&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;28&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;29&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;30&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;31&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;32&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;33&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;34&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;35&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;36&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;37&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;38&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;39&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;40&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;41&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;42&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;43&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;44&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;45&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;46&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;47&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;48&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;49&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;50&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;51&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;52&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;53&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;54&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;55&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;56&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;57&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;58&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;59&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;60&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;61&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;62&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;63&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;64&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;65&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;66&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;67&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;68&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;69&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;70&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;71&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;72&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;73&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;74&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;75&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;76&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;77&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;78&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;79&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;80&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;81&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;82&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;83&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;84&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;85&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;86&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;87&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;88&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;89&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;90&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;91&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;92&lt;/div&gt;&lt;div style=&quot;line-height:160%&quot;&gt;93&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0;text-align:left&quot;&gt;&lt;div style=&quot;margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;line-height:160%&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;class&lt;/span&gt;&amp;nbsp;WildCardExample&amp;nbsp;{&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//모든&amp;nbsp;사람을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정&amp;nbsp;내역&amp;nbsp;출력&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;void&lt;/span&gt;&amp;nbsp;printCourse(Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;?&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;course)&amp;nbsp;{&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;course.getName()&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#993333&quot;&gt;&quot;수강생&quot;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Arrays.&lt;span style=&quot;color:#0099cc&quot;&gt;toString&lt;/span&gt;(course.getStudents())&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//info&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//printCourse&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//학생을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정의&amp;nbsp;내역&amp;nbsp;출력&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;void&lt;/span&gt;&amp;nbsp;printCourseStudent(&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;?&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;extends&lt;/span&gt;&amp;nbsp;Student&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;course)&amp;nbsp;{&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;course.getName()&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#993333&quot;&gt;&quot;수강생&quot;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Arrays.&lt;span style=&quot;color:#0099cc&quot;&gt;toString&lt;/span&gt;(course.getStudents())&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//info&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;///printCourseStudent&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//근로자를&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정의&amp;nbsp;내역&amp;nbsp;출력&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;void&lt;/span&gt;&amp;nbsp;printCourseWorker(&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;?&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;super&lt;/span&gt;&amp;nbsp;Worker&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;course)&amp;nbsp;{&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;log.info(&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;course.getName()&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#993333&quot;&gt;&quot;수강생&quot;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;+&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Arrays.&lt;span style=&quot;color:#0099cc&quot;&gt;toString&lt;/span&gt;(course.getStudents())&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;&lt;span style=&quot;color:#999999&quot;&gt;//info&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;///printCourseStudent&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color:#0099cc&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//1.&amp;nbsp;일반인을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정을&amp;nbsp;생성,&amp;nbsp;이&amp;nbsp;때&amp;nbsp;&quot;구체타입&quot;&amp;nbsp;지정&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;Person&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;personCourse&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&quot;color:#993333&quot;&gt;&quot;일반인과정&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color:#308ce5&quot;&gt;5&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//타입추론&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;personCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Person(&lt;span style=&quot;color:#993333&quot;&gt;&quot;일반인&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;personCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Worker(&lt;span style=&quot;color:#993333&quot;&gt;&quot;직장인&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;personCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Student(&lt;span style=&quot;color:#993333&quot;&gt;&quot;학생&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;personCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;HighStudent(&lt;span style=&quot;color:#993333&quot;&gt;&quot;고등학생&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//2.&amp;nbsp;직장인을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정을&amp;nbsp;생성,&amp;nbsp;이&amp;nbsp;때&amp;nbsp;&quot;구체타입&quot;&amp;nbsp;지정&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;Worker&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;workerCourse&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&quot;color:#993333&quot;&gt;&quot;직장인과정&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color:#308ce5&quot;&gt;5&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//타입추론&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&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;workerCourse.add(new&amp;nbsp;Person(&quot;일반인&quot;));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//worker&amp;nbsp;구체타입이기&amp;nbsp;때문에&amp;nbsp;XX&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&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;workerCourse.add(new&amp;nbsp;Student(&quot;학생&quot;));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//worker&amp;nbsp;구체타입이기&amp;nbsp;때문에&amp;nbsp;XX&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;workerCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Worker(&lt;span style=&quot;color:#993333&quot;&gt;&quot;직장인&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;?&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;extends&lt;/span&gt;&amp;nbsp;Person&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;course2&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;personCourse;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//Course&amp;lt;Person&amp;gt;타입이&amp;nbsp;대입되어&amp;nbsp;Course&amp;lt;?&amp;gt;타입이&amp;nbsp;됨!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;?&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;extends&lt;/span&gt;&amp;nbsp;Person&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;course3&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;workerCourse;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//Course&amp;lt;Person&amp;gt;타입이&amp;nbsp;대입되어&amp;nbsp;Course&amp;lt;?&amp;gt;타입이&amp;nbsp;됨!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//다형성과&amp;nbsp;다르기&amp;nbsp;때문에&amp;nbsp;구분하기!!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//3.&amp;nbsp;학생을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정을&amp;nbsp;생성,&amp;nbsp;이&amp;nbsp;때&amp;nbsp;&quot;구체타입&quot;&amp;nbsp;지정&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;Student&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;studentCourse&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&quot;color:#993333&quot;&gt;&quot;학생과정&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color:#308ce5&quot;&gt;5&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//타입추론&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;studentCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Student(&lt;span style=&quot;color:#993333&quot;&gt;&quot;학생&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;studentCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;HighStudent(&lt;span style=&quot;color:#993333&quot;&gt;&quot;고등학생&quot;&lt;/span&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;&lt;span style=&quot;color:#999999&quot;&gt;//다형성&amp;nbsp;1-&amp;nbsp;부모타입은&amp;nbsp;자식타입을&amp;nbsp;품을&amp;nbsp;수&amp;nbsp;있다!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//4.&amp;nbsp;고등학생을&amp;nbsp;대상으로&amp;nbsp;하는&amp;nbsp;교육과정을&amp;nbsp;생성,&amp;nbsp;이&amp;nbsp;때&amp;nbsp;&quot;구체타입&quot;&amp;nbsp;지정&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;HighStudent&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;highStudentCourse&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;Course&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff3399&quot;&gt;&amp;gt;&lt;/span&gt;(&lt;span style=&quot;color:#993333&quot;&gt;&quot;고등학생과정&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color:#308ce5&quot;&gt;5&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//타입추론&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&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;highStudentCourse.&lt;span style=&quot;color:#0099cc&quot;&gt;add&lt;/span&gt;(&lt;span style=&quot;color:#ff3399&quot;&gt;new&lt;/span&gt;&amp;nbsp;HighStudent(&lt;span style=&quot;color:#993333&quot;&gt;&quot;고등학생&quot;&lt;/span&gt;));&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourse(personCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourse(workerCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourse(studentCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourse(highStudentCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color:#993333&quot;&gt;&quot;******************************&quot;&lt;/span&gt;);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseStudent(personCourse);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//수용XX&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseStudent(workerCourse);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//수용XX&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseStudent(studentCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseStudent(highStudentCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color:#993333&quot;&gt;&quot;******************************&quot;&lt;/span&gt;);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseWorker(personCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseWorker(workerCourse);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseWorker(studentCourse);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//수용XX&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&lt;span style=&quot;color:#999999&quot;&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printCourseWorker(highStudentCourse);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//수용XX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre; line-height:160%&quot;&gt;}&amp;nbsp;&lt;span style=&quot;color:#999999&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;color:#e5e5e5text-decoration:none&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom;padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;text-decoration:none;color:white&quot;&gt;&lt;span style=&quot;font-size:9px;word-break:normal;background-color:#e5e5e5;color:white;border-radius:10px;padding:1px&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/82</guid>
      <comments>https://rang22.tistory.com/82#entry82comment</comments>
      <pubDate>Sun, 27 Jun 2021 20:36:01 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 11.  예외처리 (try-catch / throws / try-with-resources)</title>
      <link>https://rang22.tistory.com/81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/laM26/btq8iwKtoGN/Kl6KPOUHfyjKwtGOhxRh21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/laM26/btq8iwKtoGN/Kl6KPOUHfyjKwtGOhxRh21/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/laM26/btq8iwKtoGN/Kl6KPOUHfyjKwtGOhxRh21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlaM26%2Fbtq8iwKtoGN%2FKl6KPOUHfyjKwtGOhxRh21%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 오류의 종류&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 에러(Error) : 하드웨어의 잘못된 동작 또는 고장으로 인한 오류&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 예외(Exception) : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 에러와 예외 비교&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 공통점 : 발생되면 프로그램 종료&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 차이점 : 에러(Error)는 정상 실행 상태로 돌아갈 수 없다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 예외(Exception)는 예외처리를 추가하여 정상 실행 상태로 돌아갈 수 있다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;따라서, 개발자는 우리가 처리해야 할 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;예외(Exception)&lt;/b&gt;&lt;/span&gt;에 집중해야한다!&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 예외의 종류&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 일반 예외(Checked Exception) : 예외처리 코드 없으면 컴파일 오류 발생(컴파일 시 체크)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 실행 예외&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;RuntimeException&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;) &lt;/span&gt;: 예외처리 코드를 생략하더라고 컴파일이 되는 예외&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;경험에 따라 예외처리 코드 작성 필요&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ 프로그램의 안정성을 확보하기 위해 예외처리 작업은 매우 중요하다!!!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;◆ 예외 클래스의 구조&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 예외 처리의 최상위 클래스 : Throwable class&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Throwable class를 상속받는 하위클래스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(1) Error class&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(2) Exception class : Checked Exception, &lt;u&gt;RuntimeException(&lt;/u&gt;★&lt;u&gt;)&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;556&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baz7xx/btq8ivY8ctJ/B6NKfIY4EVQl5xlQVtqpr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baz7xx/btq8ivY8ctJ/B6NKfIY4EVQl5xlQVtqpr0/img.png&quot; data-alt=&quot;출처 : TCP school&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baz7xx/btq8ivY8ctJ/B6NKfIY4EVQl5xlQVtqpr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbaz7xx%2Fbtq8ivY8ctJ%2FB6NKfIY4EVQl5xlQVtqpr0%2Fimg.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;556&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : TCP school&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Checked Exception : 반드시 예외처리를 작성해야 컴파일 가능 --&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;try-catch 를 꼭 해야 한다!&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- RuntimeException : 컴파일러가 개입하지 않으며, 개발자 경험에 의해 작성해야 한다.&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;Checked Exception&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;RuntimeException&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;처리 여부&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;반드시 예외 처리 해야함&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;예외 처리하지 않아도 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;트랜잭션 Rollback 여부&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&amp;nbsp;Rollback&amp;nbsp;안됨&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&amp;nbsp;Rollback&amp;nbsp;진행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;대표 Exception&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;IOException,&lt;br /&gt;SQLException&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;NullPointerException,&lt;br /&gt;IllegalArgumentException&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 실행 예외(RuntimeException)의 종류&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다양한 실행 예외의 종류가 있으나 대표적인 예외에 대해 알아보자.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;NullPointerException : &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;객체 참조가 없는 상태(참조변수가 비어있을 때)&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;ArrayIndexOutOfBoundsException : 배열에서 인덱스 범위를 초과하여 사용하는 경우 발생&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #660033;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ClassCastException : 상속관계에서 타입 변환이 되지 않을 경우 발생&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 예외 처리 코드(try-catch-finally)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 예외 발생 시 프로그램 종료를 막고, 정상 실행 유지할 수 있도록 처리&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- catch문의 매개변수로 예외객체를 인자로 전달받아 catch문에서 사용하여 처리&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;611&quot; width=&quot;750&quot; height=&quot;560&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cagWJc/btq8nt1vMki/hGyXfBONsXvZU662Trd5KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cagWJc/btq8nt1vMki/hGyXfBONsXvZU662Trd5KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cagWJc/btq8nt1vMki/hGyXfBONsXvZU662Trd5KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcagWJc%2Fbtq8nt1vMki%2FhGyXfBONsXvZU662Trd5KK%2Fimg.png&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;611&quot; width=&quot;750&quot; height=&quot;560&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;▷ 정상 실행되었을 경우 : try문(예외 발생여부에 따라 실행) &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;▷&lt;span&gt; &lt;/span&gt;&lt;/span&gt;finally문&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 예외 발생되었을 경우 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;try문(예외 발생여부에 따라 실행) - catch문 - finally문&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 예외 정보 얻기 (&lt;span style=&quot;color: #000000;&quot;&gt;catch() &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;절에서 활용)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- getMessage( ) : 예외 발생 시 생성자 매개값으로 사용한 메시지를 리턴&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;printStackTrace&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;( ) : 예외 발생 코드 추적한 내용을 출력&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;467&quot; width=&quot;700&quot; height=&quot;374&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rUPPo/btq8nulRe6b/ZkKyIrPBUIwjDqLJVLRYN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rUPPo/btq8nulRe6b/ZkKyIrPBUIwjDqLJVLRYN1/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rUPPo/btq8nulRe6b/ZkKyIrPBUIwjDqLJVLRYN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrUPPo%2Fbtq8nulRe6b%2FZkKyIrPBUIwjDqLJVLRYN1%2Fimg.png&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;467&quot; width=&quot;700&quot; height=&quot;374&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 다중 예외 처리 시 주의사항&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 다중 catch문 작성 시 상위클래스(Exception)로 처리하면&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 모든 예외가 처리되기 때문에 하위 예외처리를 할 필요가 없다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 다만,&amp;nbsp; Exception이 가장 상위에 위치하면 어떤 예외인지 정확한 파악이 어렵다!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 따라서 &lt;u&gt;예외처리는 하위 예외 -&amp;gt; 상위 예외 순으로 작성하고 Exception은 가장 나중에 작성&lt;/u&gt;하자!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ Throwable 블록으로 처리할 수 있는 &lt;span&gt;&amp;nbsp;&lt;/span&gt;error도 있다!!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;621&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/myN2M/btq8piLYzpi/Tm7k8gRFhrTQdnEfc6mfT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/myN2M/btq8piLYzpi/Tm7k8gRFhrTQdnEfc6mfT0/img.png&quot; data-alt=&quot;다중 예외처리의 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/myN2M/btq8piLYzpi/Tm7k8gRFhrTQdnEfc6mfT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmyN2M%2Fbtq8piLYzpi%2FTm7k8gRFhrTQdnEfc6mfT0%2Fimg.png&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;621&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다중 예외처리의 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp; 예외 떠 넘기기(throws)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드에서 처리하지 않은 예외를 호출한 곳으로 떠 넘기는 역할&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드 선언부 끝에 작성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;605&quot; width=&quot;700&quot; height=&quot;597&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KgW0P/btq8jJY4o86/kMj9SRPwSWii3NpVs1eyZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KgW0P/btq8jJY4o86/kMj9SRPwSWii3NpVs1eyZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KgW0P/btq8jJY4o86/kMj9SRPwSWii3NpVs1eyZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKgW0P%2Fbtq8jJY4o86%2FkMj9SRPwSWii3NpVs1eyZK%2Fimg.png&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;605&quot; width=&quot;700&quot; height=&quot;597&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 사용자 정의 예외&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자바 표준 API에서 제공하지 않는 예외&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- application service와 관련된 예외&lt;span style=&quot;color: #000000;&quot;&gt; (&lt;i&gt;대부분&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CheckedException&lt;/i&gt;&lt;span&gt;&lt;i&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;으로 예외 처리&lt;/i&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; Ex) &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;잔고 부족 예외&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;계좌 이체 실패 예외&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;회원 가입 실패 예외 등&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ 사용자 정의 예외 클래스 선언 방법&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;step 1&lt;/b&gt;&lt;/span&gt;. 예외의 종류 결정 - CheckedException | RuntimeException&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;step&amp;nbsp;2&lt;/b&gt;&lt;/span&gt;. 예외클래스 생성&amp;nbsp; (Constructor OverLoading)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - default constructor : 단순 예외 객체 생성할 때 사용하는 생성자&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - constructor : 예외 메시지까지 함께 생성할 때 사용하는 생성자&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;step 3.&lt;/b&gt;&lt;/span&gt; 예외 발생시키기 (호출된 곳에서 발생한 예외를 처리하도록 예외 객체 생성)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;562&quot; width=&quot;800&quot; height=&quot;405&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sx9gz/btq8lX3mJpp/t1G0tKl8n9mlYA3zxaE5Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sx9gz/btq8lX3mJpp/t1G0tKl8n9mlYA3zxaE5Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sx9gz/btq8lX3mJpp/t1G0tKl8n9mlYA3zxaE5Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsx9gz%2Fbtq8lX3mJpp%2Ft1G0tKl8n9mlYA3zxaE5Bk%2Fimg.png&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;562&quot; width=&quot;800&quot; height=&quot;405&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 자동 리소스 닫기(try-with-resources)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 예외 발생 여부과 상관없이,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 사용했던 리소스 객체의 close() 메소드를 호출하여 리소스를 닫음&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; try-catch문이 종료되면, &lt;span style=&quot;color: #ef5369;&quot;&gt;resource도 함께(with) &lt;span style=&quot;color: #000000;&quot;&gt;close()로 닫힌다!!&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 리소스 객체&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- java.lang.AutoCloseable 인터페이스를 구현하고 있어야 한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;lt;자바 8버전&amp;gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;340&quot; width=&quot;600&quot; height=&quot;306&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDDy8k/btq8pNNcMPs/9tyDISZa5XeFzITfFliXQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDDy8k/btq8pNNcMPs/9tyDISZa5XeFzITfFliXQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDDy8k/btq8pNNcMPs/9tyDISZa5XeFzITfFliXQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDDy8k%2Fbtq8pNNcMPs%2F9tyDISZa5XeFzITfFliXQ1%2Fimg.png&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;340&quot; width=&quot;600&quot; height=&quot;306&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;lt;자바 11버전&amp;gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;359&quot; width=&quot;600&quot; height=&quot;342&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mIkMT/btq8qG1dHRP/99HLWGzKjpZR2Kn81HK6G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mIkMT/btq8qG1dHRP/99HLWGzKjpZR2Kn81HK6G1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mIkMT/btq8qG1dHRP/99HLWGzKjpZR2Kn81HK6G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmIkMT%2Fbtq8qG1dHRP%2F99HLWGzKjpZR2Kn81HK6G1%2Fimg.png&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;359&quot; width=&quot;600&quot; height=&quot;342&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ try블록이 정상적으로 실행되었거나 도중에 예외가 발생하면 자동으로 close( )메소드가 호출!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/81</guid>
      <comments>https://rang22.tistory.com/81#entry81comment</comments>
      <pubDate>Thu, 24 Jun 2021 21:20:14 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 10-2. 익명 객체 (익명 자식객체 / 익명 구현객체)</title>
      <link>https://rang22.tistory.com/80</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceaY7a/btq7U0ySS0I/pOqJQN8CkuMnzw0lAy5WK1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceaY7a/btq7U0ySS0I/pOqJQN8CkuMnzw0lAy5WK1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceaY7a/btq7U0ySS0I/pOqJQN8CkuMnzw0lAy5WK1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceaY7a%2Fbtq7U0ySS0I%2FpOqJQN8CkuMnzw0lAy5WK1%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 익명 객체란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 이름을 알수 없는 객체&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체를 생성하면서 클래스를 정의하는 형태&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 익명 객체는 단독으로 생성 불가&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (전제조건 : 상속 - extends / implement)&amp;nbsp;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 익명 객체의 생성&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Lvalue : 부모타입의 참조변수&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Rvalue : new 부모타입명(생성자 매개변수로 전달할 인자들)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- { } (구현부) : 상속받은 부모 타입의 메소드 재정의/ 새로운 메소드, 필드 선언 가능&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;226&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwuvTn/btq7YMl7D2z/juCPrBz52bQ7qoWfnmzkE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwuvTn/btq7YMl7D2z/juCPrBz52bQ7qoWfnmzkE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwuvTn/btq7YMl7D2z/juCPrBz52bQ7qoWfnmzkE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwuvTn%2Fbtq7YMl7D2z%2FjuCPrBz52bQ7qoWfnmzkE0%2Fimg.png&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;226&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ 생성자는 객체의 타입을 클래스로 선언해야 하는데 &lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;익명 객체는 클래스의 이름을 알 수 없기 때문에 익명 객체 내부에 &lt;u&gt;자체 생성자 생성&lt;/u&gt;은 불가!!!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 익명 객체 사용 가능 위치&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 필드의 초기값&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;700&quot; height=&quot;418&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;530&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Aj9Lh/btq7YNT7Lbd/bbJrY71C9N6i5cERe0U140/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Aj9Lh/btq7YNT7Lbd/bbJrY71C9N6i5cERe0U140/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Aj9Lh/btq7YNT7Lbd/bbJrY71C9N6i5cERe0U140/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAj9Lh%2Fbtq7YNT7Lbd%2FbbJrY71C9N6i5cERe0U140%2Fimg.png&quot; width=&quot;700&quot; height=&quot;418&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;530&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 메소드의 로컬변수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;545&quot; width=&quot;700&quot; height=&quot;409&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnMNAM/btq7VZBjdnW/faO0kMVb6kmoAaS2z14W0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnMNAM/btq7VZBjdnW/faO0kMVb6kmoAaS2z14W0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnMNAM/btq7VZBjdnW/faO0kMVb6kmoAaS2z14W0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnMNAM%2Fbtq7VZBjdnW%2FfaO0kMVb6kmoAaS2z14W0k%2Fimg.png&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;545&quot; width=&quot;700&quot; height=&quot;409&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 매개변수의 매개값&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;907&quot; data-origin-height=&quot;450&quot; width=&quot;700&quot; height=&quot;347&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYU911/btq7Y3WZ35E/d1uQ1EkgALUkRPVjl0mjkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYU911/btq7Y3WZ35E/d1uQ1EkgALUkRPVjl0mjkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYU911/btq7Y3WZ35E/d1uQ1EkgALUkRPVjl0mjkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYU911%2Fbtq7Y3WZ35E%2Fd1uQ1EkgALUkRPVjl0mjkK%2Fimg.png&quot; data-origin-width=&quot;907&quot; data-origin-height=&quot;450&quot; width=&quot;700&quot; height=&quot;347&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 익명 객체의 사용범위&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;416&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d24Bhw/btq7Uz3clp2/Tit8d2WRKnaQjghBSIefR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d24Bhw/btq7Uz3clp2/Tit8d2WRKnaQjghBSIefR0/img.png&quot; data-alt=&quot;출처 : 이것이자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d24Bhw/btq7Uz3clp2/Tit8d2WRKnaQjghBSIefR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd24Bhw%2Fbtq7Uz3clp2%2FTit8d2WRKnaQjghBSIefR0%2Fimg.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;416&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 익명 객체 내부에서만 사용가능(지역적으로만 사용!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 익명객체에서 재정의한 부모타입의 메소드는 접근 가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 외부에서는 익명 객체 자체의 필드와 메소드에 접근할 수 없다!!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (why? 익명 객체는 부모 타입 변수에 대입되므로, 부모타입에 선언된 것만 사용 가능하다)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ 상속받은 멤버와 익명객체에서 새롭게 생성한 멤버를 구분해야 사용가능 범위를 알 수 있다!!!&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; Closure(클로저)란?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 함수의 내부에서 만든 지역변수가 사라지지 않고 값을 유지하고 있는 상태&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;※ 클로저란?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;생명주기가 다른 두 변수가 상호( 또는 일방) 참조(=사용)될 때, 생명주기가 짧은 변수가 파괴되고 나서, &lt;br /&gt;생명주기가 긴 참조변수에서 이 파괴된 변수의 값을 참조함으로써 발생하는 문제를 의미&lt;br /&gt;&lt;br /&gt;&lt;u&gt;=&amp;gt; 문제 해결 : 생명주기가 짧은 변수를 &lt;b&gt;final 상수로 만들어&lt;/b&gt; 메소드 영역에 있는 Clazz객체의 상수풀에 넣음!!!&lt;/u&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Q. 어떤 경우에 지역변수의 값이 유지가 될까?&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;A. 외부 함수에서 선언된 지역변수 중 내부함수에서 사용되는 경우&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; final 특성을 가지게 되며 내부함수 실행 시 사용가능하다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;457&quot; width=&quot;750&quot; height=&quot;316&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eJixXR/btq70Cc6v5f/FgCcr5g4vQlKa6llPL8KmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eJixXR/btq70Cc6v5f/FgCcr5g4vQlKa6llPL8KmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eJixXR/btq70Cc6v5f/FgCcr5g4vQlKa6llPL8KmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeJixXR%2Fbtq70Cc6v5f%2FFgCcr5g4vQlKa6llPL8KmK%2Fimg.png&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;457&quot; width=&quot;750&quot; height=&quot;316&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클로저는 함수 내부에 데이터가 만들어지기 때문에 &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;함수 외부에서 수정할 수 없는 보호된 데이터 생성가능하다는 장점이 있다!!&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(final의 특성을 가지기 때문에 값을 변경하는 것이 불가능!)&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클로저와 관련된 내용은 자바스크립트에서 더 자세히 다룰 수 있을 것 같다!!&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/80</guid>
      <comments>https://rang22.tistory.com/80#entry80comment</comments>
      <pubDate>Wed, 23 Jun 2021 12:30:43 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 10-1. 추상클래스와 인터페이스 비교(공통점/차이점)</title>
      <link>https://rang22.tistory.com/78</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bONOKi/btq8ivYK7Pg/5RuY8KdxC4kaH2IlPxSvx0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bONOKi/btq8ivYK7Pg/5RuY8KdxC4kaH2IlPxSvx0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bONOKi/btq8ivYK7Pg/5RuY8KdxC4kaH2IlPxSvx0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbONOKi%2Fbtq8ivYK7Pg%2F5RuY8KdxC4kaH2IlPxSvx0%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;앞서 다형성과 가장 밀접한 상속에 대한 개념을 다루면서&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;추상클래스와 인터페이스에 대해 정리해보았다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그렇다면 추상클래스와 인터페이스의 공통점과 차이점은 무엇일까?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상클래스 - 인터페이스의 관계&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상클래스와 인터페이스는 &lt;b&gt;상호호환&lt;/b&gt;하는 관계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상클래스 - 인터페이스의 공통점&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상메소드라는 교집합으로 규격을 정의&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상속과 오버라이딩이라는 기능을 통해 다형성을 구현&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 스스로 객체를 생성할 수 없으며 extends, implements 한 자식/구현객체들만 생성 가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 인터페이스와 달리, 추상클래스는 생성자가 있으므로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;자식객체의 생성과 함께 부모객체도 생성된다는 차이가 존재&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상클래스 - 인터페이스의 차이점&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 추상클래스&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구성멤버 : 필드, 생성자, 메소드 + 추상메소드(규격과 상관없는 필드와 메소드를 정의)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 단일상속(why? 구현되어 있는 메소드 간 충돌 발생)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상속받은 기능을 확장하여 구체화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 인터페이스&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구성멤버 : 상수, 추상메소드, 디폴트메소드, 정적메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 다중상속(why? 구현되어 있지 않기 때문에 상관없음)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구현객체가 동일하게 동작하는 것을 보장&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;진짜 규격다운 규격은 인터페이스이다!!!&lt;/h4&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/78</guid>
      <comments>https://rang22.tistory.com/78#entry78comment</comments>
      <pubDate>Wed, 23 Jun 2021 11:40:52 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 2-3. 웹 서버 - 톰캣(Tomcat) 사용하기</title>
      <link>https://rang22.tistory.com/77</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;웹 서버는&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;아파치 HTTP 서버, IIS 웹서버, 엔진 X, 라이티, 아파치 톰캣 서버 등 여러 종류가 있다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그중 아파치 톰캣 서버에 대한 기본적인 사용방법들을 정리해보자!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 웹 서버의 시작과 중지&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1) 모니터 톰캣 사용&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;- Automatic : 자동 설정&lt;br /&gt;&amp;nbsp; &amp;nbsp;- Manual : 수동 설정&lt;br /&gt;&amp;nbsp; &amp;nbsp;- Disabled : 관리자가 직접 웹서버 시작&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;551&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b402z7/btq8KaWcu9p/5EY6ua61zGwQ4FYAIESvEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b402z7/btq8KaWcu9p/5EY6ua61zGwQ4FYAIESvEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b402z7/btq8KaWcu9p/5EY6ua61zGwQ4FYAIESvEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb402z7%2Fbtq8KaWcu9p%2F5EY6ua61zGwQ4FYAIESvEK%2Fimg.png&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;551&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2) 명령 프롬프트에서 명령어 사용&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;- tomcat8 startup / shutdown&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;987&quot; data-origin-height=&quot;403&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daZp5h/btq8Oiern3Y/GYwLTkv4pC13Kd81A7NFNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daZp5h/btq8Oiern3Y/GYwLTkv4pC13Kd81A7NFNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daZp5h/btq8Oiern3Y/GYwLTkv4pC13Kd81A7NFNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaZp5h%2Fbtq8Oiern3Y%2FGYwLTkv4pC13Kd81A7NFNK%2Fimg.png&quot; data-origin-width=&quot;987&quot; data-origin-height=&quot;403&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3) 관리 도구 서비스 사용&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;- [서비스]창에서 중지 /다시 시작&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;294&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drU6dk/btq8RsUU67S/32zBO1pXQKDOr9OldYvtdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drU6dk/btq8RsUU67S/32zBO1pXQKDOr9OldYvtdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drU6dk/btq8RsUU67S/32zBO1pXQKDOr9OldYvtdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrU6dk%2Fbtq8RsUU67S%2F32zBO1pXQKDOr9OldYvtdk%2Fimg.png&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;294&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;span&gt; 웹 서버 포트 변경&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Step 1. 명령 프롬프트에서 내 컴퓨터에 사용되는 포트번호 확인(중복된 포트 사용X)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;508&quot; width=&quot;600&quot; height=&quot;425&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwDDw/btq8Qy2aH52/7VqtjiDsrGTeDM3I5sKUKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwDDw/btq8Qy2aH52/7VqtjiDsrGTeDM3I5sKUKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwDDw/btq8Qy2aH52/7VqtjiDsrGTeDM3I5sKUKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlwDDw%2Fbtq8Qy2aH52%2F7VqtjiDsrGTeDM3I5sKUKk%2Fimg.png&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;508&quot; width=&quot;600&quot; height=&quot;425&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Step&lt;span&gt; 2.&lt;/span&gt; [apache] - [Tomcat 9.0] - [conf] - [server.xml] 파일에서 수정&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;299&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/balVAi/btq8KQpIt4j/k3KM1yf4e9gc2NkBR6b2b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/balVAi/btq8KQpIt4j/k3KM1yf4e9gc2NkBR6b2b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/balVAi/btq8KQpIt4j/k3KM1yf4e9gc2NkBR6b2b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbalVAi%2Fbtq8KQpIt4j%2Fk3KM1yf4e9gc2NkBR6b2b0%2Fimg.png&quot; data-origin-width=&quot;1177&quot; data-origin-height=&quot;299&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Step&lt;span&gt;&lt;span&gt; 3&lt;/span&gt;. 웹 브라우저에서 결과 확인&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BJHzX/btq8NcMy4JP/jbEk5GjGmlH3GhLLyvAkn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BJHzX/btq8NcMy4JP/jbEk5GjGmlH3GhLLyvAkn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BJHzX/btq8NcMy4JP/jbEk5GjGmlH3GhLLyvAkn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBJHzX%2Fbtq8NcMy4JP%2FjbEk5GjGmlH3GhLLyvAkn0%2Fimg.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;※ 웹 서버 환경설정 : server.xml 파일에서 설정&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;◆ 웹 서버 홈 디렉터리/ 가상 디렉터리 설정&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;1) 직접 [webapp]폴더에 새로운 폴더 생성하여 문서 설정&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;임의로 지정한 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;URL&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 경로를 홈 디렉터리로 사용할 수 있도록 해주는 개념&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가상의 폴더 이름으로 홈 디렉터리를 설정&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;2) 서버 환경(server.xml 파일)에서 파일을 변경하여 설정&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;새로운 폴더를 생성하여 가상 디렉터리 관리&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;톰캣&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 서버 환경에서 파일을 변경하여 가상 디렉터리 관리&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/77</guid>
      <comments>https://rang22.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 22 Jun 2021 09:19:02 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 2-2. 웹 서버와 WAS</title>
      <link>https://rang22.tistory.com/76</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MrHdB/btq8QzO5VyS/Cg5PxS8HAnTV6etSLXHDGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MrHdB/btq8QzO5VyS/Cg5PxS8HAnTV6etSLXHDGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MrHdB/btq8QzO5VyS/Cg5PxS8HAnTV6etSLXHDGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMrHdB%2Fbtq8QzO5VyS%2FCg5PxS8HAnTV6etSLXHDGk%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 웹 서버(Web Server)란?&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;Web&lt;/b&gt; : 인터넷을 기반으로 한 정보를 공유, 검색할 수 있게 하는 서비스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(구성요소 : URL - 주소, HTTP - 통신규칙, HTML - 내용)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;Server&lt;/b&gt; : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;Web Server&lt;/b&gt; : 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;443&quot; width=&quot;800&quot; height=&quot;336&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dulVHY/btq8Qz05P9l/Y3fGNO9ESVPyN16bzQTnDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dulVHY/btq8Qz05P9l/Y3fGNO9ESVPyN16bzQTnDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dulVHY/btq8Qz05P9l/Y3fGNO9ESVPyN16bzQTnDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdulVHY%2Fbtq8Qz05P9l%2FY3fGNO9ESVPyN16bzQTnDk%2Fimg.png&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;443&quot; width=&quot;800&quot; height=&quot;336&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;i&gt;※ 웹 서버(Web Server)의 단점&lt;/i&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;- HTML은 프로그래밍 언어가 아닌 마크업 언어이기 때문에 정적인 데이터로 한정&amp;nbsp; -&amp;gt; &lt;b&gt;WAS 등장!!!&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;b&gt;웹 기반의 프로그램&lt;/b&gt;&lt;/span&gt;은사용자가 요구하는 내용에 대해 웹 서버에서 찾아 웹문서로 제공한다.이때 제공되는 웹문서 속 데이터는 문서로 미리 만들어져있는 것이 불가능하다.(시시때때로 변하는 데이터를 수정해야하기 때문!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;다시 말하자면, 사실상 웹서버에는 문서가 만들어져있는 것이 아니라&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;문서를 만들기 위한 코드(Server Application)&lt;/u&gt;가 있을 뿐이라는 것이다!!&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;따라서 웹서버는 그 코드를 찾아 DB에서 문서화하여 클라이언트에게 전달해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;그러기 위해선&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;코드를 실행할 수 있는 추가적인 환경&lt;/u&gt;이 필요로 한다.그것이 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;WAS(Web Application Server)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ &amp;nbsp;WAS(Web Application Server)란?&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;-&lt;b&gt; Web Application&lt;/b&gt; : 웹에서 실행되는 응용 프로그램&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;Web Application Server &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; : &lt;/b&gt;웹 어플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; 웹 어플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ &amp;nbsp;WAS(Web Application Server)의 역할&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- php,jsp, asp 와 같은 언어들을 사용하여 동적인 페이지를 생성할 수 있는 서버&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 프로그램 실행 환경과 데이터베이스 접속 기능을 제공(비지니스 로직 수행가능)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 서버 + 웹 컨테이너로 구성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 웹 컨테이너 : jsp, servlet 을 실행시킬 수 있는 소프트웨어가 관리되는 공간&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;420&quot; width=&quot;800&quot; height=&quot;316&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d18Cbv/btq8QxWvyTJ/kfMbsACLmHMHnkrj38NjT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d18Cbv/btq8QxWvyTJ/kfMbsACLmHMHnkrj38NjT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d18Cbv/btq8QxWvyTJ/kfMbsACLmHMHnkrj38NjT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd18Cbv%2Fbtq8QxWvyTJ%2FkfMbsACLmHMHnkrj38NjT1%2Fimg.png&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;420&quot; width=&quot;800&quot; height=&quot;316&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;상황에 따라 변하는 정보를 제공할 수 있는가?&lt;br /&gt;Web Server : 정적인 컨텐츠&lt;br /&gt;WAS : 정적 + 동적인 컨텐츠&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&amp;nbsp; 웹 서버와 WAS의 분리&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 기능을 분리하여 서버 부하 방지&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 물리적으로 분리하여 보안 강화&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 여러 대의 WAS 연결 가능&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;420&quot; width=&quot;800&quot; height=&quot;289&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1LG3n/btq8RTEMqDf/kRzuM0Myc7NCf7KHfMqLvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1LG3n/btq8RTEMqDf/kRzuM0Myc7NCf7KHfMqLvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1LG3n/btq8RTEMqDf/kRzuM0Myc7NCf7KHfMqLvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1LG3n%2Fbtq8RTEMqDf%2FkRzuM0Myc7NCf7KHfMqLvK%2Fimg.png&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;420&quot; width=&quot;800&quot; height=&quot;289&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/76</guid>
      <comments>https://rang22.tistory.com/76#entry76comment</comments>
      <pubDate>Mon, 21 Jun 2021 00:06:09 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 2-1. 웹 서버와 클라이언트</title>
      <link>https://rang22.tistory.com/75</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;300&quot; height=&quot;251&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3sGys/btq8Iz8Guf8/Kj8qzhaD8mWm69kM6gHMUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3sGys/btq8Iz8Guf8/Kj8qzhaD8mWm69kM6gHMUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3sGys/btq8Iz8Guf8/Kj8qzhaD8mWm69kM6gHMUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3sGys%2Fbtq8Iz8Guf8%2FKj8qzhaD8mWm69kM6gHMUK%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;300&quot; height=&quot;251&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt; 클라이언트 - 서버의 관계&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;173&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P39lS/btq8Jjemyeb/FsrEDlS7IvSViIsaAsMF6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P39lS/btq8Jjemyeb/FsrEDlS7IvSViIsaAsMF6K/img.png&quot; data-alt=&quot;출처 : 차세대 웹프로그래밍&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P39lS/btq8Jjemyeb/FsrEDlS7IvSViIsaAsMF6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP39lS%2Fbtq8Jjemyeb%2FFsrEDlS7IvSViIsaAsMF6K%2Fimg.png&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;173&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 차세대 웹프로그래밍&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트 : Request를 보내고 Response를 받는 프로그램&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 브라우저 : 웹 서버로부터 받은 HTML 문서나 파일을 웹 페이지에 출력하는 소프트웨어&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(Ex. 인터넷 익스플로러, 모질라 파이어폭스, 오페라, 사파리, 크롬 등 URL을 통해 접근가능)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 서버 : 클라이언트로부터 HTTP 요청(Request)을 받아 웹 페이지(Response)를 전송해주는 서버&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 웹 브라우저의 기능&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 페이지 탐색&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 접속하는 프로그램의 주소 관리&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 페이지의 저장, 인쇄, 소스 파일 보기&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 페이지 보안에 관련한 필터 도구 제공&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 웹 서버의 기능&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) 리스너 기능 : 클라이언트로부터 접속이 있는지 항상 체크하고 대기&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(2) 답변 기능 : 요청한 사항을 처리 후 결과를 클라이언트에게 보내기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; 클라이언트와 웹 서버의 환경&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트 환경 : 태블릿 PC, 스마트 폰, 스마트 TV, PC환경 등&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 서버 환경 : &lt;u&gt;웹 서버, 서버 프로그램, 데이터베이스&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(1) 웹 서버 &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트의 요청에 따라 서버에 있는 정적인 데이터를 제공하며 HTTP를 통해 클라이언트와 대화&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹서버의 종류 : 아파치 HTTP 서버, IIS 웹서버, 엔진 X, 라이티, 아파치 톰캣 서버 등&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(2) 서버 프로그램(WAS)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트에게 받은 동적인 데이터 요청을 처리/응답하는 프로그램 &lt;br /&gt;- JSP, ASP, PHP 등 중 JSP가 가장 많이 사용(자바 기반) &lt;br /&gt;(+). 최근 서버의 성능을 고려하여 클라이언트 프로그램에서 처리를 함께 수행하도록 하기도 함!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(3) 데이터베이스 접속 API&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- JDBC : 자바 기반의 웹프로그램이 쉽고 빠르게 접속하여 데이터를 조회/저장하도록 함. &lt;br /&gt;- ODBC : DBMS 종류에 관계없이 접근 가능하여 사용(마이크로소프트 개발)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;HTTP &lt;/b&gt;&lt;b&gt;Request / &lt;/b&gt;&lt;b&gt;HTTP Response 구조&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;웹 브라우저(클라이언트)와 웹 서버는&lt;br /&gt;아래와 같이 일정한 형식으로 요청과 응답을 주고 받는다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;579&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4DudJ/btq8gm9Bcmz/UblCCKvbcbvOp6SJHLkYdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4DudJ/btq8gm9Bcmz/UblCCKvbcbvOp6SJHLkYdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4DudJ/btq8gm9Bcmz/UblCCKvbcbvOp6SJHLkYdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4DudJ%2Fbtq8gm9Bcmz%2FUblCCKvbcbvOp6SJHLkYdK%2Fimg.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;579&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;&lt;b&gt;HTTP&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt; Header&lt;/b&gt;&lt;/i&gt;&lt;i&gt;에는 요청/응답 정보와 본문(Body)이 포함된다.&lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ HTTP Request 구조&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 요청 라인(Request Line) : Http method / URI / ProtocolVersion (가장 중요함!!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;HTTP 메서드 방식 및 요청 URL과 프로토콜 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 요청 헤더(Request Header) 웹 브라우저 정보, 언어, 인코딩 방식, 요청 서버 정보 등과 같은 추가 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 요청 본체(Request Body) : 영역에 제한이 없다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;요청에 필요한 내용, 일반적으로 HTML 폼 태그안에 입력된 값들인 파라미터 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;※ HTTP Response 구조&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상태 라인(Status Line)응답 상태 코드 및 프로토콜 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 응답 헤더(Response Header)응답처리 날짜, 인코딩 방식, 요청 서버 정보 등과 같은 추가 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 응답 본체(Response Body)응답에 필요한 내용을 갖는다. (일반적으로 HTML 문서)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/75</guid>
      <comments>https://rang22.tistory.com/75#entry75comment</comments>
      <pubDate>Sun, 20 Jun 2021 18:01:01 +0900</pubDate>
    </item>
    <item>
      <title>[서버프로그래밍] 1. 웹 프로그래밍의 이해(개념 정리)</title>
      <link>https://rang22.tistory.com/74</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;300&quot; height=&quot;251&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HHsBl/btq8QqCAJUL/eW5HOqMJSFBtW9vmp4wAOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HHsBl/btq8QqCAJUL/eW5HOqMJSFBtW9vmp4wAOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HHsBl/btq8QqCAJUL/eW5HOqMJSFBtW9vmp4wAOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHHsBl%2Fbtq8QqCAJUL%2FeW5HOqMJSFBtW9vmp4wAOK%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;300&quot; height=&quot;251&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;서버프로그래밍에 대해 알아보기 전 웹에 대한 기본적인 개념들을 정리해보자.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 인터넷(Internet)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 네트워크 기술의 한 종류(Inter + network)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 전세계의 네트워크가 묶여있는 인터넷 기반 위에서 만들어진 서비스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;초창기의 네트워크는 특정자원을 LAN(Local Area Network)을 통해 소수의 사람들이&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공유할 목적으로 만들어졌으나 이것이 전 세계적으로 확대되어 Internet으로 발전되었다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;즉, 지역범위의 네트워크인 LAN들의 연결을 통해 네트워크 형성된 것이다!!&lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;웹(World Wide Web)&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;235&quot; width=&quot;300&quot; height=&quot;196&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0LOQf/btq8OikNvsj/qmsThnLQYoIpLLkj98LOLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0LOQf/btq8OikNvsj/qmsThnLQYoIpLLkj98LOLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0LOQf/btq8OikNvsj/qmsThnLQYoIpLLkj98LOLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0LOQf%2Fbtq8OikNvsj%2FqmsThnLQYoIpLLkj98LOLK%2Fimg.png&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;235&quot; width=&quot;300&quot; height=&quot;196&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터넷 표준 문서 시스템&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터넷을 기반으로 동작하는 하나의 서비스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보 공간&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;※ 웹의 구성요소 : URL(주소), HTTP(통신규약), HTML(내용)&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;웹의 특징&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 전 세계의 컴퓨터를 연결&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HTTP(Hyper Text Transfer Protocol) 프로토콜을 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HTML(Hyper Text Markup Language)로 작성된 문서 연결&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 텍스트, 그래픽, 오디오, 비디오, 프로그램 파일 등 멀티미디어 서비스 제공&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 웹 표준 &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 개발자 간 일종의 약속으로 정해진 규칙을 준수함으로써&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;모두 호환이 되어 편리하게 사용가능 (by W3C)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ IP와 DNS, Port 번호&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. IP주소 (like 아파트의 동)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하나의 컴퓨터(장비)에 할당된 번호&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터넷 상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 프로토콜(식별자 역할)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;2. DNS(Domain Name Service)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 사람이 외우기 쉬운 Domain주소를 IP로 변환/ IP주소를 다시 Domain 주소로 변환해주는 서비스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ DNS서비스에 오류가 생기면 IP주소를 얻지 못하여 네트워크 서비스를 제공받지 못한다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ DNS서비스에 응답속도가 느리면 웹사이트에 접속도 늦어진다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;3. Port번호 (like 아파트 동의 호수)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하나의 컴퓨터에서 네트워크를 사용하는 프로그램이 여러 개가 동시에 실행되는 경우&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 구분하기 위해 port번호 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ HTTP 프로토콜의 기본 port번호는 80이다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt; 프로토콜(Protocol)&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트와 서버 간의 데이터를 주고받는 통신규약&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ HTTP ( HyperText Transfer Protocol ) &lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. HyperText&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 사용자의 선택에 따라 관련된 문서로 옮겨갈 수 있도록 조직화된 정보&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 일반적으로 링크(link) 또는 하이퍼링크(hyperlink)라고 부른다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. HTTP(HyperText Transfer Protocol) &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트와 서버 사이에 이루어지는 요청-응답 프로토콜&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- HyperText 링크를 통해서 문서를 이동하거나 페이지 정보를 전송하는 프로토콜&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;※ HTTP프로토콜의 특징&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;- 비지속성(Connectionless) 연결방식으로 동작한다는 점&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;즉, 클라이언트가 서버로 요청하고 응답을 받으면 연결을 유지하지 않고 즉시 연결을 끊는 방식&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;(+) 장점 : 동시 접속자가 증가하더라도 무리없이 서비스 가능&lt;/i&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;i&gt;(-) 단점 : 요청-응답 이외에 정보를 유지할 기회가 없음 &lt;/i&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. URL(Uniform Resource Locator)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 서버에 접속할 수 있는 수단 &lt;br /&gt;- 단일화된 방법으로 웹에 공개 된, 요청된 리소스(자원)의 위치를 알려주는 locater&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;112&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYvxZW/btq8dt9FjKC/iseR0FLdJCIN5rdxdX6I0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYvxZW/btq8dt9FjKC/iseR0FLdJCIN5rdxdX6I0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYvxZW/btq8dt9FjKC/iseR0FLdJCIN5rdxdX6I0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYvxZW%2Fbtq8dt9FjKC%2FiseR0FLdJCIN5rdxdX6I0k%2Fimg.png&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;112&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;①&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;프로토콜 : 웹의 공식 프로토콜인 HTTP를 쓰기 때문에 HTTP로 시작하는 것&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;② 호스트번호 : &lt;/span&gt; IP주소&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;③&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;포트번호 : 80번 포트는 기본포트이기 때문에 생략 가능&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;④ &lt;/span&gt;경로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;⑤&lt;/span&gt; 파일명&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ URI(&lt;span style=&quot;color: #202124;&quot;&gt;Uniform Resource Identifier)&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- ④&lt;/span&gt;경로와 &lt;span style=&quot;color: #000000;&quot;&gt;⑤&lt;/span&gt;파일명을 포함한 개념 / 우리가 원하는 특정한 자원을 지칭하는 것&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 웹 어플리케이션&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 기반으로 클라이언트의 요청을 받아 요청에 대해 응답하는것&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;즉, 웹 브라우저를 이용한 클라이언트와 HTML(정적 웹 컴포넌트),&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;JSP/Servlet(동적 웹 컴포넌트) 같은 자원을 가진 웹 서버간에&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;동적으로 요청/응답 처리하는 프로세싱을 의미&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 물리적으로 웹 어플리케이션은 결국 하나의 폴더로 쌓여있는 것 &lt;br /&gt;&lt;br /&gt;※ 결국 서블릿, JSP, 스프링 등으로 작업된 파일들이 하나씩 모여&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;톰캣 폴더에 들어가 웹 어플리케이션이 된다!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;br /&gt;&lt;b&gt;◆ 웹 컴포넌트 &lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹 어플리케이션 개발시 사용되는 HTML, JSP, Servlet 및 이미지 파일들을 의미&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹을 구성하는 요소들이며 재사용이 가능한 조립 블록 형태&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(1) HTML 컴포넌트(정적 컴포넌트)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파일 확장자는 .html으로, 웹 브라우저에게 웹 페이지의 구조와 내용을 전달할 목적으로 작성된다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;html&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;title&amp;gt; HTML 타이틀입니다. &amp;lt;/title&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;&amp;lt;h1&amp;gt; 이곳은 제목입니다. &amp;lt;/h1&amp;gt; &lt;br /&gt;&amp;lt;p&amp;gt; 이곳은 문단입니다.&amp;lt;/p&amp;gt; &lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(2) JSP 컴포넌트(동적 컴포넌트)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파일 확장자는 .jsp로, 정적인 HTML 태그와 동적인 JSP 태그가 혼합된 구조이다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;JSP는 화면을 구현하는 코드(Presentation Logic)와 자바 프로그래밍 코드(Business Logic)가 혼합된 형태&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ JSP 태그안에 자바 코드 를 삽입하여 자바 프로그래밍으로 실행되어 지기 때문에&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;JSP는 자바를 실행 시킬 수 있는 웹 컨테이너라는 특별한 환경에서 동작된다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;lt;%@ page contentType=&quot;text/html; charset=UTF-8&quot; %&amp;gt; &lt;br /&gt;&amp;lt;html&amp;gt; &lt;br /&gt;&amp;lt;head&amp;gt; &lt;br /&gt;&amp;lt;title&amp;gt; JSP 타이틀입니다. &amp;lt;/title&amp;gt; &lt;br /&gt;&amp;lt;/head&amp;gt; &lt;br /&gt;&amp;lt;body&amp;gt; &lt;br /&gt;&amp;lt;% &lt;br /&gt;String name = &quot;홍길동&amp;ldquo;; &lt;br /&gt;%&amp;gt; &lt;br /&gt;이름은&amp;lt;%= name %&amp;gt; &lt;br /&gt;&amp;lt;/body&amp;gt; &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;(3) Servlet 컴포넌트(동적 컴포넌트)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;파일 확장자는 .java로 모든 코드가 자바 코드로 구성되어 웹 컨테이너가 필요&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;서블릿은 Business Logic 처리를 담당하고 JSP는 Presentation Logic 처리를 담당한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 웹컨테이너(서블릿/JSP/EJB컨테이너) &lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- WAS에 포함되는 개념(혹은 그 자체로 WAS)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- JSP와 Servlet 컴포넌트(인스턴스)를 관리하는 역할&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Tomcat 및 resin 등이 있으며 Tomcat 컨 테이너를 가장 많이 사용&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;웹 컴포넌트는 Java SE 환경처럼 main 메서드 역할을 담당하는 시작점(starting point)이 없으며, &lt;br /&gt;단지 이벤트 방식 처럼 동작이 되어 진다. 이벤트는 웹 브라우저를 통해서 사용자가 웹 서버에 요청을 보내는 &lt;br /&gt;상황을 의미한다. 클라이언트 요청에 의해서&lt;b&gt; &lt;/b&gt;&lt;u&gt;&lt;b&gt;웹 컴포넌트들을 생성하고 제거&lt;/b&gt;&lt;/u&gt;하는 메커니즘 이 필요한데 &lt;br /&gt;이 작업을 웹 컨테이너가 담당하며, 이는 웹 컨테이너의 많은 역할들 중에서 핵심이 되는 작업이다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆MVC 패턴 &lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- Servlet과 JSP를 각 역할에 맞게 모듈화하여 개발하는 웹 어플리케이션 방법론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;304&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buL9bV/btq8eIy79FV/yqBkF1FYJlMwPWwYlzdcU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buL9bV/btq8eIy79FV/yqBkF1FYJlMwPWwYlzdcU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buL9bV/btq8eIy79FV/yqBkF1FYJlMwPWwYlzdcU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuL9bV%2Fbtq8eIy79FV%2FyqBkF1FYJlMwPWwYlzdcU1%2Fimg.png&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;304&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Model&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;웹 어플리케이션의 Business Logic을 담당하는 모듈로서 일반 자바 클래스로 구현된다. 데이터베이스 연동시 필요한 DAO,DTO 클래스 파일들에 해당된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;View &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;사용자와의 직접적인 화면 구성을 담당하는 모듈로서 &lt;u&gt;JSP로 구현&lt;/u&gt;된다. Model의 데이터를 HTML로 보여주거나, 사용자가 입력하는 화면 구성을 담당한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Controller &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Model과 View는 논리적으로 밀접한 관련을 갖지만, 물리적으로는 관련이 전혀 없다. 서로간 의 의존성을 감소시킴으로써 유지 보수를 쉽게 할 목적으로 분리시켜 작업이 이루어진다. 따라서 Model과 View를 관리하는 역할의 Controller가 필요하며, &lt;u&gt;Servlet로 구현&lt;/u&gt;한다. Controller는 여러 개의 Model 클래스 파일과 여러 개의 View들 중에서 적절하게 선택하여 실행시키는 핵심 역할을 담당한다. 예를 들어, 요청 다음에 보여줄 화면을 선택하는 작업이 거나 또는 사용자가 입력한 데이터를 검증하거나 출력하는 작업 등이다.&lt;/h4&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/74</guid>
      <comments>https://rang22.tistory.com/74#entry74comment</comments>
      <pubDate>Sun, 20 Jun 2021 17:38:27 +0900</pubDate>
    </item>
    <item>
      <title>[WEB] 웹 기반 프로그래밍 - 정적 웹프로그래밍과 동적 웹프로그래밍</title>
      <link>https://rang22.tistory.com/72</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biIu0v/btq8Ji7J5ub/WEfD9lptFR5NWzdvOAK6Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biIu0v/btq8Ji7J5ub/WEfD9lptFR5NWzdvOAK6Ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biIu0v/btq8Ji7J5ub/WEfD9lptFR5NWzdvOAK6Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiIu0v%2Fbtq8Ji7J5ub%2FWEfD9lptFR5NWzdvOAK6Ok%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;앞서 웹 기반 프로그램이 어떻게 자리잡게 되었는지 알아보았다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이번에는 웹 기반 프로그램이 어떻게 발전하였는지,&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그리고 지금은 어떻게 웹 프로그래밍이 이루어지는지 알아보자!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ 정적 웹 프로그래밍(Static)이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;306&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7aD9n/btq8glWSuAD/dfzoDFPgNho4V97Th3q59K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7aD9n/btq8glWSuAD/dfzoDFPgNho4V97Th3q59K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7aD9n/btq8glWSuAD/dfzoDFPgNho4V97Th3q59K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7aD9n%2Fbtq8glWSuAD%2FdfzoDFPgNho4V97Th3q59K%2Fimg.png&quot; data-origin-width=&quot;716&quot; data-origin-height=&quot;306&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;-&amp;nbsp;&lt;/b&gt;웹 서버(Apache)에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바스크립트 파일을&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 사용자는 페이지가 변경되지 않는 한 고정된 웹페이지를 볼 수 있으며&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 주로 디자인을 구성하거나 클라이언트의 이벤트를 처리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제점&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;정적 웹프로그래밍에서는 관리자가 수작업으로 HTML코드를 업데이트하기 때문에 &lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;아래와 같은 문제가 발생한다.&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 사용자에게 디자인 같은 고정된 정보만 제공가능&lt;br /&gt;2. 정보 수정 시 관리자가 직접 HTML소스를 수정&lt;br /&gt;3. 실시간 정보 제공받는 데 한계가 발생&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;동적 웹 프로그래밍(Dynamic)이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;321&quot; width=&quot;710&quot; height=&quot;303&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mQIuu/btq8eIEpQby/6lcWR0grPxZ1b3mdFfk2Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mQIuu/btq8eIEpQby/6lcWR0grPxZ1b3mdFfk2Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mQIuu/btq8eIEpQby/6lcWR0grPxZ1b3mdFfk2Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmQIuu%2Fbtq8eIEpQby%2F6lcWR0grPxZ1b3mdFfk2Y0%2Fimg.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;321&quot; width=&quot;710&quot; height=&quot;303&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 정적 웹 프로그래밍의 단점을 보완한 방식으로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; &lt;/b&gt;관리자의 역할을 웹 애플리케이션 서버(Web Application Server, WAS)가 수행&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트의 요청이 있을 때 데이터베이스로부터 실시간 정보를 얻어 클라이언트에게 전송&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 처음에 동적인 방식으로 프로그램을 제공하는 기능은 CGI이며 펄(Perl)이 대표적인 CGI언어임&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; ( CGI언어: Common Gate Interface,공용 게이트웨이 인터페이스 )&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;CGI방식의 문제점&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;동적 웹 프로그래밍은 CGI방식이자 프로세스 방식으로 실행된다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;프로세스 방식으로 실행되면,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;클라이언트가 호출할 때마다 특정기능이 새로운 메모리에 올라오게 된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이로 인해 아래와 같은 문제가 발생한다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 같은 기능을 수행하더라도 각 경우에 대해서 처음부터 메모리에 로드하여 수행해야 한다.&lt;br /&gt;2. 초기 인터넷 환경에선 사용자 수와 수행할 기능이 적으므로 실행문제를 발생시키지 않지만&lt;br /&gt;&amp;nbsp; &amp;nbsp;사용자 수가 급격히 늘고 기능이 복잡해지면서 이런 방식으로 서비스 수행 시 메모리 과부하가 발생한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위와 같은 CGI 방식을 개선하기 위해 나온 기술이&lt;br /&gt;&lt;u&gt;JSP&lt;span style=&quot;color: #3d4144;&quot;&gt;,&amp;nbsp;&lt;/span&gt;ASP&lt;span style=&quot;color: #3d4144;&quot;&gt;,&amp;nbsp;&lt;/span&gt;PHP&lt;/u&gt;&lt;span style=&quot;color: #3d4144;&quot;&gt;&lt;u&gt;와 같은&lt;/u&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;서버사이드 스크립트 언어&lt;/b&gt;&lt;/span&gt;이다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;◆ JSP&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 기본적으로&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt; Thread 방식&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 클라이언트의 &lt;u&gt;요구를 처리하는 기능은 최초 한번만 메모리에 로드&lt;/u&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 새로운 클라이언트가 기존의 클라이언트들과 &lt;u&gt;동일한 기능을 요구한다면&lt;/u&gt; &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;재사용&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/72</guid>
      <comments>https://rang22.tistory.com/72#entry72comment</comments>
      <pubDate>Sat, 19 Jun 2021 08:55:04 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 10. 인터페이스</title>
      <link>https://rang22.tistory.com/71</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btrEi3/btq8ewx1KIo/yfGfvh8O4QkvplZYIcWN8K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btrEi3/btq8ewx1KIo/yfGfvh8O4QkvplZYIcWN8K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btrEi3/btq8ewx1KIo/yfGfvh8O4QkvplZYIcWN8K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtrEi3%2Fbtq8ewx1KIo%2FyfGfvh8O4QkvplZYIcWN8K%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 인터페이스란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 개발자의 코드와 객체가 통신하는 접점&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체 사용 설명서 (여러 객체가 사용가능)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;218&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vORh1/btq70mBtEWR/7NYFHiuqFk9IQVbR3mURs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vORh1/btq70mBtEWR/7NYFHiuqFk9IQVbR3mURs1/img.png&quot; data-alt=&quot;출처 : 이것이 자바다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vORh1/btq70mBtEWR/7NYFHiuqFk9IQVbR3mURs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvORh1%2Fbtq70mBtEWR%2F7NYFHiuqFk9IQVbR3mURs1%2Fimg.png&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;218&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 이것이 자바다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 인터페이스의 구성멤버&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터페이스의 모든 멤버는 public&lt;span&gt;&amp;nbsp; 이다!!!&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. static fiinal 상수&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 선언과 동시에 초기값 지정 (static initializer 작성 불가!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 선언된 필드는 모두 'public static final'로 컴파일&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&amp;nbsp; (하지만 컴파일러가 대신 넣어준다고 해서 생략하지 않도록 하자!!)&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 추상메소드(&lt;b&gt;★&lt;/b&gt;규격★)&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 실행블록(구현부)이 없는 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 모든 추상메소드는 'public abstract'로 컴파일&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상메소드는 규격이자 자식타입(구현 클래스)에서&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;반드시 재정의해야하는 강제성을 부여하는 수단&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 디폴트메소드&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 모든 구현 객체가 가지고 있는 기본 메소드 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구현 객체가 인터페이스에 대입되어야 호출할 수 있는 인스턴스 메소드 (-&amp;gt; 자식타입의 객체 소속)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 모든 디폴트메소드는 'public default' 키워드를 반드시 붙여야 한다!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (public 은 생략되도 컴파일 과정에서 자동 생성)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;u&gt;기능의 확장&lt;/u&gt;을 위해 자바 8부터 추가&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 기능 확장을 하려면 모든 구현클래스에 새롭게 정의된 추상메소드를 모두 구현해야한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; 때문에 구현클래스를 건드리지 않고도 기능을 확장하기 위해 인터페이스의 멤버로 추가!!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;But, 디폴트 메소드가 오버라이딩 되어있는 경우, 인터페이스에 있는 디폴트메소드가 수정되었을 때&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 컴파일 오류가 발생하기 때문에 인터페이스다운 기능이 아니라고 볼 수 있다!!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 현업에서는 지양!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 정적 메소드&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 모든 객체가 공유하는 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인터페이스로 바로 호출 가능(정적메소드 -&amp;gt; 인터페이스의 클래쯔객체 소속)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 강제성을 구현하지 않고, 구현클래스에서 필요에 따라 사용가능한 기능을 확장&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 모든 정적 메소드는 'public static' 키워드를 가짐.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;인터페이스의 구성멤버에 대한 코드는 아래를 참고하면 된다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;659&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ouJP2/btq7XsQXkXQ/jrqKYzc5kDT4PGm6Q1P6f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ouJP2/btq7XsQXkXQ/jrqKYzc5kDT4PGm6Q1P6f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ouJP2/btq7XsQXkXQ/jrqKYzc5kDT4PGm6Q1P6f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FouJP2%2Fbtq7XsQXkXQ%2FjrqKYzc5kDT4PGm6Q1P6f1%2Fimg.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;659&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 인터페이스의 사용목적&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구현 객체의 같은 동작을 보장하기 위함(추상메소드를 통한 규격화)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 개발코드가 객체에 종속되지 않도록 하여 객체를 교체할 수 있도록 하기 위함&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 개발 코드 변경 없이 어떤 객체가 사용하느냐에 따라 리턴값 또는 실행 내용이 다양 (다형성)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; 구현 객체와 구현 클래스&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구현 객체 : 인터페이스의 추상메소드에 대한 실체 메소드를 가진 객체&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 구현 클래스 : 구현 객체를 생성하는 클래스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 인터페이스의 일부만 재정의하는 경우 추상클래스로 선언&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&lt;span&gt;&amp;nbsp; 인터페이스의 다중상속&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;인터페이스는 추상클래스와 달리 다중상속이 가능하다!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;방법1.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;여러 인터페이스를 상속받는 인터페이스를 implement 하여 여러 인터페이스의 추상메소드를 구현&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(인터페이스 간 상속에 대해서는 extends 키워드를 사용한다!!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;319&quot; width=&quot;700&quot; height=&quot;192&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6TdjE/btq7Zy3UguQ/WFjTrYtWjK36GTqqTIA1hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6TdjE/btq7Zy3UguQ/WFjTrYtWjK36GTqqTIA1hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6TdjE/btq7Zy3UguQ/WFjTrYtWjK36GTqqTIA1hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6TdjE%2Fbtq7Zy3UguQ%2FWFjTrYtWjK36GTqqTIA1hK%2Fimg.png&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;319&quot; width=&quot;700&quot; height=&quot;192&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;방법2.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;각각의 인터페이스를 implements 받아여러 인터페이스의 추상메소드를 구현&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;319&quot; width=&quot;700&quot; height=&quot;192&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blbNqU/btq7Z1xWXkm/Q0dljVuWBDQItvva22X4pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blbNqU/btq7Z1xWXkm/Q0dljVuWBDQItvva22X4pK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blbNqU/btq7Z1xWXkm/Q0dljVuWBDQItvva22X4pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblbNqU%2Fbtq7Z1xWXkm%2FQ0dljVuWBDQItvva22X4pK%2Fimg.png&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;319&quot; width=&quot;700&quot; height=&quot;192&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/71</guid>
      <comments>https://rang22.tistory.com/71#entry71comment</comments>
      <pubDate>Thu, 17 Jun 2021 20:14:29 +0900</pubDate>
    </item>
    <item>
      <title>[WEB] 웹 기반 프로그래밍의 발전과정</title>
      <link>https://rang22.tistory.com/70</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RZsgP/btq8MG0hwlT/ElgKvjxe5DUGSgpp0kcUW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RZsgP/btq8MG0hwlT/ElgKvjxe5DUGSgpp0kcUW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RZsgP/btq8MG0hwlT/ElgKvjxe5DUGSgpp0kcUW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRZsgP%2Fbtq8MG0hwlT%2FElgKvjxe5DUGSgpp0kcUW1%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;340&quot; width=&quot;400&quot; height=&quot;335&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;현재 대부분은 웹 프로그램을 기반으로 이루어져있다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그렇다면 웹 기반 프로그래밍이 생겨나기까지 어떠한 과정이 있었으며&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;각 과정에 따른 문제점과 그 문제를 어떻게 보완해 나갔는지 알아보자.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;step1. 사용자 PC 기반 프로그램&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 프로그램을 이용할 때&lt;span&gt;&amp;nbsp;&lt;/span&gt;사용자가 컴퓨터를 직접 이용하여 소프트웨어가 동작&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;425&quot; width=&quot;620&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xzcup/btq8glWRUNv/Yg9IckkkywC7ZTkpddXvBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xzcup/btq8glWRUNv/Yg9IckkkywC7ZTkpddXvBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xzcup/btq8glWRUNv/Yg9IckkkywC7ZTkpddXvBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxzcup%2Fbtq8glWRUNv%2FYg9IckkkywC7ZTkpddXvBk%2Fimg.png&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;425&quot; width=&quot;620&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;우리가 예전에 게임CD를 돈 주고 구매하여 게임했던 경험을 떠올려보자.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그 CD에 담긴 프로그램이 클라이언트 PC 기반 프로그램의 예가 된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;게임 프로그램은 클라이언트 PC에서 실행하면서 모든 기능을 수행한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;하지만 업데이트에 한계가 있다는 단점이 있다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제점&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;1. 프로그램이 변경될 때마다 다시 설치(변화에 대한 실시간 반영이 어려움)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;2. 데이터베이스 접속 정보가 쉽게 노출될 수 있어 보안에 취약&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;step2. CS (클라이언트/ 서버) 기반 프로그램&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- CS 기반 프로그램은 네트워크/인터넷을 이용하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;서버와 통신을 주고 받으며&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 서버에 있는 자원이&lt;span&gt;&amp;nbsp;&lt;/span&gt;클라이언트 프로그램의 모든 기능을 수시로 업데이트한다.&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) 클라이언트 프로그램(like 본사) : 데이터를 요청하는 프로그램&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(2) 서버 프로그램(like 생산지, 지점) : 데이터가 만들어지고 관리/제공되는 프로그램&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;434&quot; width=&quot;800&quot; height=&quot;433&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bznTZc/btq8dtPmw9I/yC16IkP98KhlmCHLofK9Ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bznTZc/btq8dtPmw9I/yC16IkP98KhlmCHLofK9Ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bznTZc/btq8dtPmw9I/yC16IkP98KhlmCHLofK9Ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbznTZc%2Fbtq8dtPmw9I%2FyC16IkP98KhlmCHLofK9Ik%2Fimg.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;434&quot; width=&quot;800&quot; height=&quot;433&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;클라이언트 PC 기반 프로그램에 비해 기능적인 업데이트가 보완되었으나&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;사용자에 관련된 화면 기능이 바뀌면 클라이언트 프로그램도 수정하여&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다시 설치해야 하는 단점이 여전히 존재한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제점&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;1. 클라이언트/서버 프로그램 간 동기화로 인한 문제&amp;nbsp;&lt;/b&gt;&lt;br /&gt;-&amp;gt; 사용자에 관련된 &lt;u&gt;화면 기능은 서버에서 처리할 수 없는 한계가 존재&lt;/u&gt;&lt;br /&gt;-&amp;gt; 이에 따라 설치-재설치를 반복해야하므로 다른 프로그램에 대한 영향 &amp;amp; 재배포에 대한 부담이 존재&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 데이터 전송 구현에 대한 문제&lt;/b&gt;&lt;br /&gt;-&amp;gt; 클라이언트 프로그램의 데이터 요청에 따라 소켓, RPC 등을 이용해&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; 직접 포멧팅, 전달, 유효성 검사 등을 진행하였으나, 여전히 업무적인 불편함이 발생&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;step3. 웹 기반 프로그램&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 웹기반 프로그램은 화면과 데이터 처리 모두 서버에서 수행하며&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; 데이터가 아닌 문서를 전달하는 웹을 사용한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) 웹 클라이언트 : 브라우저를 통해 요청을 입력&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(2) 웹 서버 : 요청에 대한 응답을 page 형태로 제공&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;738&quot; width=&quot;800&quot; height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HcaYy/btq8fWQx5uG/Hwsl0OFGKkx4DPkYI0NFz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HcaYy/btq8fWQx5uG/Hwsl0OFGKkx4DPkYI0NFz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HcaYy/btq8fWQx5uG/Hwsl0OFGKkx4DPkYI0NFz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHcaYy%2Fbtq8fWQx5uG%2FHwsl0OFGKkx4DPkYI0NFz0%2Fimg.png&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;738&quot; width=&quot;800&quot; height=&quot;428&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기술과 컴퓨터 성능의 발전으로 서버의 성능도 비약적으로 발전하게 되었다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이에 따라 이제 웹 기반 프로그램은 화면과 데이터 처리 모두가 서버에서 처리 가능하다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;웹 기반 프로그램의 특징&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 화면과 로직(기능)을 서버에서 처리하므로 클라이언트가 특별히 수행할 작업이 없다.&lt;br /&gt;2. 모든 기능이 서버에서 처리되므로 보안 면에서 우수하다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;위와 같은 과정을 통하여 지금의 웹 기반 프로그램이 자리잡게 되었다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다음에는 웹 기반 프로그래밍에 대해 더 자세히 알아봐야겠다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/서버프로그래밍</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/70</guid>
      <comments>https://rang22.tistory.com/70#entry70comment</comments>
      <pubDate>Thu, 17 Jun 2021 17:53:20 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 9. 추상클래스(Abstract Class)</title>
      <link>https://rang22.tistory.com/68</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pxuI4/btq7UKJNnnC/q6KaslaTWHwKgHHoleEn40/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pxuI4/btq7UKJNnnC/q6KaslaTWHwKgHHoleEn40/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pxuI4/btq7UKJNnnC/q6KaslaTWHwKgHHoleEn40/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpxuI4%2Fbtq7UKJNnnC%2Fq6KaslaTWHwKgHHoleEn40%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상(&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;Abstract)이란?&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- 실체들 간에 공통되는 특성을 추출하는 것(like 개요, 핵심)&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;( Ex. 새, 물고기, 호랑이 --&amp;gt; 동물(추상) )&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상클래스(Abstract Class)란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;856&quot; data-origin-height=&quot;454&quot; width=&quot;800&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rzWuV/btq8a07oFOf/O47TzzlkCgGxGzK714DtR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rzWuV/btq8a07oFOf/O47TzzlkCgGxGzK714DtR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rzWuV/btq8a07oFOf/O47TzzlkCgGxGzK714DtR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrzWuV%2Fbtq8a07oFOf%2FO47TzzlkCgGxGzK714DtR0%2Fimg.png&quot; data-origin-width=&quot;856&quot; data-origin-height=&quot;454&quot; width=&quot;800&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 객체(실체클래스)들의 공통되는 필드와 메소드를 정의한 클래스 -&amp;gt; 실체클래스의 부모 역할&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 클래스&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (추상메소드 없이 abstract로 정의된 경우, 상속만을 위해 만든 추상클래스이다!!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 인스턴스 생성이 불가&lt;u&gt;(But, 자식 객체가 생성될 때 super( ) 키워드를 통해 부모객체도 함께 생성)&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;※ 실체클래스(concrete class) &lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;객체를 직접 생성할 수 있는 클래스&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;b&gt;◆&amp;nbsp;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;추상클래스의 구성멤버&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;클래스의 구성멤버와 동일(필드, 생성자, 메소드)하나, 추상메소드가 포함된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 추상메소드란?&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 하위클래스가 반드시 실행내용을 채워야 하는 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드 선언만 통일하고 실행내용(구현부)는 객체마다 다른 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 추상메소드는 접근제한자가 생략되어도&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;public 접근제한자&lt;/u&gt;를 갖는다!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 추상클래스의 사용목적&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;실체 클래스들의 공통된 필드와 메소드의 이름을 통일/규격화(강제성 有)&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp; (추상 메소드를 구현하지 않으면 자식클래스 또한 추상클래스가 되니까!)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;실체 클래스를 작성할 때 소요되는 시간을 절약&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;상속받은 기능을 확장하여 &lt;/span&gt;&lt;span&gt;&amp;ldquo;&lt;/span&gt;&lt;span&gt;구체화&lt;/span&gt;&lt;span&gt;&amp;rdquo; -&amp;gt; &lt;/span&gt;&lt;span&gt;다형성&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; 추상메소드와 오버라이딩&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;메소드 이름이 동일하지만, 실행 내용이 실체 클래스마다 다른 경우&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;추상메소드를 상속받아 오버라이딩을 한다. 이것이 추상클래스의 사용목적(다형성)이다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 추상메소드 구현 방법&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 상속받은 추상클래스의 추상메소드를 상속&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 추상메소드의 구현부(메소드의 실행 내용)를 작성하여 Overrideing&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/68</guid>
      <comments>https://rang22.tistory.com/68#entry68comment</comments>
      <pubDate>Wed, 16 Jun 2021 18:17:24 +0900</pubDate>
    </item>
    <item>
      <title>JAVA</title>
      <link>https://rang22.tistory.com/66</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;</description>
      <category>공-부/백준 알고리즘</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/66</guid>
      <comments>https://rang22.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 15 Jun 2021 12:22:16 +0900</pubDate>
    </item>
    <item>
      <title>JAVA</title>
      <link>https://rang22.tistory.com/65</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;</description>
      <category>공-부/백준 알고리즘</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/65</guid>
      <comments>https://rang22.tistory.com/65#entry65comment</comments>
      <pubDate>Mon, 14 Jun 2021 09:30:50 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 8. 상속과 다형성</title>
      <link>https://rang22.tistory.com/63</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5ZzdF/btq7TKX6NhS/TmreQGsYFAWEoGM7j4QDU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5ZzdF/btq7TKX6NhS/TmreQGsYFAWEoGM7j4QDU1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5ZzdF/btq7TKX6NhS/TmreQGsYFAWEoGM7j4QDU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5ZzdF%2Fbtq7TKX6NhS%2FTmreQGsYFAWEoGM7j4QDU1%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 상속이란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;* 현실 세계에서의 의미&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모가 자식에게 물려주는 행위&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모가 자식을 선책하여 물려줌&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;* 객체지향 프로그램에서의 의미&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자식 클래스(하위, 파생)가 부모 클래스(상위)의 멤버를 물려 받는 것&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자식이 부모를 선택하여 물려받음&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상속 대상 : 부모의 인스턴스 필드와 인스턴스 메소드&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;(정적멤버는 클래스 소속이기 때문에 상속의 개념에 소속되지 않음!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ extends : 자식클래스가 상속할 부모클래스를 지정하는 키워드&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;207&quot; data-origin-height=&quot;341&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDDaOn/btq7SL83WYd/CIagHtvrOKjTssf1NEOClK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDDaOn/btq7SL83WYd/CIagHtvrOKjTssf1NEOClK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDDaOn/btq7SL83WYd/CIagHtvrOKjTssf1NEOClK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDDaOn%2Fbtq7SL83WYd%2FCIagHtvrOKjTssf1NEOClK%2Fimg.png&quot; data-origin-width=&quot;207&quot; data-origin-height=&quot;341&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 상속의 특징&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상속의 대상 : 부모클래스의 인스턴스 멤버(static은 클래스 객체 소속이므로 상속 X)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자바는 하나의 부모클래스만 상속 가능(단일상속)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모클래스의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;private&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;접근 갖는 필드와 메소드 제외&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 상속의 효과&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 같은 종류의 객체들의 규격을 명시하는 효과&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모클래스를 재 사용하여 시간 절약&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 반복된 코드 중복 제거&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 유지보수 편리성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 부모 생성자 호출 super(...)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 생성자 내 첫줄에 &lt;u&gt;super( ) 키워드를 통해&lt;/u&gt; 부모 생성자가 호출/생성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자식 객체를 생성할 때는 부모 객체부터 생성 후 자식 객체가 생성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 컴파일러가 자동적으로 super()키워드는 넣지만 명시적으로 넣어주는 것이 안정성이 있다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (특히, 매개변수가 있는 부모 생성자를 사용하는 경우 super키워드로 값을 명시적으로 작성해야한다!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; 메소드 재정의(Override)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모 클래스에서 상속받은 메소드를 수정하여 자식 클래스에서 재정의하는 것&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 재정의된 자식클래스의 메소드가 실행됨으로써 부모 메소드는 숨겨지는 효과 발생&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- @Override 어노테이션 사용을 통해 컴파일러 검사를 실시&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ Override의 조건&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모클래스의 메소드와 &lt;u&gt;동일한 시그니처를&lt;/u&gt; 가져야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 접근제한을 더 강하게 변경할 수 없다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 새로운 예외처리는 불가하다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 부모 메소드 사용 super(...)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 자식클래스에서 수정되기 이전의 부모 메소드 호출하려면 super( ) 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; super.부모메소드( )&amp;nbsp; : &lt;/b&gt;&amp;nbsp;여기서 super( )의 의미는 부모 객체를 참조한다는 의미&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp; final 클래스와 final 메소드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- final 필드 : 수정 불가 필드&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;final 클래스 : 상속 불가한 클래스&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;- &lt;span style=&quot;color: #000000;&quot;&gt;final&lt;span&gt; 메소드 : 자식이 재정의할 수 없는 메소드&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;i&gt;※ &lt;span style=&quot;color: #000000;&quot;&gt;final&lt;span&gt; 키워드가 붙으면 마지막이라는 뜻!!!&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;&lt;span&gt; 상속과 다형성&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 다형성이란? 같은 타입이지만 실행 결과가 다양한 객체 대입 가능한 성질을 의미&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 상속에서의 다형성 : &lt;b&gt;타입변환&lt;/b&gt;을 통해 / &lt;b&gt;Override&lt;/b&gt;를 통해&amp;nbsp; 가능 ★★★★★&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;결과적으로 OOP에서의 다형성 구현을 위해서는 상속이 전제되어야 한다!!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 자동타입변환(Promotion)&amp;nbsp;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;152&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcQYeb/btq7OvT8IRc/NCm0m2dho4MuDnlzIzwz80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcQYeb/btq7OvT8IRc/NCm0m2dho4MuDnlzIzwz80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcQYeb/btq7OvT8IRc/NCm0m2dho4MuDnlzIzwz80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcQYeb%2Fbtq7OvT8IRc%2FNCm0m2dho4MuDnlzIzwz80%2Fimg.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;152&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 프로그램 실행 도중에 자동 타입 변환이 일어나는 것 =&amp;gt; Promotion&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 부모타입변수에 자식객체를 대입하면 자동타입 변환(Promotion)이 발생&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; (타입 간 상속 계층의 상위면 자동타입 변환도 가능)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;345&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhOgZN/btq7P76mTIl/KeZ1rWVk8pxNLSdofMGSU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhOgZN/btq7P76mTIl/KeZ1rWVk8pxNLSdofMGSU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhOgZN/btq7P76mTIl/KeZ1rWVk8pxNLSdofMGSU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhOgZN%2Fbtq7P76mTIl%2FKeZ1rWVk8pxNLSdofMGSU1%2Fimg.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;345&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 이때, 부모클래스 안에 자식타입이 포함되어 숨기 때문에&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;겉으로 보이는 부모클래스에 선언된 필드와 메소드만 사용가능하다!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(&lt;u&gt;예외 : 자식타입에서 재정의된 메소드는 호출 가능하다!!&lt;/u&gt;)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.&amp;nbsp; 강제타입변환(Casting)&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;136&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v1hpd/btq7Q9WTlVR/umTfH0WQjeOyJXe8MNXlo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v1hpd/btq7Q9WTlVR/umTfH0WQjeOyJXe8MNXlo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v1hpd/btq7Q9WTlVR/umTfH0WQjeOyJXe8MNXlo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv1hpd%2Fbtq7Q9WTlVR%2FumTfH0WQjeOyJXe8MNXlo0%2Fimg.png&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;136&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 큰 타입을 작은 타입으로 강제로 변환하는 것 =&amp;gt; Casting&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 조건 : 자식타입이 부모 타입으로 자동 변환되어 있는 경우!!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 용도 : 부모타입에 선언된 필드와 메소드만 필요할 때&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;자식 타입에 선언된 필드와 메소드가 필요할 때&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다시 말해, 부모타입으로 형변환되어있는 자식 타입으로 다시 강제 형변환하는 것!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 객체타입 확인 (instanceof)&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;119&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n3pgV/btq7VzgXUCq/UuIPxzWuD3sKpUIpOtdD40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n3pgV/btq7VzgXUCq/UuIPxzWuD3sKpUIpOtdD40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n3pgV/btq7VzgXUCq/UuIPxzWuD3sKpUIpOtdD40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn3pgV%2Fbtq7VzgXUCq%2FUuIPxzWuD3sKpUIpOtdD40%2Fimg.png&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;119&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 강제 타입 변환 하기 전, 해당 자식 타입이 맞는지 확인하기 위해서 사용&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/63</guid>
      <comments>https://rang22.tistory.com/63#entry63comment</comments>
      <pubDate>Sat, 12 Jun 2021 01:43:27 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 예제 - 다차원 배열로 피라미드 모양 출력하기</title>
      <link>https://rang22.tistory.com/61</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;다차원 배열을 값의 목록으로 생성하고,&amp;nbsp;아래와 같이 출력하는 프로그램을 작성하시오.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(Tip. 피라미드 모양의 문자열 템플릿을 먼저 만들어보면 어떨까?)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;223&quot; data-origin-height=&quot;224&quot; width=&quot;300&quot; height=&quot;301&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C3aOm/btq6ZUGwbWm/5FgYCv7XHPJ7OWmEDo2yMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C3aOm/btq6ZUGwbWm/5FgYCv7XHPJ7OWmEDo2yMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C3aOm/btq6ZUGwbWm/5FgYCv7XHPJ7OWmEDo2yMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC3aOm%2Fbtq6ZUGwbWm%2F5FgYCv7XHPJ7OWmEDo2yMK%2Fimg.png&quot; data-origin-width=&quot;223&quot; data-origin-height=&quot;224&quot; width=&quot;300&quot; height=&quot;301&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;피라미드의 각 층을 하나의 배열 형태 요소로 본다면 다차원 배열을 생성해야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;총 6개의 1차원 배열이 있으며 각 배열의 길이는 모두 다르다.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이러한 배열을 생성하는 식을 작성하면 다음과 같다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;---&amp;gt;&amp;nbsp; int[ ][ ] arr = new int [6][ ];&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;하지만 이 문제에서는&amp;nbsp;배열의 요소 값과 순서를 알고 있으므로&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;값 목록으로 배열의 요소 값을 입력&lt;/u&gt;해주도록 한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이제 피라미드 모양의 템플릿을 출력하기 위한 메소드를 만들어야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이때, 메소드를 통해 입력받은 배열의 요소 값들은 피라미드에 대입되어야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그러기 위해서 피라미드 형태의 문자열 템플릿을 구현한 뒤,&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;각 요소값들로 교환하는 방법을 사용하려고 한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;위 내용을 바탕으로 문제를 풀어보자!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 과정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step1. 피라미드 모양의 템플릿을 출력하기 위한 메소드의 시그니처를 정한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;1-1. 메소드 이름 : pyramidPrint&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;1-2. 리턴타입 : 피라미드 모양의 템플릿이 문자열로 반환되므로&amp;nbsp; String&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;1-3. 매개변수 : 2차원 배열&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step2. 피라미드 모양의 템플릿을 반환하는 문자열 변수를 정의한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-1. 문자열의 결합을 위해 StringBuffer를 생성한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-2. StringBuffer에서 문자열을 결합해주는 append메소드를 호출한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-3. 피라미드 형태가 출력되도록 한줄씩 입력하여 결합한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;2-4. 이때 String.format을 통해 피라미드의 형태를 만들어 치환할 문자열 t를 입력한다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-5. toString 메소드를 통해 결합된 객체를 생성하여 변수에 대입한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step3. for문을 통해 2번에서 정의한 문자열 변수 pyramid에서 replaceFirst 메소드를 &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; 사용하여 배열의 요소값으로 치환한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-1. valueOf( )메소드를 통해 배열의 요소값을 String타입으로 변환한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(replaceFirst 메소드는 문자열을 매개변수로 받기 때문에)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-2. replaceFirst 메소드를 통해 문자열 변수 t를 매개변수로 받은 배열의 요소값으로 치환한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;pyramidPrint&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는 배열의 요소값으로 대체된 문자열 변수 pyramid를 리턴한다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 15px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;Pyramid&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;&amp;nbsp;pyramidPrint(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[][]&amp;nbsp;arr)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;&amp;nbsp;t&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;temp&quot;&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;&amp;nbsp;pyramid&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;StringBuffer()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;피라미드패턴&amp;nbsp;출력변수&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%10s&quot;&lt;/span&gt;,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%9s&amp;nbsp;%s&quot;&lt;/span&gt;,&amp;nbsp;t,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%8s&amp;nbsp;%s&amp;nbsp;%s&quot;&lt;/span&gt;,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%7s&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;%s&quot;&lt;/span&gt;,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%6s&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;%s&quot;&lt;/span&gt;&amp;nbsp;,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.append(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;format&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;%5s&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;%s&quot;&lt;/span&gt;,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t,&amp;nbsp;t)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'\n'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;toString&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[]&amp;nbsp;i&amp;nbsp;:&amp;nbsp;arr)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;j&amp;nbsp;:&amp;nbsp;i)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;&amp;nbsp;s&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;valueOf&lt;/span&gt;(j);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//문자열타입으로&amp;nbsp;변환&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pyramid&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;pyramid.replaceFirst(t,&amp;nbsp;s);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&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;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//inner&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//outer&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;return&lt;/span&gt;&amp;nbsp;pyramid;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//pyramidPrint&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step5. 실행클래스에서 arr 배열을 선언하고 값 목록으로 요소 값을 입력한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step6. 배열의 요소값을 피라미드 형태로 출력해주는 pyramidPrint메소드를 호출한다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 14px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;PyramidTest&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[][]&amp;nbsp;arr&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{{&lt;span style=&quot;color: #c10aff;&quot;&gt;1&lt;/span&gt;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;2&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;3&lt;/span&gt;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;4&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;5&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;6&lt;/span&gt;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;7&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;8&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;9&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;10&lt;/span&gt;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;11&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;12&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;13&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;14&lt;/span&gt;},&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;16&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;17&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;18&lt;/span&gt;,&lt;span style=&quot;color: #c10aff;&quot;&gt;19&lt;/span&gt;}};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;값목록으로&amp;nbsp;배열&amp;nbsp;요소&amp;nbsp;값&amp;nbsp;입력&amp;nbsp;받기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pyramid&amp;nbsp;pyramid&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;Pyramid();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(pyramid.pyramidPrint(arr));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;pyramidPrint메소드로&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;요소들을&amp;nbsp;피라미드&amp;nbsp;모양으로&amp;nbsp;출력하기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공-부/Homework</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/61</guid>
      <comments>https://rang22.tistory.com/61#entry61comment</comments>
      <pubDate>Thu, 10 Jun 2021 17:34:50 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 7-3. 참조타입 : 열거타입</title>
      <link>https://rang22.tistory.com/60</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biEa8R/btq65TgfLsJ/JARdmQu3qlSQEXCUzeokb0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biEa8R/btq65TgfLsJ/JARdmQu3qlSQEXCUzeokb0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biEa8R/btq65TgfLsJ/JARdmQu3qlSQEXCUzeokb0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiEa8R%2Fbtq65TgfLsJ%2FJARdmQu3qlSQEXCUzeokb0%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 열거타입(Enumeration Type)이란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 한정된 값인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;u&gt;열거 상수&lt;/u&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;중에서 하나의 상수를 저장하는 타입&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 몇 가지로 제한된 상수를 가지는 타입&amp;nbsp;(Ex. Week 등)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;※ 열거 상수란?&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 상수를 선언하면 열거 상수 자체가 객체로 생성된다!!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 타입 선언 때 주어지는 한정된 값, 즉 상수로 &amp;lt;타입. 상수&amp;gt; 형태로 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;Ex. Week 열거 타입의 상수 MONDAY는 Week.MONDAY로 사용&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 상수는 모두 대문자로 작성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;382&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sxGyW/btq64SoB6qi/z8KUgi2gz320DkXWnIwjrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sxGyW/btq64SoB6qi/z8KUgi2gz320DkXWnIwjrk/img.png&quot; data-alt=&quot;열거타입의 예&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sxGyW/btq64SoB6qi/z8KUgi2gz320DkXWnIwjrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsxGyW%2Fbtq64SoB6qi%2Fz8KUgi2gz320DkXWnIwjrk%2Fimg.png&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;382&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;열거타입의 예&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 열거타입 선언&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;public enum 키워드&lt;/b&gt;는 열거 타입을 선언하기 위한 키워드(소문자로 작성)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 타입 이름은 소스파일 이름과 대소문자가 모두 일치해야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 타입의 이름 선정하고 해당 이름으로 소스 파일(.java)을 생성&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(이때, 열거 타입의 이름은 관계적으로 첫 글자는 대문자, 나머지는 소문자)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ 열거타입 변수&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 타입도 하나의 타입이므로 변수를 선언하고 사용해야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 열거 타입은&amp;nbsp; null 값을 저장할 수 있다. (왜? 참조 타입이니까!)&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;열거타입 변수;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;// 열거타입 변수 선언&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;열거타입 변수 = 열거타입.열거상수;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #a6bc00;&quot;&gt;//열거 상수 저장&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;열거타입의 객체 &quot;열거상수&quot;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;열거 상수는 힙영역에 열거 객체로 생성되며&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;메소드 영역에 생성된 열거 상수 주소값을 통해 해당 열거 객체를 각각 참조할 수 있다.&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;440&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HhBYN/btq65ZAPyCR/ghEq14BpNWMtmgsEdNH6Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HhBYN/btq65ZAPyCR/ghEq14BpNWMtmgsEdNH6Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HhBYN/btq65ZAPyCR/ghEq14BpNWMtmgsEdNH6Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHhBYN%2Fbtq65ZAPyCR%2FghEq14BpNWMtmgsEdNH6Qk%2Fimg.png&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;440&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;열거 상수를 제외한 열거 타입의 변수는 스택 영역에 생성된다.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;그렇다면 열거 타입의 변수는 어떻게 객체가 생성될까?&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;683&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKYRcA/btq66vlTF7e/lMNm13o6pQj25gQwDDa5m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKYRcA/btq66vlTF7e/lMNm13o6pQj25gQwDDa5m0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKYRcA/btq66vlTF7e/lMNm13o6pQj25gQwDDa5m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKYRcA%2Fbtq66vlTF7e%2FlMNm13o6pQj25gQwDDa5m0%2Fimg.png&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;683&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;열거 타입의 변수는 스택 영역에 생성되기 때문에 열거 상수의 객체를 참조하게 된다.&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;참고&amp;gt; 열거상수가 객체라면 객체생성은 어떻게 이루어지는걸까?&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;열거상수는 열거타입의 생성자를 호출한다.&lt;br /&gt;다시 말해, 각각의 열거상수가 매개변수 없는 기본생성자를 호출하여 열거상수가 객체화되는 것이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;(+) 필드랑 메소드 선언도 가능한가?&lt;br /&gt;- Yes!!!&amp;nbsp; 열거상수 역시 필드와 메소드를 가질 수 있다. &lt;br /&gt;&amp;nbsp; &amp;nbsp;그 필드와 메소드는 각 열거상수가 생성될 때 생성되기 때문에 열거상수에 소속된 필드와 메소드가 된다.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp; But, 열거상수에 필드와 메소드를 넣어사용하는 경우는 흔치 않다는 것!! &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;객체의 특성을 가지고 있다는 것만 기억하자!&lt;/i&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/60</guid>
      <comments>https://rang22.tistory.com/60#entry60comment</comments>
      <pubDate>Thu, 10 Jun 2021 17:14:17 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 예제 - 12지신 최단 거리 구하기(Pathfinding)</title>
      <link>https://rang22.tistory.com/59</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;배열안에, 12지신을 의미하는 문자들이 들어 있을 때 최단거리를 찾는 프로그램을 작성하시오.&lt;/h4&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;12지신 배열 : &quot;자/축/인/묘/진/사/오/미/신/유/술/해&quot;&lt;/h3&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;(12개의 문자를 찾아가는 경로는 '순방향'과 '역방향'이 모두 가능하다!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;두 문자의 최단거리를 찾아야 하는데, 그 경로는 순방향일 수도, 역방향일 수도 있다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;배열에는 총 12개의 요소가 있으므로 두 문자의 순방향 거리와 역방향 거리를 중&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6이하('2/전체거리')인 거리가 최단 거리가 된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이러한 전제조건을 활용하여 문제를 풀어보자.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 과정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step 1. char 타입의 배열에 값목록으로 12지신 요소를 입력하여 배열을 생성한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;b&gt;Step&lt;span&gt; &lt;/span&gt;2. Scanner를 통해 두개의 문자(시작지점, 도착지점)를 입력받는다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-1. Scanner는 char타입의 문자를 받을 수 없으므로 charAt( )메소드를 이용한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step&lt;span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;/span&gt;. for문을 통해 입력받은 지점의 인덱스를 구한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-1. 조건문을 통해 시작인덱스, 도착인덱스에 값을 대입한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-2. 이때, 두 개의 지점이 같은 곳일 수도 있으므로 if문-if문을 사용한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step&lt;span&gt;&lt;span&gt; 4&lt;/span&gt;&lt;/span&gt;. 두개의 문자 사이의 최단 거리를 구한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;4-1. 인덱스1과 인덱스2의 크기를 비교한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4-2. 인덱스1 &amp;lt; 인덱스2인 경우 : distance = index2 - index1 (순방향-&amp;gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 순방향 거리가 전체거리/2보다 작으면 최단거리, 크면 역방향거리가 최단거리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4-3. 인덱스1 &amp;gt; 인덱스2인 경우 : distance = index1 - index2(역방향&amp;lt;-)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 역방향 거리가 전체거리/2보다 작으면 최단거리, 크면 순방향거리가 최단거리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4-4. 인덱스1 = 인덱스2인 경우 : distance =0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step&lt;span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;/span&gt;. Step4 내용을 기반으로 최단거리를 출력한다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;41&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;42&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;43&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;44&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;45&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;46&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;47&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;48&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;49&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;50&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;51&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;52&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;53&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;54&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;55&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;56&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;57&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;58&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;59&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;60&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;61&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;62&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;63&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;64&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;65&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;66&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;67&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;68&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;69&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;70&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;71&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;72&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;73&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;74&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;75&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;76&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;77&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;78&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;79&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;80&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;81&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.util.&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;lombok.extern.log4j.Log4j;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;@Log4j&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;Pathfinding&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;&amp;nbsp;sc&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;in&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//값&amp;nbsp;목록으로&amp;nbsp;배열&amp;nbsp;생성&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;char&lt;/span&gt;[]&amp;nbsp;gods&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;span style=&quot;color: #ffd500;&quot;&gt;'자'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'축'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'인'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'묘'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'진'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'사'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'오'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'미'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'신'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'유'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'술'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;'해'&lt;/span&gt;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;char&lt;/span&gt;&amp;nbsp;god1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;sc.next().&lt;span style=&quot;color: #4be6fa;&quot;&gt;charAt&lt;/span&gt;(&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//시작지점&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;char&lt;/span&gt;&amp;nbsp;god2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;sc.next().&lt;span style=&quot;color: #4be6fa;&quot;&gt;charAt&lt;/span&gt;(&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//도착지점&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sc.close();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;distance;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//시작-도착지점&amp;nbsp;거리&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;index1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//시작인덱스&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;index2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//도착인덱스&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;gods.&lt;span style=&quot;color: #4be6fa;&quot;&gt;length&lt;/span&gt;;&amp;nbsp;i&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(gods[i]&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;god1)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//시작지점&amp;nbsp;인덱스&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;i;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(gods[i]&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;god2)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//도착지점&amp;nbsp;인덱스&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;i;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//if-else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//전제조건 : 거리가 전체거리/2보다 작으면 최단거리가 된다.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(index1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;index2)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;index2&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;index1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//거리&amp;nbsp;-&amp;nbsp;순방향&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt; gods.length/2)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;순방향입니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt; gods.length/2){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;gods.&lt;span style=&quot;color: #4be6fa;&quot;&gt;length&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;distance;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;역방향입니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;순방향과&amp;nbsp;역방향이&amp;nbsp;같습니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//if-else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(index1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;index2)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;index1&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;index2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//거리&amp;nbsp;-&amp;nbsp;역방향&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt; gods.length/2)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;역방향입니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt; gods.length/2){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;distance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;gods.&lt;span style=&quot;color: #4be6fa;&quot;&gt;length&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;distance;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;순방향입니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;순방향과&amp;nbsp;역방향이&amp;nbsp;같습니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;최단거리는&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;distance);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//if-else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;log.info(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;제자리입니다.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;if-else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>공-부/Homework</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/59</guid>
      <comments>https://rang22.tistory.com/59#entry59comment</comments>
      <pubDate>Wed, 9 Jun 2021 20:16:48 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 예제 - 배열의 요소 합 구하기(enhanced for문 사용)</title>
      <link>https://rang22.tistory.com/58</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;배열의 길이와 요소값을 입력받아 배열의 요소 합을 구하는 프로그램을 작성하시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;enhanced for문을 사용하여 배열 요소의 합을 구해보자.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이때, 코드를 작성할 때 &lt;u&gt;자료구조와 핵심로직은 분리&lt;/u&gt;하여 작성하는 것이 중요함을 기억하자!&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(배열이 완성되지 않은 상태에서 활용하는 것은 불안정함!!)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 과정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step1. Scanner를 통해 배열의 크기를 입력받아 배열을 정의한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step2. for문을 이용하여 배열의 요소값을 입력받는다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step3. enhanced&lt;span&gt;&amp;nbsp;&lt;/span&gt;for문을 이용하여 배열의 요소 값을 누적하여 더한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step4. 누적하여 더해진 합을 출력한다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 15px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.util.&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;lombok.extern.log4j.Log4j;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;ArraySum&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;&amp;nbsp;sc&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;in&lt;/span&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;n&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;sc.nextInt();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[]&amp;nbsp;arr&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[n];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;sum&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;arr.&lt;span style=&quot;color: #4be6fa;&quot;&gt;length&lt;/span&gt;;&amp;nbsp;i&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//배열의&amp;nbsp;요소값&amp;nbsp;입력받기&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;arr[i]&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;sc.nextInt();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//classical&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;element&amp;nbsp;:&amp;nbsp;arr)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//배열&amp;nbsp;요소값들의&amp;nbsp;합&amp;nbsp;구하기&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;sum&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;element;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//enhanced&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sc.close();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(sum);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//end&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공-부/Homework</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/58</guid>
      <comments>https://rang22.tistory.com/58#entry58comment</comments>
      <pubDate>Wed, 9 Jun 2021 16:44:05 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 예제 - 랜덤 숫자 생성하기 (Math.random( )함수 이용)</title>
      <link>https://rang22.tistory.com/56</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;min &amp;lt;= x &amp;lt; max&amp;nbsp; 범위 내에서 랜덤 숫자를 반환하는 프로그램을 작성하시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Math 클래스에 있는 Math.random( ) 메소드를 활용하여 공식을 만들어보자.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(Math.random( ) 메소드를 실행하면 &amp;nbsp;0.0이상 1.0 미만 범위의 실수값 하나가 무작위로 리턴된다.)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 과정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step1. Math.random( ) 메소드의 범위가 0.0이상 1.0 미만이므로 원하는 범위만큼 숫자를 곱해준다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Ex) 주사위는 1 ~ 6의 범위로 6을 곱해준다. ( 범위 : 0.0 * 6 &amp;lt;= x &amp;lt; 1.0*6 )&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step2. 랜덤 숫자의 최소값(시작점)만큼 더해준다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Ex) 주사위는 1부터 숫자가 시작하므로 1을 더해준다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;( 범위 : 0.0 * 6 +1 &amp;lt;= x &amp;lt; 1.0*6 +1 )&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Step3.&amp;nbsp; Math.random( ) 메소드는 실수의 값을 리턴하므로 int타입으로 &lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Casting하여 소수점 단위를&lt;/b&gt;&lt;b&gt; 절삭시킨 뒤 반환하여 대입한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Ex) int number = (int) (Math.random( ) * 6 +1)&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이와 같은 과정을 식으로 표현하면 다음과 같다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 15px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;RandomExample&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;min&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;5&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;최소값&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;max&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;45&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;최대값&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;randomNumber&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;)&amp;nbsp;(Math.random()&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;*&lt;/span&gt;&amp;nbsp;(max&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;min)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;min);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(randomNumber);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>공-부/Homework</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/56</guid>
      <comments>https://rang22.tistory.com/56#entry56comment</comments>
      <pubDate>Tue, 8 Jun 2021 23:29:56 +0900</pubDate>
    </item>
    <item>
      <title>JAVA 7-2. 참조 타입 : 커맨드 라인 입력 (String[] args 용도)</title>
      <link>https://rang22.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y1Gi1/btq6WOMiJBD/SqtlkeClDdArmmdCuK6xKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y1Gi1/btq6WOMiJBD/SqtlkeClDdArmmdCuK6xKk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y1Gi1/btq6WOMiJBD/SqtlkeClDdArmmdCuK6xKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy1Gi1%2Fbtq6WOMiJBD%2FSqtlkeClDdArmmdCuK6xKk%2Fimg.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot; data-filename=&quot;제목을 입력하세요 (1).jpg&quot; width=&quot;300&quot; height=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆ Command Line 입력이란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;자바 프로그램을 실행할 때 커맨드 라인(&lt;span style=&quot;color: #666666;&quot;&gt;args[ ] 배열)&lt;/span&gt;에 인수를 넣어주는 것을 의미한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;프로그램이 작동 시 &lt;u&gt;다양한 값을 넣어 어떻게 반응하는지 테스트 할 때 편리하게 사용&lt;/u&gt;된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 프로그램이 실행되면 JVM은 길이가 0인 String 배열을 먼저 생성하고&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;main( ) 메소드를 호출할 때 매개값(인자)으로 전달한다.&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ &lt;span style=&quot;color: #000000;&quot;&gt;main( )메소드가 실행되면 &lt;span style=&quot;color: #000000;&quot;&gt;args배열은&lt;/span&gt; 무조건 생성되기 때문에&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;외부값을 전달하지 않아도 비어있는 배열로 생성되며,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;NullPointException이 발생하지 않는다!!!&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #000000; letter-spacing: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp;(만약 예외가 발생하면 모든 실행클래스가 실행되지 않고 에러가 날 것!!)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;Command Line 입력하려면?&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;커맨드 라인 입력하는 과정은 다음과 같다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;1) 상단 [Run]메뉴 - [Run Configurations]로 들어간다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;805&quot; width=&quot;400&quot; height=&quot;782&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6VPyj/btq69Shcbk7/2GnyiKJpBEfQBdTtkw5O0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6VPyj/btq69Shcbk7/2GnyiKJpBEfQBdTtkw5O0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6VPyj/btq69Shcbk7/2GnyiKJpBEfQBdTtkw5O0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6VPyj%2Fbtq69Shcbk7%2F2GnyiKJpBEfQBdTtkw5O0k%2Fimg.png&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;805&quot; width=&quot;400&quot; height=&quot;782&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;2) main탭에서 해당 소스 파일의 위치와 class 이름을 확인한다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;633&quot; width=&quot;650&quot; height=&quot;524&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4nklN/btq67ShrEeX/sNmzaDA1h7GU1ktpxMjxn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4nklN/btq67ShrEeX/sNmzaDA1h7GU1ktpxMjxn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4nklN/btq67ShrEeX/sNmzaDA1h7GU1ktpxMjxn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4nklN%2Fbtq67ShrEeX%2FsNmzaDA1h7GU1ktpxMjxn1%2Fimg.png&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;633&quot; width=&quot;650&quot; height=&quot;524&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;3) Arguments탭에서 Program arguments에 원하는 커맨드 라인을 입력한다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;638&quot; width=&quot;650&quot; height=&quot;524&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bggrLg/btq7bCLMN8W/qDWkLPqqUz6PnJckJgMRvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bggrLg/btq7bCLMN8W/qDWkLPqqUz6PnJckJgMRvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bggrLg/btq7bCLMN8W/qDWkLPqqUz6PnJckJgMRvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbggrLg%2Fbtq7bCLMN8W%2FqDWkLPqqUz6PnJckJgMRvk%2Fimg.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;638&quot; width=&quot;650&quot; height=&quot;524&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;4) 출력문을 작성하여 이클립스 콘솔 창에서 테스트 결과를 확인할 수 있다.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;487&quot; width=&quot;600&quot; height=&quot;581&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/utOJa/btq64MCBfbI/L1rGmxoz7NnYJwVQlky0PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/utOJa/btq64MCBfbI/L1rGmxoz7NnYJwVQlky0PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/utOJa/btq64MCBfbI/L1rGmxoz7NnYJwVQlky0PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FutOJa%2Fbtq64MCBfbI%2FL1rGmxoz7NnYJwVQlky0PK%2Fimg.png&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;487&quot; width=&quot;600&quot; height=&quot;581&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt; String[] args의 용도&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;String[] args를 통해 커맨드 라인에서 입력된 데이터의 수(배열의 길이),&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;입력된 데이터(배열의 항목 값)을 알 수 있다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;◆&lt;span&gt;&amp;nbsp;가변인자&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 메소드 선언 시 매개 변수가 0개 이상의 전달인자를 받아야하는 경우 선언할 수 있다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(다시 말해, 매개 변수의 개수가 정해지지 않은 경우 사용한다.)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- 가변인자는 배열과 동일하지만 배열의 형태가 없어도 전달된다.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; (가변인자에 값을 넣을 때에는 쉼표를 찍고 나열만 하면 된다!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;- &lt;b&gt;가변인자는 값을 주지 않으면 비어있는 배열이 생성된다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;따라서, 배열의 개수가 0개여도 &lt;span style=&quot;color: #000000;&quot;&gt;NullPointException 발생하지 않는다.&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;※ 메소드 안에 있는 가변인자 안에서 처리되며, 가변인자는 항상 매개 변수의 마지막에 와야한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp; (왜? 가변인자는 무한으로 받을 수 있기 때문에 어디가 끝인지 모를 수 있기 때문이다.)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend/JAVA-자바</category>
      <category>ㅣ</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/55</guid>
      <comments>https://rang22.tistory.com/55#entry55comment</comments>
      <pubDate>Tue, 8 Jun 2021 10:55:43 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 자바 예제 - 자판기 거스름돈 산출하기</title>
      <link>https://rang22.tistory.com/53</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;문제&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;조건 1.&amp;nbsp;물건&amp;nbsp;값&amp;nbsp;=&amp;gt;&amp;nbsp;정수만&amp;nbsp;허용&amp;nbsp;(예:&amp;nbsp;int&amp;nbsp;price&amp;nbsp;=&amp;nbsp;1580;&amp;nbsp;) &lt;br /&gt;조건 2. 지급한 현금 =&amp;gt; 정수만 허용 (예: int pay = 3900; ) &lt;br /&gt;조건 3. 사용가능한 동전 =&amp;gt; 500원/100원/50원/10원&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위 조건 하에, 물건의 가격과 지불한 현금은 임의대로 주어졌을때&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;거스름돈을, 동전의 종류별로 몇개씩 주어야 하는지 산출하세요.&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9; color: #000000;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/(divide operator), %(modular operator) 연산자를 이용하여 동전의 개수를 구한다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이때, 금액이 큰 금액부터 순차적으로 계산한다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;문제 해결 과정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step 1. 변수를 선언한다(&lt;span style=&quot;color: #000000;&quot;&gt;물건의 가격, 지불액, 거스름돈&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step&lt;/span&gt;&amp;nbsp;2. 물건의 가격과 지불액을 입력받는다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step &lt;/span&gt;3. 거스름돈을 &quot;지불액 - 물건의 가격&quot;으로 초기화한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-1. 입력 조건 추가 : 입력받을 지불액과 물건의 가격은 0보다 커야 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;3-2. 입력 조건 추가 : 지불액은 물건의 가격보다 커야 한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step &lt;/span&gt;4. 동전의 개수를 대입할 coinList 배열을 생성한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;4-1. 배열 요소의 값을 알고 있으므로 값 목록(500, 100, 50, 10)으로 생성한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;4-2. 이때, 동전의 금액이 큰 순서대로 값 목록을 입력한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step &lt;/span&gt;5. 동전의 개수를 입력받을 coin변수를 정의한다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Step &lt;/span&gt;6. 향상된 for문을 이용하여&amp;nbsp; 동전의 개수를 구한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;6-1. 거스름 돈에서 coinList의 요소값을 순차적으로 /(나누기)하여 동전의 개수를 구한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;6-2. 6-1에서 구한 동전을 뺀 금액을 %(나머지) 연산자를 통해 거스름돈에 대입한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 15px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;29&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;30&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;31&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;32&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;33&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;34&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;35&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;36&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;37&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;38&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;39&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;40&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.util.&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;Charge&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;&amp;nbsp;stdIn&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;Scanner&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;in&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;price;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//물건의&amp;nbsp;가격&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;pay;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//지불액&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;charge;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//거스름돈&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;do&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;print&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;물건의&amp;nbsp;가격&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;price&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;stdIn.nextInt();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;print&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;지불액&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;pay&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;stdIn.nextInt();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;charge&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;pay&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;&amp;nbsp;price;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;while&lt;/span&gt;(price&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;|&lt;/span&gt;&amp;nbsp;pay&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;|&lt;/span&gt;&amp;nbsp;charge&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//do-while&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stdIn.close();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;[]&amp;nbsp;coinList&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;span style=&quot;color: #c10aff;&quot;&gt;500&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;100&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;50&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;10&lt;/span&gt;};&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;coin&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #c10aff;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;--------------동전의&amp;nbsp;개수-----------------&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;거스름돈&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;charge&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;원&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;arr&amp;nbsp;:&amp;nbsp;coinList)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;coin&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;charge&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;/&lt;/span&gt;&amp;nbsp;arr;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;charge&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;charge&amp;nbsp;%&amp;nbsp;arr;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(arr&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;원&amp;nbsp;동전의&amp;nbsp;개수&amp;nbsp;:&amp;nbsp;&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;coin&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;개&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//enhanced&amp;nbsp;for&amp;nbsp;&amp;lt;-&amp;gt;&amp;nbsp;classic&amp;nbsp;for&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//class&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공-부/Homework</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/53</guid>
      <comments>https://rang22.tistory.com/53#entry53comment</comments>
      <pubDate>Mon, 7 Jun 2021 15:44:57 +0900</pubDate>
    </item>
    <item>
      <title>JAVA. 백준 알고리즘 단계별 문제 8단계(문제 번호 1712 : 손익분기점)</title>
      <link>https://rang22.tistory.com/52</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;(문제 1712)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;A, B, C가 주어졌을 때, 손익분기점을 구하는 프로그램을 작성하시오.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;* 손익분기점이란?&lt;/b&gt;&lt;br /&gt;- 지불되어야 하는 모든 비용이 지불된 상태이고 특별한 이익이나 손실이 없는 경우&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;633&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uEWvo/btq6Fvs0Way/4q4KFC5hvgTsVKKwitPuo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uEWvo/btq6Fvs0Way/4q4KFC5hvgTsVKKwitPuo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uEWvo/btq6Fvs0Way/4q4KFC5hvgTsVKKwitPuo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuEWvo%2Fbtq6Fvs0Way%2F4q4KFC5hvgTsVKKwitPuo0%2Fimg.png&quot; data-origin-width=&quot;767&quot; data-origin-height=&quot;633&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 포인트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;먼저, 문제에서 제시된 개념들을 정리하면 고정비용 A, 가변비용 B, 판매수입 C이다.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;손익분기점이란 이익이 발생하는 시점을 의미하는데 그 시점을 식으로 표현하면 다음과 같다.&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;손익분기점 : A + B * n &amp;lt; C * n (n : 컴퓨터 생산수량)&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;여기서 손익분기점이 제로인 상태를 구하면,&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;A + B * n = C * n&lt;br /&gt;A = n(C-B)&lt;br /&gt;n = A / (C-B)&lt;/blockquote&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결국 n은 컴퓨터 생산 수량이므로 +1을 해주면 손익분기점이된다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;또 한가지 고려해야할 점은,&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;위 식을 해석하면 가변비용 B가 판매수입 C보다 작다면 손익분기점은 발생할 수 없다.&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;따라서, B가 C보다 클 때 손익분기점을 계산하도록 프로그램을 작성해야 한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;문제 해결 과정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. 고정비용(A), 가변비용(B), 판매수입(C)을 입력받는다.&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;(이때, A, B, C는 21억 이하의 자연수이므로 int타입으로 선언한다.)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1-1. &lt;span style=&quot;color: #000000;&quot;&gt;BufferedReader를 선언한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;1-2. &lt;span style=&quot;color: #000000;&quot;&gt;BufferedReader는 엔터를 기준으로 입력을 받으므로 StringTokenizer를 통해&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;공백을 기준으로 나눠주도록 한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;1-3. 공백을 기준으로 나눈 값을 변수 A, B, C에 대입한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.&amp;nbsp; 조건문을 통해 값을 출력한다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-1. if문 - 손익분기점이 없는 경우(B &amp;gt;= C), '-1'이 출력되도록 한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;2-2. else문 - 위 내용을 바탕으로 손익분기점을 출력한다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;style&gt;
  .area_view .colorscripter-code { margin: 5px auto 20px; font-size: 15px; }
  .area_view .colorscripter-code-table {display: block; overflow-x: auto; font-size: 15px;}
  .area_view .colorscripter-code-table &gt; tbody &gt; tr &gt; td:nth-last-of-type(2) {width:100%;}
&lt;/style&gt;
&lt;div class=&quot;area_view colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 900px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;area_view colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #272727; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #4f4f4f;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #aaa; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;1&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;2&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;3&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;4&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;5&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;6&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;7&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;8&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;9&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;10&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;11&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;12&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;13&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;14&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;15&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;16&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;17&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;18&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;19&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;20&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;21&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;22&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;23&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;24&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;25&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;26&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;27&lt;/div&gt;
&lt;div style=&quot;line-height: 160%;&quot;&gt;28&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0; text-align: left;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 160%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.io.BufferedReader;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.io.IOException;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.io.InputStreamReader;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;import&lt;/span&gt;&amp;nbsp;java.util.StringTokenizer;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;No01&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;main(&lt;span style=&quot;color: #4be6fa;&quot;&gt;String&lt;/span&gt;[]&amp;nbsp;args)&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;throws&lt;/span&gt;&amp;nbsp;IOException&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedReader&amp;nbsp;br&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;BufferedReader&amp;nbsp;(&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;InputStreamReader(&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;in&lt;/span&gt;));&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringTokenizer&amp;nbsp;st&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;StringTokenizer(br.readLine());&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;A&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;Integer.&lt;span style=&quot;color: #4be6fa;&quot;&gt;parseInt&lt;/span&gt;(st.nextToken());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//고정비용&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;B&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;Integer.&lt;span style=&quot;color: #4be6fa;&quot;&gt;parseInt&lt;/span&gt;(st.nextToken());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//가변비용&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;int&lt;/span&gt;&amp;nbsp;C&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;Integer.&lt;span style=&quot;color: #4be6fa;&quot;&gt;parseInt&lt;/span&gt;(st.nextToken());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//판매수입&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;(B&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;C)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;-1&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #4be6fa;&quot;&gt;println&lt;/span&gt;((A&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;/&lt;/span&gt;(C&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;-&lt;/span&gt;B))&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #c10aff;&quot;&gt;1&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//if-else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//main&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//End&amp;nbsp;class&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 160%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #4f4f4ftext-decoration:none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none; color: white;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #4f4f4f; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공-부/백준 알고리즘</category>
      <author>사랑짱</author>
      <guid isPermaLink="true">https://rang22.tistory.com/52</guid>
      <comments>https://rang22.tistory.com/52#entry52comment</comments>
      <pubDate>Mon, 7 Jun 2021 08:07:23 +0900</pubDate>
    </item>
  </channel>
</rss>