<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>만렙 개발자의 로그</title>
    <link>https://hyekkong.tistory.com/</link>
    <description>만렙 곧 됨. 진짜 됨.</description>
    <language>ko</language>
    <pubDate>Mon, 1 Jun 2026 22:01:03 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>개발자혜콩</managingEditor>
    <item>
      <title>[정보처리기사 필기 요약] #2-3. 디지털 저작권 권리 (DRM) 구성 요소와 역</title>
      <link>https://hyekkong.tistory.com/119</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 디지털 저작권 관리 (DRM : Digital Right Management)&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- &lt;b&gt;디지털 콘텐츠의 저작권 보호 (암호화)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 불법 복제 방지 (콘텐츠 보호)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 사용 권한 관리&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;디지털 저작권 관리 (DRM) 구성요소, 흐름도&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;343&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czqaIr/dJMcacJPU4n/UmGrgfXeNnye7EEiKpdpjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czqaIr/dJMcacJPU4n/UmGrgfXeNnye7EEiKpdpjK/img.png&quot; data-alt=&quot;DRM 흐름도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czqaIr/dJMcacJPU4n/UmGrgfXeNnye7EEiKpdpjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczqaIr%2FdJMcacJPU4n%2FUmGrgfXeNnye7EEiKpdpjK%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;700&quot; height=&quot;343&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;343&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DRM 흐름도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 150px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 23px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 23px;&quot;&gt;&lt;b&gt;클리어링 하우스 (Clearing House)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 23px;&quot;&gt;라이선스 발급 + 권한 부여&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 21px;&quot;&gt;&lt;b&gt;콘텐츠 제공자 (Contents&amp;nbsp;Provider)&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 21px;&quot;&gt;콘텐츠를 &lt;b&gt;제공하는 저작권자&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 17px;&quot;&gt;&lt;b&gt;패키저 (Packager)&amp;nbsp;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 17px;&quot;&gt;콘텐츠를 메타 데이터와 함게 배포 가능한 형태로 묶어 &lt;b&gt;암호화&lt;/b&gt;하는 프로그램&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 17px;&quot;&gt;콘텐츠 분배자 (Contents&amp;nbsp;Distributor)&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 17px;&quot;&gt;암호된 콘텐츠를 구매해서 사용하는 주체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 17px;&quot;&gt;콘텐츠 소비자 (Customer)&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 17px;&quot;&gt;콘텐츠를 구매해서 사용하는 주체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 17px;&quot;&gt;&lt;b&gt;DRM 컨트롤러&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 17px;&quot;&gt;배포된 콘텐츠의 이용 &lt;b&gt;권한을 통제&lt;/b&gt;하는 프로그램, 전체관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 21px;&quot;&gt;&lt;b&gt;DRM 클라이언트&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 21px;&quot;&gt;사용자 측 실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 30.2325%; height: 17px;&quot;&gt;보안 컨테이너 (Security&amp;nbsp;Container)&lt;/td&gt;
&lt;td style=&quot;width: 69.7675%; height: 17px;&quot;&gt;콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;디지털 저작권 관리 (DRM) 기술 요소&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 169px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 21px;&quot;&gt;구성요소&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 21px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 21px;&quot;&gt;암호화 (Encryption)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 21px;&quot;&gt;콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 21px;&quot;&gt;키 관리 (Key Management)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 21px;&quot;&gt;콘텐츠를 암호화한 키에 대한 저장 및 분배 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 21px;&quot;&gt;암호화 파일 생성 (Packager)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 21px;&quot;&gt;콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 17px;&quot;&gt;식별 기술 (Identification)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 17px;&quot;&gt;콘텐츠에 대한 식별 체계 표현 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 17px;&quot;&gt;저작권 표현 (Right Expression)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 17px;&quot;&gt;라이선스의 내용 표현 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 17px;&quot;&gt;정책 관리 (Policy Management)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 17px;&quot;&gt;라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 17px;&quot;&gt;크랙 방지 (Tamper Resistance)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 17px;&quot;&gt;크랙에 의한 콘텐츠 사용 방지 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.4884%; height: 17px;&quot;&gt;인증 (Authentication)&lt;/td&gt;
&lt;td style=&quot;width: 71.5116%; height: 17px;&quot;&gt;라이선스 발급 및 사용의 기준이 되는 사용자 인증 기&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;[2022년04월24일 기출문제]&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;27.DRM(Digital Rights Management)과 관련한 설명으로 틀린 것은?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.디지털 콘텐츠와 디바이스의 사용을 제한하기 위해 하드웨어 제조업자, 저작권자, 출판업자 등이 사용할 수 있는 접근 제어 기술을 의미한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.디지털 미디어의 생명 주기 동안 발생하는 사용 권한 관리, 과금, 유통 단계를 관리하는 기술로도 볼 수 있다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.클리어링 하우스(Clearing House)는 사용자에게 콘텐츠 라이센스를 발급하고 권한을 부여해주는 시스템을 말한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.원본을 안전하게 유통하기 위한 전자적 보안은 고려하지 않기 때문에 불법 유통과 복제의 방지는 불가능하다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 4&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설 :&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/119</guid>
      <comments>https://hyekkong.tistory.com/119#entry119comment</comments>
      <pubDate>Fri, 8 May 2026 16:46:59 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #2-2. 이진 탐색</title>
      <link>https://hyekkong.tistory.com/118</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 이진 탐색&lt;/h3&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;- 가운데를 보고 절반씩 버린다&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;① 중간 위치를 찾음&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;② 찾는 값과 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;③ 찾는값보다 중간값이 &lt;/span&gt;작으면 왼쪽 다 버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;④&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;찾는값보다 중간값이&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;크면 오른쪽 다 버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;⑤ 반복&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;663&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/enaERo/dJMcagrTaGG/mCytr2MJZk7XRLD24g52hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/enaERo/dJMcagrTaGG/mCytr2MJZk7XRLD24g52hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/enaERo/dJMcagrTaGG/mCytr2MJZk7XRLD24g52hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FenaERo%2FdJMcagrTaGG%2FmCytr2MJZk7XRLD24g52hK%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;663&quot; height=&quot;221&quot; data-origin-width=&quot;663&quot; data-origin-height=&quot;221&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;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 3번&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해설 :&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[비교횟수 : 1회차]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 중간 위치를 찾음 (인덱스 기준)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;low = 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;high = 14&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mid = (0+14) / 2 = 7&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;arr[7] = 8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 찾는 값과 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;14 vs 8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;③ 찾는값보다 중간값이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;작으면 왼쪽 다 버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 레코드 9 10 11 12 13 14 15&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: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[비교횟수 : 2회차]&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;① 중간 위치를 찾음&lt;span&gt;&amp;nbsp;&lt;/span&gt;(인덱스 기준)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;low = 8&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;high = 14&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;mid = (8+14) / 2 = 11&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;arr[11] = 12&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;② 찾는 값과 비교&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;14 vs 12&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;③ 찾는값보다 중간값이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;작으면 왼쪽 다 버림&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 레코드 13 14 15&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;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;b&gt;[비교횟수 : 3회차]&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;① 중간 위치를 찾음&lt;span&gt;&amp;nbsp;&lt;/span&gt;(인덱스 기준)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;low = 12&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;high = 14&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;mid = (12+14) / 2 = 13&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;arr[13] = 14&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;② 찾는 값과 비교&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;14 vs 14&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;=일치하니까 종료&lt;/p&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/118</guid>
      <comments>https://hyekkong.tistory.com/118#entry118comment</comments>
      <pubDate>Fri, 8 May 2026 16:18:00 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #2-1. 애플리케이션 테스트</title>
      <link>https://hyekkong.tistory.com/117</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 애플리케이션 테스트의 기본 원칙&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 178px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 22px;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 22px;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;완벽한 테스트 불가능&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;완벽하게 테스트할 수 없으므로 &lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;리스크 분석과 우선순위를 토대로 테스트에 집중해야&lt;span&gt; 함.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;결함이 존재함을 밝히는 활동&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;잠재적인 결함을 줄일 수 있지만, &lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;결함이 발견되지 않아도 결함이 없다고 증명할 수 없음.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 44px;&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #006dd7; text-align: center;&quot;&gt;결함 집중&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7; text-align: center;&quot;&gt;(파레토의 법칙)&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 44px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;전체 결과의 80%가 전체 원인의 20%에서 일어난다는 현상을 의미하며 &lt;br /&gt;애플리케이션 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재한다는 원리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;살충제 패러독스&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;동일한 테스트를 반복하게 되면 더 이상 그것에 관련된 결함은 발견되지 않기 때문에 &lt;br /&gt;테스트 케이스는 지속 보완하고 개선해야 한다는 원리&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;테스팅 정황 의존&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;&lt;b&gt;정황과&lt;/b&gt; 비즈니스 &lt;b&gt;도메인에 따라 테스트를 다르게 수행&lt;/b&gt;하여야 함.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 17px;&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #006dd7; text-align: center;&quot;&gt;오류 - 부재의 궤변&lt;/span&gt; &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;소프트웨어 결함을 완벽하게 제거 했더라도 &lt;br /&gt;&lt;b&gt;사용자의 요구사항을 만족시키지 못하면&lt;/b&gt; 해당 애플리케이션의 품질이 높다고 말할 수 없음. &lt;/span&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.4883%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;테스트의 개발 초기 시작/&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; text-align: center;&quot;&gt;별도 팀 수행&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.5117%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #666666; text-align: start;&quot;&gt;애플리케이션의 개발 단계에 테스트를 계획하고 &lt;br /&gt;SDLC의 각 단계에 맞춰 전략적으로 접근하는 것을 고려해야 함.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 애플리케이션 테스트 유형&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) 프로그램 실행 여부에 따른 테스트&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 73px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.1472%; height: 51px;&quot; rowspan=&quot;3&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정적 테스트&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2868%; height: 51px;&quot; rowspan=&quot;3&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;- 개발초기에 결함 발결할 수 있어서 개발비용 절감효과!&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 48.5659%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;워크스루&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;: 개발자나 작성자가 중심이 되어 문서를 설명하면서 참석자들과 함께 검토하는 방식 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 48.5659%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;인스펙션&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;: 정해진 절차에 따라 검토팀이 전문적인 검사를 수행하는 가장 공식적인 염격한 검토 방식 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 48.5659%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;코드리뷰&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;: 동료나 전문가가 소스 코드를 읽으며 논리 오류, 코딩 규칙 준수 여부, 잠재적 취약점을 검토 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 14.1472%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;동적 테스트&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.2868%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt; 프로그램을 &lt;b&gt;실행&lt;/b&gt;하여 오류를 찾는 테스트 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 48.5659%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt; 블랙박스 테스트, 화이트박스 테스트 &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(2) 테스트 기반에 따른 테스트&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 244px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 16.2403%; height: 110px;&quot; rowspan=&quot;5&quot;&gt;명세 기반 테스트&lt;/td&gt;
