<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>무지는 알기 위한 행동의 이유</title>
    <link>https://beetr.tistory.com/</link>
    <description>모르는 사람 가르친다고 생각하고, 왜?와 비유로 글 쓰면서 나도 배우기</description>
    <language>ko</language>
    <pubDate>Mon, 27 Jul 2026 04:00:37 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>비뀨_</managingEditor>
    <item>
      <title>Java 17에서 LocalDateTime 이슈</title>
      <link>https://beetr.tistory.com/113</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Java : 17&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring boot : 3.3.2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring Data MongoDB : 4.3.2&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;Unable to make private java.time.LocalDateTime(java.time.LocalDate,java.time.LocalTime) accessible: module java.base does not &quot;opens java.time&quot; to unnamed module @3ec89225 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:189) at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:182) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:201) at&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/p&gt;
&lt;pre id=&quot;code_1735196191201&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Unable to make private 
java.time.LocalDateTime(java.time.LocalDate,java.time.LocalTime) accessible: 
module java.base does not &quot;opens java.time&quot; to unnamed module&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;이 부분은 LocalDateTime의 생성자에 대한 접근 제어 문제 때문에 일어난 문제다.&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;java.time.LocalDateTime 클래스는 Java 17부터 기본적으로 &lt;b&gt;모듈화&lt;/b&gt;가 적용되어 있고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java.base 모듈이 다른 모듈에 대해 java.time 패키지를 사용하지 열지 않기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot;&gt;checkCanSetAccessible메서드를 이용하여 접근 가능 여부를 체크하지만&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리플렉션을 사용하여 해당 생성자에 접근할 수 없기 때문에 발생하는 오류이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결방법은 간단한데&amp;nbsp;&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;build.gradle 파일에&lt;/p&gt;
&lt;pre id=&quot;code_1735198356354&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tasks.named('bootRun') {
    jvmArgs = ['--add-opens', 'java.base/java.time=ALL-UNNAMED']
}&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;해당 부분을 추가하면 java.time 패키지를 열어줄 수 있다.&lt;/p&gt;</description>
      <category>Spring/error</category>
      <category>java17</category>
      <category>LocalDateTime</category>
      <category>unable to make private java</category>
      <category>에러</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/113</guid>
      <comments>https://beetr.tistory.com/113#entry113comment</comments>
      <pubDate>Thu, 26 Dec 2024 17:45:44 +0900</pubDate>
    </item>
    <item>
      <title>NodeJS 개념 &amp;amp; 설치 방법, REPL</title>
      <link>https://beetr.tistory.com/112</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;Node.JS란?&amp;nbsp;&lt;/span&gt;&lt;/h3&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;크롬 V8 Javascript 엔진으로 빌드 된 자바스크립트 런타임.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존의 JavaScript는 브라우저에서 사용되었지만 NodeJs는 서버 사이드를 구현하기 위해 사용하기 때문에, 브라우저 외에어디서나 사용 가능하다.&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;V8 엔진은 Google에서 만들었으며, JavaScript 코드를 Machine Code로 해석해주는 역할을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ TMI로 V8은 C++로 만들어졌다고 한다.&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 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;설치 방법&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 최신의 Node.js의 버전은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식 홈페이지에 접속하면 맨 처음 화면에 다음과 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://nodejs.org/en&quot;&gt;https://nodejs.org/en&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1703864152503&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Node.js&quot; data-og-description=&quot;Node.js&amp;reg; is a JavaScript runtime built on Chrome's V8 JavaScript engine.&quot; data-og-host=&quot;nodejs.org&quot; data-og-source-url=&quot;https://nodejs.org/en&quot; data-og-url=&quot;https://nodejs.org/en&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bXL8sx/hyUTEOOKBV/4Wg7KgmZfRoUMFKz6SLiuK/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256,https://scrap.kakaocdn.net/dn/dEBMhu/hyUXKmjDYt/1k3Ap46bXFJYVrz7e9wg6k/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256&quot;&gt;&lt;a href=&quot;https://nodejs.org/en&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nodejs.org/en&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bXL8sx/hyUTEOOKBV/4Wg7KgmZfRoUMFKz6SLiuK/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256,https://scrap.kakaocdn.net/dn/dEBMhu/hyUXKmjDYt/1k3Ap46bXFJYVrz7e9wg6k/img.png?width=224&amp;amp;height=256&amp;amp;face=0_0_224_256');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Node.js&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Node.js&amp;reg; is a JavaScript runtime built on Chrome's V8 JavaScript engine.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nodejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NF4NT/btsCMwaxIes/Fsue3AW5Qgmaw0FAQH7C90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NF4NT/btsCMwaxIes/Fsue3AW5Qgmaw0FAQH7C90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NF4NT/btsCMwaxIes/Fsue3AW5Qgmaw0FAQH7C90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNF4NT%2FbtsCMwaxIes%2FFsue3AW5Qgmaw0FAQH7C90%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;672&quot; height=&quot;248&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;248&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt; 이전 버전 다운로드 받기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드 페이지 하단으로 내려가면 Previous Releases 가 있는데 그걸 클릭하면 아래 이미지와 같이 버전을 선택할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0PL5/btsCMq9kh2n/yXi5bHY4e5X7ydlmwKg9AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0PL5/btsCMq9kh2n/yXi5bHY4e5X7ydlmwKg9AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0PL5/btsCMq9kh2n/yXi5bHY4e5X7ydlmwKg9AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0PL5%2FbtsCMq9kh2n%2FyXi5bHY4e5X7ydlmwKg9AK%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;483&quot; height=&quot;277&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;277&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byv3cp/btsCQ27pHTT/1psRCcpFxdEWjR1v7e03ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byv3cp/btsCQ27pHTT/1psRCcpFxdEWjR1v7e03ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byv3cp/btsCQ27pHTT/1psRCcpFxdEWjR1v7e03ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyv3cp%2FbtsCQ27pHTT%2F1psRCcpFxdEWjR1v7e03ik%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;697&quot; height=&quot;612&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; Release&lt;/b&gt;를 클릭하면 다음과 같은 페이지가 뜨는데 여기서 본인의 OS에 맞는 설치파일을 선택하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZZvmL/btsCUzi2z9D/MmqQmKLGHTTBPxv8XtDH91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZZvmL/btsCUzi2z9D/MmqQmKLGHTTBPxv8XtDH91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZZvmL/btsCUzi2z9D/MmqQmKLGHTTBPxv8XtDH91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZZvmL%2FbtsCUzi2z9D%2FMmqQmKLGHTTBPxv8XtDH91%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;626&quot; height=&quot;573&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;573&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;size18&quot;&gt;&lt;b&gt; 추가적으로 알아야 할 정보는 이전 버전을 설치하는데 참고할 것이다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P3633/btsCUzcg0DR/eP4KZxeveC7hRLeMV5tNMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P3633/btsCUzcg0DR/eP4KZxeveC7hRLeMV5tNMk/img.png&quot; data-alt=&quot;Node.Js 지원계획&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P3633/btsCUzcg0DR/eP4KZxeveC7hRLeMV5tNMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP3633%2FbtsCUzcg0DR%2FeP4KZxeveC7hRLeMV5tNMk%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;705&quot; height=&quot;410&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Node.Js 지원계획&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 이미지는 Node.js의 지원계획을 나타낸 그래프인데, 그냥 영어 그대로 지원하는 상태이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 Node.js 18은 현재 활성화 되었고, 25년 4월 중후반까지 지원된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유지 기간이 넘어가면 더 이상 지원하지 않기 때문에 버전을 잘 선택해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 다운로드 받고, 설치 창을 띄워 설치를 진행해주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치를 완료하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Window&lt;/b&gt;라면 &lt;b&gt;윈도우키 + r&lt;/b&gt; 또는 명령프롬프트(&lt;b&gt;cmd&lt;/b&gt;)를 실행하고, Mac이라면 터미널을 실행하자.&lt;/p&gt;
