<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>LEESEUNGYEUL</title>
    <link>https://18candoit.tistory.com/</link>
    <description>LEESEUNGYEUL 개발블로그입니다.</description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 17:47:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>LEESEUNGYEUL</managingEditor>
    <image>
      <title>LEESEUNGYEUL</title>
      <url>https://tistory1.daumcdn.net/tistory/5601080/attach/1803dadb0a6c49d3aa8a03ba32f79803</url>
      <link>https://18candoit.tistory.com</link>
    </image>
    <item>
      <title>[Coding Test] 우선순위 큐</title>
      <link>https://18candoit.tistory.com/87</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (23).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Yr0za/btsGw3ovumo/65EGV0wmXkeW0lG5IWJgH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Yr0za/btsGw3ovumo/65EGV0wmXkeW0lG5IWJgH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Yr0za/btsGw3ovumo/65EGV0wmXkeW0lG5IWJgH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYr0za%2FbtsGw3ovumo%2F65EGV0wmXkeW0lG5IWJgH1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (23).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;알고리즘 키워드&lt;br /&gt;1.&amp;nbsp;&lt;br /&gt;2.&amp;nbsp;&lt;br /&gt;3.&amp;nbsp;&lt;/span&gt;&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) 가 뭔데?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 알고리즘 대표하는 코드&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;알고리즘을 대표하는 코드-&amp;gt; 키워드를 작성해주시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058482833&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;두번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058492251&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058499725&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 문답을 할때 다 여기에다가 적으면 됨. (복붙)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  포인트를 줄 문단에서만&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 예제 모음집&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;&lt;b&gt;(&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 알고리즘 예제 모음집&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(문제 주소)&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;이 문제에 대한 설명&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 출처 및 참고 내용 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/Coding Test</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/87</guid>
      <comments>https://18candoit.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 11 Apr 2024 15:52:17 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 문자열 뒤집기</title>
      <link>https://18candoit.tistory.com/86</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (22).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUT7L3/btsGyQBYqPW/PgyH40hsq7GeLFTx9KSHEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUT7L3/btsGyQBYqPW/PgyH40hsq7GeLFTx9KSHEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUT7L3/btsGyQBYqPW/PgyH40hsq7GeLFTx9KSHEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUT7L3%2FbtsGyQBYqPW%2FPgyH40hsq7GeLFTx9KSHEk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (22).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;알고리즘 키워드&lt;br /&gt;1.&amp;nbsp;&lt;br /&gt;2.&amp;nbsp;&lt;br /&gt;3.&amp;nbsp;&lt;/span&gt;&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) 가 뭔데?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 알고리즘 대표하는 코드&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;알고리즘을 대표하는 코드-&amp;gt; 키워드를 작성해주시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058482833&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;두번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058492251&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058499725&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 문답을 할때 다 여기에다가 적으면 됨. (복붙)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  포인트를 줄 문단에서만&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 예제 모음집&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;&lt;b&gt;(&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 알고리즘 예제 모음집&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(문제 주소)&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;이 문제에 대한 설명&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 출처 및 참고 내용 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/JAVA</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/86</guid>
      <comments>https://18candoit.tistory.com/86#entry86comment</comments>
      <pubDate>Thu, 11 Apr 2024 15:50:48 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] 오름차순과 내림차순</title>
      <link>https://18candoit.tistory.com/85</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (21).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ujWs0/btsGwhVl34S/TPaxF5xW9bgPGcHUIbZamk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ujWs0/btsGwhVl34S/TPaxF5xW9bgPGcHUIbZamk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ujWs0/btsGwhVl34S/TPaxF5xW9bgPGcHUIbZamk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FujWs0%2FbtsGwhVl34S%2FTPaxF5xW9bgPGcHUIbZamk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (21).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;알고리즘 키워드&lt;br /&gt;1.&amp;nbsp;&lt;br /&gt;2.&amp;nbsp;&lt;br /&gt;3.&amp;nbsp;&lt;/span&gt;&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) 가 뭔데?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 알고리즘 대표하는 코드&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;알고리즘을 대표하는 코드-&amp;gt; 키워드를 작성해주시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058482833&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;두번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058492251&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;첫번째 코드는 다음과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058499725&quot; class=&quot;1c&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 예시코드를 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 문답을 할때 다 여기에다가 적으면 됨. (복붙)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;정의를 적으시면 됩니다.&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  포인트를 줄 문단에서만&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 예제 모음집&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;&lt;b&gt;(&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 알고리즘 예제 모음집&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(문제 주소)&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span&gt;이 문제에 대한 설명&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;문제 (&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) 번&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(문제 주소)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이 문제에 대한 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 출처 및 참고 내용 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/JAVA</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/85</guid>
      <comments>https://18candoit.tistory.com/85#entry85comment</comments>
      <pubDate>Thu, 11 Apr 2024 15:49:47 +0900</pubDate>
    </item>
    <item>
      <title>[Coding Test] LIS</title>
      <link>https://18candoit.tistory.com/84</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (18).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMkpdY/btsGjKa9Hno/cnVKIF83NqYmDmz9KIpZW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMkpdY/btsGjKa9Hno/cnVKIF83NqYmDmz9KIpZW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMkpdY/btsGjKa9Hno/cnVKIF83NqYmDmz9KIpZW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMkpdY%2FbtsGjKa9Hno%2FcnVKIF83NqYmDmz9KIpZW0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (18).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;알고리즘 키워드&lt;br /&gt;1.&amp;nbsp;&lt;br /&gt;2.&amp;nbsp;&lt;br /&gt;3.&amp;nbsp;&lt;/b&gt;&lt;/span&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. LIS 가 뭔데?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;LIS == '&lt;span style=&quot;background-color: #f6e199;&quot;&gt;가장 긴 증가하는 부분 수열&lt;/span&gt;'&lt;/b&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;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #9feec3;&quot;&gt;부분 수열 (Subsequence)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;수열에서 일부 요소를 제거하고 남은 요소들이 원래 순서대로 나열된 것을 말한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;일반적으로 정형화된 알고리즘이라기 보다는, &lt;span style=&quot;background-color: #f6e199;&quot;&gt;알면 좋은 자주나오는 개념&lt;/span&gt;이라고 생각하면 된다.&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000; text-align: start;&quot;&gt;1. 가장 기본적으로 해결하는 방법은 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;DP&lt;/b&gt; 를 사용하는 방법&lt;/span&gt;이 있고 -&amp;gt; O(N^2)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000; text-align: start;&quot;&gt;1) 수열의 각 위치에 대해서, 그 위치를 마지막으로 하는 가장 긴 증가하는 부분 수열의 길이를 찾아냄&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000; text-align: start;&quot;&gt;2) 이후 이를 바탕으로 전체 문제의 해답을 구함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 보다 효율적인 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;이분탐색&lt;/b&gt;을 가지고 활용하는 방안&lt;/span&gt;이 있다. -&amp;gt; &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;O&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;log&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;N&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1) 수열을 순차적으로 탐색하면서, 현재까지 발견된 가장 긴 증가하는 부분 수열을 유지한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2) 새로운 요소가 나타나면, 이분탐색을 통해서 적절한 위치를 찾는다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;cf) 실제 LIS 요소들을 정확히 구성하지는 않지만, 가장 긴 증가하는 부분 수열의 길이를 효율적으로 사용할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. LIS 를 푸는 코드&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;DP, BS 2가지로 푸는 방식을 나눌 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;1) DP 로 푸는 코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058482833&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class LIS_DP {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int[] arr = new int[N];
        int[] dp = new int[N];

        for (int i = 0; i &amp;lt; N; i++) {
            arr[i] = scanner.nextInt();
        }

        int maxLength = 0;
        for (int i = 0; i &amp;lt; N; i++) {
            dp[i] = 1; // 초기값은 자기 자신만으로 구성된 부분 수열
            for (int j = 0; j &amp;lt; i; j++) {
                if (arr[j] &amp;lt; arr[i] &amp;amp;&amp;amp; dp[j] + 1 &amp;gt; dp[i]) {
                    dp[i] = dp[j] + 1; // j번째 요소를 포함하는 경우의 수열 길이 갱신
                }
            }
            maxLength = Math.max(maxLength, dp[i]);
        }

        System.out.println(maxLength);
        scanner.close();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;BS (이진탐색) 으로 푸는 코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1712058492251&quot; class=&quot;java&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;public class LIS_BinarySearch {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        ArrayList&amp;lt;Integer&amp;gt; lis = new ArrayList&amp;lt;&amp;gt;();

        for (int i = 0; i &amp;lt; N; i++) {
            int num = scanner.nextInt();
            if (lis.isEmpty() || num &amp;gt; lis.get(lis.size() - 1)) {
                lis.add(num);
            } else {
                int left = 0, right = lis.size() - 1;
                while (left &amp;lt; right) {
                    int mid = (left + right) / 2;
                    if (lis.get(mid) &amp;gt;= num) {
                        right = mid;
                    } else {
                        left = mid + 1;
                    }
                }
                lis.set(right, num);
            }
        }

        System.out.println(lis.size());
        scanner.close();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. LIS 문제인것을 판단하는 근거&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;중요한 포인트 4가지.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;1. 순서가 중요한 수열&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;문제에서 주어진 데이터가 순서를 유지해야 하는 수열 혹은 리스트.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;특히 요소들 간의 상대적인 순서가 결과에 영향을 미칠때.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;2. 증가하는 부분&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;&quot;&gt;문제 설명에 &quot; 증가하는 부분수열&quot;, &quot;가장 긴 상승하는 경로&quot;, &quot;연속적이지 않아도 되는 증가 순서&quot; 가 있다면.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;3. 최대 길이 또는 최대 개수 찾기&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;&quot;&gt;문제에서 어떤 조건을 만족하는 가장 긴 길이나 가장 많은 개수를 찾으라는 요구가 있을때&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;&quot;&gt;이때 조건이 증가하는 순서와 관련되어 있다면, LIS 문제의 변형일 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;4. DP 나 BS 카테고리&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;&quot;&gt;문제가 DP 나 BS 카테고리에 있다면, LIS 를 의심해보자.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 예제 모음집&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;LIS 예제 모음집&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/12015&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1) BOJ 12015 : 가장 긴 증가하는 부분 수열2&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;이 문제는 DP 로 풀었을때, 시간초과가 난다. -&amp;gt; 그냥 이분탐색으로..?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11568&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2) BOJ 11568 : 민균이의 계략&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제에서 LIS 라고 대놓고 적혀있음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 출처 및 참고 내용 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/Coding Test</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/84</guid>
      <comments>https://18candoit.tistory.com/84#entry84comment</comments>
      <pubDate>Tue, 2 Apr 2024 21:08:23 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] SPLIT</title>
      <link>https://18candoit.tistory.com/82</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (19).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWSsr2/btsGzk3yhvz/0xBU2RFhbB4GYwwikzxKA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWSsr2/btsGzk3yhvz/0xBU2RFhbB4GYwwikzxKA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWSsr2/btsGzk3yhvz/0xBU2RFhbB4GYwwikzxKA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWSsr2%2FbtsGzk3yhvz%2F0xBU2RFhbB4GYwwikzxKA1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (19).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지난시간에는..&amp;nbsp;&lt;br /&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문단의 제목 적는 곳&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;문단 소제목 적는 곳 1&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;문단 소제목 적는 곳 2&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  포인트를 줄 문단에서만&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 중요한 단어&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;POJO(Plain Old Java Object)란?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;오래된 방식의 간단한 자바 오브젝트&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;특정 기술에 종속되어 동작하는 것이 아닌&amp;nbsp;&lt;b&gt;순수한 자바 객체&lt;/b&gt;를 말한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Java EE 등 중량 프레임워크들에 사용되는 프레임 워크에 종속된 &amp;lsquo;무거운&amp;rsquo; 객체에서 반발해서 사용하게된 용어&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 이 내용은 책 [&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ] 를 보고 정리한 내용입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/JAVA</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/82</guid>
      <comments>https://18candoit.tistory.com/82#entry82comment</comments>
      <pubDate>Fri, 29 Mar 2024 22:00:59 +0900</pubDate>
    </item>
    <item>
      <title>[Java] COMPARABLE</title>
      <link>https://18candoit.tistory.com/81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (20).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQzgsr/btsGw8bWEGB/42pRWaBV9nKCBNkcui0xBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQzgsr/btsGw8bWEGB/42pRWaBV9nKCBNkcui0xBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQzgsr/btsGw8bWEGB/42pRWaBV9nKCBNkcui0xBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQzgsr%2FbtsGw8bWEGB%2F42pRWaBV9nKCBNkcui0xBK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (20).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지난시간에는..&amp;nbsp;&lt;br /&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;문단의 제목 적는 곳&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;문단 소제목 적는 곳 1&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;직역하자면&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;일관성 있는 서비스 추상화!&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;어댑터 패턴&lt;/b&gt;을 적용해 같은 일을 하는 다수의 기술을&amp;nbsp;&lt;b&gt;공통의 인터페이스로 제어&lt;/b&gt;할 수 있게 한 것을 서비스 추상화라고 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;추상화 계층을 사용해서&amp;nbsp;&lt;b&gt;어떤 기술을 내부에 숨기고&lt;/b&gt;&amp;nbsp;개발자에게&amp;nbsp;&lt;b&gt;편의성을 제공&lt;/b&gt;해주는 것을 서비스 추상화(Service Abstraction)이라 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서비스 추상화(Service Abstraction)로 제공되는 기술을&amp;nbsp;&lt;b&gt;다른 기술 스택으로 간편하게 바꿀 수 있는 확장성&lt;/b&gt;을 갖고 있는 것이 Portable Service Abstraction이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;환경과 세부 기술의 변화에 관계없이&amp;nbsp;&lt;b&gt;일관된 방식으로 기술에 접근&lt;/b&gt;할 수 있게 해주는 것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;문단 소제목 적는 곳 2&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  포인트를 줄 문단에서만&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 중요한 단어&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;POJO(Plain Old Java Object)란?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;오래된 방식의 간단한 자바 오브젝트&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;특정 기술에 종속되어 동작하는 것이 아닌&amp;nbsp;&lt;b&gt;순수한 자바 객체&lt;/b&gt;를 말한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Java EE 등 중량 프레임워크들에 사용되는 프레임 워크에 종속된 &amp;lsquo;무거운&amp;rsquo; 객체에서 반발해서 사용하게된 용어&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 이 내용은 책 [&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ] 를 보고 정리한 내용입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/JAVA</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/81</guid>
      <comments>https://18candoit.tistory.com/81#entry81comment</comments>
      <pubDate>Fri, 29 Mar 2024 22:00:34 +0900</pubDate>
    </item>
    <item>
      <title>[CodingTest] Greedy</title>
      <link>https://18candoit.tistory.com/80</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (17).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4Pq4R/btsGcJ5uFZZ/403dckL24D20ggqwDHRKf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4Pq4R/btsGcJ5uFZZ/403dckL24D20ggqwDHRKf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4Pq4R/btsGcJ5uFZZ/403dckL24D20ggqwDHRKf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4Pq4R%2FbtsGcJ5uFZZ%2F403dckL24D20ggqwDHRKf0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (17).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지난시간에는..&amp;nbsp;&lt;br /&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 그리디 (Greedy)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;탐욕 알고리즘의 원리&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;탐욕알고리즘&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;현재 상황에서 가장 좋아보이는 선택을 하는 방식으로 문제를 해결하는 방법&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;탐욕적 선택 속성 (Greedy Choice Property)&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;최적 부분 구조 (Optimal Substructure)&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 예제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;탐욕 알고리즘의 예제&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;크루스칼 알고리즘&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다익스트라 알고리즘&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그외 많이 나오는 그리디 알고리즘&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/Coding Test</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/80</guid>
      <comments>https://18candoit.tistory.com/80#entry80comment</comments>
      <pubDate>Fri, 29 Mar 2024 21:53:30 +0900</pubDate>
    </item>
    <item>
      <title>경제뉴스요약</title>
      <link>https://18candoit.tistory.com/79</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (16).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byQEbg/btsFQsQWMtj/miJbj3vtzF7G8H88CRktFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byQEbg/btsFQsQWMtj/miJbj3vtzF7G8H88CRktFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byQEbg/btsFQsQWMtj/miJbj3vtzF7G8H88CRktFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyQEbg%2FbtsFQsQWMtj%2FmiJbj3vtzF7G8H88CRktFk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (16).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;지난시간에는..&amp;nbsp;&lt;br /&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;금일 경제 뉴스 소제목&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;24.03.19 화요일&lt;/b&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. 애플, 아이폰에 &lt;b&gt;구글 생성형 AI인 '제미나이' 탑재&lt;/b&gt; 위한 협상 논의중&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 지난 10년간 국내 민간부문의 &lt;b&gt;AI 누적 투자액 세계 9위 .. 다만 미국의 44분의 1수준&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3. 하루 150달러 해외 직구 면제 기준, &lt;b&gt;알리, 테무 등 헛점 이용 세금 안내고 물품 구매 가능&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;4. 셀트리온, &lt;b&gt;짐펜트라(램시마 SC) 18일 미국 전역에 출시&lt;/b&gt;, 25년까지 1조원 매출 기대&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;글로벌/국내&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#1. 홍해 후티 반군, 해저케이블 손상 심각&lt;br /&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&gt;&lt;span style=&quot;&quot;&gt;글로벌 기업들은 인터넷 트래픽 경로를 변경하는 중&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;1. 예멘 후티 반군의 홍해 상선 공격으로 인한 해저 케이블 손상 정도가 심상치 않다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;2. 침몰한 선박으로 인한 손상 혹은 고의적인 테러가 의심되고 있는 상황이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;&quot;&gt;3. 매설된 해저케이블 25% 이상이 절단, 손상되면서 데이터 흐름에 장애가 생기고 있다.&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#2. 미 대통령 누가 되든 정책 기조 큰 변화 없다?&lt;br /&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;대한상공회의소 '미 대선 통상정책과 공망 대응 전략' 포럼&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;제프리 숏 피터슨 국제경제연구소 시니어 펠로우에 의하면, 올해 11월 있을 미국 대선 결과와 상관없이 &lt;b&gt;보호무역주의&lt;/b&gt;나 &lt;b&gt;인플레이션 감축법&lt;/b&gt; 등 기존 정책 기조에는 큰 변화가 없을 것으로 보인다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이는 &lt;b&gt;자유무역협정&lt;/b&gt;을 체결한 한국도 예외가 아니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#4. TSMC 일본, 첨단 공정 도입 검토&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;일본에는 반도체 소재,부품,장비 강점있는 업체 많고 고객도 탄탄해&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;세계 최대 &lt;b&gt;파운드리&lt;/b&gt; 업체인 대만 TSMC가 첨단패키지 공정을 해외에서는 최초로 일본에 도입하는 방안을 검토중&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이로 인해 부진했던 일본 반도체 산업 부활의 신호가 켜졌다는 긍정적인 평가가 나오는중.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#5. 전자지갑의 급 성장, 사라지는 현금결제 사라지는 은행들&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전자서비스가 익숙치 않은 노년 인구들에게는 치명적&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;모바일 간편결제 서비스들의 확대와 온라인 쇼핑 수요의 증가로 인해 전자지급서비스 일 평균 이용규모가 1.2조원을 기록하며 통계이래 최대치를 기록했음.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;반면, 4대 시중은행들은 영업점 수가 5년새 20% 가량 감소하며 ATM, 근로자 수도 함께 감소했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#6. 삼성과 SK&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;샘 올트먼은 'AGI 시대, 삼성, SK 와 AI 칩 만들고 싶다' 고도 밝혀&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;현지시간 18일 부터 진행되는 엔비디아 'AI 개발자 콘퍼런스 GTC 2024' 가 개최된다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;삼성전자와 SK 하이닉스가 GTC에 마이크론과 더불어 대규모 전시 부스를 설치할 계획이다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;이를 통해 차세대 &lt;b&gt;HBM&lt;/b&gt;의 흐름을 파악할 수 있을 것이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#7. 과일값이 금값, 과일대신 영양제&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;일명 '애플레이션'으로 진짜 금값된 사과, 정부 물량파악도 난항&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;끝을 모르고 치솟는 농산물 가격에 대해 대통령이 '장바구니 물가를 잡을 수 있는 특단의 조치를 시행할 것' 이라고 밝힘.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;한편 올해 이커머스 업체들의 비타민 영양제 매출은 전년대비 75% 급등하며 과일로 못 채우는 비타민을 영양제로 대체하는 현상이 커짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;#8. 기업들의 사업확장 LG 와 삼성전기&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최근 중국 최대 가전 전시회 'AWE 2024' 에서 금상 수상한 삼성,LG&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;LG가 현대,기아차에 자체 OTT 서비스 'LG 채널'을 적용하는 등 점점 사업 플랫폼 생태계와 콘텐츠 영역을 확장중.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;삼성전기도 기존 카메라 모듈 사업 영역에서, 로보틱스 모빌리티 부문으로 사업분야를 확장하겠다는 계획 밝힘.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt; &amp;nbsp;&lt;/b&gt; 중요한 단어&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#1. 보호무역주의&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#2. 인플레이션감축법 (IRA)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#3. 자유무역협정(FTA)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#4. HBM&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 이 내용은 &lt;a href=&quot;https://chimhaha.net/best/447217?keyword=%EA%B2%BD%EC%A0%9C&amp;amp;page=1&amp;amp;searchType=title&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;침하하 이병건치이병헌님의 경제뉴스 요약&lt;/a&gt; 를 보고 정리한 내용입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/79</guid>
      <comments>https://18candoit.tistory.com/79#entry79comment</comments>
      <pubDate>Tue, 19 Mar 2024 11:13:34 +0900</pubDate>
    </item>
    <item>
      <title>[Coding Test]누적합</title>
      <link>https://18candoit.tistory.com/76</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (15).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6PSJQ/btsFOkKxEw0/qulpjU8GQ7vqv5qS5ZRTQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6PSJQ/btsFOkKxEw0/qulpjU8GQ7vqv5qS5ZRTQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6PSJQ/btsFOkKxEw0/qulpjU8GQ7vqv5qS5ZRTQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6PSJQ%2FbtsFOkKxEw0%2FqulpjU8GQ7vqv5qS5ZRTQK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (15).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 누적합 (Prefix Sum)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;누적합을 왜 써야함?&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의 &lt;/b&gt;: 누적 합이란 배열의 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;각 요소에 대해 그 요소까지의 모든 요소의 합을 저장&lt;/span&gt;하는 방식.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;쓰는 이유&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 구간합을 빠르게 구하기 위해서&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 특정값이 구간에 있는지 확인하기 위해서&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 구간합을 빠르게 구하는 경우&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;배열에서 구간합을 구하는 경우일 때 사용한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1710325509874&quot; class=&quot;angelscript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;int[] arr = {1, 2, 3, 4, 5};