&lt;td style=&quot;width: 27.7519%; height: 110px;&quot; rowspan=&quot;5&quot;&gt;문서 기준, 사용자 관점&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;Equivalence Partitioning (동치 분할 검사)&lt;br /&gt;: 입력 조건에 타당한/타당하지 않은 값을 그룹핑하여 테스트.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;Boundary Value Analysis (경계값 분석)&lt;br /&gt;: 입력&amp;nbsp;조건의&amp;nbsp;경계값에서&amp;nbsp;오류가&amp;nbsp;발생하기&amp;nbsp;쉽다는&amp;nbsp;점을&amp;nbsp;이용해&amp;nbsp;경계값&amp;nbsp;포함&amp;nbsp;테스트.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;Cause-Effect Graphing ( 원인-효과&amp;nbsp;그래프&amp;nbsp;검사 )&lt;br /&gt;: 입력 데이터 간의 관계를 분석하여 효용성 높은 케이스 도출.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;Error Guessing (오류 예측 검사)&lt;br /&gt;: 테스터의 직관과 경험으로 오류를 예상하여 테스트.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;Comparison Testing (비교 검사)&lt;br /&gt;: 이전 버전 또는 타 시스템과 비교하여 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 16.2403%; height: 73px;&quot; rowspan=&quot;4&quot;&gt;구조 기반 테스트&lt;/td&gt;
&lt;td style=&quot;width: 27.7519%; height: 73px;&quot; rowspan=&quot;4&quot;&gt;코드 기준, 내부 구조 중심&lt;/td&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;구문 커버리지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 17px;&quot;&gt;결정 커버리지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 17px;&quot;&gt;조건 커버리지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 17px;&quot;&gt;경로테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.2403%; height: 61px;&quot; rowspan=&quot;3&quot;&gt;경험 기반 테스트&lt;/td&gt;
&lt;td style=&quot;width: 27.7519%; height: 61px;&quot; rowspan=&quot;3&quot;&gt;사람 경험 기준, 실무 경험 활용&lt;/td&gt;
&lt;td style=&quot;width: 56.0077%; height: 17px;&quot;&gt;에러 추정(Error Guessing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;체크리스트 기반 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 56.0077%; height: 22px;&quot;&gt;탐색적 테스트(Exploratory Testing)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(3) 시각에 따른 테스트&lt;/h4&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;검증테스트&lt;/td&gt;
&lt;td&gt;ㆍ개발자의 시각에서 테스트&lt;br /&gt;ㆍ단위테스트, 통합테스트, 시스템 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;확인테스트&lt;/td&gt;
&lt;td&gt;ㆍ사용자의 시각에서 테스트&lt;br /&gt;ㆍ인수테스트(알파테스트, 베타테스트)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(4) 목적에 따른 테스트&lt;/h4&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;회복(Recovery)테스트&lt;/td&gt;
&lt;td&gt;ㆍ시스템에 결함을 주어 실패하도록 유도한 후 올바르게 복구되는지를 확인하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;안전(Security)테스트&lt;/td&gt;
&lt;td&gt;ㆍ불법적인 침입으로부터 시스템을 안전하게 보호할 수 있는지 확인하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;강도(Stress)테스트&lt;/td&gt;
&lt;td&gt;ㆍ과부하 시 소프트웨어가 정상적으로 작동하는지 확인하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;성능(Performance)테스트&lt;/td&gt;
&lt;td&gt;ㆍ실시간 성능이나 전체적인 효율성을 검증하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;구조(Structure)테스트&lt;/td&gt;
&lt;td&gt;ㆍ소프트웨어 내부의 논리적인 구조, 소스 코드 등을 평가하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;회귀(Regression)테스트&lt;/td&gt;
&lt;td&gt;ㆍ유지보수 단계에서 결함의 수정 이후 기능이 정상적으로 수행되는지 확인하게 위해 반복테스트 하는 것&lt;br /&gt;ㆍ이미 해결된 이슈가 또 다시 발생하는지, 새로운 이슈가 발생하는지 확인하는 테스트&amp;nbsp;&lt;br /&gt;ㆍ소프트웨어의 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;병행(Parallel)테스트&lt;/td&gt;
&lt;td&gt;ㆍ변경된 소프트웨어와 기존 소프트웨어의 동일한 데이터를 입력 후 결과를 비교하는 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(5) 테스트 기법에 따른 애플리케이션 테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;화이트 박스 테스트&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;원시코드의 논리적인 모든 경로를 테스트&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;모듈 안의 작동을 직접 관찰한다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;원시 코드(모듈)의 모든 문장을 한 번이상 실행함으로써 수행된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;기초 경로 검사&lt;br /&gt;(Base Path Testing)&lt;/td&gt;
&lt;td&gt;ㆍ테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;제어 구조검사&lt;br /&gt;(Control Structure Testing)&lt;/td&gt;
&lt;td&gt;ㆍ조건 검사 : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법&lt;br /&gt;ㆍ루프 검사 : 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법&lt;br /&gt;ㆍ데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;화이트 박스 테스트의 검증 기준&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;문장 검증 기준 : 모든 실행문이 한 번 이상 수행되도록 설계&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;분기 검증 기준 : 분기점. 즉, 모든 조건문에 대해 모든 조건이 한 번 이상 수행되도록 설계&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;조건 검증 기준 : 조건문에 포함된 개별 조건식이 한 번 이상 수행되도록 설계&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;경로 검증 기준 :&amp;nbsp; 경로 검사&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;블랙박스 테스트&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;사용자의 요구사항 명세를 보면서 테스트한다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;주로 구현된 기능을 테스트한다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;소프트웨어 인터페이스를 통해 실시된다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; 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: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;블랙박스 테스트 기법 유형&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;동등 분할 기법&lt;br /&gt;(Equivalent Analysis),&amp;nbsp;&lt;br /&gt;동등 분할 검사&lt;/td&gt;
&lt;td&gt;ㆍ입력값의 범위를 유사한 특징을 갖는 동등 그룹으로 나누고, 각 그룹마다 대표 값을 선정하여 테스트케이스를 선정하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;경계값 분석 기법&lt;br /&gt;(Boundary Value Analysis)&lt;/td&gt;
&lt;td&gt;ㆍ경계값 분석은 등가 분할된 경계의 유효한 값과 경계에서 가장 가까운 유효하지 않은 값을 테스트 데이터로 선택하여 컴포넌트나 시스템을 테스트하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;원인 효과 그래프 기법&lt;br /&gt;(Cause Effect Graph)&lt;/td&gt;
&lt;td&gt;ㆍ입력값을 원인으로, 효과를 출력 값으로 정하고 이에 따른 원인 결과 그래프를 만들어서 테스트 케이스를 작성하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;의사결정테이블 테스팅 기법&lt;/td&gt;
&lt;td&gt;ㆍ생성될 수 있는 결과를 테이블로 나열하여 가능한 모든 조합을 테스트하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(6)&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;개발 단계에 따른 테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;소프트웨어 개발 단계와 애플리케이션 테스트를 연결하여 표현한 것&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;소프트웨어 개발 단계에 따라 단위테스트, 통합테스트, 시스템 테스트, 인수 테스트로 분류된다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;V모델&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;단위테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;단위테스트는 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자바에서는 junit을 활용한 단위 테스트가 일반적임&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;단위테스트는 구조 기반 테스트와 명세 기반 테스트로 나뉘지만 주로 구조 기반 테스트를 진행&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;통합 테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;통합 테스트는 단위 테스트가 완료된 모듈들을 결합하여 하나의 시스템으로 통합하는 테스트&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;하향식 통합 테스트&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트하는 기법&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;깊이 우선 통합법이나 넓이 우선 통합법을 사용한다.&amp;nbsp;
&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; color: #666666;&quot;&gt;깊이 우선 통합법 : 주요 제어 모듈을 중심으로 해당 모듈에 종속된 모든 모듈을 통합하는 것&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;넓이 우선 통합법 : 구조의 수평을 중심으로 해당하는 모듈을 통합하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;하향식 테스트 간 하위 모듈을 대체하는 더미 모듈을 스텁(Stub)이라고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;상향식 통합 테스트&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트하는 기법&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;하위 모듈들을 클러스터로 결합한다.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;상위 모듈에서 데이터의 입출력을 확인하기 위한 더미 모듈인 드라이버(Driver)를 작성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;시스템 테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시스템 테스트는 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 점검하는 테스트&lt;/p&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;기능적 요구사항&lt;/td&gt;
&lt;td&gt;요구사항 명세서, 비즈니스 절차, 유스케이스 등 명세서 기반의 블랙박스 테스트 시행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;비기능 요구사항&lt;/td&gt;
&lt;td&gt;성능 테스트, 회복 테스트, 보안테스트 등 구조적 요소에 대한 화이트박스 테스트 시행&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;인수테스트&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;인수 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하는지를 중점으로 확인하는 테스트&lt;/p&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;사용자 인수 테스트&lt;/td&gt;
&lt;td&gt;사용자가 적절성 여부를 테스트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;운영상의 인수 테스트&lt;/td&gt;
&lt;td&gt;시스템 관리자가 수행하는 테스트 기법으로 백업테스트, 재난 복구, 정기 점검 등을 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;계약 인수 테스트&lt;/td&gt;
&lt;td&gt;계약상의 조건을 준수하는지 여부를 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;규정 인수 테스트&lt;/td&gt;
&lt;td&gt;소프트웨어가 법규, 규정 등에 맞게 개발되었는지 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;알파 테스트&lt;/td&gt;
&lt;td&gt;ㆍ개발자의 장소에서 사용자가 개발자 앞에서 행해지며, 오류와 사용상의 문제점을 사용자와 개발자가 함께 확인하면서 검사하는 기법(즉, 개발자 환경에서 테스트하는 기법)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;베타 테스트&lt;/td&gt;
&lt;td&gt;ㆍ다수의 사용자를 제한되지 않은 환경에서 프로그램을 사용하게 하고 오류가 발견되면 개발자에게 통보하는 방식(즉, 사용자 환경에서 테스트하는 기법)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 테스트 자동화 도구 유형&lt;/h3&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;단계&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;도구 유형&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot; rowspan=&quot;3&quot;&gt;설계 단계&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;명세 기반 테스트 설계 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;소프트웨어 명세로부터 테스트 절차, 데이터, 드라이버 등을 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;코드 기반 테스트 설계 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;소스 코드로부터 테스트 절차, 데이터, 드라이버 등 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;테스트 관리 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;테스트 계획 수립, 프로세스 관리, 요구사항 및 결함 추적 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot; rowspan=&quot;6&quot;&gt;구현/테스트 단계&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;정적 분석 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;프로그램을 수행하지 않고 분석하는 도구, 복잡도 측정 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;리뷰 및 인스펙션 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;소스 코드/설계 문서를 분석하여 가이드라인 및 규칙 준수 검사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;커버리지 측정 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;주어진 테스트케이스에 의해 얼마나 테스트 되었는가를 측정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;동적 분석 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;프로그램이 수행되는 동안 이벤트의 상태를 파악하기 위하여 특정한 변수나 조건의 스냅샷을 생성 및 활용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;성능/부하/시뮬레이션 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;시스템 부하를 생성하고, 반응시간 및 메모리 사용량 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;기능 테스트 수행 도구&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;주어진 테스트 케이스 자동 수행, 예상 결과와 비교&lt;br /&gt;단위, 통합, 시스템, 인수의 모든 단계에서 수행&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(1) 정적 분석 도구&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;애플리케이션을 실행하지 않고, 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용하는 도구&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;구조 검사&lt;/td&gt;
&lt;td&gt;소프트웨어의 내부 구조를 검사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;데이터 분석&lt;/td&gt;
&lt;td&gt;소프트웨어의 내부 데이터 흐름을 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;순서 검사&lt;/td&gt;
&lt;td&gt;소프트웨어의 실행 순서를 분석&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(2) 테스트 실행 도구&amp;nbsp;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스크립트 언어를 사용하여 테스트를 실행하는 방법, 테스트 데이터와 테스트 방법 등이 포함된 스크립트를 실행한다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(3) 성능 테스트 도구&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;애플리케이션의 처리량, 응답 시간 등을 인위적으로 적용한 가상의 사용자를 만들어 테스트를 수행함으로써 성능 달성 여부를 확인&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(4) 테스트 통제 도구&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구, 형상관리 도구, 결함 추적 도구 등이 있다.&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(5) 테스트 하네스 도구&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로 테스트를 지원하기 위해 생성된 코드와 데이터를 의미한다.&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(6) 테스트 하네스 구성요소&lt;/h4&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;테스트 드라이버&lt;/td&gt;
&lt;td&gt;테스트 대상의 하위 모듈을 호출, 파라미터 전달, 수행 결과 도출&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테스트 스텁&lt;/td&gt;
&lt;td&gt;제어 모듈이 호출하는 타 모듈의 기능을 수행하는 도구, 일시적인 테스트용 모듈&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테스트 슈트&lt;/td&gt;
&lt;td&gt;모듈, 시스템에 사용되는 테스트 케이스의 집합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테스트 케이스&lt;/td&gt;
&lt;td&gt;요구사항을 준수했는지 확인하기 위한 조건, 값, 등으로 만들어진 테스트 항목 명세서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;테스트 스크립트&lt;/td&gt;
&lt;td&gt;자동화된 테스트 실행 절차에 대한 명세서&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;목 오브젝트&lt;/td&gt;
&lt;td&gt;사용자의 행위를 조건부로 입력하면 그 상황에 맞게 수행하는 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;제품소프트웨어&amp;nbsp;패키징&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(1) 제품 소프트웨어 패키징&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 과정&lt;/li&gt;
&lt;/ul&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;(2) 릴리즈 노트&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;최종 사용자인 고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서&lt;/li&gt;
&lt;/ul&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: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;릴리즈 노트 작성 항목&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;작성 항목&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;머릿말/헤더(Header)&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;릴리즈 노트 이름, 제품 이름, 버전번호, 릴리즈 일자, 노트 버전 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;개요&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;제품 및 변경에 대한 간략한 개요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;목적&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;릴리즈 노트의 목적에 대한 간략한 개요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;이슈 요약&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;버그의 간단한 설명 및 릴리즈 노트 추가 항목 요약&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;재현 항목&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;버그 내용 및 버그 재현 항목 작성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;개선 내용&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;개선사항에 대한 간단한 설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;사용자 영향도&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;버전 변경에 따른 최종 사용자 기준의 기능 및 영향도 설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;소프트웨어 지원 영향도&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;버전 변경에 따른 소프트웨어 지원 프로세스 및 영향도 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;노트&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;소프트웨어, 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드 항목 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;면책 조항&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;회사 표준 제품과 관련한 메세지, 불법 복제 방지 등 고지사항&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;연락처&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;사용자 지원 및 문의 연락처&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(3) 디지털 저작권 관리&lt;/p&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;구성 요소&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;컨텐츠 제공자&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;컨텐츠를 제공하는 저작권자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;컨텐츠 분배자&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;암호화된 컨텐츠를 제공하는 제공자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;패키저&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;컨텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;보안 컨테이너&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;원본을 안전하게 유통하기 위한 전자적 보안 장치&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;DRM 컨트롤러&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;배포된 컨텐츠의 이용 권한을 통제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;클리어링 하우스&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;소비자와 유통업자 사이에 발생하는 거래에 대해 디지털 저작권 라이선싱을 중개하고 라이선스 발급을 수행하는 장소&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;(4) 디지털 저작권 관리의 기술 요소&lt;/p&gt;
&lt;table style=&quot;color: #666666; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;구성 요소&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;암호화&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;컨텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;키 관리&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;컨텐츠를 암호화한 키에 대한 저장 및 분배 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;암호화 파일 생성&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;암호화된 컨텐츠를 생성하기 위한 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;식별 기술&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;컨텐츠에 대한 식별 체계 표현 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;저작권 표현&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;라이선스의 내용 표현 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;정책 관리&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;크랙방지&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;크랙에 의한 컨텐츠 사용 방지 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;인증&lt;/td&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[ &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2022년04월24일 기출문제 ]&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;25.테스트 케이스와 관련한 설명으로 틀린 것은?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.테스트의 목표 및 테스트 방법을 결정하기 전에 테스트 케이스를 작성해야 한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.프로그램에 결함이 있더라도 입력에 대해 정상적인 결과를 낼 수 있기 때문에 결함을 검사할 수 있는 테스트 케이스를 찾는 것이 중요하다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.개발된 서비스가 정의된 요구 사항을 준수하는지 확인하기 위한 입력 값과 실행 조건, 예상 결과의 집합으로 볼 수 있다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.테스트 케이스 실행이 통과되었는지 실패하였는지 판단하기 위한 기준을 테스트 오라클(Test Oracle)이라고 한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설 : 설계순서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 테스트 목표 수립 ▶ 테스트 전략/방법 결정 &lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;▶&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;caret-color: auto; letter-spacing: 0px;&quot;&gt;테스트 설계 &lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;▶&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;caret-color: auto; letter-spacing: 0px;&quot;&gt;테스트 케이스 작성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/117</guid>
      <comments>https://hyekkong.tistory.com/117#entry117comment</comments>
      <pubDate>Thu, 7 May 2026 23:03:08 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #1-4. 객체지향 분석 방법론</title>
      <link>https://hyekkong.tistory.com/110</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 객체지향&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) 객체지향의 구성요소&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 303px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 259px;&quot;&gt;
&lt;td style=&quot;width: 11.0465%; height: 259px;&quot;&gt;객체&lt;/td&gt;
&lt;td style=&quot;width: 38.2559%; height: 259px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;b&gt;데이터&lt;/b&gt;와 이를 처리하는 &lt;b&gt;함수&lt;/b&gt;를 묶어 놓은&lt;br /&gt;하나의 모듈&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.6977%; height: 259px;&quot;&gt;&lt;span&gt;특성&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;객체는 독립적으로 &lt;b&gt;식별 가능한 이름&lt;/b&gt;을 가지고 있다.&lt;/li&gt;
&lt;li&gt;객체가 가질 수 있는 조건을 상태 ( State )라고 하는데, 일반적인 상태는 시간에 따라 변한다.&lt;/li&gt;
&lt;li&gt;객체와 객체는 상호 연관성에 의한 관계가 형성된다.&lt;/li&gt;
&lt;li&gt;객체가 반응할 수 있는 메세지( Message )의 집합을 행위라고 하며 객체는 행위의 특징을 나타낸다.&lt;/li&gt;
&lt;li&gt;객체는 일정한 기억장소를 가지고 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 11.0465%; height: 22px;&quot;&gt;클래스&lt;/td&gt;
&lt;td style=&quot;width: 38.2559%; height: 22px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;공통된 &lt;b&gt;속성&lt;/b&gt;과 &lt;b&gt;연산&lt;/b&gt;을 갖는 객체의 집합&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.6977%; height: 22px;&quot;&gt;&lt;span&gt;특징&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;클래스는 객체지향에서 데이터를 &lt;b&gt;추상화하는 단계&lt;/b&gt;이다.&lt;/li&gt;
&lt;li&gt;클래스에 속한 각각의 객체를 인스턴스( Instance )라 하며 클래스로 부터 새로운 객체를 생성하는 것을 인스턴스화 ( Instantication )라고 한다.&lt;/li&gt;
&lt;li&gt;동일 Class에 속한 각각의 Instance들은 공통된 속성과 행위를 가지고 있으며, 그 속성에 대한 정보가 서로 달라서 동일 기능을 하는 여러가지 객체를 나타내게 된다.&lt;/li&gt;
&lt;li&gt;최상위 클래스는 상위 클래스를 갖지 않는 클래스를 의미한다.&lt;/li&gt;
&lt;li&gt;Super Class는 특정 Class의 상위( 부모 )클래스이고, 서브 클래스( Sub Class )는 특정 클래스( 하위, 자식 클래스 )를 의미한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 11.0465%; height: 22px;&quot;&gt;메세지&lt;/td&gt;
&lt;td style=&quot;width: 38.2559%; height: 22px;&quot;&gt;객체의 &lt;b&gt;행위&lt;/b&gt;를 표현&lt;/td&gt;
&lt;td style=&quot;width: 50.6977%; height: 22px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;객체들 간의 상호작용에 사용되는 수단으로, &lt;br /&gt;객체의 동작이나 연산을 일으키는 외부의 요구사항&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) 객체지향의 특징&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 218px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 44px;&quot;&gt;&lt;b&gt;Encapsulation&lt;/b&gt;&lt;br /&gt;(캡슐화)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 44px;&quot;&gt;데이터 &lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;b&gt;속성&lt;/b&gt;과 관련된 &lt;b&gt;연산&lt;/b&gt;을 &lt;br /&gt;클래스 안에 &lt;b&gt;묶어서 하나로 취급&lt;/b&gt;하는 것.&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 44px;&quot;&gt;&lt;span&gt;특징&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐( 정보은닉 )되어 외부의 접근이 제한적이다. 따라서 외부 모듈의 변경으로 인한 파급효과가 적다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템의 한 콤포넌트의 내부구현이 다른 콤포넌트에 의존하지 않는 것, 객체 내부의 구현을 client에게 보이지 않게 하는 것.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;캡슐화된 객체들은 재사용이 용이하다.&lt;/li&gt;
&lt;li&gt;객체들간에 메세지( Message )를 주고 받을 때, 상대 객체의 세부정보를 알 필요가 없으므로 Interface가 단순해지고, 결합도 또한 낮아진다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 38px;&quot;&gt;&lt;b&gt;Inheritance&lt;/b&gt;&lt;br /&gt;(상속성)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 38px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;상위 클래스의&lt;b&gt; 모든 속성과 연산&lt;/b&gt;을 하위 클래스가 &lt;b&gt;물려받는 것&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 38px;&quot;&gt;&lt;span&gt;특징&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;상속을 이용하면 상위 클래스와 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고 즉시 자신의 속성으로 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;하위 클래스는 상속받은 속성과 연산외에 새로운 속성과 연산을 첨가하여 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;객체와 클래스의 재사용, 즉 소프트웨어의 재사용을 높이는 중요한 개념이다.&lt;/li&gt;
&lt;li&gt;다중 상속 ( Multiple Inheritance ) : 한 개의 클래스가 두 개 이상의 상위 클래스로부터 속성과 연산을 상속받는 것을 말한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 38px;&quot;&gt;Polymorphism&lt;br /&gt;(다형성)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 38px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;하나의 메세지에 대해 &lt;b&gt;각 객체가 갖고있는&lt;/b&gt;&lt;br /&gt;&lt;b&gt;고유한 방법대로 응답&lt;/b&gt;하는 것을 의미&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 38px;&quot;&gt;오버로딩&lt;br /&gt;오버라이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 22px;&quot;&gt;(연관성)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 22px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;두 개 이상의 객체들이 상호 참조하는 관계&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;연관성의 종류&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 22px;&quot;&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;is member of&lt;br /&gt;: 연관화&lt;br /&gt;: 2개 이상의 객체가 상호 관련되어 있음을 의미함&lt;/li&gt;
&lt;li&gt;is instance of&lt;br /&gt;: 분류화&lt;br /&gt;: 동일한 형의 특성을 갖는 객체들을 모두 모아 구성하는 것&lt;/li&gt;
&lt;li&gt;is part of&lt;br /&gt;: 관련 있는 객체들을 묶어 하나의 상위 객체를 구성하는 것&lt;/li&gt;
&lt;li&gt;is a&lt;br /&gt;: 일반화 - 공통적인 성질들로 추상화한 상위 객체를 구성하는 것&lt;br /&gt;: 특수화 / 상세화 - 상위 객체를 구체화하여 하위 객체를 구성하는 것&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 38px;&quot;&gt;Information Hiding&lt;br /&gt;(정보은닉)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 38px;&quot;&gt;캡슐화에서 가장 중요한 개념으로 다른 객체에 자신의 정보를 숨기는 것&lt;br /&gt;&lt;br /&gt;연산만을 통해 접근&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 38px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 16.8216%; height: 38px;&quot;&gt;Abstraction&lt;br /&gt;(추상화)&lt;/td&gt;
&lt;td style=&quot;width: 32.6357%; height: 38px;&quot;&gt;불필요한 부분을 생략, 객체 속성 중 가장 중요한 것에 중점을 두어 모델링함.&lt;br /&gt;&lt;br /&gt;완전한 시스템 구축 전, 그 시스템과 유사한 모델을 만들어 여러 요인들을 테스트 할 수 있음.&lt;/td&gt;
&lt;td style=&quot;width: 50.5426%; height: 38px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- 미들웨어는 운영체제와 소프트웨어의 중간에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;조정과 중개의 역할&lt;/b&gt;을 해주는 소프트웨어다.&lt;br /&gt;- 운영체제가 제공하는 서비스 이외에 추가적인 서비를 제공하며&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;클라이언트와 서버 간의 통신을 담당&lt;/b&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 객체 지향 설계 원칙(SOLID)&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 629px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 117px;&quot;&gt;
&lt;td style=&quot;width: 19.7674%; height: 117px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;SRP/단일 책임 원칙&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Single responsibility principle):&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80.2326%; height: 117px;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;한 클래스는 하나의 책임만 가져야 한다.&lt;br /&gt;==&amp;gt; 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중&lt;/li&gt;
&lt;li&gt;결합도는 낮추고 응집도는 높여야한다&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 117px;&quot;&gt;
&lt;td style=&quot;width: 19.7674%; height: 117px;&quot;&gt;&lt;b&gt;OCP/개방 폐쇄 원칙&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Open/closed principle)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80.2326%; height: 117px;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있으나 변경에는 닫혀 있어야 한다.&lt;br /&gt;==&amp;gt; 기존 코드를 변경하지 않고 기능을 추가할 수 있어야 한다.&lt;/li&gt;
&lt;li&gt;공통적 인터페이스를 하나의 인페이스로 묶어 캡슐화한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 166px;&quot;&gt;
&lt;td style=&quot;width: 19.7674%; height: 166px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;LSP/리스코프 치환(교쳬) 원칙&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80.2326%; height: 166px;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 서브타입(하위클래스)은 어디서나 자신의 기반타입(상위클래스) 인스턴스로 바꿀 수 있어야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;자식클래스는 최소한 부모클래스가 가능한 행위는 수행 할 수 있어야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;자식클래스는 확장만 수행한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 174px;&quot;&gt;
&lt;td style=&quot;width: 19.7674%; height: 174px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;ISP/인터페이스 분리 원칙&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Interface segregation principle):&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80.2326%; height: 174px;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;자신이 사용하지 않는 인터페이스와 의존관계를 맺거나 영향을 받지 않아야 한다.&lt;br /&gt;==&amp;gt; 한 클래스는 자신이 사용하지 않은 인터페이스를 구현하지 말아야 함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;인터페이스를 클라이언트에 특화되도록 분리시키는 설계 원칙.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;인터페이스가 갖는 하나의 원칙&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 55px;&quot;&gt;
&lt;td style=&quot;width: 19.7674%; height: 55px;&quot;&gt;&lt;b&gt;의존관계 역전 원칙&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(DIP, Dependency inversion principle):&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80.2326%; height: 55px;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;추상화에 의존해야지, 구체화에 의존하면 안된다.&lt;br /&gt;==&amp;gt; 의존 관계를 맺을 떄 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것. 거의 변화가 없는 것에 의존하라는 것&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;각 객체들이 의존단계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존관계를 가져야 한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;객체 지향 분석 방법론&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(1) Rumbaugh&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든&amp;nbsp;소프트웨어&amp;nbsp;구성&amp;nbsp;요소를&amp;nbsp;그래픽&amp;nbsp;표기법을&amp;nbsp;이용하여&amp;nbsp;모델링하는&amp;nbsp;기법으로,&amp;nbsp;객체&amp;nbsp;모델링&amp;nbsp;기법(Object&amp;nbsp;Modeling&amp;nbsp;Technique)&amp;nbsp;라고도&amp;nbsp;한다.&amp;nbsp;분석활동은&amp;nbsp;객체모델링&amp;nbsp;-&amp;gt;&amp;nbsp;동적&amp;nbsp;모델링&amp;nbsp;-&amp;gt;&amp;nbsp;기능&amp;nbsp;모델링&amp;nbsp;순으로&amp;nbsp;통해&amp;nbsp;이루어진다&lt;/p&gt;
&lt;h4 id=&quot;객체-지향-분석-기법-방법론---럼바우rumbaugh&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;(2) Booch(부치) 방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미시적(Micro)&amp;nbsp;개발&amp;nbsp;프로세스와&amp;nbsp;거시적(Macro)&amp;nbsp;개발&amp;nbsp;프로세스를&amp;nbsp;모두&amp;nbsp;사용하는&amp;nbsp;분석&amp;nbsp;방법으로,&amp;nbsp;클래스와&amp;nbsp;객체들을&amp;nbsp;분석&amp;nbsp;및&amp;nbsp;식별하고&amp;nbsp;클래스의&amp;nbsp;속성과&amp;nbsp;연산을&amp;nbsp;정의한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(3) Jacobson&amp;nbsp;방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Use&amp;nbsp;Case를&amp;nbsp;강조하여&amp;nbsp;사용하는&amp;nbsp;분석&amp;nbsp;방법이다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(4)&amp;nbsp;Coad와&amp;nbsp;Yourdon&amp;nbsp;방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;E-R&amp;nbsp;다이어그램을&amp;nbsp;사용하여&amp;nbsp;객체의&amp;nbsp;행위를&amp;nbsp;모델링하며,&amp;nbsp;객체&amp;nbsp;식별,&amp;nbsp;구조&amp;nbsp;식별,&amp;nbsp;주제&amp;nbsp;정의,&amp;nbsp;속성과&amp;nbsp;인스턴스&amp;nbsp;연결&amp;nbsp;정의,&amp;nbsp;연산과&amp;nbsp;메시지&amp;nbsp;연결&amp;nbsp;정의&amp;nbsp;등의&amp;nbsp;과정으로&amp;nbsp;구성하는&amp;nbsp;기법&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;(5) Wirfs-Brock 방법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분석과&amp;nbsp;설계&amp;nbsp;간의&amp;nbsp;구분이&amp;nbsp;없고,&amp;nbsp;고객&amp;nbsp;명세서를&amp;nbsp;평가해서&amp;nbsp;설계&amp;nbsp;작업까지&amp;nbsp;연속적으로&amp;nbsp;수행하는&amp;nbsp;기법&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;[22년03월05일 기출문제]&lt;/i&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;13.클래스 설계원칙에 대한 바른 설명은?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.단일 책임원칙 : 하나의 클래스만 변경 가능 해야한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.의존관계 역전의 원칙 : 클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다.&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;정답 :&amp;nbsp;&lt;/span&gt;2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;해설 : &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;단일 책임원칙 : 하나의 객체는 하나의 동작만의 책임을 가짐&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;리스코프 교체의 원칙 : 특정 메소드가 상위 타입을 인자로 사용할 때, 그 타입의 하위 타입도 문제 없이 작동해야 함&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;의존관계 역전의 원칙 : 상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있음&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;18.객체지향 분석기법의 하나로 객체 모형, 동적 모형, 기능 모형의 3개 모형을 생성하는 방법은?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.Wirfs-Block Method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.Rumbaugh Method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.Booch Method&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.Jacobson Method&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설 : &lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Rumbaugh(럼바우) 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법으로, 객체 모델링 기법라고도 한다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;분석활동은 객체모델링 -&amp;gt; 동적 모델링 -&amp;gt; 기능 모델링 순으로 통해 이루어진다&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Booch(부치) 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법으로, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의한다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Jacobson 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Use Case를 강조하여 사용하는 분석 방법이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Coad와 Yourdon 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성하는 기법&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;Wirfs-Brock 방법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;[22년 04월 24일 기출문제]&lt;/i&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;26.객체지향 개념을 활용한 소프트웨어 구현과 관련한 설명 중 틀린 것은?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.객체(Object)란 필요한 자료 구조와 수행되는 함수들을 가진 하나의 독립된 존재이다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.JAVA에서 정보은닉(Information Hiding)을 표기할 때 private의 의미는 '공개'이다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.상속(Inheritance)은 개별 클래스를 상속 관계로 묶음으로써 클래스 간의 체계화된 전체 구조를 파악하기 쉽다는 장점이 있다.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.같은 클래스에 속하는 개개의 객체이자 하나의 클래스에서 생성된 객체를 인스턴스(Instance)라고 한다.&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해설 : &lt;span style=&quot;color: #0000ff; text-align: start;&quot;&gt;JAVA에서 정보은닉(InformationHiding)을 표기할 때 private의 의미는 외부에서 클래스 내부 정보에 접근하지 못하도록 하는 '접근금지'이다&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/110</guid>
      <comments>https://hyekkong.tistory.com/110#entry110comment</comments>
      <pubDate>Thu, 7 May 2026 15:18:48 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #1-3. 익스트림 프로그래밍(eXtreme Programming, XP)</title>
      <link>https://hyekkong.tistory.com/109</link>
      <description>&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;1. &lt;/b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;XP(eXtreme Programming)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;- XP는 요구사항 변화에 유연하게 대응하고, 고객과의 소통을 중시하는 애자일 방법론이다.&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-path-to-node=&quot;22&quot;&gt;&lt;b data-path-to-node=&quot;22&quot; data-index-in-node=&quot;0&quot;&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;XP(eXtreme Programming)의 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;5가지 핵심 가치&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;의단용피존&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&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: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;의&lt;/span&gt;&lt;/b&gt;사소통(Communication)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;단&lt;/span&gt;&lt;/b&gt;순성(Simplicity)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;용&lt;/span&gt;&lt;/b&gt;기(Courage)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;피&lt;/span&gt;&lt;/b&gt;드백(Feedback)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;존&lt;/span&gt;&lt;/b&gt;중(Respect)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-path-to-node=&quot;22&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-path-to-node=&quot;22&quot;&gt;&lt;b data-path-to-node=&quot;22&quot; data-index-in-node=&quot;0&quot;&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;XP(eXtreme Programming)의 기본원리&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Pair&amp;nbsp;Programming&lt;/b&gt;&lt;br /&gt;(짝&amp;nbsp;프로그래밍)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;다른&amp;nbsp;사람과&amp;nbsp;&lt;b&gt;함께&amp;nbsp;&lt;/b&gt;프로그래밍을&amp;nbsp;수행함으로써&amp;nbsp;개발에&amp;nbsp;대한&amp;nbsp;&lt;b&gt;책임을&amp;nbsp;공동&lt;/b&gt;으로&amp;nbsp;나눠&amp;nbsp;갖는&amp;nbsp;환경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Test-Driven&amp;nbsp;Development&lt;/b&gt;&lt;br /&gt;(테스트&amp;nbsp;주도&amp;nbsp;개발)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;개발자가&amp;nbsp;실제&amp;nbsp;코드를&amp;nbsp;작성하기&amp;nbsp;전에&amp;nbsp;테스트&amp;nbsp;케이스를&amp;nbsp;먼저&amp;nbsp;작성하므로&amp;nbsp;&lt;br /&gt;자신이&amp;nbsp;무엇을&amp;nbsp;해야할지&amp;nbsp;정확히&amp;nbsp;파악,&amp;nbsp;&lt;br /&gt;테스트가&amp;nbsp;지속적으로&amp;nbsp;진행될&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;자동화된&amp;nbsp;테스팅&amp;nbsp;도구&amp;nbsp;사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Whole Team&lt;/b&gt; (전체 팀)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;개발에&amp;nbsp;참여하는&amp;nbsp;모든&amp;nbsp;구성원들은&amp;nbsp;&lt;b&gt;각자&amp;nbsp;자신의&amp;nbsp;역할이&amp;nbsp;있고&amp;nbsp;책임&lt;/b&gt;을&amp;nbsp;가져야&amp;nbsp;함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Desgin&amp;nbsp;Improvement&lt;/b&gt;&lt;br /&gt;(디자인&amp;nbsp;개선)&amp;nbsp;&lt;br /&gt;&lt;br /&gt;또는&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Refactoring&lt;/b&gt; (리팩터링)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;프로그램&amp;nbsp;&lt;b&gt;기능의&amp;nbsp;변경&amp;nbsp;없이,&lt;/b&gt;&amp;nbsp;단순화,&amp;nbsp;유연성&amp;nbsp;강화&amp;nbsp;등을&amp;nbsp;통해&amp;nbsp;&lt;b&gt;시스템을&amp;nbsp;재구성&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Small&amp;nbsp;Releases&lt;/b&gt;&lt;br /&gt;(소규모&amp;nbsp;릴리즈)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;&lt;b&gt;릴리즈&amp;nbsp;기간을&amp;nbsp;짧게&amp;nbsp;반복&lt;/b&gt;함으로써&amp;nbsp;고객의&amp;nbsp;&lt;b&gt;요구&amp;nbsp;변화에&amp;nbsp;신속히&amp;nbsp;대응&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6046%;&quot;&gt;&lt;b&gt;Continuous&amp;nbsp;Integration&lt;/b&gt;&lt;br /&gt;(계속적인&amp;nbsp;통합)&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%;&quot;&gt;&lt;b&gt;모듈&amp;nbsp;단위로&amp;nbsp;나눠서&lt;/b&gt;&amp;nbsp;개발된&amp;nbsp;코드들은&amp;nbsp;하나의&amp;nbsp;작업이&amp;nbsp;&lt;b&gt;마무리&amp;nbsp;될&amp;nbsp;떄마다&amp;nbsp;지속적으로&amp;nbsp;통합&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot; data-path-to-node=&quot;22&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot; data-path-to-node=&quot;22&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;4.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;XP(eXtreme Programming)의 개발 프로세스 순서&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;계획 수립 ▶ 주기&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;▶&lt;span&gt; &lt;/span&gt;&lt;/b&gt;승인 검사&amp;nbsp;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;▶&lt;span&gt; &lt;/span&gt;&lt;/b&gt;소규모&amp;nbsp;릴리즈&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&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;style5&quot; /&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;# 정보처리기사 필기 기출문제&lt;/b&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;[ &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;20년 1회&amp;middot;2회 통합 기출&lt;/span&gt; ]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-path-to-node=&quot;22&quot; data-ke-style=&quot;style3&quot;&gt;XP(eXtreme Programing)의 5가지 가치로 거리가 먼 것은?&lt;br /&gt;1.용기&lt;br /&gt;2.의사소통&lt;br /&gt;3.정형 분석&lt;br /&gt;4.피드백&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;정답 : 3&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;해설 : 5가지 핵심가치 &lt;b&gt;의단용피존&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-path-to-node=&quot;22&quot; data-index-in-node=&quot;0&quot;&gt;[&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;20년 4회 기출&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-path-to-node=&quot;22&quot; data-ke-style=&quot;style3&quot;&gt;XP의 기본원리로 볼 수 없는 것은?&lt;br /&gt;&lt;br /&gt;① Linear Sequential Method&lt;br /&gt;② Pair Programming&lt;br /&gt;③ Collective Ownership&lt;br /&gt;④ Continuous Integration&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;정답 : 1&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;해설 : &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;Linear Sequential Method(선형 순차적 방법)은 XP의 기본원리라기 보다 폭포수 모델(Waterfall model)의 기본원리로 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;[&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;22년 1회 기출&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-path-to-node=&quot;24&quot; data-ke-style=&quot;style3&quot;&gt;익스트림 프로그래밍에 대한 설명으로 틀린 것은? &lt;br /&gt;&lt;br /&gt;1.대표적인 구조적 방법론 중 하나이다. &lt;br /&gt;2.소규모 개발 조직이 불확실하고 변경이 많은 요구를 접하였을 때 적절한 방법이다. &lt;br /&gt;3.익스트림 프로그래밍을 구동시키는 원리는 상식적인 원리와 경험을 최대한 끌어 올리는 것이다. &lt;br /&gt;4.구체적인 실천 방법을 정의하고 있으며, 개발 문서 보다는 소스코드에 중점을 둔다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;31&quot; data-ke-size=&quot;size16&quot;&gt;정답:&amp;nbsp;1번 &lt;br /&gt;해설 : XP는 애자일 방법론입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;31&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구조적 방법론&lt;/b&gt;은 하향식(Top-down)으로 기능을 분해하며 &lt;b&gt;프로세스와 문서를 중시하는 전통적인 방식&lt;/b&gt;(예: 폭포수 모델 기반)이므로 XP의 철학과 완전히 반대됩니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/109</guid>
      <comments>https://hyekkong.tistory.com/109#entry109comment</comments>
      <pubDate>Thu, 7 May 2026 11:25:08 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #1-2. 미들웨어 개념과 종류</title>
      <link>https://hyekkong.tistory.com/108</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.미들웨어란?&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;- 미들웨어는 운영체제와 소프트웨어의 중간에서 &lt;b&gt;조정과 중개의 역할&lt;/b&gt;을 해주는 소프트웨어다.&lt;br /&gt;- 운영체제가 제공하는 서비스 이외에 추가적인 서비를 제공하며 &lt;b&gt;클라이언트와 서버 간의 통신을 담당&lt;/b&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.미들웨어 장점&lt;/h3&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- 다양한 환경의 지원이 가능하고 체계가 다른 업무와도 상호 연동이 가능하다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- 분산된 업무를 동치에 처리하여 일관성이 유진된다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- 표준화된 인터페이스를 제공한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;- 부하의 분산이 가능하다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 미들웨어의 종류&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# 동기 방식 &lt;/b&gt;(응답올 때까지 기다림, 즉각적인 결과 확인 필요할 때 사용)&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(1) RPC(Remote Procedure Call)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;원격&lt;/b&gt;&lt;/span&gt; 프로시저 호출이라고 하며, 클라이언트가 원격제어를 통하여&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원격 위치에 있는 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;(2) &lt;/span&gt;TP-Monitor(Transection Processing Monitor)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 항공기나 철도 예약 업무 등과 같이 온라인 트랜잭션 업무에서 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;트랜잭션을 처리하고 감시&lt;/b&gt;&lt;/span&gt;하는 미들웨어이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;(3)&lt;/span&gt; DB(DataBase):&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: &lt;b&gt;데이터베이스&lt;/b&gt; 벤더에서 제공하는 클라이언트와 데이터베이스를 연결하는 미들웨어이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2-Tier 아키텍처라고 한다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;(4)&lt;/span&gt; ORB(Object Request Broker)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;객체 지향&lt;/b&gt;&lt;/span&gt; 미들웨어이며, 코바(CORBA) 표준 스펙을 구현한 미들웨어이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;(5)&lt;/span&gt; WAS(&lt;b&gt;Web&lt;/b&gt; Application Server)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: 사용자의 요구에 따라 변하는&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 동적인 콘텐츠를 처리&lt;/b&gt;&lt;/span&gt;하기 위해 사용되는 미들웨어이다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# 동기 방식 &lt;/b&gt;( 요청을 보낸 후 응답을 기다리지 않고 바로 자기 일을 계속하는 방식 )&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;(6)&lt;/span&gt; &lt;span style=&quot;color: #000000; background-color: #f6e199;&quot;&gt;&lt;b&gt;MOM &lt;/b&gt;(Message Oriented Middleware)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: &lt;b&gt;메시지&lt;/b&gt; 지향 미들웨어라고 하며 메시지 기반의 비동기형 메시지를 전달하는 미들웨어이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;22&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13&quot;&gt;[문제 ]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-path-to-node=&quot;14&quot; data-ke-style=&quot;style3&quot;&gt;