&lt;pre id=&quot;code_1703864379027&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;node --version 또는 node -v&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적으로 설치되었다면. 위의 명령어를 입력했을 때 아래와 같이 설치된 Node.js의 버전이 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ca4MP6/btsCSBBE5RR/cCPRokCgPKKAKLFDyASpc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ca4MP6/btsCSBBE5RR/cCPRokCgPKKAKLFDyASpc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ca4MP6/btsCSBBE5RR/cCPRokCgPKKAKLFDyASpc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca4MP6%2FbtsCSBBE5RR%2FcCPRokCgPKKAKLFDyASpc0%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;376&quot; height=&quot;81&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Node.JS가 설치가 완료되었다면 명령 프롬프트에서 &lt;b&gt;node&lt;/b&gt;라는 명령어를 실행하면 REPL을 실행할 수 있다.&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;&lt;span style=&quot;color: #0593d3;&quot;&gt;REPL 이란??&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;REPL은 JavaScript 표현식을 읽고, 평가하고, 출력하는 반복적인 루프이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉽게 말해 Javascript 문법을 실행할 수 있는 환경이다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;REPL 종료&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.exit을 입력하거나, Ctrl + C 또는 Ctrl + D를 두 번 누르면 된다.&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;간단하게 Node.JS 설치방법에 대해서 도움이 되었으면 좋겠습니다 :)&lt;/p&gt;</description>
      <category>NodeJS</category>
      <category>node</category>
      <category>nodejs</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/112</guid>
      <comments>https://beetr.tistory.com/112#entry112comment</comments>
      <pubDate>Sat, 30 Dec 2023 00:40:47 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - 프로그래밍 언어 이해(C언어)</title>
      <link>https://beetr.tistory.com/111</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍 언어 이해는 정보처리기사 실기 시험에 많이 나오기 때문에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;꼭&lt;/b&gt;&lt;/span&gt; 한 번은 읽어봐야 하는 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C 언어는 전처리 부분 + 본문으로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헤더는 xxx.h 파일로 되어있고, 헤더 안에는 프로그래밍에 필요한 함수들이 포함되어 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;전처리기 (Preprocessor)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C언어에서 #이 붙으면 전처리 지시문 (전처리기)라고 한다.&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;종류&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;#include : 헤더 파일을 포함할 때 사용하는 전처리기&lt;/li&gt;