int[] prefixSum = new int[arr.length];

prefixSum[0] = arr[0];
for (int i = 1; i &amp;lt; arr.length; i++) {
  prefixSum[i] = prefixSum[i - 1] + arr[i];
}

int start = 1;
int end = 3;

int sum = prefixSum[end] - prefixSum[start - 1];

System.out.println(&quot;구간 합: &quot; + sum); // 출력: 10&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 경우에서는 1번부터 3번 인덱스에 있는 구간의 합을 구하고 싶을때 사용을 한 예시이다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 특정값이 구간에 있는지 확인하는 경우&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;배열에서 특정 값이 구간에 있는지를 확인할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1710325554005&quot; class=&quot;java&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public static boolean isValueInRange(int[] arr, int start, int end, int value) {
  // 누적합 계산
  int[] prefixSum = new int[arr.length];
  prefixSum[0] = arr[0];
  for (int i = 1; i &amp;lt; arr.length; i++) {
    prefixSum[i] = prefixSum[i - 1] + arr[i];
  }

  // 구간 합 계산
  int sum = prefixSum[end] - prefixSum[start - 1];

  // 특정 값 비교
  return sum == value;
}


int[] arr = {1, 2, 3, 4, 5};
int start = 1;
int end = 3;
int value = 6;

boolean isPresent = isValueInRange(arr, start, end, value);