&lt;p style=&quot;color: #666666;&quot; data-path-to-node=&quot;14,0&quot; data-ke-size=&quot;size16&quot;&gt;메시지 지향 미들웨어(Message-Oriented Middleware, MOM)에 대한 설명으로 틀린 것은?&lt;br /&gt;&lt;br /&gt;1. 느리고 안정적인 응답보다는 즉각적인 응답이 필요한 온라인 업무에 적합하다.&lt;br /&gt;2. 독립적인 애플리케이션을 하나의 통합된 시스템으로 묶기 위한 역할을 한다.&lt;br /&gt;3. 송신측과 수신측의 연결 시 메시지 큐를 활용하는 방법이 있다.&lt;br /&gt;4. 상이한 애플리케이션 간 통신을 비동기 방식으로 지원한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19&quot;&gt;✅ 정답 및 해설 검토&lt;/b&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;19&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,0,0&quot;&gt;정답:&lt;/b&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;1번&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;19&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;19&quot;&gt;&lt;b data-path-to-node=&quot;20,1,0&quot; data-index-in-node=&quot;0&quot;&gt;해설 검토 &amp;amp; 추가 해설:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정답과 해설 모두 정확합니다. MOM의 핵심 키워드는 '비동기', '메시지 큐', '안정성(보장성)'입니다. 즉각적인 응답을 요구하는 시스템에는 맞지 않으므로 1번이 틀린 설명입니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/108</guid>
      <comments>https://hyekkong.tistory.com/108#entry108comment</comments>
      <pubDate>Thu, 7 May 2026 11:10:28 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사 필기 요약] #1-1. UML</title>
      <link>https://hyekkong.tistory.com/107</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,0,0&quot;&gt;# UML 다이어그램&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,0,0&quot;&gt;구조적(정적) 다이어그램 : &lt;span style=&quot;color: #006dd7;&quot;&gt;클객 컴배 복패&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 132px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;클래스 다이어그램&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;객체지향&amp;nbsp;모델링&amp;nbsp;시&amp;nbsp;구성요소간&amp;nbsp;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;정적인&amp;nbsp;관계&lt;/b&gt;&lt;/span&gt;를&amp;nbsp;표현한&amp;nbsp;다이어그램&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;클래스 다이어그램 구성요소&lt;br /&gt;- 클래스 이름&lt;br /&gt;&lt;br /&gt;- 속성&lt;br /&gt;&amp;nbsp;: 클래스의 상태나 정보&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;연산&lt;/b&gt;&lt;/span&gt; &lt;i&gt;[21년 3회]&lt;/i&gt;&lt;br /&gt;&amp;nbsp;: 클래스의 동작&lt;br /&gt;&lt;br /&gt;- 접근 제어자(접근 제한자)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;객체 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;컴포넌트 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;구현단계에서 소프트웨어의 물리적 모듈 단위(컴포넌트) 간 관게를 표&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;배치 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;시스템의 물리적인 노드(컴퓨터, h/w 등) 구성과 그 사이의 통신경로를 모델링하는 다이어그램&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;복합체 구조 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.7906%; height: 22px;&quot;&gt;패키 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.8721%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 36.3372%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b data-path-to-node=&quot;9,0,1,0,0&quot; data-index-in-node=&quot;0&quot;&gt;행위적(동적) 다이어그램 :&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;유시커 상활타&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;[20년 2회]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;[23년 2회]&lt;/i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 382px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 272px;&quot; rowspan=&quot;2&quot;&gt;&lt;b&gt;유스케이스 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;다이어그램&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;i&gt;[22년 2회] &lt;i&gt;[23년 2회]&lt;/i&gt;&lt;/i&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 272px;&quot; rowspan=&quot;2&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;사용자&amp;nbsp;측면&lt;/b&gt;&lt;/span&gt;에서의&amp;nbsp;요구사항&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;유스케이 다이어그램 구성요소&lt;br /&gt;- 시스템/시스템범위&lt;br /&gt;: 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현함&lt;br /&gt;&lt;br /&gt;- 액터&lt;br /&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;시스템과 상호작용을 하는 모든 외부 요소&lt;/span&gt;로, &lt;br /&gt;사람이나 외부 시스템을 의미함&lt;br /&gt;&lt;i&gt;[21년 2회] &lt;i&gt;[23년 3회]&lt;/i&gt; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;- 유스케이스&lt;br /&gt;: &lt;span style=&quot;background-color: #f6e199;&quot;&gt;사용자가 보는 관점&lt;/span&gt;에서 시스템이&amp;nbsp;&lt;br /&gt;액터에게&amp;nbsp;제공하는&amp;nbsp;서비스&amp;nbsp;또는&amp;nbsp;기능을&amp;nbsp;표현한&amp;nbsp;것&lt;br /&gt;&lt;br /&gt;- 관계&lt;br /&gt;: &lt;b&gt;연관&amp;nbsp;관계,&amp;nbsp;포함&amp;nbsp;관계,&amp;nbsp;확장&amp;nbsp;관계,&amp;nbsp;일반화&amp;nbsp;관계&lt;/b&gt;가&amp;nbsp;있다. &lt;i&gt;[22년 2회]&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 250px;&quot;&gt;