&lt;li&gt;#define :
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매크로를 정의할 때 사용.&lt;/li&gt;
&lt;li&gt;상수값을 지정하기 위한 예약어.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;자료형&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 71px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.8914%; text-align: center; height: 20px;&quot;&gt;유형&lt;/td&gt;
&lt;td style=&quot;width: 50.7752%; text-align: center; height: 20px;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 20px;&quot;&gt;선언 형식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.8914%; text-align: center; height: 17px;&quot;&gt;문자&lt;br /&gt;(Character)&lt;/td&gt;
&lt;td style=&quot;width: 50.7752%; text-align: left; height: 17px;&quot;&gt;- 문자 하나를 저장하고자 할 때 사용&lt;br /&gt;- 메모리에 저장은 숫자로 저장&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 17px;&quot;&gt;char&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.8914%; text-align: center; height: 17px;&quot;&gt;정수&lt;br /&gt;(Integer)&lt;/td&gt;
&lt;td style=&quot;width: 50.7752%; text-align: left; height: 17px;&quot;&gt;- 정수 값을 저장할 때 사용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 17px;&quot;&gt;int&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.8914%; text-align: center; height: 17px;&quot;&gt;부동 소수점&lt;br /&gt;(Floating Point)&lt;/td&gt;
&lt;td style=&quot;width: 50.7752%; text-align: left; height: 17px;&quot;&gt;- 소수점을 포함하는 실수값을 저장하고자 할 때 사용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 17px;&quot;&gt;float, double&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;표기법&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;카멜 표기법 (Camel Case) : 첫 단어 시작만 소문자, 그 뒤의 단어는 대문자&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex : memberStatus, memberType, accountAmount 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파스칼 표기법(Pascal Case) : 여러 단어가 이어지면 각 단어의 첫글자는 대문자로
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex : MemberStatus, MemberType, AccountAmount 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;스네이크 표기법(Snake Case) : 여러 단어가 이어지면 단어 사이에 언더바 넣음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex : member_status, member_type, account_amount 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;헝가리안 표기법 (Hungarian Case) : 식별자 표기 시 두어에 자료형 붙이는 방법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;int : n , char c, 문자열 sz&lt;/li&gt;
&lt;li&gt;nScore, szName 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;표준 출력 함수 (printf)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지정된 포맷 스트링으로 데이터를 출력하는 함수&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이스케이프 문자를 이용한 출력&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\n : 커서를 다음 줄의 맨 앞으로 이동(개행문자)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;\t : 커서를 tab 간격만큼 이동&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;&lt;b&gt;포맷 스트링을 이용한 변수 출력&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자(Character) : %c - 문자 한 글자에 대한 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열(String) : %s - 문자열에 대한 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;정수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Unsigned Decimal : %u 부호 없는 10진수 정수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Decimal : %d 10진수 정수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Octal : %o 8진수 정수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hexa Decimal : %x, %X&amp;nbsp; 16진수 정수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;부동 소수점&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%e , %E Exponenet : 지수 표기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;%f : Floating Point 부동 소수점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;$lf : Long Floating Point 긴 부동 소수점 표기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포맷 스트링 변수 상세 출력&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;%[-][0][전체자리수][소수점자리수]문자열&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1689933433191&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;studio.h&amp;gt;
void main() {
	float a = 1.2345;
    
    printf(&quot;%.2f\n&quot;, a); // 1.23
    printf(&quot;%5.1f\n&quot;, a); //  1.2
    printf(&quot;%05.1f\n&quot;, a); //001.2
    printf(&quot;%-05.1f\n&quot;, a); //1.2  
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;.2f 는 소수점 둘째자리까지 표시하라는 것이다.&lt;/li&gt;
&lt;li&gt;5.1f는 전체 출력 문자가 5글자까지인데, 소수점 첫재짜리까지 나타내라는 것이다.&lt;/li&gt;
&lt;li&gt;05.1f는 위와 동일하지만, 앞의 공백을 0으로 채우라는 것이다.&lt;/li&gt;
&lt;li&gt;-05.1f는 왼쪽정렬로 하고 앞의 공백을 0으로 채우라는 것인데, - (왼쪽정렬) 로 앞의 공백이 없기 때문에 1.2가 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;배열&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1689934235367&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a[3] = {1,2};
int b[3]; // 쓰레기 값으로 초기화 됨&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이요소 갯수보다 적게 초기화를 하면 각 자료형의 기본 값으로&amp;nbsp;초기화 된다&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;int : 0&lt;/li&gt;
&lt;li&gt;실수 : 0.0&lt;/li&gt;
&lt;li&gt;문자형 : NULL&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2차원 배열&lt;/h4&gt;
&lt;pre id=&quot;code_1689934435715&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a[2][3] = {1, 2, 3, 4};
int b[2][3]; // 쓰레기 값으로 초기화 됨&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2차원 배열도 그냥 배열과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a의&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;a[0][0] = 1&lt;/li&gt;
&lt;li&gt;a[0][1] = 2&lt;/li&gt;
&lt;li&gt;a[0][2] = 3&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 채워지고, &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;a[1][0] 은 4가 들어간다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;배열은 이미 다 썼기 때문에 나머지 a[1][1], a[1][2]는 int의 기본 값인 0이 들어간다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;문자열&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열은 char형 배열로 표현된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 초기화할 때 마지막에 NULL이 삽입되어 초기화하는 글자 수보다 1 이상 큰 값으로 배열을 선언한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf의 %s로 문자열을 읽고 출력할 떄, 시작 주소부터 NULL직전까지의 값을 읽어서 출력함.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;구조체&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 자료형을 가지고 새롭게 정의할 수 있는 자료형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1689944011609&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;struct 구조체이름 {
  char gender;
  int height;
};

void main() {
	struct Student s = {'F', 160};
    s.gender = 'M';
    printf(&quot;%c&quot;, s.gender);
    printf(&quot;%d&quot;, s.height);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;함수&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;매개변수 전달 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전달인자(Argument) - 실제 매개변수라고 불림. 함수를&lt;span style=&quot;color: #333333;&quot;&gt; 호출하는 쪽&lt;/span&gt;에서 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;전달하는&lt;/b&gt; &lt;/span&gt;변수 값 또는 변수의 주소값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매개변수(Parameter) - 형식 매개변수, 함수를 &lt;span style=&quot;color: #333333;&quot;&gt;호출받는 쪽&lt;/span&gt;에서 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;전달받는&lt;/b&gt;&lt;/span&gt; 변수 값 또는 변수 주소의 값&lt;/p&gt;
&lt;pre id=&quot;code_1689944126951&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int sum (int x, int y){ // 매개변수 parameter
  return x + y;
};

void main() {
	int x = 5;
    int y = 3;
	int sumResult = sum(x, y); // 인자 argument
    printf(&quot;%d&quot;, sumResult);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매개변수 전달 방법 종류&lt;br /&gt;Call by Value - 값을 넘겨 새로운 공간에 할당해 사용하는 방식, 변화가 있어도 원래 넘긴 쪽에서 변화가 일어나지 않음.&lt;/li&gt;
&lt;li&gt;Call by Reference - 변수가 사용중인 주소값을 넘겨주는 방식, 변화가 생기면 넘긴 쪽에서 변화가 일어남.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;포인터&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포인터는 변수의 주솟값을 저장하는 공간이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;선언&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료형* 포인터_변수명 = &amp;amp;변수명;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1689945576577&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void main() {
	int x = 15;
    int* y = &amp;amp;x;

    printf(&quot;%d %d %d&quot;, x, *y, *(&amp;amp;x); // 10 10 10
}&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/111</guid>
      <comments>https://beetr.tistory.com/111#entry111comment</comments>
      <pubDate>Fri, 21 Jul 2023 22:22:22 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - 소프트웨어 개발 보안 구현 (SW 개발 보안 테스트 &amp;amp; 결함 관리)</title>
      <link>https://beetr.tistory.com/110</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SW 개발 보안 테스트 &amp;amp; 결함 관리 개념&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안 요구사항이 반영되어 있음을 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;보증&lt;/b&gt;&lt;/span&gt;하고, 취약점 개선해 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;안전한 소프트웨어를 개발&lt;/b&gt;&lt;/span&gt;하기 위한 활동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SW 개발 보안 테스트 &amp;amp; 결함 관리 유형&lt;/b&gt;&lt;/h2&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: 33.3333%;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;특징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;정적 분석&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;- SW를 실행하지 않고 보안 약점 분석&lt;br /&gt;- SW 개발 단계에서 주로 사용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;- 취약점 초기 발견 (수정비용 절감)&lt;br /&gt;- 컴포넌트 간 취약점 발견에 제한적&lt;br /&gt;- 설계, 구조 관점 취약점은 식별 불가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;동적 분석&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;- SW 실행환경에서 보안 약점 분석&lt;br /&gt;- SW 시험 단계에서 주로 사용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;- 소스 코드 필요 X&lt;br /&gt;- 정확도와 커버리지 향상&lt;br /&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;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/110</guid>
      <comments>https://beetr.tistory.com/110#entry110comment</comments>
      <pubDate>Thu, 20 Jul 2023 02:10:15 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - 소프트웨어 개발 보안 구현 (시스템 보안 구현)</title>
      <link>https://beetr.tistory.com/109</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;유닉스/리눅스 주요 로그 파일&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;일반적으로 로그가 저장되는 경로&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유닉스&amp;nbsp; :&amp;nbsp; /var/adm&lt;/li&gt;
&lt;li&gt;리눅스&amp;nbsp; :&amp;nbsp; /var/log&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템의&lt;b&gt; /etc/syslog.conf&lt;/b&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%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;로그 이름&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;내용 확인 명령어&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;wtmp / wtmpx&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 사용자 로그인 / 로그아웃 정보&lt;br /&gt;- 시스템 shutdown / reboot 정보&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;last&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;utmp / utmpx&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 현재 시스템에 로그인한 사용자 정보&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;who, w, users, finger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;btmp / btmpx&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 로그인 실패한 정보&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;lastb&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;lastlog&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 사용자 별 최근 로그인 시간 및 접근 소스 호스트에 대한 정보&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;lastlog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;sulog&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- su(switch user) 명령어 실행 성공 / 실패 결과&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;acct / pacct&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 사용자 별&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;lastcomm, acctcom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;xferlog&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- FTP 서비스 데이터 전송 로그&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;messages&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 부트 메시지 등 시스템의 가장 기본적인 시스템 로그 파일&lt;br /&gt;- 운영에 대한 전반적인 메시지&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.9612%;&quot;&gt;secure&lt;/td&gt;
&lt;td style=&quot;width: 51.7054%;&quot;&gt;- 보안과 관련된 주요 로그 기록&lt;br /&gt;- 사용자 인증과 관련된 로그&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;X&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;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;보안 솔루션&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;네트워크 보안 솔루션&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방화벽(Firewall) : 내/외부 트래픽을 모니터링 해 시스템 접근을 허용하거나 차단&lt;/li&gt;
&lt;li&gt;웹 방화벽(WAF - Web Application Firewall)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;웹 애플리케이션 보안&lt;/b&gt;&lt;/span&gt;에 특화된 보안 장비&lt;/li&gt;
&lt;li&gt;SQL Injection, XSS 같은 공격 탐지하고 차단하는 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;네트워크 접근 제어 (NAC : Network Access Control)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단말기가 내부 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;네트워크&lt;/b&gt; &lt;/span&gt;접속 시도할 때 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;제어하고 통제하는 기능&lt;/b&gt;&lt;/span&gt;을 제공하는 솔루션&lt;/li&gt;
&lt;li&gt;바이러스, 웜 등 보안 위협으로부터 네트워크 제어 및 통제 기능을 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;침입 탐지 시스템(IDS : Intrusion Detection System)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;네트워크에서 발생하는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;이벤트를 모니터링&lt;/b&gt;&lt;/span&gt;하고, 비인가 사용자에 의한 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;자원접근과 침입&lt;/b&gt;&lt;/span&gt;을 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;실시간으로 탐지&lt;/b&gt;&lt;/span&gt;하는 시스템&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;침입 방지 시스템(IPS : Intrusion Prevention System)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IDS와 다른점은 IDS는 실시간 탐지, IPS는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;실시간으로 차단&lt;/b&gt;&lt;/span&gt;하고, 유해 트래픽에 대한 조치를 능동적으로 실시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;무선 침입 방지 시스템(WIPS : Wireless Intrusion &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;Prevention&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;System)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;무선 단말기의 접속을 자동으로 탐지 &amp;amp; 차단&lt;br /&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;보안에 취약한 무선 공유기를 탐지&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;통합 보안 시스템 (UTM : Unified Threat Management)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333;&quot;&gt;방화벽, IDS, IPS, VPN, 안티 바이러스, 이메일 필터링 등 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;다양한 보안 장비의 기능을 하나의 장비로 통합 제공&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;가상사설망 (VPN : Vitual Private Network)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 전용망 사용하는 효과를 가지는 보안 솔루션&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;보안 정보 &amp;amp; 이벤트 관리 (&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;SIEM&amp;nbsp;&lt;/b&gt; &lt;/span&gt;: Security Information and Event Management)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다양한 보안 &amp;amp; 네트워크 장비로부터 보안 로그 &amp;amp; 이벤트 로그 수집 후 연관성 분석해 위협 상황 인지,&lt;/li&gt;
&lt;li&gt;테라 바이트(TB) 급의 데이터와 방화벽, 안티 바이러스 시스템, 서버, 네트워크 장비등에서&lt;br /&gt;수집한 데이터 등을 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;빅데이터 기반의 로그 분석&lt;/b&gt;&lt;/span&gt;을 통해 보안의 위협 징후를 빠르게 판단할 수 있도록 해주는 솔루션&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ESM(Enterprise Security Management : 기업 보안 관리)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 보안 시스템으로 부터 발생한 이벤트 및 로그를 통합해 관리 분석, 대응하는 전사적 통합 보안 관리 시스템&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/109</guid>
      <comments>https://beetr.tistory.com/109#entry109comment</comments>
      <pubDate>Wed, 19 Jul 2023 22:42:48 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - 소프트웨어 개발 보안 구현 (SW 개발 보안 구현)</title>
      <link>https://beetr.tistory.com/108</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;SW&amp;nbsp;개발&amp;nbsp;보안&amp;nbsp;구현&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;시큐어 코딩 가이드&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해킹 등의 공격을 유발할 가능성이 있는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;보안 취약점을 사전에 제거&lt;/b&gt;&lt;/span&gt;하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 공격으로부터 안전한 소프트웨어를 개발하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 139px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 20px;&quot;&gt;보안 약점&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: center; height: 20px;&quot;&gt;내용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center; height: 20px;&quot;&gt;대응 방안&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;입력데이터 검증 및 표현&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;입력 데이터에 대한 유효성 검증,&lt;br /&gt;실패 시 처리 설계 및 구현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;보안 기능&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의&lt;br /&gt;부적절한 구현&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;인증, 접근 통제, 권한 관리, 비밀번호 등 정책이 적절하게 반영되도록 설계 및 구현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;시간 및 상태&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;거의 동시에 수행 지원하는 병렬 시스템 or 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태 부적절한 관리&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;공유 자원의 접근 직렬화&lt;/b&gt;&lt;/span&gt;, 병렬 실행 가능 Framework 사용, 블록문 내에서만 재귀함수 호출&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;에러 처리&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보 포함&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;중요 데이터 반환하지 않도록 &lt;br /&gt;설계 및 구현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;코드 오류&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;개발자가 범할 수 있는 코딩 오류로 유발 됨&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;코딩 규칙 도출 후 검증 가능한 구성과 경고 순위 최상향 조정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;캡슐화&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 유출&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;클래스내 private 접근자 지정&lt;br /&gt;디버그 코드 제거&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 12.7519%; text-align: center; height: 17px;&quot;&gt;API 오용&lt;/td&gt;
&lt;td style=&quot;width: 53.9147%; text-align: left; height: 17px;&quot;&gt;의도된 사용에 반하는 방법으로 API 사용하거나, &lt;br /&gt;보안에 취약한 API 사용&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: left; height: 17px;&quot;&gt;개발 언어별 취약 API 확보 및&amp;nbsp;&lt;br /&gt;취약 API 검출 프로그램 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 입력데이터 검증 및 표현&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;취약점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;XSS ( Cross Site Scripting)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송되는 경우에&lt;br /&gt;사용자가 클릭해 열람해 부적절한 스크립트가 실행되는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 브라우저에서 실행되며 감염&lt;/li&gt;
&lt;li&gt;Reflected XSS : &lt;b&gt;공격용 악성 URL&lt;/b&gt;을 생성 후 &lt;b&gt;이메일로 사용자에게 전송&lt;/b&gt;하면 사용자가 URL 클릭시 스크립트가 피해자로 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;반사&lt;/b&gt;&lt;/span&gt;되어, &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;접속 사이트에 민감 정보를 공격자에게 전송&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;DOM XSS : &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;DOM 기반 XSS 취약점&lt;/b&gt;&lt;/span&gt;이 있는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;브라우저&lt;/b&gt;&lt;/span&gt;를 대상으로 조작된 URL을 이메일을 통해 발송, 피해자가 URL 클릭시 피해를 당함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;대책&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특수문자 등록을 방지하기 위해 특수문자 필터링&lt;/li&gt;
&lt;li&gt;HTML 태그 사용 금지(특히 &amp;lt; 사용시 &amp;amp;lt로 변환)&lt;/li&gt;
&lt;li&gt;자바스크립트로 시작하는 문자열은 모두 문자열 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;CSRF(사이트 간 요청 위조 : Cross Site Request Forgery)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;공격자는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;CSRF 스크립트&lt;/b&gt; &lt;/span&gt;포함된 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;게시물 등록&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;사용자가 해당 게시물을 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;열람&lt;/b&gt;&lt;/span&gt; 요청&lt;/li&gt;
&lt;li&gt;게시물 읽은 사용자의 권한으로 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;공격자가 원하는 요청&lt;/b&gt;&lt;/span&gt; 발생&lt;/li&gt;
&lt;li&gt;스크립트 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;결과 발생&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;대책&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력화면 폼을 작성시 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;POST&lt;/b&gt;&lt;/span&gt; 방식 사용&lt;/li&gt;
&lt;li&gt;입력 폼과 입력처리 프로그램에서 세션별 CSRF 토큰을 사용하여 점검&lt;/li&gt;
&lt;li&gt;중요기능의 경우 재인증을 통해 안전하게 실제 요청 여부를 확인하도록 구현&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;SQL 삽입(SQL Injection)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;응용 프로그램의 보안 취약점을 이용해 악의적인 SQL 구문을 삽입 + 실행시켜 DB의 정보를 탈취 or 조작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;대책&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;바인딩 매개변수 방식 적용해 사전에 변수 타입을 명시&lt;/li&gt;
&lt;li&gt;사용자로부터 입력되는 모든 값 체크해 필터링&lt;/li&gt;
&lt;li&gt;Servlet Filter 기능 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/108</guid>
      <comments>https://beetr.tistory.com/108#entry108comment</comments>
      <pubDate>Mon, 17 Jul 2023 23:17:20 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - 운영체제의 특징 (운영체제의 종류)</title>
      <link>https://beetr.tistory.com/107</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;운영체제 ( OS :&amp;nbsp; O&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;peration&lt;/span&gt;&lt;b&gt; S&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ystem&lt;/span&gt;&lt;b&gt; )의 개념&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어&lt;/li&gt;
&lt;li&gt;운영체제는 시스템 자원을 효과적으로 사용할 수 있도록 운영해 주어 편의성을 제공해 줌&lt;/li&gt;
&lt;li&gt;컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당&lt;/li&gt;
&lt;/ul&gt;
&lt;p 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;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;운영체제의 &lt;/b&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;특징&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;편리성 제공&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;한정된 자원을 효과적으로 사용할 수 있도록 관리 및 운영&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;인터페이스 기능&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;컴퓨터 시스템과 사용자를 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;스케줄링 담당&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;다중 사용자와 다중 응용 프로그램 환경에서 자원의 현재 상태를 파악,&lt;br /&gt;자원 분배를 위한 스케줄링 담당&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;자원 관리&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;CPU, 메모리 공간, 기억장치, 입출력 장치의 자원 관리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.6977%; text-align: center;&quot;&gt;제어기능&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; text-align: center;&quot;&gt;입출력 장치와 사용자 프로그램을 제어&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영 체제는 크게 쉘(Shell) + 커널(Kernel)의 구조이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;인터페이스(쉘 : Shell)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자가 입력시킨 명령어 라인을 읽어 시스템 기능을 실행시키는 명령어 해석기&lt;/li&gt;
&lt;li&gt;여러가지 내장 명령어 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;커널(Kernel)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;운영체제의 핵심이 되는 기능이 모여있는 프로그램&lt;/li&gt;
&lt;li&gt;부팅될 때 주기억장치에 적재되어 상주하며 실행.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;커널의 기능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;스케줄링 및 동기화 담당&lt;/li&gt;
&lt;li&gt;생성 &amp;amp; 제거 , 시작 &amp;amp; 정지, 메시지 전달 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기억장치 관리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메모리 할당 및 회수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;주변장치 관리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입출력 장치 스케줄링 및 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파일 관리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일 관리, 파일 생성 &amp;amp; 삭제, 변경, 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;운영체제의&lt;span&gt;&amp;nbsp;종류&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. 윈도우즈(Windows)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마이크로소프트사가 개발&lt;/li&gt;
&lt;li&gt;멀티태스킹 기능과 GUI 환경 제공 : 그래픽 기반의 인터페이스&lt;/li&gt;
&lt;li&gt;자동 감지 기능 제공 : 하드웨어 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능 제공&lt;/li&gt;
&lt;li&gt;OLE : 개체를 작성 중인 문서에 자유롭게 연결, 삽입해 편집할 수 있게&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 유닉스(Unix)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;벨 연구소를 통해 만든 운영체제&lt;/li&gt;
&lt;li&gt;90% 이상 C 언어로 구현되어 있는 운영체제&lt;/li&gt;
&lt;li&gt;범용 다중 사용자 방식의 시분할 운영체제&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 리눅스&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유닉스 기반의 오픈 소스 기반의 운영체제이다.&lt;/li&gt;
&lt;li&gt;대화식 운영체제, 다중 작업 기능, 이식성, 계층적 트리 구조 파일을 갖는다.&lt;/li&gt;
&lt;li&gt;데비안, 레드햇, Fedora, Ubuntu, CentOS 등이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 맥 (Mac)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애플 사에서 개발한 유닉스 기반의 GUI 기반의 운영체제&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;5. 안드로이드&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스 기반 : 리눅스 커널 위에서 동작&lt;/li&gt;
&lt;li&gt;자바, 코틀린 언어&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고수준 언어를 사용해 작성&lt;/li&gt;
&lt;li&gt;생산성이 높고 전문 지식이 없어도 개발 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;런타임 라이브러리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴파일된&amp;nbsp; 바이트 코드 구동&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;안드로이드 SDK&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각동 도구와 API 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;운영체제 기본 명령어 활용&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영체제를 제어하기 위한 방법은 CLI, GUI 두가지가 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CLI (Command Line Interface)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자가 직접 명령어로 컴퓨터에 명령을 내림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GUI (Graphic User Interface)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마우스로 화면을 클릭해 컴퓨터를 제어&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 윈도우 기본 명령어&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 173px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 20px; text-align: center;&quot;&gt;명령어&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 20px; text-align: center;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;ATTRIB&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;파일 속성을 표시하거나 바꿈&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;CALL&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;한 일괄 프로그램에서 다른 일괄 프로그램 호출&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;CD&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;현재 디렉터리 이름을 보여주거나 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;ChkDsk&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;디스크 검사하고 상태 보고서 표시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;CLS&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;명령 프롬프트의 글씨들을 지움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;CMD&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;Window 명령 프롬프트 창을 엶&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;COMP&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;두 개 이상의 파일 비교&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;DiskPart&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;디스크 파티션 속성을 표시하거나 구성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 15.2326%; height: 17px; text-align: center;&quot;&gt;ECHO&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; height: 17px; text-align: center;&quot;&gt;메시지를 표시하거나 ECHO를 사용, 사용하지 않음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.2326%; text-align: center;&quot;&gt;ERASE&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; text-align: center;&quot;&gt;하나 이상의 파일을 지움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.2326%; text-align: center;&quot;&gt;EXIT&lt;/td&gt;
&lt;td style=&quot;width: 84.7674%; text-align: center;&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 리눅스&amp;nbsp; / 유닉스 계열 명령어&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스 &amp;amp; 유닉스 명령어는 Shell 에서 입력할 수 있다.&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&gt;시스템 관련&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;uname -a
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템의 모든 정보를 확인&lt;/li&gt;
&lt;li&gt;시스템 이름, 사용 중인 운영체제와 버전, 호스트 명 등을 표시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;uname - r :
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;운영체제의 배포버전을 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;cat
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파일의 내용을 화면에 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;uptime
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템 가동 시간, 현재 사용자 수, 평균 부하량 등 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;사용자 &lt;b&gt;관련&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;id : 사용자의 로그인명, id, 그룹 id 등 출력&lt;/li&gt;
&lt;li&gt;last : 시스템의 부팅부터 현재까지 사용자의 로그인, 로그아웃 정보 표시&lt;/li&gt;
&lt;li&gt;who : 현재 접속 사용자 정보를 표시&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;파일 처리&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ls : 현재 디렉토리의 파일 및 폴더 목록 표시&lt;/li&gt;
&lt;li&gt;pwd (print working directory): 현재 작업중인 디렉토리의 절대경로&lt;/li&gt;
&lt;li&gt;rm : 파일 삭제&amp;nbsp;&lt;/li&gt;
&lt;li&gt;cp : 파일 복사&amp;nbsp;&lt;/li&gt;
&lt;li&gt;mv : 파일 이동 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;프로세스&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ps : 현재 실행되고 있는 프로세스 목록 출력&lt;/li&gt;
&lt;li&gt;pmap : 프로세스 ID 기준으로 메모리 맵 정보 출력&lt;/li&gt;
&lt;li&gt;kill : 특정 PID 프로세스 종료 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;파일 권한&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;chmod : 특정 파일 또는 디렉토리의 권한(permission) 수정&lt;/li&gt;
&lt;li&gt;chown : 파일이나 디렉토리 소유자, 소유 그룹 수정 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;네트워크&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ifconfig : 네트워크 인터페이스를 설정하거나 확인하는 명령어&lt;/li&gt;
&lt;li&gt;host : 도메인 명은 알고 있는데 ip 주소를 모르거나 반대의 경우 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;압축&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tar : 여러개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어 ( 압축 불가)&lt;/li&gt;
&lt;li&gt;gzip : 파일을 압축하는 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;검색&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;grep : 입력으로 전달 된 파일 내용에서 특정 문자열을 찾고자 할 떄 사용&lt;/li&gt;
&lt;li&gt;find : 특정한 파일을 찾는 명령어&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;파일 이동&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cp : 디렉토리를 복사할 때 사용&lt;/li&gt;
&lt;li&gt;rsync : 로컬 or 원격에 파일과 디렉토리를 복사하고 동기화&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;디스크 사용&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;df : 하드디스크의 남은 용량을 확인할 때 사용&lt;/li&gt;
&lt;li&gt;du : 파일 사이즈를 Kb 단위로 보여주는 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;디렉토리 이동&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cd : 디렉토리를 이동하는 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;리눅스/유닉스 파일 접근 권한 관리&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;파일 접근제어 개요&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자 혹은 프로세스가 파일을 읽거나, 실행하면&amp;nbsp;&lt;br /&gt;open(), read(), write()와 같은 시스템 호출이 수행되고, 파일 정보가 저장된&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt; i-node&lt;/b&gt;&lt;/span&gt; 값 읽게 된다.&lt;/li&gt;
&lt;li&gt;i-node에는 각 파일의 물리적 위치, 생성, 수정, 사용 날짜 등 파일 정보와 파일 소유자 그룹, 접근 권한 등 파일 접근제어와 관련된 정보가 수록, 해당 정보 이용해 DAC 기반 접근 제어 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 권한 유형&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;User (u) : 파일을 소유하고 있는 사용자&lt;/li&gt;
&lt;li&gt;Group (g): 소유자 제외하고 같은 그룹에 속해있는 모든 사용자&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Other (o): 그 밖의 사용자&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;파일 접근 모드( 설정 명령어 : chmod )&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;R (읽기): 4&lt;/li&gt;
&lt;li&gt;W (쓰기) : 2&lt;/li&gt;
&lt;li&gt;X (excute) : 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 rwx 권한이 있으면 읽고, 쓰고, 실행하는 권한이 있다.&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&gt;접근 권한 기호&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그룹 : u (user) , g (group), o (other)&lt;/li&gt;
&lt;li&gt;연산자 : +(추가), - (제거), = (지정)&lt;/li&gt;
&lt;li&gt;접근 권한 : r (read), w (write), x (excute)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f3c000;&quot;&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1689438240813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod o-w test.txt
// test.txt 파일의 other 그룹의 쓰기(w) 권한을 제거
chmod 664 test.txt
// test.txt 파일의 접근 권한은 664 (rw-rw-r--)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;운영체제 핵심 기능 파악&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 기능&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 말 했듯이 OS의 기능은 여러개가 있지만 핵심 기능은 메모리 관리, 프로세스 관리이다.&lt;/p&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: 50%;&quot;&gt;핵심 기능&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;메모리 관리&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span&gt;중앙처리장치(CPU), 메모리, 스토리지, 주변 기기 등을 적절히 관리&lt;/span&gt;&lt;br /&gt;&lt;span&gt;최근의 운영체제에서는 대부분 메모리를 자동으로 관리해 줌&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;프로세스 관리&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;일시 중지 및 재실행, 동기화, 통신&lt;br /&gt;, 교착상태 처리, 프로세스 생성 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;메모리 관리 기법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;주기억장치에 적재할 다음 프로세스의 반입 시기를 결정&lt;/li&gt;
&lt;li&gt;메모리로 적재 시기 결정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WHEN&lt;/b&gt; : 요구 반입 기법, 예상 반입 기법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;배치 기법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WHERE&lt;/b&gt; : 메모리 적재 위치 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;할당 기법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실행 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지&lt;/li&gt;
&lt;li&gt;&lt;b&gt;HOW &lt;/b&gt;: 메모리 적재 방법 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;교체 기법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;재배치 기법으로 어떤 프로세스를 제거할 것인지 결정&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WHO&lt;/b&gt; : 메모리 교체 대상 결정&lt;/li&gt;
&lt;li&gt;FIFO, Optimal, LRU, LFU, MFU, 시계 알고리즘&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;메모리 배치 기법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최초 적합 : 가용 공간 중 첫 번째 분할에 할당하는 방식&lt;/li&gt;
&lt;li&gt;최적 적합 : 가용 공간 중 가장 크기가 비슷한 공간을 선택&lt;/li&gt;
&lt;li&gt;최악 적합 : 가용 공간 중 가장 큰 공간에 할당&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>실기</category>
      <category>정보처리기사</category>
      <category>정보처리기사 실기</category>
      <category>정처기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/107</guid>
      <comments>https://beetr.tistory.com/107#entry107comment</comments>
      <pubDate>Sun, 16 Jul 2023 20:48:45 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 - SW 개발 보안 설계</title>
      <link>https://beetr.tistory.com/106</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;보안 취약점 제거&lt;/b&gt;&lt;/span&gt;하고 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;보안을 고려해&lt;/b&gt; &lt;b&gt;기능 설계, 구현&lt;/b&gt;&lt;/span&gt;하는 활동을 말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;SW 개발 보안 생명주기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;요구사항 명세
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보안 항목 식별, 요구사항 명세서&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;설계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보안 설계서 작성, 보안설계 검토&amp;nbsp;&lt;/li&gt;
&lt;li&gt;위협 모델링 : 위협원 도출을 위함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;구현
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SW 개발 보안 가이드 준수해 개발&amp;nbsp;&lt;/li&gt;
&lt;li&gt;소스 코드 보안 약점 진단 및 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;테스트
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모의침투 테스트, 동적분석을 통한 보안 취약점 진단 및 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;유지보수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지속적인 개선&lt;/li&gt;
&lt;li&gt;보안 패치&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;SW 개발 보안 구성요소&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;기밀성, 무결성, 가용성&lt;/span&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기밀성(Confidentiality) :&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인가된 사용자에 대해서만 자원 접근이 가능해야 하는 특성&amp;nbsp;&lt;/li&gt;
&lt;li&gt;인가되지 않은 개인이나 시스템 접근에 따른 정보 공개 및 노출을 차단&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;무결성(Integrity)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인가된 사용자에 대해서만 자원 수정이 가능하며, 전송 중인 정보는 수정되지 않아야 함&lt;/li&gt;
&lt;li&gt;정당한 방법으로만 데이터가 변경되며, 데이터의 정확성 및 완전성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;가용성(Availability)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인가된 사용자는 가지고 있는 권한 범위 내에서 자원접근이 가능해야 함&lt;/li&gt;
&lt;li&gt;원하는 서비스를 지속적으로 사용할 수 있도록 해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #99cefa;&quot;&gt;&lt;b&gt;보안 용어&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자산 (Assets) : 데이터 또는 가치를 부여한 대상
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex : 하드웨어, 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;위협 (Threat) : 자산에 악영향을 끼칠 수 있는 행위
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해킹, 삭제, 불법 유출, 위조/변조, 파손&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;취약점(Vulnerability) : 위협이 발생하기 위한 사전 조건.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평문 전송, 입력값 미검증, 비밀번호 유출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;위험 (Risk) : 위협이 취약점을 이용해 조직의 자산 손실 피해를 가져올 가능성&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;SW 개발 보안을 위한 공격 기법 이해&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;DoS 공격 (Denial of Service)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1&lt;/span&gt;.&lt;/span&gt;&lt;b&gt; 시스템을 악의적으로 공격&lt;/b&gt;&lt;/span&gt;해 해당 시스템의 자원을 부족하게 해 원래 의도된 용도로 사용하지 못하게 하는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2.&lt;/span&gt; 특정 서버에게 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;수많은 접속 시도&lt;/b&gt;&lt;/span&gt;를 만들어 다른 이용자가 정상적으로 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;서비스를 이용하게 하지 못하게&lt;/b&gt;&lt;/span&gt; 만들거나, TCP 연결을 소진시키는 등의 공격&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%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;공격 기법&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;SYN 플러딩&lt;br /&gt;(SYN Flooding)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;말 그대로 TCP 연결할 때 사용하는 SYN을 넘쳐나게(Flooding) 보냄&lt;br /&gt;공격자는 ACK을 보내지 않고 계속 새로운 연결 요청을 함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;UDP 플러딩&lt;/b&gt;&lt;br /&gt;&lt;b&gt;(UDP Flooding)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송해 응답을 생성하게 해 자원 고갈하게 만듦.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;스머프 / 스머핑&lt;/b&gt;&lt;br /&gt;&lt;b&gt;(Smurf / Smufing)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;출발지 주소를 공격 대상의 IP로 설정해&amp;nbsp; 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅해 마비.&lt;br /&gt;Bounce 사이트라고 불리는 제 3의 사이트를 이용해 공격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;죽음의 핑&lt;/b&gt;&lt;br /&gt;&lt;b&gt;(Death of Ping)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;ICMP Ping 을 정상 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고,&amp;nbsp;&lt;br /&gt;수신 측에서는 단편화된 패킷을 분해해 재조립하는 과정에서 부하가 발생하거나, Over Flow가 발생해 정상적인 서비스를 하지 못하도록 하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;랜드 어택&lt;/b&gt;&lt;br /&gt;&lt;b&gt;(Land Attack)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 해 시스템의 가용성을 침해&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;티어 드롭&lt;br /&gt;(Tear Drop)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;패킷의 재조합 과정에서 잘못된 Fragment OffSet 정보로 수신시스템이 문제를 발생하도록 하는 Dos공격&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;봉크 (Bonk)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;패킷을 분할해 보낼 때 처음 패킷을 첫번째로 보낸 후 다음 패킷을 보낼 때도 순서를 모두 1번으로 조작해 전송&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20.1163%;&quot;&gt;&lt;b&gt;보잉크(Boink)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 79.8837%;&quot;&gt;패킷 시퀀스 번호를 비정상적인 상태로 보내서 부하를 일으키는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;DDoS 공격 (Denial of Service)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dos의 또 다른 형태로 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;여러 대의 공격자를 분산 배치&lt;/b&gt;&lt;b&gt;해 동시에 동작&lt;/b&gt;&lt;/span&gt;하게 해 특정 사이트를 공격하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;취약한 인터넷 시스템에 Access를 하면, 침입한 시스템에 소프트웨어를 설치하고, 이를 실행시켜 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;원격에서 공격&lt;/b&gt;&lt;/span&gt;을 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;공격 요소&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;핸들러 : 마스터 시스템의 역할을 하는 프로그램&amp;nbsp;&lt;/li&gt;
&lt;li&gt;에이전트 : 공격 대상에 직접 공격을 하는 시스템&lt;/li&gt;
&lt;li&gt;마스터 :
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공격자에게서 직접 명령을 받는 시스템.&lt;/li&gt;
&lt;li&gt;여러대의 에이전트를 관리하는 역할&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;공격자 : 공격을 주도하는 해커의 컴퓨터&lt;/li&gt;
&lt;li&gt;데몬 프로그램 : 에이전트 시스템의 역할을 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;대응 방안&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;차단 정책 업데이트 : 공격 규모 확인해 가용성이 침해될 수 있는 지점을 확인 및&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 데이터 기반 차단 정책 업데이트&lt;/li&gt;
&lt;li&gt;좀비 PC IP 확보
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공격자는 대부분 Source IP를 위조하므로 IP 위변조 여부를 확인하는 절차 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;보안 솔루션 운영
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방화벽, 침입 탐지 시스템 등 보안 솔루션 운영&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;홈페이지 보안 관리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;홈페이지에 대한 모의해킹 등을 수행하여 보안 유지&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;시스템 패치
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시스템에 존재하는 취약점을 패치를 통해 해결&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;DDOS 공격의 종류&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;대역폭 소진 공격 ( 3 ~ 4계층)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 64px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 47px;&quot;&gt;
&lt;td style=&quot;width: 27.4419%; height: 47px;&quot;&gt;&lt;span&gt;UDP / ICMP Trafic Flooding&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.5581%; height: 47px;&quot;&gt;- UDP / ICMP Flooding&lt;br /&gt;- DNS Query Flooding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.4419%; height: 17px;&quot;&gt;TCP Traffic Flooding&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.5581%; height: 17px;&quot;&gt;- SYN Flooding&lt;br /&gt;- SYN+ ACK Flooding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 27.4419%;&quot;&gt;Ip Flooding&lt;/td&gt;
&lt;td style=&quot;width: 72.5581%;&quot;&gt;- Land Attack &lt;br /&gt;(보내는 사람 IP = 호스트 = 받는곳 IP -&amp;gt; 무한루프)&lt;br /&gt;- Teardop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애플리케이션(서비스) 마비 공격 ( 7 계층)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 51px;&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: 27.3256%; height: 17px;&quot;&gt;HTTP Traffic Flooding&lt;/td&gt;
&lt;td style=&quot;width: 72.6744%; height: 17px;&quot;&gt;- GET Flooding&lt;br /&gt;- GET With Cache-Control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.3256%; height: 17px;&quot;&gt;HTTP Header / Option Spoofing&lt;/td&gt;
&lt;td style=&quot;width: 72.6744%; height: 17px;&quot;&gt;- Slowris&lt;br /&gt;- Slowloris&lt;br /&gt;- Slow Read Attack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 27.3256%; height: 17px;&quot;&gt;Other L7 Service Flooding&lt;/td&gt;
&lt;td style=&quot;width: 72.6744%; height: 17px;&quot;&gt;- Hash Dos&lt;br /&gt;- Hulk Dos&lt;br /&gt;- FTP/SMTP Attack&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 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;세션 하이재킹 ( Session Hijacking)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCP 세션 관리 취약점을 이용한 공격기법&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TCP Sequnce Number 보안상 취약점으로 발생
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1. Victim(피해자)와 Server 사이의 패킷을 스니핑하여 Sequnce Number 획득한다&lt;/li&gt;
&lt;li&gt;2. 공격자는 데이터 전송중인 Victim과 Server 사이를 비동기화 상태로 강제적으로 만든다&lt;/li&gt;
&lt;li&gt;3. 스니핑해서 획득한 Client의 Sequnce Number를 이용해 공격하는 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;비동기화 상태로 패킷이 유실되어 재전송 패킷이 증가&lt;/li&gt;
&lt;li&gt;ACK Storm 증가, 네트워크 부하 증가 현상이 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;탐지 방법&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비동기화 상태 탐지&lt;/li&gt;
&lt;li&gt;ACK 패킷 비율 모니터링&lt;/li&gt;
&lt;li&gt;특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 방지&lt;/li&gt;
&lt;li&gt;기대하지 않은 접속의 리셋 탐지&lt;/li&gt;
&lt;/ul&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;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;애플리케이션 공격 (Application Attack)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;HTTP GET Flooding&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Cache Control Attack 공격&lt;/li&gt;
&lt;li&gt;과도한 Get 메시지를 이용해 웹 서버의 과부하 유발&lt;/li&gt;
&lt;li&gt;HTTP 캐시 옵션을 조작해 캐싱 서버가 아니라 웹 서버가 직접 처리하도록 유도해 서버 자원 소진&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Slowloris ( Slow HTTP Header DoS)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;헤더의 끝을 알리는 개행 문자열 \r\n\r\n을 주지 않고 \r\n만 줘서 &lt;br /&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;서버&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;와&lt;/span&gt;&lt;b&gt; 연결 &lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;상태를&lt;/span&gt;&lt;b&gt; 장시간 지속해 자원 모두 소진&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Rudy Attack( Slow HTTP Post Dos)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;요청 헤더의&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt; Content-Length&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;를&lt;/span&gt;&lt;b&gt; 비정상적으로 크게 설정&lt;/b&gt;&lt;/span&gt;해 &lt;br /&gt;메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Slow Read Attack&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;TCP Window 크기를 낮게 설정&lt;/b&gt;&lt;/span&gt;해 서버로 전달, &lt;br /&gt;윈도우 크기를 기준으로 통신하면서 데이터 전송이 완료될 때까지 연결을 유지하게 만들어 서버 자원 고갈&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;b&gt;Hulk&amp;nbsp;&lt;/b&gt;Dos&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공격자가 대상 웹 사이트 URL을 지속적으로 변경하며 다량으로 GET 요청을 발생시키는 서비스 거부 공격&lt;br /&gt;URL 변경 이유 : 임계치 대응을 우회하기 위해서&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;서버 인증 및 접근 통제&lt;/b&gt;&lt;/span&gt;&lt;/h3&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 data-ke-size=&quot;size16&quot;&gt;다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전송된 메시지 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;무결성&lt;/b&gt;&lt;/span&gt; 및 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;송신자를 검증&lt;/b&gt;&lt;/span&gt;하는 과정이 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;인증&lt;/b&gt;&lt;/span&gt;에 해당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;서비 인증 기능&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;SSL 인증서를 설치하면 정보가 유출되어도 암호화되어 안전함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;피싱 방지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인증을 받지 않으면 유사사이트에 대해서 SSL 인증서를 발급받을 수 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;데이터 변조 방지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제 3자의 악의적 개입으로 데이터 값 변조될 가능성이 존재&lt;/li&gt;
&lt;li&gt;SSL 보안서버 구축을 통해 원천봉쇄&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;인증 기술 유형&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;Id / password 등 사용자가 기억하는 지식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;소지기반 인증
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공인인증서, OTP 등 소지하고 있는 인증 물품&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;생체 기반 인증
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;홍채, 정맥, 지문 등 사용자의 고유 생체 정보&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;특징(행위) 기반 인증
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서명, 몸짓 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p 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;b&gt;3A&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모바일, 웹 등 인터넷 환경에서 관리를 체계적으로 제공하는 정보 보호 기술&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 128px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;구성&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 37px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 37px;&quot;&gt;인증&lt;br /&gt;(Authentication)&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 37px;&quot;&gt;- 접근 시도하는 사용자에 대한 신분을 검증&lt;br /&gt;- 신원 검증&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 54px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 54px;&quot;&gt;권한 부여&lt;br /&gt;(Authorization)&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 54px;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: start;&quot;&gt;- 인증된 주체에게 권한 부여&lt;/span&gt;&lt;br /&gt;- 검증된 사용자에게 일정 수준의 권한과 서비스를 허용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;계정 관리&lt;br /&gt;(Accounting)&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;- 주체 접근을 추적하고 행동 기록&lt;br /&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&gt;인증 관련 기술&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;구분&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;SSO&lt;br /&gt;(Single Sign On)&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;한 번의 인증으로 여러 컴퓨터상의 자원을 이용할 수 있는 기술&lt;br /&gt;*쉽게 통합 로그인이다*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;커버로스&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Client / Server 모델에서 동작하는 대칭 키 암호기법을 기반으로 한 티켓 기반의 프로토콜&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 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;암호화 알고리즘&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호 알고리즘은 데이터의 무결성, 기밀성&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;&lt;b&gt;대칭 키&lt;/b&gt; :&amp;nbsp; 암호화 키 == 복호화 키
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;LFSR&lt;/li&gt;
&lt;li&gt;SEAL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;블록 암호
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Feistel : 암호화 과정 == 복호화 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DES&lt;/li&gt;
&lt;li&gt;3DES&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SPN : 암호화 과정 != 복호화 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AES&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;비대칭 키&amp;nbsp; :&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;암호화 키 != 복호화 키&lt;/li&gt;
&lt;li&gt;DH, RSA, ECC, EIGamal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단방향 : 해시함수로 암호화만
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MDC (변경 감지 코드) : 무결성&lt;/li&gt;
&lt;li&gt;MAC (메시지 인증 코드) : 무결성 + 인증&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;암호 알고리즘 용어 개념&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 160px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;&lt;span&gt;용어&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;&lt;span&gt;평문 (Plain Text)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;암호화되기 전의 원본 메시지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;암호문&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;암호화가 적용된 메시지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;암호화&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;평문을 암호문으로 바꾸는 작업&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;복호화&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;암호문을 평문으로 바꾸는 작업&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;키&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;적절한 암호화를 위해 사용하는 값&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;치환 암호&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;비트, 문자 or 문자 블록을 다른 비트, 문자 or 문자 블록으로 대체하는 방법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 15.6977%; height: 20px;&quot;&gt;전치 암호&lt;/td&gt;
&lt;td style=&quot;width: 84.3023%; height: 20px;&quot;&gt;비트, 문자 또는 블록이 원래 의미를 감추도록 자리바꿈 등으로 재배열 하는 방법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안전한 전송을 위한 데이터 암호화 전송&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPSEC (&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;I&lt;/b&gt;&lt;/span&gt;nternet &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;P&lt;/span&gt;&lt;/b&gt;rotocol &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Sec&lt;/b&gt;&lt;/span&gt;urity)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더와 암호화(ESP)를 이용한&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt; IP 보안 프로토콜&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SSL (Secure Socket Layer) / TLS (Transport Layer Security)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;전송계층인 4계층, 응용계층 7계증 사이에서 클라이언트와 서버간의 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;기밀성, 데이터 무결성을 보장&lt;/b&gt;&lt;/span&gt;하는 보안 프로토콜&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;S-HTTP (Secure HTTP)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 트래픽을 암호화하는 주요 방법 중 하나.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Client와 Server 간의 모든 메시지를 각각 암호화 해 전송하는 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP를 사용한 Application에서만 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/106</guid>
      <comments>https://beetr.tistory.com/106#entry106comment</comments>
      <pubDate>Sat, 15 Jul 2023 22:40:34 +0900</pubDate>
    </item>
    <item>
      <title>정처기 실기 - 소프트웨어 개발 방법론 ( 객체 지향 분석 방법론)</title>
      <link>https://beetr.tistory.com/105</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;객체지향 개념&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 세계의 개체를 속성 + 메서드의 객체로 표현하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;객체지향 구성 요소&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&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;변수와 메서드를 정의하는 틀&lt;/li&gt;
&lt;li&gt;데이터를 추상화하는 단위&lt;/li&gt;
&lt;li&gt;하나 이상의 유사한 객체들을 묶어서 하나의 공통 특성을 표현&lt;/li&gt;
&lt;li&gt;속성 - 변수 , 행위 - 메서드&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;객체
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;물리, 추상적으로 자신과 다른 것을 식별 가능한 대상&lt;/li&gt;
&lt;li&gt;클래스에서 정의한 것을 토대로 메모리에 할당&lt;/li&gt;
&lt;li&gt;객체마다 상태와 식별성을 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;메서드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체를 사용하는 방법&lt;/li&gt;
&lt;li&gt;객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산&lt;/li&gt;
&lt;li&gt;함수 또는 프로시저에 해당하는 연산&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;메시지
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체 간의 상호 작용을 하기 위한 수단&lt;/li&gt;
&lt;li&gt;객체에게 어떤 행위를 하도록 지시하는 방법&lt;/li&gt;
&lt;li&gt;객체 간의 상호 작용은 메시지를 통해 이루어짐&lt;/li&gt;
&lt;li&gt;메시지는 객체에서 객체로 전달 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;인스턴스
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스를 통해서 만든 실체&lt;/li&gt;
&lt;li&gt;실제적으로 메모리에 할당하는 행위&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스 내에 속한 객체들이 가지고 있는 데이터 값&lt;/li&gt;
&lt;li&gt;성질, 분류, 식별, 수량 등에 대한 표현 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;객체 지향 기법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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: 13.2558%;&quot;&gt;기법&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;캡슐화&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 연관된 데이터와 함수를 묶어 외부와 경계를 만들고 필요한 인터페이스만 밖으로 드러냄&lt;br /&gt;- 결합도가 낮아지고 재사용 용이&lt;br /&gt;- 인터페이스 단순화&lt;br /&gt;- 정보 은닉과 관계가 깊음&lt;br /&gt;- 변경 발생시 오류 파급이 적음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;상속성&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;다형성&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 상속받은 여러개의 하위 객체들이 다른 형태의 특성을 갖는 객체로 이용할 수 있는 성질&lt;br /&gt;- 오버로딩, 오버라이딩이 대표적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;추상화&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 공통 성질을 추출해 추상 클래스를 설정&lt;br /&gt;- 과정, 자료, 제어 추상화가 있음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;정보 은닉&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근 가능&lt;br /&gt;- Side-Effect들을 최소화&lt;br /&gt;- 모듈 사이의 독립성을 유지하는데 도움이 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.2558%;&quot;&gt;관계성&lt;/td&gt;
&lt;td style=&quot;width: 86.7442%;&quot;&gt;- 두 개 이상의 엔터티에서 데이터를 참조하는 관계를 나타내는 기법&lt;br /&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;객체 지향 설계 원칙(SOLID 원칙)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일 책임 원칙&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 클래스는 하나의 목적을 위해서 생성.&amp;nbsp;&lt;br /&gt;클래스가 제공하는 서비스는 하나의 책임을 수행하는데 집중&lt;/li&gt;
&lt;li&gt;나머지 4가지 원칙의 기초 원칙&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;개방 폐쇄 원칙
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어의 구성요소(컴포넌트, 클래스,모듈, 함수)는 &lt;br /&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;확장&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에는&lt;/span&gt;&lt;b&gt; 열려&lt;/b&gt;&lt;/span&gt;있고&lt;br /&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;변경&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에는&lt;/span&gt;&lt;b&gt; 닫혀&lt;/b&gt;&lt;/span&gt;있어야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;리스코프 치환 원칙
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자식 클래스는 부모 클래스로 교체할 수 있어야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;인터페이스 분리 원칙&lt;/li&gt;
&lt;li&gt;의존성 역전의 원칙&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>자격증/정보처리기사 실기</category>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/105</guid>
      <comments>https://beetr.tistory.com/105#entry105comment</comments>
      <pubDate>Sun, 9 Jul 2023 04:42:23 +0900</pubDate>
    </item>
    <item>
      <title>정처기 실기 - 소프트웨어 개발 방법론 ( 소프트웨어 개발 방법론)</title>
      <link>https://beetr.tistory.com/104</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;소프트웨어&amp;nbsp;개발&amp;nbsp;방법론&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법&lt;/li&gt;
&lt;li&gt;소프트웨어를 하나의 생명체로 간주. 개발의 시작부텀 소프트웨어의 소멸까지의 과정을 형상화한 방법론&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구조적 방법론 (Structure Development)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로세스 중심의 하향식 방법론&lt;/li&gt;
&lt;li&gt;나씨-슈나이더만 차트
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;논리의 기술에 중점을둔 도형식 표현 방법&lt;/li&gt;
&lt;li&gt;연속, 선택 및 다중선택, 반복 등 제어 논리 구조로 표현&lt;/li&gt;
&lt;li&gt;조건이 여러개인 곳의 처리를 시각적으로 명확히 식별하는데 적합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정보공학 방법론 (Infomation Engineering Development)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론&lt;/li&gt;
&lt;li&gt;개발주기를 이용해 대형 프로젝트를 수행하는 체계적 방법론&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;객체 지향 방법론(OOD : Object Oriented Development)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;객체&lt;/b&gt;라는 기본 단위로 시스템을 분석, 설계하는 방법론&lt;/li&gt;
&lt;li&gt;복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론 (객체지향의 개념)&lt;/li&gt;
&lt;li&gt;객체, 클래스, 메시지 이용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;컴포넌트 기반 방법론 (CBD : Component Based Development)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴포넌트를 조립해 하나의 새로운 응용 프로그램을 만드는 방법론&lt;/li&gt;
&lt;li&gt;개발 기간 단축 ( 생산성 향상)&lt;/li&gt;
&lt;li&gt;새로운 기능 추가 용이 (확장성)&lt;/li&gt;
&lt;li&gt;재사용이 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;애자일 방법론 (Agile Development)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;아래에서 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;애자일 ( 중요 )&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;경량 개발 방법론&lt;/li&gt;
&lt;li&gt;절차보다는 사람이 중심.&lt;/li&gt;
&lt;li&gt;변화에 유연하고, 신속하게 적응하면서 효율적으로 시스템 개발&lt;/li&gt;
&lt;li&gt;개발 기간이 빠르며, 폭포수 모형과 대비되는 방법론&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;등장 배경&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발 환경의 변화&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어 개발 트렌드가 모바일로 변화&lt;/li&gt;
&lt;li&gt;시장 적시성과 잦은 배포의 중요성 부각&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;기존 개발 방법론의 한계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전통적인 것은 문서 및 절차 위주로 변화에 신속한 대응이 어려움&lt;/li&gt;
&lt;li&gt;빠르게 적용하고, 효율적으로 개발할 수 있는 방법론 필요성 증가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;유형&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XP (Extreme Programming)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1-3주의 반복적인 개발주기&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&gt;XP의 가치&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;용기(Courage)&lt;/li&gt;
&lt;li&gt;단순성(Simplicity)&lt;/li&gt;
&lt;li&gt;의사소통&lt;/li&gt;
&lt;li&gt;피드백&lt;/li&gt;
&lt;li&gt;존중&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;요약하면 서로 존중하면서 용기를 내 다른 사람들과 의사소통을 하는 것이라고 생각하면 쉬울 것 같다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;스크럼(Scrum)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매일 정해진 시간, 장소에서 짧은 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;백로그 - 제품과 프로젝트에 대한 요구사항&lt;/li&gt;
&lt;li&gt;스프린트- 2-4주의 짧은 개발 기간 반복 수행해 개발 품질 향상&lt;/li&gt;
&lt;li&gt;스크럼, 데일리 미팅&amp;nbsp; - 매일 15분 미팅으로 To do List 수립&lt;/li&gt;
&lt;li&gt;스크럼 마스터 - 프로젝트 리더.&lt;/li&gt;
&lt;li&gt;스프린트 회고 - 규칙 준수 여부나 개선점 기록. 일정 주기로 실행&lt;/li&gt;
&lt;li&gt;번 다운 차트(Burn Down Chart) - 남은 백로그 대비 시간 (일의 진행정도)을 시각화한 차트. 수직(백로그), 수평(남은 시간)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;린(Lean)&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JIT (Just In Time), 칸반(Kanban)보드 사용&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;낭비제거&lt;/li&gt;
&lt;li&gt;품질 내재화&lt;/li&gt;
&lt;li&gt;지식 창출&lt;/li&gt;
&lt;li&gt;늦은 확정&lt;/li&gt;
&lt;li&gt;빠른 인도&lt;/li&gt;
&lt;li&gt;존중&lt;/li&gt;
&lt;li&gt;전체 최적화&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;애자일 VS 전통적 방법론 비교&lt;/b&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%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;비교 대상&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;애자일 방법론&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;전통적 방법론&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;계획 수립&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;유동적 범위 설정&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;확정적 범위 설정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;업무수행&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;팀 중심&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;관리자 주도적. 개인 단위&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;개발/검증&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;반복 주기 단위로 개발 / 검증&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;분석-&amp;gt;설계-&amp;gt;구현-&amp;gt;테스트 순차적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;팀 관리&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;업무 몰입, 팀 평가&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;경쟁, 개별 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;문서화&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;강조 : 문서화 &amp;lt; 코드&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;상세한 문서화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;성공요소&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;고객 가치 전달&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;계획 / 일정 준수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;유형&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;XP, 스크럼, 린&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;워터폴, 프로토타입, 나선형&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <author>비뀨_</author>
      <guid isPermaLink="true">https://beetr.tistory.com/104</guid>
      <comments>https://beetr.tistory.com/104#entry104comment</comments>
      <pubDate>Sun, 9 Jul 2023 01:47:42 +0900</pubDate>
    </item>
  </channel>
</rss>