if (isPresent) {
  System.out.println(&quot;값 &quot; + value + &quot;이 구간에 존재합니다.&quot;);
} else {
  System.out.println(&quot;값 &quot; + value + &quot;이 구간에 존재하지 않습니다.&quot;);
}&lt;/code&gt;&lt;/pre&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 style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 카운팅 정렬에서 사용하는 경우&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;카운팅 정렬&lt;/b&gt;에 관련해서는 따로 알고리즘을 올릴 예정이다. 그걸 참고하면 될듯.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 누적합 문제&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 나머지 합&lt;/b&gt; : &lt;a href=&quot;https://www.acmicpc.net/problem/10986&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; -&amp;gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 문제는 누적합 + 나머지 배열을 만들어서 시간복잡도를 줄이는 방식으로 문제를 푼다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 id=&quot;%F-%-F%--%-E%--%EB%B-%A-%EB%A-%B-%EA%B-%-C%--%EC%--%-C%EC%--%--%EB%B-%B-%EC%-E%--%--POJO&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;   &lt;b&gt;3. 실제 사용 예시&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;  그래서 도대체 왜 배우고 어디에 쓰는건데?&lt;br /&gt;&lt;br /&gt;-&amp;gt; 데이터 압축, 이미지처리, 암호화&lt;/b&gt;에 실제 사용이 된다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 데이터 압축 (Data Compression)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;&lt;b&gt;빈도 기반 압축(&lt;span style=&quot;text-align: left;&quot;&gt;Frequency-Based Compression)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;각 값의 등장횟수를 누적합으로 저장해서 공간 절약.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;6:1-7:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어, 배열 [1, 2, 3, 1, 2, 3]의 경우 각 값의 등장 횟수를 [2, 2, 2]로 누적합으로 저장하면 원래 배열보다 공간을 절약할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;델타 인코딩 (&lt;span style=&quot;text-align: left;&quot;&gt;Delta Encoding)&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;연속된 값들의 차이를 누적합으로 저장하여 공간을 절약한다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;11:1-12:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어, 배열&amp;nbsp;[1, 3, 5, 7, 9]의 경우 델타 인코딩을 사용하면&amp;nbsp;[1, 2, 2, 2]로 저장하여 공간을 절약할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;이동 평균 (Moving Encoding)&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;15:1-15:37&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;연속된 값들의 평균값을 누적합으로 저장하여 데이터를 요약한다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;16:1-17:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어, 센서 데이터 배열의 경우 이동 평균을 사용하면 데이터의 변화 추세를 파악하는 데 도움이 된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;범위 쿼리 (Subarray Sum Problem)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;25:1-25:28&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;특정 범위 내의 값들의 합을 빠르게 계산한다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;26:1-27:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어, 누적합을 사용하면 특정 기간 동안의 매출 데이터를 빠르게 계산할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 이미지 처리 (Image Processing)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;이미지 밝기 조절(&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;Image Brightness Adjustment)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;7:1-7:45&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이미지의 각 픽셀 값에 누적합을 적용하여 이미지의 밝기를 조절할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;히스토그램 평활화(Histogram Equalization)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이미지 히스토그램의 불균형을 없애기 위해서 누적합을 사용할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;히스토그램 평활화는 이미지의 명암 대비를 개선하고 노이즈를 줄이는 데 도움이 된다.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;이미지 필터링(&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;Image Filtering)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;특정 이미지 필터를 구현하기 위해서 누적합을 사용할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;18:1-19:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어, 누적합을 사용하여 평균 필터, 가우시안 필터, 소벨 필터 등을 구현할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;에지 추출(&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;Edge Detection)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;22:1-22:35&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이미지의 에지를 추출하기 위해 누적합을 사용할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;23:1-24:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;에지 추출은 이미지에서 중요한 특징을 추출하고 객체 인식, 이미지 분할 등에 사용된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;이미지 합성(&amp;nbsp;Image Composition)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;여러 이미지를 합성하기 위해 누적합을 사용할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이미지 합성은 파노라마 이미지 생성, HDR 이미지 생성 등에 사용된다.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 암호화&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;메세지 인증 (Message Authentication)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;7:5-9:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;7:5-7:26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;누적합을 사용하여 메시지 무결성 검증할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;8:5-9:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;메시지 변조 여부 확인을 할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;디지털 서명 (Digital Signature)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;14:5-16:0&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;14:5-14:24&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;누적합을 사용하여 서명 위조 방지할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li data-sourcepos=&quot;15:5-16:0&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;서명 검증 시 서명자 확인할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;해시 함수 (Hash Function)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;누적합을 사용하여 해시함수를 구현할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;충돌 가능성을 감소한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;스트림 암호화 (Stream Cipher)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;누적합을 사용하여, 스트림 암호화 알고리즘에서 암호화 키 생성할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&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>STUDY/Coding Test</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/76</guid>
      <comments>https://18candoit.tistory.com/76#entry76comment</comments>
      <pubDate>Thu, 14 Mar 2024 21:52:25 +0900</pubDate>
    </item>
    <item>
      <title>[CS] 디자인 패턴</title>
      <link>https://18candoit.tistory.com/77</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_정리-001 (13).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t5Wg2/btsFK1ys0V3/BYDEdNVTkqMUGvOlhSGEi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t5Wg2/btsFK1ys0V3/BYDEdNVTkqMUGvOlhSGEi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t5Wg2/btsFK1ys0V3/BYDEdNVTkqMUGvOlhSGEi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft5Wg2%2FbtsFK1ys0V3%2FBYDEdNVTkqMUGvOlhSGEi1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1080&quot; data-filename=&quot;자바_정리-001 (13).png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;키워드 : 라이브러리, 프레임워크, 디자인패턴&lt;/b&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;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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Q1. 라이브러리와 프레임 워크의 차이점은 뭔가요?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rLeCw/btsFMQvOVG4/3Su8ZRdNmyk62wVmWwHwIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rLeCw/btsFMQvOVG4/3Su8ZRdNmyk62wVmWwHwIk/img.png&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;348&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.476%; margin-right: 10px;&quot; data-widthpercent=&quot;50.06&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rLeCw/btsFMQvOVG4/3Su8ZRdNmyk62wVmWwHwIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrLeCw%2FbtsFMQvOVG4%2F3Su8ZRdNmyk62wVmWwHwIk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;822&quot; height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgbT4R/btsFOCqLWY3/Xss1zfK1svUwBP4EsknoV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgbT4R/btsFOCqLWY3/Xss1zfK1svUwBP4EsknoV1/img.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;258&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.3612%;&quot; data-widthpercent=&quot;49.94&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgbT4R/btsFOCqLWY3/Xss1zfK1svUwBP4EsknoV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgbT4R%2FbtsFOCqLWY3%2FXss1zfK1svUwBP4EsknoV1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;608&quot; height=&quot;258&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;프레임워크와 라이브러리의 차이&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 라이브러리 (Library)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt; : 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한것을 의미한다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;라이브러리는 개발에 필요한 것들은 미리 구현해놓은 도구라고 할 수 있겠다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;재사용이 가능한 기능들을 미리 구현해놓고, 필요한 곳에서 호출하여 사용이 가능하도록 만들어진 집합이다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;특징&lt;/b&gt; &lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;폴더명, 파일명 등에 대한 규칙이 &lt;b&gt;없고&lt;/b&gt;, 프레임 워크에 비해 자유롭다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;라이브러리는 제어의 역전 (Inversion of Control) 개념을 따르지 않는다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;개발자가 라이브러리를 호출하여 사용하는 것이지, 라이브러리가 개발자의 코드를 호출하는 것은 아니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;비유&lt;/b&gt; : 무언가를 자를때 '도구' 인 '&lt;b&gt;가위&lt;/b&gt;'를 사용해서 '내가' 직접 컨트롤 하여 자른다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;예시&lt;/b&gt; &lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;C++ 의 STL&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Python 의 Pip 로 설치한 패키지/ 모듈 (Pandas, Tenseorflow 등)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;JSON 파싱을 위한 JSON 라이브러리&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;HTTP 요청을 위한 HTTP 라이브러리&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 프레임 워크 (Framework)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt; : 공통으로 사용될 수 있는 특정한 기능들을 모듈화 한것을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;특징&lt;/b&gt; &lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;폴더명, 파일명 등에 대한 규칙이 있고, 라이브러리에 비해 좀 더 엄격하다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;개발자는 프레임워크가 제공하는 규칙과 패턴을 따라 코드를 작성해야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;제어의 역전 (Inversion of Control) 개념을 따르고 있어, 프레임워크가 개발자의 코드를 호출하여 필요한 기능을 수행한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;비유&lt;/b&gt; : 다른곳으로 이동할때 '도구' 인 '&lt;b&gt;비행기'&lt;/b&gt;를 타고 이동하지만, '비행기'가 컨트롤 하고 나는 가만히 있어야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;예시&amp;nbsp;&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; Spring 프레임워크&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Django 프레임워크&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;3. 답변&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333;&quot;&gt; 라이브러리와 프레임워크는 &lt;b&gt;공통으로 사용될 수 있는 기능들을 모듈화&lt;/b&gt;한다는 점에서는 동일합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; 차이점은 '&lt;b&gt;관리의 주체&lt;/b&gt;' 입니다.&lt;b&gt;프레임워크&lt;/b&gt;는 IoC 개념이 적용이 되어있어, &lt;b&gt;프레임워크에게 제어의 흐름을 넘겨&lt;/b&gt; 개발&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 자가 작성하는 코드에서신경써야 할 부분을 줄이고, &lt;b&gt;라이브러리&lt;/b&gt;는 &lt;b&gt;개발자가 전체적인 흐름을 만들며&lt;/b&gt;, 라이브러리를 가&amp;nbsp; &amp;nbsp; &amp;nbsp; 져다 쓰게 됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Q2. 제어의 역전 (IoC) 에 대해서 설명해주세요.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 제어 (Control)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt;&amp;nbsp;:직접 객체를 생성하여 코드를 '제어' 하는 것이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;객체 생명주기나 메서드의 호출을 직접 제어한다 == 객체 생명주기나 메서드의 호출을 직접 관리 한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 역전 (Inversion)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt;&amp;nbsp;: 프로그램의 제어 흐름을 직접 제어하는 것이 아니라, 외부에서 관리하는 것.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 제어의 역전 (Inversion of Control)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;개발자가 작성한 객체나 메서드의 제어를 개발자가 아니라 외부에 위임하는 설계 원칙을 제어의 역전이라고 한다&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic'; letter-spacing: 0px;&quot;&gt;제어의 역전에서는 오브젝트 스스로가 사용할 오브젝트를 결정하지도, 생성하지 않는다. &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Nanum Gothic'; letter-spacing: 0px;&quot;&gt;원칙의 이름 그대로 제어에 대한 권한이 개발자에서 외부 환경으로 역전되는 것 이다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. IoC가 필요한 이유&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;객체지향 원칙을 잘 지키기 위해&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;역할과 관심을 분리해서 응집도를 높이고 결합도를 낮추게 된다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이에 따라 변경에 유연한 코드를 작성 할 수 있는 구조가 될 수 있기 때문이다.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;할리우드 법칙 (Hollywood Principle)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Don't call us, we'll call you&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #000000; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;답변&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;  &lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;제어의 역전(IoC)은 프로그램의 흐름을 개발자가 직접 제어하는 대신 외부 컨트롤러나 프레임워크에 위임하는 방식을 말합니다. 예를 들어, 전통적인 자바 어플리케이션에서는 개발자가 객체의 생성과 의존성을 직접 관리합니다. 하지만 Spring 같은 프레임워크를 사용할 때, 객체 생성과 의존성 주입은 프레임워크가 담당하게 됩니다. 제가 담당했던 프로젝트에서는 final 을 사용하여 생성자를 통한 의존성 주입을 사용하였습니다. 이는 불변성과 명확성, 그리고 테스트 용이성을 증가 시켜줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; 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;style6&quot; /&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Q3. 디자인패턴에 대해서 설명해주세요&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 디자인 패턴&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt; :소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을때, 재사용할 수 있는 훌륭한 해결책&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2.  GoF 디자인 패턴의 분류&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt; : GoF (Gang of Fout) 사람들이 23가지의 디자인 패턴을 정리하고 &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;각각의 디자인 패턴을 생성(Creational), 구조(Structural), 행위(Behavioral) 3가지로 분류했다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1378&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9qYke/btsFPq6lG5t/eZrIT0gRIe2gXpMNYcKwHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9qYke/btsFPq6lG5t/eZrIT0gRIe2gXpMNYcKwHk/img.png&quot; data-alt=&quot;GoF 디자인 패턴의 종류&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9qYke/btsFPq6lG5t/eZrIT0gRIe2gXpMNYcKwHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9qYke%2FbtsFPq6lG5t%2FeZrIT0gRIe2gXpMNYcKwHk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1378&quot; height=&quot;484&quot; data-origin-width=&quot;1378&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GoF 디자인 패턴의 종류&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Q4. 전략패턴에 대해서 설명해주세요&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#1. 전략 패턴 ( == 정책 패턴)&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;b&gt;정의&lt;/b&gt; : 객체의 행위를 바꾸고 싶은 경우, '직접' 수정하지 않고, 전략이라고 부르는 '캡슐화한 알고리즘' 을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화 되어 있고, 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;행위 패턴의 하나&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;특징: 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;전략 : 어떠한 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;게임 프로그래밍에서 게임 캐릭터가 자신이 처한 상황에 따라 공격이나 행동하는 방식을 바꾸고 싶을때 트래티지 패턴은 매우 유용하다.&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;486&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUeqgW/btsFR2QxdrQ/cWNcWKfjtYc8VQLH9aPqbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUeqgW/btsFR2QxdrQ/cWNcWKfjtYc8VQLH9aPqbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUeqgW/btsFR2QxdrQ/cWNcWKfjtYc8VQLH9aPqbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUeqgW%2FbtsFR2QxdrQ%2FcWNcWKfjtYc8VQLH9aPqbK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;279&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;486&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; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;역할이 수행하는 작업&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Strategy&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;ConcreteStrategy&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;스트래티지 패턴에서 명시한 알고리즘을 실제로 구현한 클래스&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Context&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;스트래티지 패턴을 이용하는 역할을 수행한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;필요에 따라 동적으로 구체적인 전략을 바꿀 수 있도록 setter 메서드(&amp;lsquo;집약 관계&amp;rsquo;)를 제공한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;h3 id=&quot;PSA-Portable%--Service%--Abstraction-%--%EB%--%--%--%EB%AD%--%EB%-D%B-%-F&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Q4. 싱글톤 패턴에 대해서 설명해주세요&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#싱글턴 패턴&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;정의&lt;/b&gt; : 전역변수를 사용하지 않고, 객체를 하나만 생성 하도록 하며, 생성된 개체를 어디에서든지 참조할 수 있도록 하는 패턴&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;보통 데이터베이스 연결 모듈에 많이 사용된다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;생성 패턴 중 하나.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5U6xm%2FbtsFQzPgDEC%2Ff14MwFLSENAZZLPMZnZ5ck%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;222&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;222&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; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;단점&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. TDD를 할 때 걸림돌이 된다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;-&amp;gt; 단위테스트를 할때 서로 독립적이어야 하는데, 각 테스트 마다 독립적인 인스턴스를 만들기 어렵다&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 모듈간의 결합을 강하게 만들 수 있다.&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이때 의존성 주입을 통해서 모듈간의 결합을 조금 느슨하게 만들어 해결할 수 있다.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;하나의 인스턴스만을 생성하는 책임이 있으며 getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;#3. 커맨드 패턴&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Nanum Gothic';&quot;&gt;정의 : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;즉, 이벤트가 발생했을때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;행위 패턴 중 하나.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5U6xm/btsFQzPgDEC/f14MwFLSENAZZLPMZnZ5ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5U6xm%2FbtsFQzPgDEC%2Ff14MwFLSENAZZLPMZnZ5ck%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;358&quot; height=&quot;222&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용 할 수 있도록 해준다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;역할이 수행하는 작업
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Command
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;실행될 기능에 대한 인터페이스&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;실행될 기능을 execute 메서드로 선언함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;ConcreteCommand
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;실제로 실행되는 기능을 구현&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;즉, Command라는 인터페이스를 구현함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Invoker
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;기능의 실행을 요청하는 호출자 클래스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;Receiver
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;ConcreteCommand에서 execute 메서드를 구현할 때 필요한 클래스&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;즉,&amp;nbsp;ConcreteCommand의&amp;nbsp;기능을&amp;nbsp;실행하기&amp;nbsp;위해&amp;nbsp;사용하는&amp;nbsp;수신자&amp;nbsp;클래스&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;※ 이 내용은 책 [&lt;b&gt;면접을 위한 CS 전공지식 노트&lt;/b&gt;] 를 보고 정리한 내용입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;※ 인용한 포스트&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000; text-align: start;&quot;&gt;&lt;a href=&quot;https://code-lab1.tistory.com/284&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://code-lab1.tistory.com/284&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://hudi.blog/inversion-of-control/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hudi.blog/inversion-of-control/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>STUDY/Computer Science</category>
      <author>LEESEUNGYEUL</author>
      <guid isPermaLink="true">https://18candoit.tistory.com/77</guid>
      <comments>https://18candoit.tistory.com/77#entry77comment</comments>
      <pubDate>Thu, 14 Mar 2024 21:42:07 +0900</pubDate>
    </item>
  </channel>
</rss>