&lt;td style=&quot;width: 37.0349%; height: 250px;&quot;&gt;유스케이스&amp;nbsp;다이어그램의&amp;nbsp;관계&lt;br /&gt;- 포함 관계 &amp;lt;&amp;lt;include&amp;gt;&amp;gt;&lt;br /&gt;&amp;nbsp;: 유스케이스를 수행할 때, 다른 유스케이스가 반드시 수행되는 관계&lt;br /&gt;&lt;br /&gt;- &lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;확장 관계 &amp;lt;&amp;lt;extend&amp;gt;&amp;gt;&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&amp;nbsp;: 유스케이스가 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;특정 조건에 부합&lt;/b&gt;&lt;/span&gt;되어 유스케이스의 기능이 확장될 때 원래의 유스케이스와 확장된 유스케이스와의 관계를 확장 관계라고 함.&lt;br /&gt;&lt;i&gt;[21년 2회] [23년 2회]&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;-일반화 관계&lt;br /&gt;: 추상적인&amp;nbsp;액터와&amp;nbsp;좀&amp;nbsp;더&amp;nbsp;구체적인&amp;nbsp;액터&amp;nbsp;사이에&amp;nbsp;맺어주는&amp;nbsp;관계 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;하위 액터나 유스케이스에서 상위 액터, 유스케이스 쪽으로 속이 빈 삼각형 화살표를 실선으로 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 22px;&quot;&gt;시퀀스(순차) &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 22px;&quot;&gt;- &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;객체 간 상호작용을 메시지 흐름으로 표현&lt;/b&gt;&lt;/span&gt;한 다이어그램이다. &lt;i&gt;[21년 1회]&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;주로 동적&lt;/b&gt;&lt;/span&gt;인 측면에서 모델링을 설계하기 위해 사용한다. &lt;i&gt;[21년 3회] [23년 1회]&lt;/i&gt; &lt;br /&gt;&lt;br /&gt;- 시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다. &lt;br /&gt;&lt;br /&gt;- 수직 방향이 시간의 흐름을 나타낸다.&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;순차(시퀀스) 다이어그램의 구성요소&lt;i&gt; [20년 3회]&lt;/i&gt; &lt;br /&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;OLAM&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;- 객체(&lt;b&gt;O&lt;/b&gt;bject)&amp;nbsp;&lt;br /&gt;:&amp;nbsp;사각형&amp;nbsp;안에&amp;nbsp;밑줄&amp;nbsp;친&amp;nbsp;이름으로&amp;nbsp;명시 &lt;br /&gt;&lt;br /&gt;- 생명선(&lt;b&gt;L&lt;/b&gt;ifeline)&lt;br /&gt;&amp;nbsp;:&amp;nbsp;객체로부터&amp;nbsp;뻗어나가는&amp;nbsp;점선 &lt;br /&gt;&lt;br /&gt;- 실행(&lt;b&gt;A&lt;/b&gt;ctivation)&lt;br /&gt;&amp;nbsp;:&amp;nbsp;점선&amp;nbsp;위&amp;nbsp;직사각형,&amp;nbsp;직사각형은&amp;nbsp;실행&amp;nbsp;시간을&amp;nbsp;의미 &lt;br /&gt;&lt;br /&gt;- 메시지(&lt;b&gt;M&lt;/b&gt;essage)&amp;nbsp;:&amp;nbsp;화살표 &lt;br /&gt;&lt;br /&gt;- 제어 블록 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 22px;&quot;&gt;커뮤니케이션 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 22px;&quot;&gt;상태 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 22px;&quot;&gt;- 객체들 사이에 발생하는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;이벤트(event)&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;i&gt;[23년 3회]&lt;/i&gt; 에 의한 객체들의 상태 변화를 그림으로 나타낸 &lt;br /&gt;다이어그램.&lt;br /&gt;&lt;br /&gt;- 하나의 객체가 자신이 속한 클래스의 &lt;b&gt;상태 변화&lt;/b&gt; 혹은 다른 객체와의 상호 작용에 따라 &lt;b&gt;상태가 어떻게 변화&lt;/b&gt;하는지를 표현함.&lt;br /&gt;&lt;br /&gt;- &lt;b&gt;럼바우(Rumbaugh)&lt;/b&gt; 객체지향 분석 기법에서 동적 모델링에 활용된다.&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 22px;&quot;&gt;활동 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;br /&gt;&lt;i&gt;[23년 1회]&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 22px;&quot;&gt;오퍼레이션이나&amp;nbsp;처리&amp;nbsp;과정이&amp;nbsp;수행되는&amp;nbsp;동안&amp;nbsp;&lt;br /&gt;일어나는&amp;nbsp;일들을&amp;nbsp;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;단계적으로&amp;nbsp;표현&lt;/b&gt;&lt;/span&gt;한&amp;nbsp;다이어그램&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 22.5582%; height: 22px;&quot;&gt;타이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다이어그램&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40.4069%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 37.0349%; height: 22px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-path-to-node=&quot;9,0,1,0,0&quot; data-index-in-node=&quot;0&quot;&gt;# UML 관계&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 154px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; &lt;b&gt;Association : 연관관계&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 22px;&quot;&gt;2개&amp;nbsp;이상의&amp;nbsp;사물이&amp;nbsp;서로&amp;nbsp;관련된&amp;nbsp;상태를&amp;nbsp;화살표&amp;nbsp;실선으로&amp;nbsp;표현&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 22px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;49&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HYrDB/dJMcaipHAtr/KTer9dSCpfCoUgPZkwIdvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HYrDB/dJMcaipHAtr/KTer9dSCpfCoUgPZkwIdvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HYrDB/dJMcaipHAtr/KTer9dSCpfCoUgPZkwIdvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHYrDB%2FdJMcaipHAtr%2FKTer9dSCpfCoUgPZkwIdvk%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;213&quot; height=&quot;49&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;49&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 44px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: center;&quot;&gt;Aggregation &lt;span&gt;&amp;nbsp;&lt;/span&gt;: 집합관계 &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 44px;&quot;&gt;전체 클래스가 사라져도, &lt;b&gt;부분 클래스는 독립적으로 존재할 수 있&lt;/b&gt;습니다.&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 44px;&quot;&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;208&quot; data-origin-height=&quot;43&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5PJbR/dJMcac33EZJ/6CC75takAt0OIlWV31t0MK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5PJbR/dJMcac33EZJ/6CC75takAt0OIlWV31t0MK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5PJbR/dJMcac33EZJ/6CC75takAt0OIlWV31t0MK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5PJbR%2FdJMcac33EZJ%2F6CC75takAt0OIlWV31t0MK%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;197&quot; height=&quot;41&quot; data-origin-width=&quot;208&quot; data-origin-height=&quot;43&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cO0zXD/dJMcagZGJWZ/BQwbHMeJPUpKMDnRwIA1X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cO0zXD/dJMcagZGJWZ/BQwbHMeJPUpKMDnRwIA1X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cO0zXD/dJMcagZGJWZ/BQwbHMeJPUpKMDnRwIA1X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcO0zXD%2FdJMcagZGJWZ%2FBQwbHMeJPUpKMDnRwIA1X1%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;201&quot; height=&quot;45&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;동아리 - 회원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: center;&quot;&gt;Composition&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: center;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: center;&quot;&gt;: 포함관계&lt;/span&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 22px;&quot;&gt;- 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 &lt;br /&gt;포함되는 사물에 &lt;b&gt;영향을&amp;nbsp;미치는&amp;nbsp;관계&lt;/b&gt;를&amp;nbsp;표현&lt;br /&gt;전체 소멸시 부분도 소&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 22px;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;209&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ADT8I/dJMcacpuh5l/3BDgqaHRZ9241rTtnk7QKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ADT8I/dJMcacpuh5l/3BDgqaHRZ9241rTtnk7QKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ADT8I/dJMcacpuh5l/3BDgqaHRZ9241rTtnk7QKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FADT8I%2FdJMcacpuh5l%2F3BDgqaHRZ9241rTtnk7QKk%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;209&quot; height=&quot;36&quot; data-origin-width=&quot;209&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; &lt;b&gt;Generalization : 일반화 관계&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 22px;&quot;&gt;-&lt;span style=&quot;background-color: #f6e199; color: #000000; text-align: start;&quot;&gt; 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 일종의 &lt;b&gt;상속개념&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현 &lt;i&gt;[20년 2회]&lt;/i&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 22px;&quot;&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;210&quot; data-origin-height=&quot;41&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjfv2r/dJMcagFrH9D/PAuqkaj8MooULK1NElknW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjfv2r/dJMcagFrH9D/PAuqkaj8MooULK1NElknW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjfv2r/dJMcagFrH9D/PAuqkaj8MooULK1NElknW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjfv2r%2FdJMcagFrH9D%2FPAuqkaj8MooULK1NElknW0%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;210&quot; height=&quot;41&quot; data-origin-width=&quot;210&quot; data-origin-height=&quot;41&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7IE8/dJMb99M1uHu/6z3uDLKaxYXQ0Ey7xsSvP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7IE8/dJMb99M1uHu/6z3uDLKaxYXQ0Ey7xsSvP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7IE8/dJMb99M1uHu/6z3uDLKaxYXQ0Ey7xsSvP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7IE8%2FdJMb99M1uHu%2F6z3uDLKaxYXQ0Ey7xsSvP1%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;298&quot; height=&quot;109&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; &lt;b&gt;Dependency : 의존관계&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 22px;&quot;&gt;하나의 사물의 &lt;b&gt;변화가&lt;/b&gt; 다른 사물에게 &lt;b&gt;영향을 미치는 &lt;span style=&quot;background-color: #f3c000;&quot;&gt;일시적인&lt;/span&gt; 관계&lt;/b&gt;로, 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우 &lt;i&gt;[21년 3회] [23년 2회]&lt;/i&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 22px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;209&quot; data-origin-height=&quot;40&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLSWrY/dJMcah5px0i/SOdHCME6pKsKVCNzbnPNwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLSWrY/dJMcah5px0i/SOdHCME6pKsKVCNzbnPNwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLSWrY/dJMcah5px0i/SOdHCME6pKsKVCNzbnPNwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLSWrY%2FdJMcah5px0i%2FSOdHCME6pKsKVCNzbnPNwk%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;209&quot; height=&quot;40&quot; data-origin-width=&quot;209&quot; data-origin-height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;운전자 - 네비게이션&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 24.4961%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt; &lt;b&gt;Realization : 실체화 관계&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50.5425%; height: 22px;&quot;&gt;- &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;실체화 관계는 사물이 할 수 있거나 해야 하는 기능&lt;/b&gt;&lt;/span&gt;(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현 &lt;i&gt;[21년 2회]&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;- 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 &lt;span style=&quot;background-color: #f6e199;&quot;&gt;의미적 관계&lt;/span&gt; &lt;i&gt;[21년 2회]&lt;/i&gt;&lt;/td&gt;
&lt;td style=&quot;width: 24.9613%; height: 22px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;49&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/COgJi/dJMcaja164M/flsIpEpKwhG0Ldmymnw1ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/COgJi/dJMcaja164M/flsIpEpKwhG0Ldmymnw1ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/COgJi/dJMcaja164M/flsIpEpKwhG0Ldmymnw1ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCOgJi%2FdJMcaja164M%2FflsIpEpKwhG0Ldmymnw1ok%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;212&quot; height=&quot;49&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;49&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6UycC/dJMcagemhCG/UIuTcvt6YTkHXF9IU7wm7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6UycC/dJMcagemhCG/UIuTcvt6YTkHXF9IU7wm7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6UycC/dJMcagemhCG/UIuTcvt6YTkHXF9IU7wm7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6UycC%2FdJMcagemhCG%2FUIuTcvt6YTkHXF9IU7wm7k%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;206&quot; height=&quot;70&quot; data-origin-width=&quot;312&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot; data-path-to-node=&quot;4&quot;&gt;&lt;b data-path-to-node=&quot;4&quot; data-index-in-node=&quot;0&quot;&gt;[확인문제 1]&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot; data-path-to-node=&quot;4&quot;&gt;&lt;i&gt; [ 22년 1회차 기출 ]&lt;/i&gt;&lt;/p&gt;
&lt;blockquote style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot; data-ke-style=&quot;style3&quot; data-path-to-node=&quot;5&quot;&gt;
&lt;p style=&quot;color: #666666;&quot; data-ke-size=&quot;size18&quot; data-path-to-node=&quot;5,0&quot;&gt;UML 다이어그램 중 순차 다이어그램에 대한 설명으로 틀린 것은?&lt;br /&gt;&lt;br /&gt;1.객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것이다.&lt;br /&gt;2.주로 시스템의 정적 측면을 모델링하기 위해 사용한다.&lt;br /&gt;3.일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다.&lt;br /&gt;4.회귀 메시지(Self-Message), 제어블록(Statement block) 등으로 구성된다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;6&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;10&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;✅ 정답 및 해설 검토&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot; data-text-less=&quot;닫기&quot; data-text-more=&quot;더보기&quot; data-ke-type=&quot;moreLess&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;정답:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;2번&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot; data-text-less=&quot;닫기&quot; data-text-more=&quot;더보기&quot; data-ke-type=&quot;moreLess&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;&lt;b data-path-to-node=&quot;11,1,0&quot; data-index-in-node=&quot;0&quot;&gt;해설 검토 &amp;amp; 추가 해설:&lt;/b&gt;&lt;span style=&quot;caret-color: auto; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;caret-color: auto; letter-spacing: 0px;&quot;&gt;순차 다이어그램은 '동적' 측면을 모델링하므로 2번 보기가 명백한 오답입니다. 정적 측면을 모델링하는 대표적인 다이어그램은 클래스 다이어그램(Class Diagram)이라는 점을 함께 기억해 두면 좋습니다.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[연습문제]&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;363&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NqsVc/dJMcahYCh6m/YHc07QDT3i09tIBkCfFETK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NqsVc/dJMcahYCh6m/YHc07QDT3i09tIBkCfFETK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NqsVc/dJMcahYCh6m/YHc07QDT3i09tIBkCfFETK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqsVc%2FdJMcahYCh6m%2FYHc07QDT3i09tIBkCfFETK%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;610&quot; height=&quot;363&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxZ4iP/dJMcagemgMf/rwKuJl9aT26QvrkwAt9Jw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxZ4iP/dJMcagemgMf/rwKuJl9aT26QvrkwAt9Jw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxZ4iP/dJMcagemgMf/rwKuJl9aT26QvrkwAt9Jw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxZ4iP%2FdJMcagemgMf%2FrwKuJl9aT26QvrkwAt9Jw0%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;609&quot; height=&quot;348&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S3s2X/dJMb997mk2q/0jRBDU1KbMPDH2K2dSfKl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S3s2X/dJMb997mk2q/0jRBDU1KbMPDH2K2dSfKl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S3s2X/dJMb997mk2q/0jRBDU1KbMPDH2K2dSfKl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS3s2X%2FdJMb997mk2q%2F0jRBDU1KbMPDH2K2dSfKl0%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;598&quot; height=&quot;334&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY36Xq/dJMcahqN3vg/r0X9K1ymKbRhV0S1gPmNA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY36Xq/dJMcahqN3vg/r0X9K1ymKbRhV0S1gPmNA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY36Xq/dJMcahqN3vg/r0X9K1ymKbRhV0S1gPmNA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY36Xq%2FdJMcahqN3vg%2Fr0X9K1ymKbRhV0S1gPmNA0%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;597&quot; height=&quot;329&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beXxGf/dJMcaakTcfF/HtZsaKsKK6TnuqUYlPys2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beXxGf/dJMcaakTcfF/HtZsaKsKK6TnuqUYlPys2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beXxGf/dJMcaakTcfF/HtZsaKsKK6TnuqUYlPys2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeXxGf%2FdJMcaakTcfF%2FHtZsaKsKK6TnuqUYlPys2K%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;600&quot; height=&quot;320&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QtXLF/dJMcagMcW3x/FMKZZfvRpzp0YnVHeck1nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QtXLF/dJMcagMcW3x/FMKZZfvRpzp0YnVHeck1nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QtXLF/dJMcagMcW3x/FMKZZfvRpzp0YnVHeck1nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQtXLF%2FdJMcagMcW3x%2FFMKZZfvRpzp0YnVHeck1nk%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;606&quot; height=&quot;325&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;325&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wdH7f/dJMcafNjlJT/0n33Xnep8D09iI3ehWEoYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wdH7f/dJMcafNjlJT/0n33Xnep8D09iI3ehWEoYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wdH7f/dJMcafNjlJT/0n33Xnep8D09iI3ehWEoYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwdH7f%2FdJMcafNjlJT%2F0n33Xnep8D09iI3ehWEoYK%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;595&quot; height=&quot;340&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VbI7y/dJMcaf7yn8R/49dsak29cD8vrSgwrhs2b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VbI7y/dJMcaf7yn8R/49dsak29cD8vrSgwrhs2b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VbI7y/dJMcaf7yn8R/49dsak29cD8vrSgwrhs2b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVbI7y%2FdJMcaf7yn8R%2F49dsak29cD8vrSgwrhs2b0%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;606&quot; height=&quot;329&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3 : D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4 : D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5 : A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6: B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7 : D&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8 : B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9 : A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10 : C&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>자격증/정보처리기사</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/107</guid>
      <comments>https://hyekkong.tistory.com/107#entry107comment</comments>
      <pubDate>Wed, 6 May 2026 16:50:20 +0900</pubDate>
    </item>
    <item>
      <title>[ 파이썬 기초 ] #4 while 반복문, 리스트 내포 및 사용자 정의 함수 (44일차 기록)</title>
      <link>https://hyekkong.tistory.com/106</link>
      <description>&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4&quot;&gt;1. 오늘 한 것&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;① while 반복문의 3가지 활용 패턴 및 range()&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;상태 기반:&lt;/b&gt; 리스트에 특정 값이 있는 '동안' remove()를 반복해 일괄 삭제.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;시간 기반:&lt;/b&gt; time.time() + 5를 활용해 정확히 5초 동안만 루프를 돌리는 로직.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;무한 루프 제어:&lt;/b&gt; while True:로 반복하다 특정 입력(y) 시 break로 탈출.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0&quot;&gt;range():&lt;/b&gt; range(5), range(5, 10), range(0, 10, 3) 등 매개변수 생략 시 자동으로 채워지는 Default 파라미터 동작 실습.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7&quot;&gt;② 파이썬의 꽃, 리스트 내포(List Comprehension)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;for문과 if문을 리스트 [] 안에 한 줄로 압축하여 새로운 배열을 만들어내는 고급 문법 실습.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776825631570&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1. 0~18까지 짝수만 제곱한 리스트
array = [i*i for i in range(0, 20, 2)]

# 2. &quot;초콜릿&quot;을 제외한 과일 리스트 필터링
array2 = [&quot;사과&quot;, &quot;자두&quot;, &quot;초콜릿&quot;, &quot;바나나&quot;]
output = [fruit for fruit in array2 if fruit != &quot;초콜릿&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;10&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;h4 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;③ 복합 자료형(딕셔너리+리스트)의 계층적 탐색&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;딕셔너리(Dictionary) 안에 리스트가 있거나, 또 다른 딕셔너리가 중첩되어 있을 때 type() 함수를 활용해 분기 처리하는 방법 실습.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776825693697&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_확인문제_4번.py 실습 발췌
for key in character:
    if type(character[key]) is list:   # Value가 리스트면 한번 더 for문
        for list_item in character[key]:
            print(&quot;{} : {}&quot;.format(key, list_item))
    elif type(character[key]) is dict: # Value가 딕셔너리면 안으로 파고들기
        for dict_item in character[key]:
            print(&quot;{} : {}&quot;.format(dict_item, character[key][dict_item]))&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12&quot;&gt;④ 사용자 정의 함수 선언 (def) 및 반환값 (return)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;def 키워드를 사용하여 중복되는 코드를 하나의 블록으로 묶는 함수 기초 실습.&lt;/li&gt;
&lt;li&gt;매개변수를 받아 내부 연산을 거친 후, return을 통해 결과값을 외부로 반환하는 로직 구현.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776825647434&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 05_1_방정식만들기2.py 발췌
def mul(*values):
    result = 1
    for value in values:
        result *= value
    return result

print(mul(5, 7, 9, 10)) # 결과: 3150&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15&quot;&gt;⑤ 가변 매개변수(*values)와 키워드 매개변수 활용&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;가변 매개변수(*):&lt;/b&gt; 매개변수의 개수가 정해지지 않았을 때, 여러 개의 값을 튜플(Tuple) 형태로 한 번에 쓸어 담아 받는 문법.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;키워드 매개변수:&lt;/b&gt; 함수 호출 시 매개변수 이름을 직접 명시(n=3)하여 기본값이 있는 파라미터를 건너뛰거나 특정 매개변수에만 값을 전달하는 방법.&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 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17&quot;&gt;2. 문제 / 헷갈린 점&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18&quot;&gt;① 복잡한 로직을 리스트 내포로 한 줄에 쓰기 (헷갈림주의..)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;19&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,0,0&quot;&gt;상황:&lt;/b&gt; 1~100 사이 숫자 중 2진수로 변환했을 때 0이 1개만 포함된 숫자를 구하는 로직을 한 줄로 짜려니 머리가 꼬임. [i for i in range(1, 101) if &quot;{:b}&quot;.format(i).count(&quot;0&quot;)==1]&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0&quot;&gt;해결:&lt;/b&gt; 리스트 내포는 편리하지만 로직이 복잡해지면 가독성이 떨어짐. 한 번에 줄이려 하지 말고 일반 for문으로 먼저 풀어쓴 뒤 압축하는 연습이 필요함을 느낌.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20&quot;&gt;② 중첩 딕셔너리에서 Key와 Value의 위치 혼동&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,0&quot;&gt;상황:&lt;/b&gt; 계층형 딕셔너리 탐색 중 character[key][dict_item] 처럼 괄호가 연달아 나오자 현재 변수가 가리키는 것이 Key인지 Value인지 헷갈림.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,0&quot;&gt;해결:&lt;/b&gt; 주석으로 변수의 현재 상태를 일일이 매핑함. 구조가 복잡할 때는 디버깅 주석이 생명줄임을 체감함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;③ 가변 매개변수 뒤에 일반 매개변수가 올 때의 에러&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;상황:&lt;/b&gt; def print_n_times(*values, n=2): 처럼 가변 매개변수 뒤에 기본 매개변수를 배치했을 때, 값을 어떻게 넘겨야 할지 혼동됨.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;해결:&lt;/b&gt; *values가 들어오는 값을 모두 빨아들이기 때문에, 그 뒤에 있는 매개변수에 값을 넣으려면 호출할 때 반드시 &lt;b data-index-in-node=&quot;67&quot; data-path-to-node=&quot;23,1,0&quot;&gt;키워드 매개변수 방식(n=3)으로 명시&lt;/b&gt;해주어야 파이썬 엔진이 구분할 수 있다는 문법적 규칙을 이해함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24&quot;&gt;3. 오늘 배운 핵심&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;25&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,0,0&quot;&gt;while은 조건, for는 반복 횟수다:&lt;/b&gt; 횟수가 명확하지 않은 상태 제어(특정 값 삭제, 시간제어)에는 while이 유리하다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,1,0&quot;&gt;리스트 내포는 파이썬의 무기다:&lt;/b&gt; 타 언어의 4~5줄짜리 배열 가공 코드를 한 줄로 끝낼 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;25,2,0&quot;&gt;함수 매개변수의 유연성:&lt;/b&gt; *values를 사용해 인자 갯수의 제한을 없애고, 키워드=값 형태로 호출하여 함수 사용의 직관성을 극대화할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;26&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26&quot;&gt;4. 다음 목표&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;27&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변경할 수 없는 자료형인 '튜플(Tuple)'의 특성 학습하기.&lt;/li&gt;
&lt;li&gt;함수를 매개변수로 전달하는 콜백(Callback)의 개념과 일회용 함수인 '람다(Lambda)' 문법 익히기.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>포트폴리오/[IoT 기반 피지컬 AI 교육일지]</category>
      <category>Def</category>
      <category>listcomprehension</category>
      <category>Python</category>
      <category>while문</category>
      <category>가변매개변수</category>
      <category>리스트내포</category>
      <category>사용자정의함수</category>
      <category>키워드매개변수</category>
      <category>파이썬</category>
      <category>학습기록</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/106</guid>
      <comments>https://hyekkong.tistory.com/106#entry106comment</comments>
      <pubDate>Wed, 22 Apr 2026 11:44:05 +0900</pubDate>
    </item>
    <item>
      <title>[ 파이썬 기초 ] #3 리스트, 반복문(for), 딕셔너리 활용 (43일차 기록)</title>
      <link>https://hyekkong.tistory.com/105</link>
      <description>&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;3&quot;&gt;1. 오늘 한 것&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4&quot;&gt;① 파이썬 리스트(List) 구조 및 인덱싱/슬라이싱&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파이썬의 리스트는 숫자, 문자열, 불리언 등 다양한 자료형을 한 번에 담을 수 있는 강력한 배열 구조를 가짐.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;접근 연산자 이중 사용:&lt;/b&gt; 리스트 안의 문자열이나, 리스트 안의 리스트(2차원 배열)에 접근할 때 인덱스를 연달아 사용하는 문법 실습.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776824899846&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_1_list_ex1.py 실습 발췌
array:list = [273, 32, 103, &quot;문자열&quot;, True, False]

print(array[1:3])    # 슬라이스 연산자 (결과: [32, 103])
print(array[3][0])   # &quot;문자열&quot; 요소 안에서 다시 0번째 인덱스 접근 (결과: 문)

# 2차원 리스트 이중 접근
array2:list =  [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
print(array2[1][1])  # 1번 인덱스 리스트의 1번 요소 (결과: 5)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7&quot;&gt;② 리스트 요소 추가 (append vs insert)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;append(요소): 리스트의 맨 마지막(우측 끝)에 새로운 요소를 추가.&lt;/li&gt;
&lt;li&gt;insert(위치, 요소): 리스트의 특정 인덱스를 지정하여 요소 추가 (기존 요소들은 뒤로 밀려남).&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776824913733&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_1_list_ex3.py 실습 발췌
list_a = [1, 2, 3]
list_a.append(4)     # 뒤에 추가 -&amp;gt; [1, 2, 3, 4]
list_a.insert(2, 10) # 2번 인덱스에 추가 -&amp;gt; [1, 2, 10, 3, 4]&lt;/code&gt;&lt;/pre&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 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;③ for 반복문 활용 (다중 리스트 및 인덱스 제어)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;in 연산자와 조합하여 리스트의 요소를 하나씩 빼오는 기본 구조부터, range(len())을 활용해 여러 리스트의 인덱스를 동시에 추적하는 로직을 구현함.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776824927685&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_2_for_스펠링퀴즈.py (range와 인덱스를 활용한 동시 접근)
questions = ['tr_in', 'b_s', '_axi', 'air_lane']
answers = ['a', 'u', 't', 'p']

for i in range(len(questions)):  # 0부터 3까지 반복
    q = '%s 에서 밑줄(_) 안에 들어갈 알파벳은?' % questions[i]
    ans = input(q)

    if ans == answers[i]:  # 동일한 인덱스 i로 정답 리스트 비교
        print('정답입니다!')
    else:
        print('틀렸습니다!')&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1776824934981&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_2_for_확인문제.py (중첩 for문을 활용한 2차원 배열 완전 탐색)
list_of_list = [ [1, 2, 3], [4, 5, 6, 7], [8, 9] ]
for i in list_of_list:
    for j in i:
        print(j)  # 1부터 9까지 순차적으로 1열 출력&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;14&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;h4 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14&quot;&gt;④ 딕셔너리(Dictionary) 구조 및 빈도수 집계 알고리즘&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;키(Key)와 값(Value)의 쌍으로 이루어진 딕셔너리를 활용해 객체의 속성을 표현하거나, 리스트 내의 데이터 등장 횟수를 카운팅하는 히스토그램 로직을 직접 구현함.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776824946501&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 04_확인문제_3번.py (숫자 등장 빈도수 집계 로직)
numbers = [1,2,6,8,4,3,2,1,9,5,4,9,7,2,1,3,5,4,8,9,7,2,3]
counter = {}

for number in numbers:
    if number in counter:      # 딕셔너리에 이미 해당 숫자가 키로 등록되어 있다면
        counter[number] += 1   # 빈도수 1 증가
    else:                      # 처음 보는 숫자라면
        counter[number] = 1    # 새로운 키로 추가하고 값을 1로 초기화

print(counter) # {1: 3, 2: 4, 6: 1, 8: 3, 4: 4, ...} 형태로 출력됨&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17&quot;&gt;2. 문제 / 헷갈린 점&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;18&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18&quot;&gt;① 딕셔너리에서 존재하지 않는 키(Key) 접근 에러 (KeyError)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;19&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,0,0&quot;&gt;상황:&lt;/b&gt; 빈도수 집계 실습에서 무작정 counter[number] += 1을 실행하려 했을 때 에러가 발생함.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,1,0&quot;&gt;해결:&lt;/b&gt; 딕셔너리는 처음부터 모든 키가 존재하는 것이 아니므로, 값을 증가시키기 전에 해당 키가 내부에 존재하는지 if number in counter:로 먼저 묻고, 없다면 1로 &lt;b data-index-in-node=&quot;100&quot; data-path-to-node=&quot;19,1,0&quot;&gt;초기화하는 분기 처리&lt;/b&gt;가 반드시 필요함을 구조적으로 체득함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20&quot;&gt;② range() 함수의 쓰임새 판단&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,0&quot;&gt;상황:&lt;/b&gt; 언제 for i in array:를 쓰고, 언제 for i in range(len(array)):를 써야 할지 혼동됨.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,0&quot;&gt;해결:&lt;/b&gt; 단순히 리스트 안의 값만 꺼내 쓸 때는 전자(요소 직접 접근)가 파이썬답고 깔끔하다. 그러나 '스펠링 퀴즈' 예제처럼 문제 리스트와 정답 리스트, 즉 &lt;b data-index-in-node=&quot;88&quot; data-path-to-node=&quot;21,1,0&quot;&gt;두 개 이상의 배열을 같은 번호표(인덱스)로 묶어서 연동해야 할 때&lt;/b&gt;는 후자(인덱스 기반 접근)를 써야 한다는 원칙을 정립함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;3. 오늘 배운 핵심&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;슬라이싱([:]) 내부에는 반복문이 숨어있다:&lt;/b&gt; 리스트를 자르는 슬라이스 연산자는 단순히 자르는 행위가 아니라, 내부적으로 인덱스를 순회하며 새 리스트를 만들어내는 강력한 기능이다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;이중 접근 연산([][])의 유연성:&lt;/b&gt; 리스트 안의 리스트, 심지어 리스트 안의 문자열조차도 배열[인덱스][인덱스] 형태로 파고들어 원소 단위까지 추출할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,2,0&quot;&gt;딕셔너리는 데이터 분류/통계의 핵심이다:&lt;/b&gt; 순서가 중요한 데이터는 '리스트'에, 이름(Key)표가 필요하거나 빈도수를 세어야 하는 통계성 데이터는 '딕셔너리'에 담는 것이 파이썬 데이터 처리의 기본 공식이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;24&quot;&gt;4. 다음 목표&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;25&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 기능을 재사용할 수 있도록 묶어두는 사용자 정의 함수(def)의 선언과 매개변수/반환값(return) 다루기.&lt;/li&gt;
&lt;li&gt;리스트/딕셔너리 내포(Comprehension) 등 코드를 한 줄로 줄이는 파이썬 고급 문법 도전&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>포트폴리오/[IoT 기반 피지컬 AI 교육일지]</category>
      <category>append</category>
      <category>for문</category>
      <category>INSERT</category>
      <category>List</category>
      <category>Python</category>
      <category>리스트</category>
      <category>반복문</category>
      <category>슬라이싱</category>
      <category>인덱싱</category>
      <category>파이썬</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/105</guid>
      <comments>https://hyekkong.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 22 Apr 2026 11:30:52 +0900</pubDate>
    </item>
    <item>
      <title>[ 파이썬 기초 ] #2 자료형 변환, 문자열 포매팅 및 제어문 (42일차 기록)</title>
      <link>https://hyekkong.tistory.com/104</link>
      <description>&lt;h3 data-path-to-node=&quot;1&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;1&quot;&gt;1. 오늘 한 것&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;2&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;2&quot;&gt;① 객체지향 프로그래밍(OOP) 개념 복습&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BGYTw/dJMcac3SWhq/XngyOyJ4e1U2zQPMvEEUJ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BGYTw/dJMcac3SWhq/XngyOyJ4e1U2zQPMvEEUJ0/img.jpg&quot; data-alt=&quot;Object oriented programming or OOP paradigm explanation outline diagram&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BGYTw/dJMcac3SWhq/XngyOyJ4e1U2zQPMvEEUJ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGYTw%2FdJMcac3SWhq%2FXngyOyJ4e1U2zQPMvEEUJ0%2Fimg.jpg&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;326&quot; height=&quot;326&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Object oriented programming or OOP paradigm explanation outline diagram&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;4&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,0,0&quot;&gt;클래스(Class) vs 객체(Object):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;4,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스: 객체를 만드는 도구(설계도).&lt;/li&gt;
&lt;li&gt;객체: 상태와 기능을 가진 실체.&lt;/li&gt;
&lt;li&gt;예: int speed = 100;은 단순한 변수지만, Button loginBtn = new Button();은 화면상의 위치/색상(상태)과 setOnClickListener()(기능)를 갖춘 객체다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0&quot;&gt;언어별 특징:&lt;/b&gt; Java, C#은 클래스 기반의 다소 무거운 구조를 가지지만, 파이썬은 클래스 없이도 절차지향적 코딩이 가능한 유연함을 가짐.&lt;/li&gt;
&lt;li&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0&quot;&gt;깨알 상식:&lt;/i&gt; 번역기 언어의 시초는 1964년 존 케메니와 토마스 커츠가 초보자 교육용으로 개발한 'BASIC'이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;② 자료형 변환 (Type Casting) 및 input() 처리&lt;/b&gt;&lt;/h4&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size18&quot;&gt;: 파이썬의 input()은 입력값을 무조건 '문자열(String)'로 취급하므로, 숫자 연산을 위해서는 int(), float() 함수를 이용한 명시적 형변환이 필수적임. 반대로 숫자를 문자로 바꿀 때는 str()을 사용.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1776821959091&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 02_03_형변환.py 실습
input1 = float(input(&quot;첫번째 값: &quot;))
input2 = float(input(&quot;두번째 값: &quot;))

print(&quot;덧셈결과: &quot;, input1 + input2)
print(&quot;뺄셈결과: &quot;, input1 - input2)

a = input('첫 번째 정수를 입력하세요: ')
b = input('두 번째 정수를 입력하세요: ')
c = a + b
print(&quot;문자열형태: &quot; + c)         # 예: &quot;10&quot; + &quot;20&quot; = &quot;1020&quot;
d = int(a) + int(b)
print(&quot;숫자형변환: &quot;, d)          # 예: 10 + 20 = 30&lt;/code&gt;&lt;/pre&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 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7&quot;&gt;③ 문자열 내장 함수 (format, isOO, split)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;format():&lt;/b&gt; 변수를 문자열 템플릿에 안전하게 매핑. 자릿수 맞춤 및 0 채우기 기능 확인.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;isOO():&lt;/b&gt; 문자열의 구성 상태 파악 (예: isalnum(), isalpha()).&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0&quot;&gt;split():&lt;/b&gt; 특정 구분자로 문자열 자르기. (추후 아두이노 DHT 센서 등 IoT 장비에서 넘어오는 CSV 텍스트 데이터를 파싱할 때 핵심적으로 쓰일 예정)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776821979946&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 02_4_format_특정칸에 출력.py 실습
# 특정 칸에 출력하기 및 빈칸 0으로 채우기
output_c = &quot;{:10d}&quot;.format(52)  # 10칸 확보 후 우측 정렬
output_d = &quot;{:05d}&quot;.format(52)  # 5칸 확보 후 남은 공간 0으로 채움 (결과: 00052)
output_e = &quot;{:05d}&quot;.format(-52) # 음수 기호도 1칸 차지 (결과: -0052)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;④ 조건문(if) 및 논리 연산자 활용&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;and (모두 참일 때 True), or (하나라도 참이면 True), not 연산자를 활용한 다중 조건 제어.&lt;/li&gt;
&lt;li&gt;datetime 모듈과 in 연산자를 결합하여 간단한 챗봇 로직 구현.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776822012450&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 03_조건문 도전문제 1번.py 실습
import datetime
now = datetime.datetime.now()

string = input(&quot;입력 : &quot;)

if string in '안녕하세요':
    print(&quot;안녕하세요&quot;)
elif string == ('지금 몇 시야?' or '지금 몇 시에요?'):
    print(&quot;지금은 {}시입니다.&quot;.format(now.hour))
else:
    print(string)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13&quot;&gt;2. 문제 / 헷갈린 점&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;14&quot;&gt;① ValueError 예외 발생&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;상황:&lt;/b&gt; float(input())을 받을 때 사용자가 실수로 &quot;A&quot; 같은 알파벳을 입력했을 때 에러 발생 후 프로그램이 강제 종료됨.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;해결:&lt;/b&gt; 숫자가 아닌 문자열을 강제로 수치형(int, float)으로 변환하려 할 때 발생하는 치명적인 예외임을 확인. 실무에서는 형변환 전에 해당 문자열이 숫자로만 이루어져 있는지 isnumeric() 등의 함수로 검증하는 예외 처리 로직이 선행되어야 함을 깨달음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16&quot;&gt;② 알고리즘의 발상 전환 (홀짝 판별 로직)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;상황:&lt;/b&gt; 홀짝을 판별할 때 무조건 나머지 연산자(% 2 == 0)를 사용하는 것만이 정답이라고 생각했음.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;해결:&lt;/b&gt; 파이썬의 강력한 in 연산자와 문자열 인덱싱을 활용하면, 숫자로 변환하는 과정 없이 문자열의 마지막 글자만 확인하여 홀짝을 판별할 수 있음을 배움.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1776822054042&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 03_홀짝예제.py (파이썬 특유의 발상이 돋보인 코드)
number1 = input(&quot;숫자를 입력해주세요: &quot;)
last_number = number1[-1]  # 문자열의 맨 마지막 글자 추출

# 계산(%) 필요 없이 문자열 비교만으로 홀짝 구별
if last_number in &quot;02468&quot;:
    print(&quot;짝수입니다.&quot;)
if last_number in &quot;13579&quot;:
    print(&quot;홀수입니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19&quot;&gt;3. 오늘 배운 핵심&lt;/b&gt;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,0,0&quot;&gt;① 입력 데이터의 본질은 문자열이다&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,0,0&quot;&gt;&amp;nbsp;-&lt;/b&gt; input()으로 들어오는 데이터는 100을 입력해도 &quot;100&quot;이다. 연산을 위한 int(), float() 캐스팅을 잊지 말아야 한다.&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,1,0&quot;&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,1,0&quot;&gt;&lt;br /&gt;② 문자열 가공 함수가 데이터 전처리의 핵심이다&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- format()으로 출력 형식을 다듬고, split()으로 날것의 센서 데이터를 배열로 쪼개는 기술이 향후 데이터 파이프라인 구축의 기초가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;20,2,0&quot;&gt;③ 파이썬스러운(Pythonic) 코딩&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- C나 Java 스타일의 산술 연산(% 2)에 갇히지 않고, 문자열 인덱싱([-1])과 in 연산자를 활용하는 유연한 사고방식이 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21&quot;&gt;4. 다음 목표&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 개의 데이터를 한 공간에 담아 관리할 수 있는 파이썬 자료형인 리스트(List)와 딕셔너리(Dictionary) 구조 학습하기.&lt;/li&gt;
&lt;li&gt;배열 데이터와 궁합이 좋은 반복문(for, while)을 활용하여 다량의 데이터를 일괄 처리하는 로직 실습.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>포트폴리오/[IoT 기반 피지컬 AI 교육일지]</category>
      <author>개발자혜콩</author>
      <guid isPermaLink="true">https://hyekkong.tistory.com/104</guid>
      <comments>https://hyekkong.tistory.com/104#entry104comment</comments>
      <pubDate>Wed, 22 Apr 2026 10:44:45 +0900</pubDate>
    </item>
  </channel>
</rss>