<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://mooooonmin.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mooooonmin.github.io/" rel="alternate" type="text/html" /><updated>2026-04-06T09:07:40+09:00</updated><id>https://mooooonmin.github.io/feed.xml</id><title type="html">저장소</title><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><entry><title type="html">Virtual Memory</title><link href="https://mooooonmin.github.io/2026/04/06/Virtual-Memory/" rel="alternate" type="text/html" title="Virtual Memory" /><published>2026-04-06T00:00:00+09:00</published><updated>2026-04-06T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/04/06/Virtual-Memory</id><content type="html" xml:base="https://mooooonmin.github.io/2026/04/06/Virtual-Memory/"><![CDATA[<h2 id="1-가상-메모리-개념">1. 가상 메모리 개념</h2>

<p><strong>가상 메모리(Virtual Memory)</strong>는 각 프로세스에 <strong>연속되고 독립적인 가상 주소 공간</strong>을 제공하고,<br />
실제로는 그중 필요한 부분만 물리 메모리에 적재하여 실행할 수 있게 하는 메모리 관리 기법 의미. [1][2]</p>

<p>이 방식 덕분에 프로세스 전체가 항상 물리 메모리에 올라와 있지 않아도 실행 가능. [1][2]</p>

<p>또한 사용자 프로그램은 물리 메모리의 실제 배치 방식과 분리된 주소 공간을 사용하므로,<br />
운영체제가 메모리 보호와 관리 효율을 높일 수 있음. [1][2]</p>

<hr />

<h2 id="2-왜-필요한가">2. 왜 필요한가</h2>

<p>가상 메모리는 다음 이유로 중요.</p>

<ul>
  <li><strong>물리 메모리보다 큰 주소 공간 제공 가능</strong> [1][2]</li>
  <li><strong>프로세스마다 독립적인 주소 공간 제공 가능</strong> [1][2]</li>
  <li>필요한 부분만 메모리에 올려 <strong>메모리 사용 효율 향상 가능</strong> [1][2]</li>
</ul>

<p>즉, 프로그램 입장에서는 큰 연속 주소 공간을 사용하는 것처럼 보이지만,<br />
운영체제는 필요한 페이지 중심으로 메모리를 관리하는 구조.</p>

<hr />

<h2 id="3-요구-페이징-demand-paging">3. 요구 페이징 (Demand Paging)</h2>

<p>가상 메모리는 보통 <strong>요구 페이징(Demand Paging)</strong> 방식과 함께 설명됨. [1][2]</p>

<p>요구 페이징은 <strong>실제로 참조되는 시점에 페이지를 메모리로 가져오는 방식</strong> 의미. [1][2]</p>

<p>즉, 프로세스를 시작할 때 모든 페이지를 한꺼번에 적재하지 않고,<br />
당장 필요한 페이지부터 적재하는 구조.</p>

<p>이때 페이지 테이블에는 각 페이지가 현재 메모리에 있는지 나타내는<br />
<strong>유효 / 무효 비트(valid / invalid bit)</strong>를 둘 수 있음. [2]</p>

<p>장점은 다음과 같음.</p>

<ul>
  <li>초기 적재 I/O 감소 [1][2]</li>
  <li>메모리 사용량 감소 [1][2]</li>
  <li>더 많은 프로세스를 동시에 수용할 가능성 증가 [1][2]</li>
</ul>

<hr />

<h2 id="4-page-fault">4. Page Fault</h2>

<p>CPU가 참조한 페이지가 현재 물리 메모리에 없을 때 <strong>page fault</strong>가 발생. [1][2]</p>

<p>일반적인 처리 흐름은 다음과 같음.</p>

<ol>
  <li>CPU가 어떤 가상 주소를 참조</li>
  <li>MMU가 페이지 테이블을 확인</li>
  <li>해당 페이지가 메모리에 없으면 <strong>page fault trap</strong> 발생</li>
  <li>운영체제가 해당 페이지를 보조기억장치에서 읽어 빈 프레임에 적재</li>
  <li>페이지 테이블을 갱신하고, 중단된 명령을 다시 실행 [2]</li>
</ol>

<p>즉, page fault는 단순 오류라기보다<br />
<strong>필요한 페이지를 나중에 적재하기 위한 정상적인 제어 흐름의 일부</strong>일 수 있음. [2]</p>

<hr />

<h2 id="5-페이지-교체-page-replacement">5. 페이지 교체 (Page Replacement)</h2>

<p>Page fault가 발생했을 때 빈 프레임이 없다면,<br />
현재 메모리에 있는 페이지 중 하나를 내보내고 새 페이지를 적재해야 함.<br />
이 과정을 <strong>페이지 교체(Page Replacement)</strong>라고 함. [1][2]</p>

<p>페이지 교체의 목표는 <strong>전체 page fault 횟수를 줄이는 것</strong>. [1][2]</p>

<p>대표 알고리즘은 다음과 같음.</p>

<table>
  <thead>
    <tr>
      <th>알고리즘</th>
      <th>설명</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>FIFO</td>
      <td>메모리에 가장 먼저 들어온 페이지를 먼저 교체</td>
    </tr>
    <tr>
      <td>OPT(최적 페이지 교체)</td>
      <td>앞으로 가장 오랫동안 사용되지 않을 페이지를 교체</td>
    </tr>
    <tr>
      <td>LRU</td>
      <td>가장 오랫동안 참조되지 않은 페이지를 교체</td>
    </tr>
    <tr>
      <td>LFU</td>
      <td>참조 횟수가 가장 적은 페이지를 교체</td>
    </tr>
  </tbody>
</table>

<p>여기서 <strong>OPT는 이론적으로 가장 좋은 기준</strong>이지만,<br />
미래 참조를 알아야 하므로 실제 그대로 구현할 수는 없음. [2]</p>

<p>또한 <strong>LFU는 카운트 관리 비용이 크고 실제 사용 패턴을 항상 잘 반영하지 못해</strong><br />
전형적인 설명용 알고리즘으로 더 자주 다뤄짐. [2]</p>

<hr />

<h2 id="6-면접에서-같이-말하면-좋은-포인트">6. 면접에서 같이 말하면 좋은 포인트</h2>

<p>가상 메모리 질문에서는 보통 다음 흐름으로 이어짐.</p>

<ol>
  <li>가상 메모리란 무엇인가</li>
  <li>요구 페이징이 무엇인가</li>
  <li>page fault가 어떻게 처리되는가</li>
  <li>페이지 교체 알고리즘에는 무엇이 있는가</li>
</ol>

<p>즉, <strong>가상 주소 공간</strong>, <strong>요구 페이징</strong>, <strong>page fault</strong>, <strong>page replacement</strong>를<br />
한 흐름으로 연결해서 설명하면 정리가 잘 됨.</p>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>가상 메모리</strong></p>

  <ul>
    <li>프로세스에 연속된 가상 주소 공간을 제공하는 메모리 관리 기법</li>
    <li>필요한 부분만 물리 메모리에 적재하여 실행 가능</li>
  </ul>

  <p><strong>요구 페이징</strong></p>

  <ul>
    <li>실제로 참조되는 시점에 필요한 페이지를 적재하는 방식</li>
  </ul>

  <p><strong>Page Fault</strong></p>

  <ul>
    <li>참조한 페이지가 현재 메모리에 없을 때 발생</li>
    <li>운영체제가 페이지를 적재한 뒤 명령을 다시 실행</li>
  </ul>

  <p><strong>페이지 교체</strong></p>

  <ul>
    <li>빈 프레임이 없을 때 기존 페이지를 내보내는 과정</li>
    <li>대표 알고리즘: FIFO, OPT, LRU, LFU</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/8.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Virtual Memory”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/9_VirtualMemory.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="memory" /><category term="virtual-memory" /><category term="demand-paging" /><category term="page-fault" /><summary type="html"><![CDATA[1. 가상 메모리 개념]]></summary></entry><entry><title type="html">Segmentation</title><link href="https://mooooonmin.github.io/2026/04/03/Segmentation/" rel="alternate" type="text/html" title="Segmentation" /><published>2026-04-03T00:00:00+09:00</published><updated>2026-04-03T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/04/03/Segmentation</id><content type="html" xml:base="https://mooooonmin.github.io/2026/04/03/Segmentation/"><![CDATA[<h2 id="1-segmentation-개념">1. Segmentation 개념</h2>

<p><strong>Segmentation</strong>은 프로세스의 논리 주소 공간을 <strong>의미 단위의 가변 크기 영역(segment)</strong>으로 나누어 관리하는 메모리 관리 방식 의미. [1][2][3]</p>

<p>운영체제는 프로그램을 하나의 단순한 연속 배열로 보기보다,<br />
<strong>Code, Data, Heap, Stack</strong>처럼 서로 다른 역할을 가진 영역의 집합으로 볼 수 있음.<br />
Segmentation은 이런 관점을 그대로 주소 공간 관리에 반영한 방식. [1][2]</p>

<p>중요한 점은 <strong>프로세스 전체가 하나의 연속된 물리 메모리 공간에 놓일 필요는 없지만</strong>,<br />
<strong>각 segment 자체는 일반적으로 연속된 물리 메모리 공간</strong>에 배치된다는 점. [1][3]</p>

<hr />

<h2 id="2-논리-주소와-세그먼트-테이블">2. 논리 주소와 세그먼트 테이블</h2>

<p>Segmentation에서 논리 주소는 보통 다음 두 부분으로 표현.</p>

<ul>
  <li><strong>세그먼트 번호(Segment Number)</strong></li>
  <li><strong>오프셋(Offset)</strong></li>
</ul>

<p>세그먼트 번호는 <strong>세그먼트 테이블(Segment Table)</strong>의 인덱스로 사용됨. [1][2][3]</p>

<p>일반적으로 세그먼트 테이블의 각 항목은 다음 정보를 가짐.</p>

<ul>
  <li><strong>Base</strong>: 해당 segment가 시작하는 물리 주소</li>
  <li><strong>Limit / Length</strong>: 해당 segment의 길이</li>
  <li><strong>Protection 정보</strong>: 읽기 / 쓰기 / 실행 권한 등 [2][3]</li>
</ul>

<p>주소 변환 과정은 다음과 같음.</p>

<ol>
  <li>CPU가 논리 주소 생성</li>
  <li>논리 주소를 <strong>세그먼트 번호 + 오프셋</strong>으로 분리</li>
  <li>세그먼트 번호로 세그먼트 테이블 조회</li>
  <li>오프셋이 해당 segment의 길이(limit) 안에 있는지 검사</li>
  <li>유효하면 <strong>Base + Offset</strong>으로 물리 주소 생성</li>
</ol>

<hr />

<h2 id="3-segmentation-fault와-보호">3. Segmentation Fault와 보호</h2>

<p>Segmentation에서는 세그먼트별 길이가 서로 다르므로,<br />
하드웨어는 <strong>오프셋이 해당 segment 범위를 넘는지 검사</strong>해야 함. [1][3]</p>

<p>오프셋이 segment의 limit 이상이면 <strong>잘못된 주소 접근</strong>으로 판단되어 예외가 발생함.<br />
운영체제 문맥에서는 이를 <strong>segmentation violation</strong> 또는 <strong>segmentation fault</strong>로 설명하는 경우가 많음. [3]</p>

<p>또한 segment마다 보호 비트를 둘 수 있으므로,<br />
예를 들어 코드 영역에는 쓰기를 금지하는 식의 <strong>접근 권한 제어</strong>를 적용할 수 있음. [2]</p>

<hr />

<h2 id="4-segmentation과-메모리-단편화">4. Segmentation과 메모리 단편화</h2>

<p>Segmentation은 segment 크기만큼 가변적으로 메모리를 할당하므로<br />
<strong>paging처럼 고정 크기 블록 단위 때문에 생기는 내부 단편화는 거의 없거나 매우 작음</strong>. [4]</p>

<p>반면, 크기가 서로 다른 segment들이 적재되고 해제되는 과정이 반복되면<br />
빈 공간이 잘게 나뉘어 <strong>외부 단편화(External Fragmentation)</strong>가 발생할 수 있음. [1][2][4]</p>

<p>즉,</p>

<ul>
  <li><strong>내부 단편화</strong>: 거의 없거나 매우 작음 [4]</li>
  <li><strong>외부 단편화</strong>: 발생 가능 [1][2][4]</li>
</ul>

<hr />

<h2 id="5-paging과-차이">5. Paging과 차이</h2>

<p>Segmentation과 Paging의 핵심 차이는 <strong>나누는 기준</strong>에 있음.</p>

<ul>
  <li><strong>Paging</strong>: 같은 크기의 page 단위로 나눔 [1]</li>
  <li><strong>Segmentation</strong>: 의미 단위의 가변 크기 segment로 나눔 [1][2]</li>
</ul>

<p>또한 단편화 측면에서도 차이가 있음.</p>

<ul>
  <li><strong>Paging</strong>: 외부 단편화는 없거나 매우 크게 완화되지만 내부 단편화가 발생 가능 [1]</li>
  <li><strong>Segmentation</strong>: 내부 단편화는 거의 없지만 외부 단편화가 발생 가능 [1][4]</li>
</ul>

<hr />

<h2 id="6-paged-segmentation">6. Paged Segmentation</h2>

<p><strong>Paged Segmentation</strong>은 segmentation을 기본으로 하되,<br />
각 segment를 다시 page 단위로 나누어 관리하는 방식 의미. [5][6]</p>

<p>이 경우 논리 주소는 개념적으로 다음처럼 해석 가능.</p>

<ul>
  <li><strong>세그먼트 번호</strong></li>
  <li><strong>세그먼트 내부의 페이지 번호</strong></li>
  <li><strong>페이지 내부 오프셋</strong> [5][6]</li>
</ul>

<p>이 방식은 segmentation의 <strong>논리적 보호와 공유 장점</strong>을 유지하면서,<br />
segment를 다시 paging하므로 <strong>외부 단편화 문제를 줄이거나 피하는 데 도움</strong>을 줌. [2][5][6]</p>

<p>다만 주소 변환 구조가 더 복잡해지고,<br />
segment table과 page table을 함께 사용해야 한다는 비용이 생김. [5][6]</p>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>Segmentation</strong></p>

  <ul>
    <li>프로세스 주소 공간을 의미 단위의 가변 크기 segment로 나누는 방식</li>
    <li>프로세스 전체는 비연속적으로 배치될 수 있지만, 각 segment 자체는 연속적으로 적재되는 것이 일반적</li>
  </ul>

  <p><strong>주소 변환</strong></p>

  <ul>
    <li>논리 주소는 세그먼트 번호와 오프셋으로 구성</li>
    <li>세그먼트 테이블의 base와 limit를 이용해 물리 주소를 계산</li>
  </ul>

  <p><strong>단편화</strong></p>

  <ul>
    <li>내부 단편화는 거의 없거나 매우 작음</li>
    <li>외부 단편화는 발생 가능</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/7.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Segmentation” / “Paging”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/8_MainMemory.html</li>
  <li>University of Maryland, Computer Architecture Notes, “Virtual Memory II”<br />
https://www.cs.umd.edu/users/meesh/411/CA-online/chapter/289/index.html</li>
  <li>University of Wisconsin-Madison, CS 537 Notes, “Segmentation”<br />
https://pages.cs.wisc.edu/~solomon/cs537-old/s07/segmentation.html</li>
  <li>Gordon College, CS322 Memory Management, “Paged and Segmented Memory Organizations”<br />
https://www.cs.gordon.edu/courses/cs322/lectures/memory.html</li>
  <li>University of California, Davis, “Segmentation and Paging Combined”<br />
https://nob.cs.ucdavis.edu/classes/ecs150-2008-02/handouts/memory/mm-segpag.html</li>
  <li>UC Davis ECS 150 Memory Management Notes, “Paged Segmentation”<br />
https://nob.cs.ucdavis.edu/classes/ecs150-2008-02/notes/memory.pdf</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="memory" /><category term="segmentation" /><summary type="html"><![CDATA[1. Segmentation 개념]]></summary></entry><entry><title type="html">Deadlock</title><link href="https://mooooonmin.github.io/2026/04/02/Deadlock/" rel="alternate" type="text/html" title="Deadlock" /><published>2026-04-02T00:00:00+09:00</published><updated>2026-04-02T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/04/02/Deadlock</id><content type="html" xml:base="https://mooooonmin.github.io/2026/04/02/Deadlock/"><![CDATA[<h2 id="1-데드락-개념">1. 데드락 개념</h2>

<p>Deadlock이란 둘 이상의 Thread가 서로가 점유한 자원을 기다리며 무한 대기 상태에 빠지는 상황 의미.</p>

<p>각 Thread가 다른 Thread의 자원을 기다리는 순환 구조 형성 상태 의미.</p>

<hr />

<h2 id="2-데드락-발생-조건">2. 데드락 발생 조건</h2>

<p>Deadlock은 다음 4가지 조건이 동시에 성립할 때 발생 가능.</p>

<h3 id="1-상호-배제-mutual-exclusion">1. 상호 배제 (Mutual Exclusion)</h3>

<ul>
  <li>하나의 자원에 동시에 하나의 Thread만 접근 가능한 구조</li>
  <li>다른 Thread는 자원 해제까지 대기 상태</li>
</ul>

<h3 id="2-점유-대기-hold-and-wait">2. 점유 대기 (Hold and Wait)</h3>

<ul>
  <li>자원을 보유한 상태에서 다른 자원을 추가로 요청하는 상황</li>
</ul>

<h3 id="3-비선점-no-preemption">3. 비선점 (No Preemption)</h3>

<ul>
  <li>이미 할당된 자원을 강제로 회수할 수 없는 구조</li>
  <li>자원은 점유한 Thread에 의해만 반환 가능</li>
</ul>

<h3 id="4-순환-대기-circular-wait">4. 순환 대기 (Circular Wait)</h3>

<ul>
  <li>여러 Thread가 순환 형태로 서로의 자원을 기다리는 구조</li>
</ul>

<hr />

<h2 id="3-데드락-해결-방법">3. 데드락 해결 방법</h2>

<p>데드락 해결 방법은 다음 4가지 방식 존재.</p>

<table>
  <thead>
    <tr>
      <th>기법</th>
      <th>설명</th>
      <th>특징</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>무시</td>
      <td>데드락 발생을 무시하는 방식</td>
      <td>성능 저하 없음, 실제 시스템에서 많이 사용</td>
    </tr>
    <tr>
      <td>예방</td>
      <td>발생 조건 중 하나를 제거하는 방식</td>
      <td>자원 효율성 감소</td>
    </tr>
    <tr>
      <td>회피</td>
      <td>Deadlock이 발생하지 않도록 자원 할당 제어</td>
      <td>알고리즘 기반 (은행원 알고리즘 등)</td>
    </tr>
    <tr>
      <td>탐지-회복</td>
      <td>데드락 발생 후 탐지 및 복구</td>
      <td>시스템 오버헤드 발생</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="4-데드락-해결-방식-특징">4. 데드락 해결 방식 특징</h2>

<h3 id="무시">무시</h3>

<ul>
  <li>데드락 발생 확률이 낮은 환경에서 사용</li>
  <li>성능 저하 없음</li>
  <li>범용 운영체제에서는 모든 자원에 대해 데드락을 적극적으로 처리하지 않고, 일부 경우 무시하거나 응용 수준 처리에 맡기기도 함</li>
</ul>

<h3 id="예방">예방</h3>

<ul>
  <li>4가지 조건 중 하나 제거 방식</li>
  <li>주로 순환 대기 제거 방식 사용</li>
  <li>자원 활용 효율 감소</li>
</ul>

<h3 id="회피">회피</h3>

<ul>
  <li>자원 할당 시 데드락 발생 가능성 검사</li>
  <li>안전 상태 유지 방식</li>
  <li>대표 알고리즘: 은행원 알고리즘</li>
</ul>

<h3 id="탐지-회복">탐지-회복</h3>

<ul>
  <li>데드락 발생 후 탐지</li>
  <li>일부 스레드 종료 또는 Rollback 수행</li>
  <li>높은 비용 발생</li>
</ul>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p>데드락<br />
서로의 자원을 기다리며 무한 대기 상태 발생 구조</p>

  <p>발생 조건<br />
상호 배제 / 점유 대기 / 비선점 / 순환 대기</p>

  <p>해결 방법<br />
무시 / 예방 / 회피 / 탐지-회복</p>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/6.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Deadlocks”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="thread" /><category term="deadlock" /><category term="concurrency" /><summary type="html"><![CDATA[1. 데드락 개념]]></summary></entry><entry><title type="html">Paging</title><link href="https://mooooonmin.github.io/2026/04/02/Paging/" rel="alternate" type="text/html" title="Paging" /><published>2026-04-02T00:00:00+09:00</published><updated>2026-04-02T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/04/02/Paging</id><content type="html" xml:base="https://mooooonmin.github.io/2026/04/02/Paging/"><![CDATA[<h2 id="1-페이징-개념">1. 페이징 개념</h2>

<p><strong>페이징(Paging)</strong>은 프로세스의 <strong>논리 주소 공간(Logical Address Space)</strong>을 같은 크기의 <strong>페이지(Page)</strong>로 나누고,<br />
물리 메모리를 같은 크기의 <strong>프레임(Frame)</strong>으로 나누어 매핑하는 메모리 관리 방식 의미. [1][2][3]</p>

<p>이 방식에서는 프로세스의 각 페이지가 물리 메모리의 <strong>연속되지 않은 여러 프레임</strong>에 적재될 수 있음. [1][2][3]</p>

<p>즉, 프로세스는 논리적으로는 연속된 주소 공간을 사용하지만,<br />
실제 물리 메모리에서는 분산된 위치에 저장될 수 있는 구조.</p>

<hr />

<h2 id="2-논리-주소와-물리-주소">2. 논리 주소와 물리 주소</h2>

<p>CPU가 생성하는 주소는 <strong>논리 주소(Logical Address)</strong>이며,<br />
실제 메모리 하드웨어가 사용하는 주소는 <strong>물리 주소(Physical Address)</strong> 의미. [2]</p>

<p>실행 시간 주소 바인딩 환경에서는 <strong>논리 주소와 가상 주소(Virtual Address)</strong>를 같은 뜻으로 사용하는 경우가 많음. [2]</p>

<p>사용자 프로그램은 논리 주소를 기준으로 동작하고,<br />
이 논리 주소를 물리 주소로 변환하는 작업은 <strong>MMU(Memory Management Unit)</strong>와 <strong>페이지 테이블(Page Table)</strong>이 담당함. [2][3]</p>

<hr />

<h2 id="3-페이지-테이블과-주소-변환">3. 페이지 테이블과 주소 변환</h2>

<p>페이징에서는 논리 주소를 보통 다음 두 부분으로 나누어 해석.</p>

<ul>
  <li><strong>페이지 번호(Page Number)</strong></li>
  <li><strong>오프셋(Offset)</strong></li>
</ul>

<p>페이지 번호는 <strong>페이지 테이블의 인덱스</strong>로 사용되고,<br />
페이지 테이블은 해당 페이지가 적재된 <strong>프레임 번호(Frame Number)</strong>를 저장함. [2][3]</p>

<p>이후 <strong>프레임 번호 + 오프셋</strong>을 결합하여 최종 물리 주소를 구함. [2][3]</p>

<p>정리하면 주소 변환 흐름은 다음과 같음.</p>

<ol>
  <li>CPU가 논리 주소 생성</li>
  <li>논리 주소를 <strong>페이지 번호 + 오프셋</strong>으로 분리</li>
  <li>페이지 번호로 페이지 테이블 조회</li>
  <li>대응되는 프레임 번호 확인</li>
  <li>프레임 번호와 오프셋을 합쳐 물리 주소 생성</li>
</ol>

<hr />

<h2 id="4-페이징과-메모리-단편화">4. 페이징과 메모리 단편화</h2>

<p>페이징의 장점은 <strong>외부 단편화(External Fragmentation)를 없애거나 매우 크게 줄인다는 점</strong>.<br />
고정 크기 프레임 단위로 할당하므로, 연속된 큰 빈 공간을 찾기 위해 메모리를 재배치할 필요가 없기 때문. [1][3]</p>

<p>반면, <strong>내부 단편화(Internal Fragmentation)</strong>는 발생 가능. [1][3]</p>

<p>이유는 프로세스 크기가 페이지 크기의 정확한 배수가 아닐 수 있기 때문.<br />
이 경우 마지막 페이지 내부에 사용되지 않는 공간이 남을 수 있음. [1][3]</p>

<p>즉,</p>

<ul>
  <li><strong>외부 단편화</strong>: 페이징에서는 발생하지 않거나 매우 크게 완화됨 [1][3]</li>
  <li><strong>내부 단편화</strong>: 마지막 페이지에서 발생 가능 [1][3]</li>
</ul>

<hr />

<h2 id="5-왜-중요한가">5. 왜 중요한가</h2>

<p>페이징은 프로세스를 반드시 연속된 물리 메모리 공간에 배치하지 않아도 되므로<br />
메모리 할당이 쉬워지고, 현대 운영체제의 가상 메모리 구조를 이해하는 기본 개념이 됨. [1][2][3]</p>

<p>면접에서는 다음 두 가지를 연결해서 설명하면 정리가 잘 됨.</p>

<ul>
  <li>논리 주소와 물리 주소는 다를 수 있음</li>
  <li>페이지 테이블을 통해 논리 주소가 물리 주소로 변환됨</li>
</ul>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>페이징</strong></p>

  <ul>
    <li>논리 주소 공간을 페이지, 물리 메모리를 프레임으로 나누는 방식</li>
    <li>각 페이지는 물리 메모리의 비연속적인 프레임에 저장 가능</li>
  </ul>

  <p><strong>주소 변환</strong></p>

  <ul>
    <li>논리 주소는 페이지 번호와 오프셋으로 구성</li>
    <li>페이지 테이블이 페이지 번호를 프레임 번호로 변환</li>
  </ul>

  <p><strong>단편화</strong></p>

  <ul>
    <li>외부 단편화는 없거나 매우 크게 완화됨</li>
    <li>내부 단편화는 마지막 페이지에서 발생 가능</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/7.pdf</li>
  <li>University of Wisconsin-Madison, CS 537 Notes, “Paging”<br />
https://pages.cs.wisc.edu/~bart/537/lecturenotes/s16.html</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Logical Versus Physical Address Space” / “Paging”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/8_MainMemory.html</li>
  <li>Johns Hopkins University, Operating Systems Slides, “Paging”<br />
https://www.cs.jhu.edu/~yairamir/cs418/os5/tsld022.htm</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="memory" /><category term="paging" /><summary type="html"><![CDATA[1. 페이징 개념]]></summary></entry><entry><title type="html">Synchronization</title><link href="https://mooooonmin.github.io/2026/04/01/Multi_thread_process/" rel="alternate" type="text/html" title="Synchronization" /><published>2026-04-01T00:00:00+09:00</published><updated>2026-04-01T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/04/01/Multi_thread_process</id><content type="html" xml:base="https://mooooonmin.github.io/2026/04/01/Multi_thread_process/"><![CDATA[<h2 id="1-동기화-문제-개념">1. 동기화 문제 개념</h2>

<p>동기화 문제란 여러 프로세스 또는 Thread가 공유 자원에 동시에 접근하여 잘못된 결과가 발생하는 문제 의미.</p>

<p>발생 원인</p>

<ul>
  <li>메모리 공유 구조</li>
  <li>동시 접근 발생</li>
  <li>실행 순서 비결정성</li>
</ul>

<hr />

<h2 id="2-race-condition">2. Race Condition</h2>

<p>Race Condition이란 여러 Thread가 동일한 자원에 접근할 때 실행 순서에 따라 결과가 달라지는 현상 의미.</p>

<p>예시: count++</p>

<p>동작 과정</p>

<ul>
  <li>변수 값 읽기</li>
  <li>값 증가</li>
  <li>결과 저장</li>
</ul>

<p>해당 과정이 원자적이지 않은 구조이기 때문에 값 손실 발생 가능.</p>

<hr />

<h2 id="3-임계영역-critical-section">3. 임계영역 (Critical Section)</h2>

<p>임계영역이란 공유 자원에 접근하는 코드 영역 의미.</p>

<p>조건</p>

<ul>
  <li>동시에 하나의 Thread만 접근 가능한 구조</li>
  <li>원자적 실행 보장 필요</li>
</ul>

<p>구성</p>

<ul>
  <li>Entry Section : 진입 요청</li>
  <li>Critical Section : 실제 작업</li>
  <li>Exit Section : 자원 반환</li>
</ul>

<hr />

<h2 id="4-동기화-해결-방법">4. 동기화 해결 방법</h2>

<p>대표적인 동기화 방법</p>

<ul>
  <li>Mutex</li>
  <li>Semaphore</li>
</ul>

<hr />

<h2 id="5-mutex">5. Mutex</h2>

<p>Mutex는 Mutual Exclusion 의미.</p>

<p>특징</p>

<ul>
  <li>하나의 Thread만 접근 가능한 구조</li>
  <li>Lock 기반 제어 방식</li>
  <li>경쟁 상태(Race Condition) 방지 목적</li>
</ul>

<p>동작 흐름</p>

<ul>
  <li>Lock 획득</li>
  <li>임계영역 실행</li>
  <li>Lock 반환</li>
</ul>

<p>예시 구조</p>

<ul>
  <li>acquire()</li>
  <li>critical section</li>
  <li>release()</li>
</ul>

<p>단점</p>

<ul>
  <li>구현 방식에 따라 대기 중인 스레드를 block시키지 않으면 Busy Waiting 발생 가능</li>
  <li>잠금 경쟁이 심하면 성능 저하 가능</li>
</ul>

<hr />

<h2 id="6-semaphore">6. Semaphore</h2>

<p>Semaphore는 공유 자원 접근 개수를 제어하는 동기화 기법 의미.</p>

<p>특징</p>

<ul>
  <li>여러 스레드 접근 가능 구조</li>
  <li>자원 개수 기반 제어 방식</li>
</ul>

<p>동작 원리</p>

<ul>
  <li>S 값 : 사용 가능한 자원 개수</li>
  <li>S &gt; 0 → 접근 가능</li>
  <li>S == 0 → 대기 상태</li>
</ul>

<p>연산</p>

<ul>
  <li>wait(S) → S 감소</li>
  <li>signal(S) → S 증가</li>
</ul>

<p>예시 구조</p>

<ul>
  <li>wait(S)</li>
  <li>critical section</li>
  <li>signal(S)</li>
</ul>

<hr />

<h2 id="7-binary-semaphore">7. Binary Semaphore</h2>

<p>Semaphore 값이 0 또는 1만 가지는 경우 의미.</p>

<ul>
  <li>상호 배제 용도로 사용할 수 있음</li>
  <li>다만 일반적으로 <strong>소유권 개념이 있는 Mutex와는 동일 개념으로 보지 않음</strong></li>
</ul>

<hr />

<h2 id="8-mutex-vs-semaphore-비교">8. Mutex vs Semaphore 비교</h2>

<table>
  <thead>
    <tr>
      <th>구분</th>
      <th>Mutex</th>
      <th>Semaphore</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>접근 가능 수</td>
      <td>1개</td>
      <td>N개</td>
    </tr>
    <tr>
      <td>목적</td>
      <td>상호 배제</td>
      <td>자원 개수 제어</td>
    </tr>
    <tr>
      <td>구조</td>
      <td>Lock 기반</td>
      <td>카운터 기반</td>
    </tr>
    <tr>
      <td>관계</td>
      <td>Binary Semaphore와 유사</td>
      <td>일반화된 동기화 기법</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p>동기화 문제<br />
공유 자원 동시 접근으로 인한 오류 발생 구조</p>

  <p>Race Condition<br />
실행 순서에 따라 결과가 달라지는 문제</p>

  <p>Mutex<br />
하나의 Thread만 접근 가능한 Lock 기반 제어</p>

  <p>Semaphore<br />
여러 스레드 접근 가능, 자원 개수 기반 제어</p>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/5.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Process Synchronization”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/5_Synchronization.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="thread" /><category term="synchronization" /><category term="mutex" /><category term="semaphore" /><summary type="html"><![CDATA[1. 동기화 문제 개념]]></summary></entry><entry><title type="html">[Naver Cloud] NAC(100)</title><link href="https://mooooonmin.github.io/2026/03/30/NCA100/" rel="alternate" type="text/html" title="[Naver Cloud] NAC(100)" /><published>2026-03-30T00:00:00+09:00</published><updated>2026-03-30T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/03/30/NCA100</id><content type="html" xml:base="https://mooooonmin.github.io/2026/03/30/NCA100/"><![CDATA[<h2 id="1-public-ip에-대한-설명-중-틀린-것은">1. Public IP에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>서버당 1개의 Public IP만 부여가 가능하다.</li>
  <li>Outbound시에는 NCP NAT IP로 통신한다.</li>
  <li>Classic 환경에서는 KR-1 존의 Public IP는 KR-2 존의 서버에 부여가 불가능하다.</li>
  <li>서버를 반납해도 Public IP는 반납되지 않는다.</li>
</ul>

<h2 id="2-다음중-네이버-클라우드-플랫폼에서-제공하는-상품이-아닌-것은-무엇인가요">2. 다음중 네이버 클라우드 플랫폼에서 제공하는 상품이 아닌 것은 무엇인가요?</h2>

<ul>
  <li>Cloud Functions</li>
  <li>Container Registry</li>
  <li>Outpost</li>
  <li>SourcePipeline</li>
</ul>

<h2 id="3-네이버-클라우드-플랫폼에는-다양한-상품들이-카테고리로-그룹화되어-있습니다-cloudhadoop-상품은-어떤-카테고리에-속해-있을까요">3. 네이버 클라우드 플랫폼에는 다양한 상품들이 카테고리로 그룹화되어 있습니다. “CloudHadoop” 상품은 어떤 카테고리에 속해 있을까요?</h2>

<ul>
  <li>Compute</li>
  <li>Database</li>
  <li>Analytics</li>
  <li>AI-Application Service</li>
</ul>

<h2 id="4-다음-중-사용자가-agent를-설치해야지만-사용할-수-있는-서비스가-아닌-것은">4. 다음 중, 사용자가 Agent를 설치해야지만 사용할 수 있는 서비스가 아닌 것은?</h2>

<ul>
  <li>Cloud Insight</li>
  <li>System Security Checker</li>
  <li>CLA</li>
  <li>백업 서비스</li>
</ul>

<h2 id="5-현재-네이버-클라우드-플랫폼에서-제공되지-않는-리전은">5. 현재 네이버 클라우드 플랫폼에서 제공되지 않는 리전은?</h2>

<ul>
  <li>홍콩</li>
  <li>미국 동부</li>
  <li>일본</li>
  <li>독일</li>
</ul>

<h2 id="6-네이버-클라우드-플랫폼에서-제공하고-있지-않은-전문화된-클라우드는-어떤-것인가요">6. 네이버 클라우드 플랫폼에서 제공하고 있지 않은 전문화된 클라우드는 어떤 것인가요?</h2>

<ul>
  <li>금융 클라우드</li>
  <li>민간 클라우드</li>
  <li>공공 클라우드</li>
  <li>아카데미 클라우드</li>
</ul>

<h2 id="7-다음-중-콘솔에서-서비스를-신청할-수-없는-서비스는">7. 다음 중 콘솔에서 서비스를 신청할 수 없는 서비스는?</h2>

<ul>
  <li>백업 서비스</li>
  <li>서버 이미지 생성</li>
  <li>스냅샷 기능</li>
  <li>모니터링 서비스</li>
</ul>

<h2 id="8-서버-정지가-필요한-경우가-아닌-것은-복수정답">8. 서버 정지가 필요한 경우가 아닌 것은? (복수정답)</h2>

<ul>
  <li>서버 이미지 생성</li>
  <li>서버 스펙 변경</li>
  <li>서버 반납</li>
  <li>공인 IP 부여</li>
</ul>

<h2 id="9-오토스케일링-설정-시-오토-스케일링-그룹asg에서-설정-가능한-내용이-아닌-것은-무엇인가">9. 오토스케일링 설정 시 오토 스케일링 그룹(ASG)에서 설정 가능한 내용이 아닌 것은 무엇인가?</h2>

<ul>
  <li>오토스케일링으로 생성될 서버의 OS</li>
  <li>오토스케일링에서 사용할 Launch Configuration</li>
  <li>서버 증가, 감소 정책</li>
  <li>일정 설정</li>
</ul>

<h2 id="10-다음이-설명하는-내용은-auto-scaling의-어떤-항목인가">10. 다음이 설명하는 내용은 Auto Scaling의 어떤 항목인가?</h2>

<p>새로운 서버가 생성되었다고 해도, Init-Script 실행이나 업데이트 설치 등의 이유로 실제 서비스 를 수행할 수 있을 정도로 준비되기까지는 시간이 소요될 수 있습니다. 이것은 실제Scaling 이 수행 중이거나 수행 완료된 이후에 모니터링 이벤트 알람이 발생하더라도 무시하도록 설정 한 기간입니다.</p>
<ul>
  <li>쿨다운</li>
  <li>헬스체크</li>
  <li>기대용량</li>
  <li>Policy</li>
</ul>

<hr />

<h2 id="11-data-teleporter에-대한-설명으로-잘못된-것은">11. Data Teleporter에 대한 설명으로 잘못된 것은?</h2>

<ul>
  <li>Data Teleporter 한 대당 100TB의 저장용량을 가지며, 내부적으로 디스크 문제가 최소화될
수 있도록 설계되었습니다.</li>
  <li>별도의 요청이 없다면 Data Teleporter는 최초 대여 후 60일 이내에 네이버 클라우드 플랫
폼으로 반환되어야 합니다.</li>
  <li>Data Teleporter는 고객이 신청한 암호화 키로 256비트 암호화되며, 암호화 키는 장치 내그
어디에도 저장되지 않습니다.</li>
  <li>Linux Server와 Windows Server는 모두 NFS 또는 CIFS 공유 파일시스템으로 연결
(mount) 할 수 있습니다.</li>
</ul>

<h2 id="12-다음-중-nas에-대한-설명-중-잘못된-것은">12. 다음 중, NAS에 대한 설명 중 잘못된 것은?</h2>

<ul>
  <li>NAS는 임계치 설정에 따른 이벤트 알림 기능을 제공한다.</li>
  <li>NAS는 일정한 스케줄에 따라 자동 스냅샷을 완성한다.</li>
  <li>NAS는 리눅스 서버에서 공유 가능한 CIFS 프로토콜을 제공한다.</li>
  <li>네이버클라우드플랫폼에서는 NAS 생성 시 마운트포인트 정보를 제공한다.</li>
</ul>

<h2 id="13-베어메탈에-대한-설명-중-틀린-것은">13. 베어메탈에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>3가지 스펙을 제공하고 있다.</li>
  <li>OS로 Oracle Linux도 제공한다.</li>
  <li>디스크 구성시 RAID 방식을 선택할 수 있다.</li>
  <li>내 서버 이미지, 스냅샷, 추가 스토리지 기능은 제공하지 않는다.</li>
</ul>

<h2 id="14-bare-metal-서버에-대한-설명-중-틀린-것은">14. Bare Metal 서버에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>RAID 1 구성방식만 제공한다.</li>
  <li>요금제는 시간 요금제만 제공한다.</li>
  <li>Init Script 사용이 가능하다.</li>
  <li>Oracle Linux가 제공된다.</li>
</ul>

<h2 id="15-다음-중-네이버-클라우드-플랫폼-서버에-스토리지-추가와-관련하여-틀리게-설명한-것은">15. 다음 중, 네이버 클라우드 플랫폼 서버에 스토리지 추가와 관련하여 틀리게 설명한 것은?</h2>

<ul>
  <li>Linux의 LVM, Window는 동적디스크 할당을 통해 여러 개의 디스크를 하나의 볼륨으로묶
을 수 있습니다.</li>
  <li>서버에 연결된 디스크를 다른 서버로 옮길 수 있습니다.</li>
  <li>사용 중인 디스크의 크기가 부족할 경우, 최대 15개의 스토리지를 추가할 수 있습니다.</li>
  <li>스토리지 당, 100GB, 500GB, 1TB의 단위의 용량만 추가할 수 있습니다.</li>
</ul>

<h2 id="16-네이버클라우드플랫폼에서-제공하는-gpu-서버는-vm에-최대-몇-개의-gpu를-제공할-수-있는지-올바른-답을-고르시오">16. 네이버클라우드플랫폼에서 제공하는 GPU 서버는 VM에 최대 몇 개의 GPU를 제공할 수 있는지 올바른 답을 고르시오.</h2>

<ul>
  <li>1개</li>
  <li>2개</li>
  <li>4개</li>
  <li>그래픽카드 종류마다 장착할 수 있는 개수가 다르다.</li>
</ul>

<h2 id="17-다음-스토리지-상품-특징에-대한-설명으로-맞는-것은">17. 다음 스토리지 상품 특징에 대한 설명으로 맞는 것은?</h2>

<ul>
  <li>NAS는 10GB, 100GB, 500GB 등 다양한 단위로 스토리지 증가가 가능하다.</li>
  <li>Block Storage와 NAS는 모두 공유 가능한 스토리지이다.</li>
  <li>NAS는 동적으로 볼륨 사이즈 조정이 가능하고, 자동 스냅샷 및 이벤트 알람 기능을 제공한다.</li>
  <li>NAS는 Windows 서버만 이용할 수 있는 스토리지다.</li>
</ul>

<h2 id="18-네이버-클라우드-플랫폼-vpc-환경에서-멀티존-이용이-가능한-상품은-복수정답">18. 네이버 클라우드 플랫폼 VPC 환경에서 멀티존 이용이 가능한 상품은? (복수정답)</h2>

<ul>
  <li>Cloud DB for MySQL</li>
  <li>Load Balancer</li>
  <li>Server</li>
  <li>Cloud Hadoop</li>
</ul>

<h2 id="19-cdn-설정-시-설정-항목에-대한-설명-중-올바르지-않은-것은-무엇인가요">19. CDN+ 설정 시 설정 항목에 대한 설명 중 올바르지 않은 것은 무엇인가요?</h2>

<ul>
  <li>Purge : CDN 캐시 서버에 저장되어 있는 콘텐츠를 삭제하는 기능</li>
  <li>Secure Token : 토큰 기반의 인증으로 허용된 접근에만 콘텐츠를 전달</li>
  <li>lgnore Query String : 콘텐츠가 지정된 도메인에만 제공되며 다른 사이트에서 참조되는것을 방지</li>
  <li>Access Log : CDN 사용 로그를 확인할 수 있는 기능</li>
</ul>

<h2 id="20-다음-상품-중-상품-생성-시-cdn을-함께-생성하는-기능이-없는-상품은-무엇인가요">20. 다음 상품 중 상품 생성 시 CDN을 함께 생성하는 기능이 없는 상품은 무엇인가요?</h2>

<ul>
  <li>VOD Transcoder</li>
  <li>Image Optimizer</li>
  <li>Live Station</li>
  <li>VOD Station</li>
</ul>

<hr />

<h2 id="21-다음-중-vpc에서-사용-가능한-ip-대역은-무엇인가요">21. 다음 중 VPC에서 사용 가능한 IP 대역은 무엇인가요?</h2>

<ul>
  <li>10.0.0.0/12</li>
  <li>172.17.0.0/16</li>
  <li>192.168.0.0/8</li>
  <li>192.168.1.0/3 0</li>
</ul>

<h2 id="22-네이버-클라우드-플랫폼의-vpc-환경에서-acg에-대한-설명으로-옳은-것은-무엇인가요">22. 네이버 클라우드 플랫폼의 VPC 환경에서 ACG에 대한 설명으로 옳은 것은 무엇인가요?</h2>

<ul>
  <li>프로토콜은 TCP, UDP만 지원한다.</li>
  <li>Subnet당 100개 생성이 가능하다.</li>
  <li>서버와의 맵핑 정보 변경이 가능하다.</li>
  <li>Rule에 우선순위가 있다.</li>
</ul>

<h2 id="23-image-optimizer에-대한-설명으로-틀린-것을-고르시오">23. Image Optimizer에 대한 설명으로 틀린 것을 고르시오.</h2>

<ul>
  <li>이미지 리사이즈 기능을 제공한다.</li>
  <li>이미지 크롭 기능을 제공한다.</li>
  <li>이미지 자동회전 기능을 제공한다.</li>
  <li>이미지 일관 변환 및 저장 기능을 제공한다.</li>
</ul>

<h2 id="24-애플리케이션-로드밸런서의-특징으로-틀린-것은-무엇인가요">24. 애플리케이션 로드밸런서의 특징으로 틀린 것은 무엇인가요?</h2>

<ul>
  <li>HTTP, HTTPS 프로토콜 지원</li>
  <li>고정 IP 제공</li>
  <li>URL 기반 분기 가능</li>
  <li>별도의 설정 없이 Client IP 확인 가능</li>
</ul>

<h2 id="25-nca네이버-클라우드-플랫폼의-vpc-환경에서-acg-룰이-적용되는-장치는-무엇인가요">25. NCA네이버 클라우드 플랫폼의 VPC 환경에서 ACG 룰이 적용되는 장치는 무엇인가요?</h2>

<ul>
  <li>서버</li>
  <li>서버 NIC</li>
  <li>IP</li>
  <li>Subnet</li>
</ul>

<h2 id="26-네이버-클라우드-플랫폼-vpc의-subnet에-대한-설명으로-틀린-것은-무엇인가요">26. 네이버 클라우드 플랫폼 VPC의 Subnet에 대한 설명으로 틀린 것은 무엇인가요?</h2>

<ul>
  <li>Private Subnet과 Public Subnet이 있습니다.</li>
  <li>서버들은 Private Subnet과 Public Subnet 모두 위치 시킬 수 있습니다.</li>
  <li>공인 IP가 필요한 로드밸런서는 Public Subnet에 위치합니다.</li>
  <li>Private Subnet에 있는 서버들은 공인 IP 부여를 할 수 없습니다.</li>
</ul>

<h2 id="27-다음-상품-중-이벤트-설정이-불가능한-상품은-무엇인지-고르시오-복수정답">27. 다음 상품 중 이벤트 설정이 불가능한 상품은 무엇인지 고르시오. (복수정답)</h2>

<ul>
  <li>Server</li>
  <li>NAS</li>
  <li>Object Storage</li>
  <li>CDN+</li>
</ul>

<h2 id="28-네이버-클라우드-플랫폼-상품-중-apache-kafka-cluster를-제공하는-서비스-이름은-무엇인-가요">28. 네이버 클라우드 플랫폼 상품 중 Apache Kafka Cluster를 제공하는 서비스 이름은 무엇인 가요?</h2>

<ul>
  <li>Cloud Data Streaming Service</li>
  <li>Cloud Search</li>
  <li>Data Analytics Service</li>
  <li>Cloud Advisor</li>
</ul>

<h2 id="29-네이버-클라우드-플랫폼의-effective-log-search--analytics의-로그전송-방법이-아닌것-은-무엇인가요">29. 네이버 클라우드 플랫폼의 Effective Log Search &amp; Analytics의 로그전송 방법이 아닌것 은 무엇인가요?</h2>

<ul>
  <li>HTTPS SDK</li>
  <li>IOS SDK</li>
  <li>LOG SDK</li>
  <li>SOCK SDK</li>
</ul>

<h2 id="30-workplace에서-제공되지-않는-기능은-무엇인가요">30. Workplace에서 제공되지 않는 기능은 무엇인가요?</h2>

<ul>
  <li>결제시스템</li>
  <li>인사시스템</li>
  <li>스프레드 시트</li>
  <li>메신저</li>
</ul>

<hr />

<h2 id="31-다음-중-cloud-db-for-mysql과-관련하여-잘못된-설명은">31. 다음 중, Cloud DB for MySQL과 관련하여 잘못된 설명은?</h2>

<ul>
  <li>Cloud DB for MySQL은 자동 Fail-over 기능을 제공한다.</li>
  <li>Cloud DB for MySQL의 최대 백업 파일 보관은 20일이다.</li>
  <li>Cloud DB for MySQL은 최대 10개의 Slave DB를 생성할 수 있다.</li>
  <li>Cloud DB for MySQL은 Slave DB로의 읽기 부하분산이 가능하다.</li>
</ul>

<h2 id="32-네이버-클라우드-플랫폼-vpc-환경에서의-acg에-대한-설명-중-틀린-것은">32. 네이버 클라우드 플랫폼 VPC 환경에서의 ACG에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>아웃바운드에 대한 설정이 가능하다.</li>
  <li>접근 허용에 대한 룰을 설정한다.</li>
  <li>ACG 하나당 최대 100개의 룰을 적용할 수 있다.</li>
  <li>서버는 최대 5개의 ACG를 맵핑할 수 있다.</li>
</ul>

<h2 id="33-security-monitoring에서-제공되지-않는-항목은">33. Security Monitoring에서 제공되지 않는 항목은?</h2>

<ul>
  <li>IDS</li>
  <li>IPS</li>
  <li>WAF</li>
  <li>침해탐지</li>
</ul>

<h2 id="34-서버-생성시-init-script를-통해-서버를-구성할-수-있습니다-centos-7x버전의-서버를-생성하면서-httpd를-설치하도록-init-script에-명령어를-입력하고자-하는-경우-올바른명령어-는-무엇인가요">34. 서버 생성시 init script를 통해 서버를 구성할 수 있습니다. CentOS 7.x버전의 서버를 생성하면서 HTTPD를 설치하도록 init script에 명령어를 입력하고자 하는 경우 올바른명령어 는 무엇인가요?</h2>

<ul>
  <li>install httpd</li>
  <li>yum install httpd</li>
  <li>yum install -y httpd</li>
  <li>yum install –a httpd</li>
</ul>

<h2 id="35-마이크로서버에-대한-설명-중-틀린-것은">35. 마이크로서버에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>Network interface를 만들 수 없다.</li>
  <li>1vCPU, 1GB 메모리이다.</li>
  <li>OS는 CentOS, Ubuntu, Windows를 지원한다.</li>
  <li>결제수단 최초 등록 월부터 1년간 이용요금이 무료이다.</li>
</ul>

<h2 id="36-centos를-사용중인-vm에서-파일시스템-증설-관련-내용-중-틀린-것은-복수정답">36. CentOS를 사용중인 VM에서 파일시스템 증설 관련 내용 중 틀린 것은? (복수정답)</h2>

<ul>
  <li>NCP 콘솔에서 Block Storage 크기 변경 액션을 수행하면 사전 설치된 Agent가 자동으로 파일시스템을 확장한다.</li>
  <li>최초 구축 시 Block Storage로 할당하는 부분은 LVM으로 구성하여 파일시스템 확장필요시
PV, LV를 추가한다.</li>
  <li>Block Storage 크기 변경 액션을 통해 자유롭게 할당 용량을 증설/감설 할 수 있다.</li>
  <li>
    <p>Block Storage 크기 변경 액션을 수행하려면, 대상 블록 스토리지가 사용중일 경우 파일시스
템을 연결 해제해야 한다.</p>

    <p>→ NHN 클라우드 콘솔에서 변경하는 스토리지 크기는 실제 서버 내에서 변경되지 않으며 직접 다시 설정해줘야 한다. 자동으로 파일시스템을 확장하지 않습니다. 사용자가 직접 파일시스템의 커맨드를 이용하여 확장해야 합니다.</p>
  </li>
</ul>

<h2 id="37-다음-기능을-이용하기-위해-사전에-서버-정지가-필수적인-기능은">37. 다음 기능을 이용하기 위해, 사전에 서버 정지가 필수적인 기능은?</h2>

<ul>
  <li>내 서버 이미지</li>
  <li>스냅샷</li>
  <li>서버 이미지 빌더</li>
  <li>서버 반납</li>
</ul>

<h2 id="38-다음-중-block-storage에-대한-설명-중-잘못된-것은">38. 다음 중 Block Storage에 대한 설명 중 잘못된 것은?</h2>

<ul>
  <li>데이터 손실 방지를 최우선으로 설계하여 모든 요소가 이중화 되어 있습니다.</li>
  <li>2000GB까지 생성 가능하며, 서버 1대당 10개의 스토리지를 사용할 수 있습니다.</li>
  <li>기동 중단이나 성능 저하 없이 탄련적으로 성능 변경이 가능합니다.</li>
  <li>HDD/SDD 두 가지 타입으로 제공되며 목적에 맞게 적절한 스토리지 종류를 선택하여사
용할 수 있습니다.</li>
</ul>

<h2 id="39-네이버-클라우드-플랫폼에서-제공하는-gpu-카드는">39. 네이버 클라우드 플랫폼에서 제공하는 GPU 카드는?</h2>

<ul>
  <li>P40</li>
  <li>T4</li>
  <li>V100</li>
  <li>P40, T4, V100 모두 제공</li>
</ul>

<h2 id="40-네이버-클라우드-플랫폼-서버에-스토리지-추가를-할-경우-단일-추가-스토리지당-최대-용량은-얼마인가요">40. 네이버 클라우드 플랫폼 서버에 스토리지 추가를 할 경우 단일 추가 스토리지당 최대 용량은 얼마인가요?</h2>

<ul>
  <li>1TB</li>
  <li>2TB</li>
  <li>3TB</li>
  <li>4TB</li>
</ul>

<hr />

<h2 id="41-네이버-클라우드-플랫폼에-서버를-생성하고-네트워크-구성을-하였을-때-그에-대한-설명으-로-틀린-것은-무엇인가요">41. 네이버 클라우드 플랫폼에 서버를 생성하고 네트워크 구성을 하였을 때, 그에 대한 설명으 로 틀린 것은 무엇인가요?</h2>

<ul>
  <li>서버는 기본적으로 <a href="http://10.xxx/">10.xxx</a> / 172.16xx / 192.168.xx 대역 중 하나의 사설 IP를 부여받
을 수 있다.</li>
  <li>서버의 사설망 네트워크 대역은 최소 /28부터 최대 /16 범위까지 설정 가능하다.</li>
  <li>Public IP를 연결하면 서버에서 ifconfig/ipconfig 명령어를 칠 시 Public IP가 보인다.</li>
  <li>서버는 기본적으로 1Gps 대역폭의 인터페이스를 생성한다.</li>
</ul>

<h2 id="42-다음-상품-중-media-카테고리-상품이-아닌-것은-무엇인가요">42. 다음 상품 중 Media 카테고리 상품이 아닌 것은 무엇인가요?</h2>

<ul>
  <li>Live Station</li>
  <li>VOD Station</li>
  <li>VOD Transcoder</li>
  <li>Elastic Transcoder</li>
</ul>

<h2 id="43-load-balancer-상품에-대한-설명-중-잘못된-것은">43. Load Balancer 상품에 대한 설명 중 잘못된 것은?</h2>

<ul>
  <li>Classic 플랫폼에서의 헬스체크 주기는 6초이다.</li>
  <li>Classic 플랫폼에서는 3번 응답이 없는 경우 Unbind한다.</li>
  <li>VPC 플랫폼에서 한 대의 서버는 여러 Target Group에 포함될 수 없다.</li>
  <li>VPC 플랫폼에서는 Target Group에서 헬스체크 주기를 수정할 수 있다.</li>
</ul>

<h2 id="44-네이버-클라우드-플랫폼-vpc의-nacl에-대한-설명으로-틀린-것은">44. 네이버 클라우드 플랫폼 VPC의 NACL에 대한 설명으로 틀린 것은?</h2>

<ul>
  <li>Subnet 단위로 적용된다.</li>
  <li>Allow Deny 규칙 모두 지원한다.</li>
  <li>Stateful 방식이다.</li>
  <li>우선순위에 따라 규칙을 반영한다.</li>
</ul>

<h2 id="45-load-balancer로-연결-가능한-프로토콜이-아닌-것은-무엇인가요">45. Load Balancer로 연결 가능한 프로토콜이 아닌 것은 무엇인가요?</h2>

<ul>
  <li>TCP</li>
  <li>UDP</li>
  <li>HTTPS</li>
  <li>SSL</li>
</ul>

<h2 id="46-vpc-환경에서-load-balancer를-생성하려고-합니다-target-group의-디폴트-포트-헬스체-크-주기는-얼마인가요">46. VPC 환경에서 Load Balancer를 생성하려고 합니다. Target Group의 디폴트 포트 헬스체 크 주기는 얼마인가요?</h2>

<ul>
  <li>6초</li>
  <li>10초</li>
  <li>30초</li>
  <li>1분</li>
</ul>

<h2 id="47-네이버-클라우드-플랫폼의-vpc-환경에서-서버-nic-하나에-적용할-수-있는-acg의-개수-는">47. 네이버 클라우드 플랫폼의 VPC 환경에서 서버 NIC 하나에 적용할 수 있는 ACG의 개수 는?</h2>

<ul>
  <li>2개</li>
  <li>3개</li>
  <li>4개</li>
  <li>5개</li>
</ul>

<h2 id="48-네이버-클라우드-플랫폼-로드밸런서에서-제공되지-않는-로드-분배-알고리즘은">48. 네이버 클라우드 플랫폼 로드밸런서에서 제공되지 않는 로드 분배 알고리즘은?</h2>

<ul>
  <li>Round Robin</li>
  <li>Weighted Round Robin</li>
  <li>Least Connection</li>
  <li>Source IP Hash</li>
</ul>

<h2 id="49-네이버-클라우드-플랫폼-vpc-환경에서-제공하는-로드밸런서-중-ssl인증을-지원하는-로드-밸런서는-무엇인가요">49. 네이버 클라우드 플랫폼 VPC 환경에서 제공하는 로드밸런서 중 SSL인증을 지원하는 로드 밸런서는 무엇인가요?</h2>

<ul>
  <li>애플리케이션 로드밸런서</li>
  <li>네트워크 로드밸런서</li>
  <li>하이브리드 로드밸런서</li>
  <li>애플리케이션 프록시 로드밸런서</li>
</ul>

<h2 id="50-다음-로드밸런서-관련-설명-중-틀린-것은">50. 다음 로드밸런서 관련 설명 중 틀린 것은?</h2>

<ul>
  <li>HTTP Keep-Alive : 연결된 Connection을 일정시간 동안 유지하면
서 다시 연결을 요청할 때 기존에 연결된 Connection을 재사용하는 옵션</li>
  <li>Connection ilde Timeout : 로드밸런서와 연결된 Connection을 유지하는 시간으로 해당시 간이 지나면 Connection이 강제로 Close되어 연결 해제</li>
  <li>Proxy Protocol : 로드밸런서에서 TCP, SSL 프로토콜 이용 시, Proxy 환경에서Connection을 요청하는 클라이언트의 IP 주소를 확인할 수 있는 프로토콜</li>
  <li>로드밸런서에서 발급된 CNAME을 고객이 보유한 CNAME과 ROOT DOMAIN에 등록가능</li>
</ul>

<hr />

<h2 id="51-네이버-클라우드-플랫폼-vpc의-private-subnet에-대한-설명으로-틀린-것은-무엇인가요">51. 네이버 클라우드 플랫폼 VPC의 Private Subnet에 대한 설명으로 틀린 것은 무엇인가요?</h2>

<ul>
  <li>Private Subnet에 있는 서버들은 공인 IP 부여를 할 수 없습니다.</li>
  <li>Private Subnet에 있는 서버들은 Internet Gateway를 통해 외부 인터넷으로 나갈 수있습
니다.</li>
  <li>네이버 클라우드 플랫폼의 일부 상품들은 기본적으로 Public Subnet에 위치해야 합니다.</li>
  <li>Private Subnet을 Public Subnet으로 전환할 수 없습니다.</li>
</ul>

<h2 id="52-네이버-클라우드-플랫폼에서-하나의-계정으로-만들-수-있는-최대-vpc-갯수는-몇-개인가요">52. 네이버 클라우드 플랫폼에서 하나의 계정으로 만들 수 있는 최대 VPC 갯수는 몇 개인가요?</h2>

<ul>
  <li>1개</li>
  <li>2개</li>
  <li>3개</li>
  <li>4개</li>
</ul>

<h2 id="53-네이버-클라우드-플랫폼-block-storage에서-제공하는-기능이-아닌-것은">53. 네이버 클라우드 플랫폼 Block Storage에서 제공하는 기능이 아닌 것은?</h2>

<ul>
  <li>Detach / Attach 기능</li>
  <li>Snapshot 기능</li>
  <li>Disk 용량 증설</li>
  <li>Disk 용량 축소</li>
</ul>

<h2 id="54-auto-scaling-구성-시-설정할-수-있는-항목이-아닌-것은">54. Auto Scaling 구성 시 설정할 수 있는 항목이 아닌 것은?</h2>

<ul>
  <li>NAS</li>
  <li>ACG</li>
  <li>Load Balancer</li>
  <li>VPC / Subnet</li>
</ul>

<h2 id="55-네이버-클라우드-플랫폼의-vpc-환경에서-제공하는-로드밸런서-중-세션-유지가-필요한-tcp-기반-애플리케이션에-이용할-수-있는-로드밸런서는-무엇인가요">55. 네이버 클라우드 플랫폼의 VPC 환경에서 제공하는 로드밸런서 중 세션 유지가 필요한 TCP 기반 애플리케이션에 이용할 수 있는 로드밸런서는 무엇인가요?</h2>

<ul>
  <li>애플리케이션 로드밸런서</li>
  <li>네트워크 로드밸런서</li>
  <li>네트워크 프록시 로드밸런서</li>
  <li>애플리케이션 프록시 로드밸런서</li>
</ul>

<h2 id="56-system-security-checker에서-linux-서버의-점검-항목이-아닌-것은">56. System Security Checker에서 Linux 서버의 점검 항목이 아닌 것은?</h2>

<ul>
  <li>UMASK 설정관리</li>
  <li>Guest 계정 사용 제한</li>
  <li>홈 디렉토리 권한 설정</li>
  <li>Anonymous FTP 비활성화</li>
</ul>

<h2 id="57-네이버-클라우드-플랫폼-cli를-이용하고자-할-때-사용하는-명령어는-무엇인가요">57. 네이버 클라우드 플랫폼 CLI를 이용하고자 할 때 사용하는 명령어는 무엇인가요?</h2>

<ul>
  <li>Ncpcli</li>
  <li>Ncloud</li>
  <li>Ncloudcli</li>
  <li>Ncli</li>
</ul>

<h2 id="58-다음-중-클라우드의-특징에-대해-잘못-설명한-것은-무엇인가요">58. 다음 중 클라우드의 특징에 대해 잘못 설명한 것은 무엇인가요?</h2>

<ul>
  <li>동일한 네트웍 사용량을 기준으로 보면 Legacy 인프라보다 클라우드가 저렴하다.</li>
  <li>Scale-In/Out이 Legacy 인프라보다 자유롭다.</li>
  <li>요금은 사용량에 따른 종량제를 기본으로 하지만 상품에 따라 정액제 요금도 존재한다.</li>
  <li>사용할 수 있는 서버 OS가 제한한다.</li>
</ul>

<h2 id="59-네이버-클라우드-플랫폼에는-다양한-상품들이-카테고리로-그룹화되어있습니다-vmware-on-ncloud-상품은-어떤-카테고리에-속해-있을까요">59. 네이버 클라우드 플랫폼에는 다양한 상품들이 카테고리로 그룹화되어있습니다. “VMware on Ncloud” 상품은 어떤 카테고리에 속해 있을까요?</h2>

<ul>
  <li>Compute</li>
  <li>Server</li>
  <li>Management</li>
  <li>Hybrid &amp; Private Cloud</li>
</ul>

<h2 id="60-다음-중-네이버-클라우드-플랫폼의-live-station의-특징이-아닌-것은">60. 다음 중 네이버 클라우드 플랫폼의 Live Station의 특징이 아닌 것은?</h2>

<ul>
  <li>방송 서비스 구현에 꼭 필요한 Thumbnail image를 추출하고 직접 관리할 수 있습니다.</li>
  <li>Live Station 생성 시 CDN을 동시에 생성할 수 없기에 별도로 생성 후 따로 연동해줘야 합니
다.</li>
  <li>Live Station은 사용자가 라이브 방송 도중 일시정지를 하고 다시 재생이 가능하도록 타임머
신(Time Shift)기능을 제공합니다.</li>
  <li>라이브 방송 종료 후, 녹화 영상을 저장할 수 있습니다.</li>
</ul>

<hr />

<h2 id="61-네이버-클라우드-플랫폼-cdn에-대한-설명-중-틀린-것은">61. 네이버 클라우드 플랫폼 CDN+에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>사용량에 따라 요금이 다르다.</li>
  <li>요금은 일 평균 전송량 X 일 수로 계산된다.</li>
  <li>월 전송량 요금에 월 요청 수 요금이 합산되어 진다.</li>
  <li>CDN+와 GCDN은 요금 체계가 다르다.</li>
</ul>

<h2 id="62-application-서비스-각각의-서비스-명과-설명-중-잘못된-것은">62. Application 서비스 각각의 서비스 명과 설명 중 잘못된 것은?</h2>

<ul>
  <li>Clova Speech Recognition : 사람의 목소리를 텍스트로 바꿔주어 다양한 음성인식 서비스에 활용 가능한 서버</li>
  <li>Clova Face Recognition : 이미지 속의 얼굴을 감지하고 인식하여 얻은 다양한 정보를 제공할 수 있는 서비스</li>
  <li>Papago NMT : 입력한 텍스트를 대규모 학습 데이터를 기반으로 여러 나라의 언어로 지동 번역해주는 서비스</li>
  <li>Object Detection : 입력한 텍스트를 자연스러운 목소리로 재생해주는 음성 합성 API서비스</li>
</ul>

<h2 id="63-네이버-클라우드-플랫폼-app-safer에서-앱-실행-환경-탐지가-가능한-부분이-아닌-것은">63. 네이버 클라우드 플랫폼 App Safer에서 앱 실행 환경 탐지가 가능한 부분이 아닌 것은?</h2>

<ul>
  <li>루팅 탐지</li>
  <li>애플리케이션 변조 탐지</li>
  <li>메모리 변조 탐지</li>
  <li>APK 추출 탐지</li>
</ul>

<h2 id="64-vpc-플랫폼-상의-상품-의존성-관계를-상품--의존성-형태로-나타냈을-때-올바르지-않은-관계는">64. VPC 플랫폼 상의 상품 의존성 관계를 [상품 : 의존성] 형태로 나타냈을 때, 올바르지 않은 관계는?</h2>

<ul>
  <li>VPC : 리전</li>
  <li>Subnet : Zone</li>
  <li>Init Script : Zone</li>
  <li>Cloud DB : Multi Zone</li>
</ul>

<h2 id="65-네이버-클라우드-플랫폼에서는-다양한-소통-채널을-통해-사용자와-소통을-진행하고-있습니다-현재-네이버-클라우드-플랫폼에서-운영하고-있지-않은-채널은-무엇인가요">65. 네이버 클라우드 플랫폼에서는 다양한 소통 채널을 통해 사용자와 소통을 진행하고 있습니다. 현재 네이버 클라우드 플랫폼에서 운영하고 있지 않은 채널은 무엇인가요?</h2>

<ul>
  <li>블로그</li>
  <li>유튜브</li>
  <li>페이스북</li>
  <li>트위터</li>
</ul>

<h2 id="66-cloud-log-analytics에-저장할-수-있는-최대-로그-용량은">66. Cloud Log Analytics에 저장할 수 있는 최대 로그 용량은?</h2>

<ul>
  <li>100GB</li>
  <li>200GB</li>
  <li>300GB</li>
  <li>사용자가 설정할 수 있다.</li>
</ul>

<h2 id="67-outbound-mailer에서-메일-제목과-본문에서-스프레드-시트나-db의열-데이터를-순차적으-로-입력하기-위한-기능은">67. Outbound Mailer에서 메일 제목과 본문에서 스프레드 시트나 DB의열 데이터를 순차적으 로 입력하기 위한 기능은?</h2>

<ul>
  <li>변수 치환</li>
  <li>대량 변수 입력</li>
  <li>치환 태그</li>
  <li>DM 입력</li>
</ul>

<h2 id="68-cloud-log-analytics의-최대-저장-기간은">68. Cloud Log Analytics의 최대 저장 기간은?</h2>

<ul>
  <li>30일</li>
  <li>120일</li>
  <li>180일</li>
  <li>사용자가 설정할 수 있다.</li>
</ul>

<h2 id="69-네이버-클라우드-플랫폼-챗봇-서비스와-채널-연동되는-서비스가-아닌-것은">69. 네이버 클라우드 플랫폼 챗봇 서비스와 채널 연동되는 서비스가 아닌 것은?</h2>

<ul>
  <li>라인</li>
  <li>톡톡</li>
  <li>페이스북</li>
  <li>트위터</li>
</ul>

<h2 id="70-네이버-클라우드-플랫폼-ai-서비스에서-제공하지-않는-상품은">70. 네이버 클라우드 플랫폼 AI 서비스에서 제공하지 않는 상품은?</h2>

<ul>
  <li>Clova OCR</li>
  <li>Clova Image Recognition</li>
  <li>Clova Voice</li>
  <li>Clova Face Recognition</li>
</ul>

<hr />

<h2 id="71-클라우드는-기존-legacy와-비교하여-다양한-장점이-있습니다-아래-보기-중-클라우드-장점-이-아닌-것은">71. 클라우드는 기존 Legacy와 비교하여 다양한 장점이 있습니다. 아래 보기 중 클라우드 장점 이 아닌 것은?</h2>

<ul>
  <li>동일한 성능의 서버를 비교하였을 때 Legacy보다 클라우드가 비용 경쟁력이 높다.</li>
  <li>서버 구성 시 짧은 시간 내에 구성이 가능하다.</li>
  <li>기본적인 보안 장비 및 네트웍이 구성되어 있다.</li>
  <li>오토스케일링 플랫폼과 같이 비용 효율적인 상품들이 준비되어 있다.</li>
</ul>

<h2 id="72-네이버-클라우드-플랫폼에서-제공하지-않는-os는">72. 네이버 클라우드 플랫폼에서 제공하지 않는 OS는?</h2>

<ul>
  <li>CentOS</li>
  <li>Oracle Linux</li>
  <li>Debian</li>
  <li>Ubuntu</li>
</ul>

<h2 id="73-vpc-플랫폼에서-서버-정지-시-요금-할인이-적용되지-않는-서버-타입은">73. VPC 플랫폼에서 서버 정지 시 요금 할인이 적용되지 않는 서버 타입은?</h2>

<ul>
  <li>Standard</li>
  <li>High-CPU</li>
  <li>High-메모리</li>
  <li>GPU</li>
</ul>

<h2 id="74-네이버-클라우드-플랫폼에서-제공하는-시스템-로그-분석-서비스는">74. 네이버 클라우드 플랫폼에서 제공하는 시스템 로그 분석 서비스는?</h2>

<ul>
  <li>RUA</li>
  <li>CLA</li>
  <li>ELSA</li>
  <li>SENS</li>
</ul>

<h2 id="75-오토스케일링을-구성하고자-할-때-오토스케일링-그룹asg을-구성하여야-한다-오토스케일링-그룹에-대한-설명으로-틀린-것은">75. 오토스케일링을 구성하고자 할 때 오토스케일링 그룹(ASG)을 구성하여야 한다. 오토스케일링 그룹에 대한 설명으로 틀린 것은?</h2>

<ul>
  <li>하나의 그룹에서 생성 가능한 최대 서버 대수는 30대이다.</li>
  <li>기대 용량은 최소 용량보다 크거나 같아야 한다.</li>
  <li>헬스체크 유형에는 서버. 네트워크 트래픽, 로드밸런서가 있다.</li>
  <li>하나의 ASG에는 최대 10개의 로드밸런서를 연결할 수 있다.</li>
</ul>

<h2 id="76-vpc-환경--classic-2세대-서버의-스펙-중-생성-불가능한-서버-스펙은-무엇인가요">76. VPC 환경 / Classic 2세대 서버의 스펙 중 생성 불가능한 서버 스펙은 무엇인가요?</h2>

<ul>
  <li>vCPU 4개, RAM 8GB</li>
  <li>vCPU 8개, RAM 8GB</li>
  <li>vCPU 2개, RAM 8GB</li>
  <li>vCPU 16개, RAM 128GB</li>
</ul>

<h2 id="77-오토스케일링의-launch-configuration-구성-시-구성-가능한-항목이-아닌-것을-고르시-오">77. 오토스케일링의 Launch Configuration 구성 시 구성 가능한 항목이 아닌 것을 고르시 오.</h2>

<ul>
  <li>생성될 서버의 OS</li>
  <li>사전에 만들어놓은 내 서버 이미지</li>
  <li>Init Script</li>
  <li>로드밸런서</li>
</ul>

<h2 id="78-서버-생성시-init-script를-통해-서버를-구성할-수-있습니다-centos-7x버전의-서버를-생성하면서-httpd를-설치한-후-httpd가-자동으로-가동되도록-init-script에-명령어를입력하고-자-하는-경우-올바른-명령어는-무엇인가요">78. 서버 생성시 init script를 통해 서버를 구성할 수 있습니다. CentOS 7.x버전의 서버를 생성하면서 HTTPD를 설치한 후, HTTPD가 자동으로 가동되도록 init script에 명령어를입력하고 자 하는 경우 올바른 명령어는 무엇인가요?</h2>

<ul>
  <li>systemctl start httpd</li>
  <li>chkconfig start httpd</li>
  <li>systemctl enable httpd</li>
  <li>chkconfig on httpd</li>
</ul>

<h2 id="79-백업-상품-신청서-작성-시-필요한-정보가-아닌-것은">79. 백업 상품 신청서 작성 시 필요한 정보가 아닌 것은?</h2>

<ul>
  <li>백업 받을 서버의 호스트명</li>
  <li>백업 받을 서버의 비공인 IP</li>
  <li>백업 프로세스의 CPU 사용량 제한 여부</li>
  <li>데이터 사이즈</li>
</ul>

<h2 id="80-vpc-환경--classic-2세대-서버의-standard-서버-스펙-중-생성-가능한-서버-스펙은-무엇인가요">80. VPC 환경 / Classic 2세대 서버의 Standard 서버 스펙 중 생성 가능한 서버 스펙은 무엇인가요?</h2>

<ul>
  <li>vCPU 2개, RAM 8GB</li>
  <li>vCPU 2개, RAM 4GB</li>
  <li>vCPU 2개, RAM 16GB</li>
  <li>vCPU 4개, RAM 4GB</li>
</ul>

<hr />

<h2 id="81-서버-패스워드에-대한-설명-중-틀린-것은">81. 서버 패스워드에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>초기 패스워드는 서버 생성 시 생성한 인증키를 가지고 확인할 수 있다.</li>
  <li>서버에서 패스워드를 변경 후 패스워드를 까먹은 경우 기존에 생성한 인증키를 통해 패스워드를 확인할 수 있다.</li>
  <li>서버 생성 시 생성한 인증키는 다른 인증키로 교체할 수 있다.</li>
  <li>서버 초기 패스워드는 복잡한 문자열로 부여한다.</li>
</ul>

<h2 id="82-ssd-스토리지의-크기가-400gb일-때-max-iops는-얼마인가">82. SSD 스토리지의 크기가 400GB일 때 MAX IOPS는 얼마인가?</h2>

<ul>
  <li>2000</li>
  <li>8000</li>
  <li>16000</li>
  <li>20000</li>
</ul>

<h2 id="83-vpc-환경--classic-2세대-서버의-high-메모리-서버-스펙-중-생성-가능한-서버-스펙은-무엇인가요">83. VPC 환경 / Classic 2세대 서버의 High 메모리 서버 스펙 중 생성 가능한 서버 스펙은 무엇인가요?</h2>

<ul>
  <li>vCPU 4개, RAM 8GB</li>
  <li>vCPU 8개, RAM 8GB</li>
  <li>vCPU 2개, RAM 8GB</li>
  <li>vCPU 16개, RAM 128GB</li>
</ul>

<h2 id="84-서버-생성-시-선택-가능한-스토리지-종류에-대한-설명-중-틀린-것은">84. 서버 생성 시 선택 가능한 스토리지 종류에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>SSD 타입은 저장장치가 SSD인 디스크이다.</li>
  <li>HDD 타입은 저장장치가 SATA인 디스크이다.</li>
  <li>서버 타입에 따라 NVMe 디스크를 사용할 수 있다.</li>
  <li>SSD 타입은 MAS IOPS가 지정된다</li>
</ul>

<h2 id="85-vpc-환경--classic-2세대-서버의-high-cpu-서버-스펙-중-생성-가능한-서버-스펙은-무엇인가요">85. VPC 환경 / Classic 2세대 서버의 High CPU 서버 스펙 중 생성 가능한 서버 스펙은 무엇인가요?</h2>

<ul>
  <li>vCPU 4개, RAM 8GB</li>
  <li>vCPU 8개, RAM 8GB</li>
  <li>vCPU 2개, RAM 8GB</li>
  <li>vCPU 16개, RAM 128GB</li>
</ul>

<h2 id="86-vpc-환경에서-사용-중인-vm에-acg-관리-작업으로-맞는-것을-고르시오">86. VPC 환경에서 사용 중인 VM에 ACG 관리 작업으로 맞는 것을 고르시오.</h2>

<ul>
  <li>VM 기동 중에는 ACG 변경이 불가능하므로 VM을 정지시킨 후 ACG를 변경한다.</li>
  <li>ACG는 서버 NIC에 매핑된다.</li>
  <li>하나의 서버는 최대 2개의 ACG와 매핑될 수 있다.</li>
  <li>ACG는 VM당 1개만 선택할 수 있으므로 타 VM과 공유하여 사용하지 않는 것이 좋다.</li>
</ul>

<h2 id="87-linux용-init-script로-생성-불가능한-스크립트-언어는">87. Linux용 Init Script로 생성 불가능한 스크립트 언어는?</h2>

<ul>
  <li>bash</li>
  <li>perl</li>
  <li>python</li>
  <li>php</li>
</ul>

<h2 id="88-bare-metal-서버-기능-설명으로-맞는-것은">88. Bare-Metal 서버 기능 설명으로 맞는 것은?</h2>

<ul>
  <li>스토리지 RAID 설정은 RAID 1, RAID 1+0을 제공한다.</li>
  <li>운영체제로 Oracle Linux를 지원한다.</li>
  <li>로컬 디스크 추가가 가능하다.</li>
  <li>서버 정지 시에는 스토리지 사용 요금만 과금한다.</li>
</ul>

<h2 id="89-object-storage에-대한-설명-중-틀린-것은">89. Object Storage에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>파일 단위의 데이터 저장, 공유, 배포가 가능하여 콘텐츠를 저장하고, 다른 사용자에게공
유하거나 배포할 수 있습니다.</li>
  <li>대용량 데이터의 저장소로 활용할 수 있습니다.</li>
  <li>네이버 클라우드 플랫폼 사용자가 아닌 외부 사용자에게 파일 접근 권한을 제공하기 위해서는 반드시 “폴더 공개하기” 기능을 사용해야 합니다.</li>
  <li>CDN 상품과 연동하여 사용할 수 있습니다.</li>
</ul>

<h2 id="90-서버-스토리지에-대한-설명으로-맞는-것은">90. 서버 스토리지에 대한 설명으로 맞는 것은?</h2>

<ul>
  <li>부팅 스토리지가 HDD인 경우, 추가 스토리지로 HDD만 추가할 수 있다.</li>
  <li>VM이 운영 중인 상태에서도 Disk 변경이 가능하다.</li>
  <li>디스크의 사이즈를 기존보다 크게만 변경이 가능하다.</li>
  <li>High-메모리, Bare-Metal 서버의 경우 스토리지 추가가 지원되지 않는다.</li>
</ul>

<hr />

<h2 id="91-백업-서비스-설명-중-틀린-것은">91. 백업 서비스 설명 중 틀린 것은?</h2>

<ul>
  <li>보관 주기는 백업 주기의 최소 2배 이상이 되어야 합니다.</li>
  <li>증분 백업은 전체 백업 이후 백업 디렉토리 내 변경된 데이터만 백업하는 방식이다.</li>
  <li>백업된 데이터는 최소 1주부터 50주까지 보관이 가능합니다.</li>
  <li>전체 백업은 백업 디렉토리의 모든 데이터를 백업합니다.</li>
</ul>

<h2 id="92-네이버-클라우드-플랫폼-백업-상품의-경우-백업-데이터-보관-기간으로-알맞은-것은">92. 네이버 클라우드 플랫폼 백업 상품의 경우, 백업 데이터 보관 기간으로 알맞은 것은?</h2>

<ul>
  <li>최소 1일부터 최대 4주</li>
  <li>최소 7일부터 최대 52주</li>
  <li>최소 15일부터 최대 36주</li>
  <li>최소 30일부터 최대 1년</li>
</ul>

<h2 id="93-다음-상품-중-networking-카테고리-상품이-아닌-것은-무엇인가요">93. 다음 상품 중 Networking 카테고리 상품이 아닌 것은 무엇인가요?</h2>

<ul>
  <li>IPSec VPN</li>
  <li>Load Balancer</li>
  <li>NAT Gateway</li>
  <li>Auto Scaling</li>
</ul>

<h2 id="94-다음-중-vpc에서-사용할-수-없는-ip-대역은-무엇인가요">94. 다음 중 VPC에서 사용할 수 없는 IP 대역은 무엇인가요?</h2>

<ul>
  <li>10.0.0.0/16</li>
  <li>192.168.0.0/24</li>
  <li>172.16.0.0/16</li>
  <li>172.255.0.0/24</li>
</ul>

<h2 id="95-classic-환경에서-서버에-부착된-하나의-nic에-두-개-이상의-ip를-부여하였을-때-발생할-수-있는-상황은">95. Classic 환경에서 서버에 부착된 하나의 NIC에 두 개 이상의 IP를 부여하였을 때 발생할 수 있는 상황은?</h2>

<ul>
  <li>기존 IP로는 통신이 되나 추가된 IP로 통신이 되지 않는다.</li>
  <li>추가된 IP 뿐만 아니라 기존 IP도 통신이 되지 않는다.</li>
  <li>서버가 강제 정지된다.</li>
  <li>기존 IP는 통신이 안되고 추가된 IP로만 통신이 된다.</li>
</ul>

<h2 id="96-vod-transcoder에-대한-설명-중-틀린-것은">96. VOD Transcoder에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>Preser은 1~5까지 설정 가능하다.</li>
  <li>Codec는 H.264만 지원한다.</li>
  <li>Thumbnail를 자동 생성한다.</li>
  <li>Output 경로는 File Storage와 Object Storage에 저장할 수 있다.</li>
</ul>

<h2 id="97-다음-중-vpc에서-사용할-수-없는-ip-대역은-무엇인가요">97. 다음 중 VPC에서 사용할 수 없는 IP 대역은 무엇인가요?</h2>

<ul>
  <li>10.0.0.0/8</li>
  <li>192.168.1.0/16</li>
  <li>172.16.0.0/24</li>
  <li>192.168.0.0/24</li>
</ul>

<h2 id="98-vpc-환경에서는-다양한-방식의-로드밸런서를-제공하고-있습니다-네이버-클라우드-플랫폼에서-제공하고-있지-않은-로드밸런서-방식은-무엇인가요">98. VPC 환경에서는 다양한 방식의 로드밸런서를 제공하고 있습니다. 네이버 클라우드 플랫폼에서 제공하고 있지 않은 로드밸런서 방식은 무엇인가요?</h2>

<ul>
  <li>애플리케이션 로드밸런서</li>
  <li>네트워크 로드밸런서</li>
  <li>네트워크 프록시 로드밸런서</li>
  <li>애플리케이션 프록시 로드밸런서</li>
</ul>

<h2 id="99-다음-중-cdn-설명-중-틀린-것은">99. 다음 중 CDN+ 설명 중 틀린 것은?</h2>

<ul>
  <li>CDN+는 HTTP/HTTPS 프로토콜을 통해 다양한 원본 서버와의 콘텐츠 연동을 지원합니다.</li>
  <li>원본 서버로 고객이 보유 중인 다양한 웹 서버 및 네이버 클라우드 플랫폼의
Storage,Server를 선택할 수 있습니다.</li>
  <li>HTTPS로 웹 서비스를 제공하는 경우 콘텐츠가 HTTP로 호출되면 서비스가 불가능합니다.</li>
  <li>레퍼러로 등록된 도메인 기준 접근 허용 기능을 제공합니다.</li>
</ul>

<h2 id="100-nca다음에서-설명하는-기능은-어떤-상품을-설명하는-것일까요">100. NCA다음에서 설명하는 기능은 어떤 상품을 설명하는 것일까요?</h2>

<p>방화벽과 같이 ACL을 설정하는 외부의 네트웍과 연결시 네이버 클라우드 플랫폼내에 있는다수의
서버들이 하나의 공인 IP로 해당 외부 네트웍에 접근할 수 있게해주며, 외부 인터넷으로 연결이 필요할 때 필수적인 상품</p>
<ul>
  <li>Load Balancer</li>
  <li>IPSec VPN</li>
  <li>NAT Gateway</li>
  <li>API Gateway</li>
</ul>

<hr />

<h2 id="101-네트워크-로드밸런서의-특징으로-틀린-것은-무엇인가요">101. 네트워크 로드밸런서의 특징으로 틀린 것은 무엇인가요?</h2>

<ul>
  <li>별도의 설정 없이 Client IP 확인이 가능하다.</li>
  <li>분배 알고리즘은 Source IP Hash와 Round Robin 방식만 제공한다.</li>
  <li>로드밸런서를 사용하기 위해 서버에 별도의 설정이 필요하다.</li>
  <li>HTTP, HTTPS 프로토콜을 지원하지 않는다.</li>
</ul>

<h2 id="102-private-subnet에서-vpc-환경에서-서버를-한-대-생성하였다-서버-network-interface에-대한-설명-중-맞는-것은">102. Private Subnet에서 VPC 환경에서 서버를 한 대 생성하였다. 서버 Network Interface에 대한 설명 중 맞는 것은?</h2>

<ul>
  <li>서버 Network Interface는 최대 3개까지 만들 수 있다.</li>
  <li>Network Interface 하나에 여러 개의 IP를 부여할 수 있다.</li>
  <li>NIC에는 해당 서버를 처음 생성할 때 선택한 Subnet 범위의 IP만 할당할 수 있다.</li>
  <li>원하는 사설IP 설정은 불가능하며, DHCP로 자동 할당만 가능하다.</li>
</ul>

<h2 id="103-네이버-클라우드-플랫폼-classic-환경의-로드밸런서와-유사한-vpc-환경에서의-로드밸런-서는-어떤-방식인가요">103. 네이버 클라우드 플랫폼 Classic 환경의 로드밸런서와 유사한 VPC 환경에서의 로드밸런 서는 어떤 방식인가요?</h2>

<ul>
  <li>애플리케이션 로드밸런서</li>
  <li>네트워크 로드밸런서</li>
  <li>네트워크 프록시 로드밸런서</li>
  <li>애플리케이션 프록시 로드밸런서</li>
</ul>

<h2 id="104-하나의-vpc에-acg를-최대-몇-개까지-생성-가능한가요">104. 하나의 VPC에 ACG를 최대 몇 개까지 생성 가능한가요?</h2>

<ul>
  <li>5개</li>
  <li>100 개</li>
  <li>300 개</li>
  <li>500 개</li>
</ul>

<h2 id="105-네이버-클라우드-플랫폼의-vpc-환경에서-acg에-대한-설명으로-틀린-것은">105. 네이버 클라우드 플랫폼의 VPC 환경에서 ACG에 대한 설명으로 틀린 것은?</h2>

<ul>
  <li>서버와 연결되어 있는 맵핑 정보를 변경할 수 있다.</li>
  <li>VPC에 의존적이다.</li>
  <li>White List 방식의 방화벽이다.</li>
  <li>Inbound에 대해서만 룰 적용이 가능하다.</li>
</ul>

<h2 id="106-네이버-클라우드-플랫폼-vpc-환경의-로드밸런서-상품의-설명-중-틀린-것은">106. 네이버 클라우드 플랫폼 VPC 환경의 로드밸런서 상품의 설명 중 틀린 것은?</h2>

<ul>
  <li>22번 포트도 로드밸런싱할 수 있다.</li>
  <li>VPC 환경에서는 3가지의 로드밸런서가 제공된다.</li>
  <li>부하처리 성능에 따라 Small/Medium/Large 중 스펙을 선택할 수있다.</li>
  <li>Proxy 방식의 로드밸런서를 사용하면, 별도의 설정없인 클라이언트 의 IP를 확인할 수 없다.</li>
</ul>

<h2 id="107-라이브-스트리밍-서비스를-진행하는데-필요한-모든-back-end-기능을-지원하며-naver-cloud-platform-cdn-연동을-통해-원활한-라이브-진행을-할-수-있는-상품은">107. 라이브 스트리밍 서비스를 진행하는데 필요한 모든 Back-end 기능을 지원하며, NAVER Cloud Platform CDN 연동을 통해 원활한 라이브 진행을 할 수 있는 상품은?</h2>

<ul>
  <li>Clova Face Recognition</li>
  <li>Live Station</li>
  <li>VOD Transcoder</li>
  <li>Image Optimizer</li>
</ul>

<h2 id="108-nca-cdn-관련-용어-설명-중-틀린-것은">108. NCA CDN+ 관련 용어 설명 중 틀린 것은?</h2>

<ul>
  <li>서비스도메인 : 서비스에서 콘텐츠 전송 시 사용자에게 노출되는 도메인</li>
  <li>Ignore Query String : CDN 서비스가 원본 서버에 요청할 떄 “? id=1234”와 같이 URL
에 포함된 GET 파라미터를 제거한 후에 요청</li>
  <li>Referrer Domain : 콘텐츠가 지정된 도메인에만 제공되게 하여 다른 사이트에서 참조 되는 것을 방지</li>
  <li>Cache Expiry : 사용자 요청에 의해 요구되는 콘텐츠를 빠르게 제공하기 위해 캐시 서버 에 저장</li>
</ul>

<h2 id="109-비공인-ip를-가진-다수의-서버에게-대표-공인-ip를-이용하여-외부-접속이-가능하게-해주-는-상품은">109. 비공인 IP를 가진 다수의 서버에게 대표 공인 IP를 이용하여 외부 접속이 가능하게 해주 는 상품은?</h2>

<ul>
  <li>API Gateway</li>
  <li>IP Gateway</li>
  <li>NAT Gateway</li>
  <li>Global Route Manager</li>
</ul>

<h2 id="110-vpc는-하나의-독립된-네트웍을-구성하게-됩니다-따라서-vpc를-다수-생성하게-되면-vpc간-통신은-되지-않는데-vpc간-통신을-가능하게-해주는-서비스는-무엇인가요">110. VPC는 하나의 독립된 네트웍을 구성하게 됩니다. 따라서 VPC를 다수 생성하게 되면 VPC간 통신은 되지 않는데 VPC간 통신을 가능하게 해주는 서비스는 무엇인가요?</h2>

<ul>
  <li>Private Subnet</li>
  <li>Public Subnet</li>
  <li>VPC Peering</li>
  <li>Route Table</li>
</ul>

<hr />

<h2 id="111-네이버-클라우드-플랫폼-nas에-대한-설명-중-틀린-것은">111. 네이버 클라우드 플랫폼 NAS에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>볼륨은 최소 500GB에서 최대 10TB까지이다.</li>
  <li>볼륨 크기에 따라 IOPS가 달라진다.</li>
  <li>볼륨의 확장 축소는 100GB 단위로 가능하다.</li>
  <li>볼륨 개수는 계정 당 20개로 제한된다.</li>
</ul>

<h2 id="112-오브젝트-스토리지의-설명-중-맞는-것은">112. 오브젝트 스토리지의 설명 중 맞는 것은?</h2>

<ul>
  <li>오브젝트 스토리지는 2개의 인증키 사용이 가능합니다.</li>
  <li>생성된 버킷 이름은 변경할 수 있습니다.</li>
  <li>파일에 대한 공개 여부는 개별 파일에서 설정합니다.</li>
  <li>네이버 클라우드 플랫폼의 다른 계정에 공유할 수 없습니다.</li>
</ul>

<h2 id="113-다음-중-클라우드의-비용과-관련이-가장-높은-개념은-무엇인가요">113. 다음 중 클라우드의 비용과 관련이 가장 높은 개념은 무엇인가요?</h2>

<ul>
  <li>TCO (총 소요 비용)</li>
  <li>ROI (투자 자본 수익률)</li>
  <li>CAPEX (자본적 지출)</li>
  <li>OPEX (운영 비용)</li>
</ul>

<h2 id="114-cloud-db-상품에서-제공하고-있지-않은-dbms는">114. Cloud DB 상품에서 제공하고 있지 않은 DBMS는?</h2>

<ul>
  <li>Oracle</li>
  <li>MS-SQL</li>
  <li>MySQL</li>
  <li>Redis</li>
</ul>

<h2 id="115-네이버-클라우드-플랫폼의-보안-상품-중-없는-상품은">115. 네이버 클라우드 플랫폼의 보안 상품 중 없는 상품은?</h2>

<ul>
  <li>App Safer</li>
  <li>Web Safer</li>
  <li>File Safer</li>
  <li>Site Safer</li>
</ul>

<h2 id="116-네이버-클라우드-플랫폼의-gpu-상품에-대한-설명-중-틀린-것은">116. 네이버 클라우드 플랫폼의 GPU 상품에 대한 설명 중 틀린 것은?</h2>

<ul>
  <li>최대 12개의 GPU를 하나의 VM에 할당할 수 있다.</li>
  <li>서버를 정지시켜도 요금이 발생한다.</li>
  <li>Linux OS를 지원한다.</li>
  <li>T4, V100 등의 GPU 카드가 제공된다.</li>
</ul>

<h2 id="117-다음-중-오브젝트-스토리지-설명-중-틀린-것은">117. 다음 중 오브젝트 스토리지 설명 중 틀린 것은?</h2>

<ul>
  <li>버킷 공개하기는 버킷 안의 폴더 및 파일 정보 조회 및 업로드가 가능하다.</li>
  <li>파일 공개하기는 파일 정보 조회 및 다운로드/업로드가 가능하다.</li>
  <li>버킷 권한은 목록 조회, 업로드, ACL 조회, ACL 수정이 가능하다.</li>
  <li>파일 권한은 다운로드, ACL 조회, ACL 수정이 가능하다.</li>
</ul>

<h2 id="118-네이버-클라우드-플랫폼-vpc-환경에서-제공되는-gpu-서버의-특징으로-틀린-것은">118. 네이버 클라우드 플랫폼 VPC 환경에서 제공되는 GPU 서버의 특징으로 틀린 것은?</h2>

<ul>
  <li>NVDIAT4, V100 이용이 가능하다.</li>
  <li>서버 1대당 꽂을 수 있는 T4의 최대 개수는 2개이다.</li>
  <li>서버 1대당 꽂을 수 있는 V100의 최대 개수는 4개이다.</li>
  <li>Grid 기술을 사용할 수 있다.</li>
</ul>

<h2 id="119-nas-상품-설명-중-틀린-것은">119. NAS 상품 설명 중 틀린 것은?</h2>

<ul>
  <li>자체 스냅샷 기능이 제공된다.</li>
  <li>Linux Server와 Windows Server 모두 NAS를 마운트할 수 있습니다.</li>
  <li>NAS 볼륨은 네이버 클라우드 플랫폼 인프라 내에 있는 서버에서만 마운트 가능합니다.</li>
  <li>NAS는 용량 한도 없이 사용할 수 있다.</li>
</ul>

<h2 id="120-다음-중-global-route-manager의-로드밸런싱-타입이-아닌-것은">120. 다음 중 Global Route Manager의 로드밸런싱 타입이 아닌 것은?</h2>

<ul>
  <li>Weighted</li>
  <li>Round Robin</li>
  <li>Geolocation</li>
  <li>Source IP Hash</li>
</ul>

<hr />

<h2 id="121-내-서버-이미지에-대한-설명으로-틀린-것은">121. 내 서버 이미지에 대한 설명으로 틀린 것은?</h2>

<ul>
  <li>내 서버 이미지가 생성되는 동안 서버는 일시적으로 ‘복제중’ 상태이나 서버는 정상적으로운
영된다.</li>
  <li>내 서버 이미지를 다른 리전으로 복제할 수 있다.</li>
  <li>내 서버 이미지는 오토스케일링의 Launch Configuration에서도 이용이 가능하다.</li>
  <li>내 서버 이미지를 이용해 서버를 생성할 때, 원본 서버의 부팅스토리지 종류와 동일하게 생성된다.</li>
</ul>

<hr />

<h2 id="122-ms-sql-default-port기본포트는-3389">122. MS-SQL default port(기본포트)는? 3389</h2>

<ul>
  <li>보기는 숫자 4개로 보기 4개가 나옴.
https://guide-fin.ncloud-docs.com/docs/database-mssql-mssqlservice</li>
</ul>

<h2 id="123-네이버-챗봇의-기능이-아닌-것은-라고-문제가-나온-사람이-있다고-함-네이버-챗봇의-기능">123. 네이버 챗봇의 기능이 아닌 것은? 라고 문제가 나온 사람이 있다고 함 네이버 챗봇의 기능</h2>

<ul>
  <li>높은 한국어 정답률 - 고성능 챗본엔진 (문맥, 문장, 단어간 미세한 차이 구분) - 다국어 지원 : 한국, 일본, 영어, 중국, 태국, 인도네시아 - 자연어 처리 기술과 머신러닝기반 학습 알고리즘</li>
  <li>다양한 분석지표 제공(통계 제공)</li>
  <li>답변 컴포지트 제공 : 챗봇이 고객에게 전달하는 답변 형식 다채롭게 구성 통계 제공</li>
</ul>

<h2 id="124-다음에서-설명하는-상품의-이름은-무엇-사용자의-웹사이트에-검색-기능을-제공하는-상품으로-네이버-형태소-분석-처리기를-기반으로-만들어진-상품">124. 다음에서 설명하는 상품의 이름은 무엇? 사용자의 웹사이트에 검색 기능을 제공하는 상품으로 네이버 형태소 분석 처리기를 기반으로 만들어진 상품</h2>

<ul>
  <li>cloud search</li>
</ul>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="2" /><category term="exam" /><category term="cloud" /><category term="ncp" /><category term="nca" /><summary type="html"><![CDATA[1. Public IP에 대한 설명 중 틀린 것은?]]></summary></entry><entry><title type="html">IPC (Inter 프로세스 Communication)</title><link href="https://mooooonmin.github.io/2026/03/24/IPC/" rel="alternate" type="text/html" title="IPC (Inter 프로세스 Communication)" /><published>2026-03-24T00:00:00+09:00</published><updated>2026-03-24T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/03/24/IPC</id><content type="html" xml:base="https://mooooonmin.github.io/2026/03/24/IPC/"><![CDATA[<h2 id="1-ipc-개념">1. IPC 개념</h2>

<p>프로세스는 서로 <strong>독립적인 주소 공간을 가지는 실행 단위 임</strong>.
따라서 한 프로세스가 다른 프로세스의 메모리 영역을 직접 참조하는 것은 구조적 한계 임.
이 한계를 해결하기 위한 메커니즘이 <strong>IPC (Inter 프로세스 Communication)</strong> 임.
IPC는 프로세스 간 데이터 교환을 위한 <strong>통신 구조 임</strong>.</p>

<hr />

<h2 id="2-ipc-필요성">2. IPC 필요성</h2>

<p>프로세스 분리 실행 구조 자체가 IPC 필요성을 만드는 직접적 원인 임.</p>

<h3 id="문제-구조">문제 구조</h3>

<ul>
  <li>메모리 공간 독립성</li>
  <li>메모리 직접 공유 불가능성</li>
</ul>

<h3 id="결과">결과</h3>

<ul>
  <li>프로세스 간 직접 데이터 교환 불가</li>
</ul>

<h3 id="해결-방향">해결 방향</h3>

<ul>
  <li>운영체제 커널의 IPC 제공 필요성</li>
  <li>프로세스 간 통신 규약의 명시적 설계 필요</li>
</ul>

<hr />

<h2 id="3-ipc-방식">3. IPC 방식</h2>

<p>IPC는 두 모델로 구분됨.</p>

<ul>
  <li><strong>공유 메모리 (Shared 메모리)</strong></li>
  <li><strong>메시지 전달 (Message Passing)</strong></li>
</ul>

<hr />

<h2 id="4-공유-메모리-shared-메모리">4. 공유 메모리 (Shared 메모리)</h2>

<p>여러 프로세스가 <strong>하나의 메모리 영역을 공유하는 방식 임</strong>.</p>

<h3 id="동작-구조">동작 구조</h3>

<ol>
  <li>프로세스의 공유 메모리 생성 요청</li>
  <li>커널의 메모리 영역 할당</li>
  <li>프로세스의 해당 영역 직접 접근 허용</li>
</ol>

<h3 id="특징">특징</h3>

<ul>
  <li>커널 개입은 생성/매핑 구간 중심</li>
  <li>일반 메모리 접근 방식의 재사용</li>
  <li>비교적 높은 성능 특성</li>
</ul>

<h3 id="장점">장점</h3>

<ul>
  <li>매우 빠른 처리 속도</li>
  <li>커널 호출 오버헤드의 상대적 축소</li>
</ul>

<h3 id="단점">단점</h3>

<ul>
  <li>동기화 이슈 발생 가능성</li>
  <li>Race Condition 노출 가능성</li>
  <li>사용자 수준 동기화 구현 부담</li>
</ul>

<hr />

<h2 id="5-메시지-전달-message-passing">5. 메시지 전달 (Message Passing)</h2>

<p>커널을 통해 메시지를 주고받는 방식 임.</p>

<h3 id="동작-구조-1">동작 구조</h3>

<ul>
  <li><code class="language-plaintext highlighter-rouge">send(message)</code> 호출</li>
  <li><code class="language-plaintext highlighter-rouge">receive(message)</code> 호출</li>
</ul>

<p>프로세스 → 커널 → 프로세스 구조 임</p>

<h3 id="특징-1">특징</h3>

<ul>
  <li>커널 중심 통신 중재</li>
  <li>메모리 공유 없음</li>
</ul>

<h3 id="장점-1">장점</h3>

<ul>
  <li>동기화 처리의 사용자 부담 감소 경향</li>
  <li>구현 구조의 단순화 경향</li>
  <li>안정성의 상대적 확보</li>
</ul>

<h3 id="단점-1">단점</h3>

<ul>
  <li>커널 개입으로 인한 지연 가능성</li>
  <li>통신 오버헤드 상시 존재</li>
</ul>

<hr />

<h2 id="6-ipc-방식-비교">6. IPC 방식 비교</h2>

<table>
  <thead>
    <tr>
      <th>구분</th>
      <th>공유 메모리</th>
      <th>메시지 전달</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>속도</td>
      <td>높음</td>
      <td>상대적으로 낮음</td>
    </tr>
    <tr>
      <td>커널 개입</td>
      <td>생성/매핑 구간에 집중</td>
      <td>통신 구간 전반에서 상시 관여</td>
    </tr>
    <tr>
      <td>동기화</td>
      <td>사용자 책임 비중 큼</td>
      <td>커널/큐 채널 특성에 따른 완화</td>
    </tr>
    <tr>
      <td>안정성</td>
      <td>동기화 품질에 민감</td>
      <td>구조적 중재로 상대적 안정성 큼</td>
    </tr>
    <tr>
      <td>구현 난이도</td>
      <td>동기화 설계 부담 큼</td>
      <td>구현 진입 장벽이 대체로 낮음</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="7-ipc-예시">7. IPC 예시</h2>

<h3 id="공유-메모리-방식">공유 메모리 방식</h3>

<ul>
  <li>Shared 메모리</li>
  <li>POSIX Shared 메모리</li>
</ul>

<h3 id="메시지-전달-방식">메시지 전달 방식</h3>

<ul>
  <li>Pipe</li>
  <li>Socket</li>
  <li>Message Queue</li>
</ul>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p>IPC<br />
프로세스 간 데이터 통신 방법의 필요성 개념 임<br />
독립된 메모리 구조 한계의 해결 목적 임</p>

  <p>공유 메모리<br />
높은 처리 속도, 동기화 설계 부담 구조</p>

  <p>메시지 전달<br />
상대적 안정성 확보, 커널 기반 통신 구조</p>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/4.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Interprocess Communication”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="ipc" /><category term="process" /><category term="concurrency" /><summary type="html"><![CDATA[1. IPC 개념]]></summary></entry><entry><title type="html">Multi 프로세스 vs Multi 스레드</title><link href="https://mooooonmin.github.io/2026/03/23/Multi_Process_vs_Multi_Thread/" rel="alternate" type="text/html" title="Multi 프로세스 vs Multi 스레드" /><published>2026-03-23T00:00:00+09:00</published><updated>2026-03-23T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/03/23/Multi_Process_vs_Multi_Thread</id><content type="html" xml:base="https://mooooonmin.github.io/2026/03/23/Multi_Process_vs_Multi_Thread/"><![CDATA[<h2 id="1-multi-프로세스-vs-multi-스레드-개념">1. Multi 프로세스 vs Multi 스레드 개념</h2>

<p>Multi Process와 Multi Thread는 <strong>여러 작업을 동시에 수행하는 실행 구조</strong> 의미.</p>

<p>두 방식 모두 동시성 기반 처리 구조이지만<br />
<strong>자원 관리 방식과 실행 구조에서 차이 존재</strong>.</p>

<hr />

<h2 id="2-multi-프로세스-특징">2. Multi 프로세스 특징</h2>

<p>Multi Process는 <strong>여러 개의 Process가 독립적으로 실행되는 구조</strong> 의미.</p>

<p>각 Process는</p>

<ul>
  <li>독립적인 메모리 공간 사용</li>
  <li>독립적인 실행 환경 유지</li>
</ul>

<p>특징</p>

<ul>
  <li>높은 안정성</li>
  <li>프로세스 간 영향 최소화</li>
  <li>자원 사용량 증가</li>
</ul>

<hr />

<h2 id="3-multi-스레드-특징">3. Multi 스레드 특징</h2>

<p>Multi Thread는 <strong>하나의 프로세스 내부에서 여러 Thread가 실행되는 구조</strong> 의미.</p>

<p>각 Thread는</p>

<ul>
  <li>Stack 영역 독립 사용</li>
  <li>Code / Data / Heap 영역 공유</li>
</ul>

<p>특징</p>

<ul>
  <li>메모리 사용량 감소</li>
  <li>Context Switching 비용 감소</li>
  <li>자원 공유 구조</li>
</ul>

<hr />

<h2 id="4-multi-프로세스-vs-multi-스레드-비교">4. Multi 프로세스 vs Multi 스레드 비교</h2>

<table>
  <thead>
    <tr>
      <th>구분</th>
      <th>Multi 프로세스</th>
      <th>Multi 스레드</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>메모리 사용</td>
      <td>많은 메모리 공간 사용</td>
      <td>적은 메모리 공간 사용</td>
    </tr>
    <tr>
      <td>생성 / 전환 비용</td>
      <td>상대적으로 큼</td>
      <td>상대적으로 작음</td>
    </tr>
    <tr>
      <td>Context Switching</td>
      <td>느림</td>
      <td>빠름</td>
    </tr>
    <tr>
      <td>안정성</td>
      <td>높음 (프로세스 간 독립)</td>
      <td>낮음 (스레드 간 영향 존재)</td>
    </tr>
    <tr>
      <td>자원 공유</td>
      <td>어려움 (IPC 필요)</td>
      <td>쉬움 (메모리 공유)</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="5-성능-및-구조-차이">5. 성능 및 구조 차이</h2>

<p>Multi Thread는 Multi 프로세스 대비</p>

<ul>
  <li>메모리 공간 절약 구조</li>
  <li>시스템 자원 효율적 사용 구조</li>
  <li>Context Switching 시 오버헤드 감소</li>
</ul>

<p>또한</p>

<ul>
  <li>프로세스 생성 시 발생하는 System Call 비용 감소</li>
  <li>스레드 간 통신 비용 감소</li>
</ul>

<hr />

<h2 id="6-multi-thread의-장점">6. Multi Thread의 장점</h2>

<ul>
  <li>메모리 사용량 감소</li>
  <li>자원 공유를 통한 효율적인 실행 구조</li>
  <li>Context Switching 속도 빠름</li>
  <li>IPC 대비 통신 오버헤드 감소</li>
</ul>

<hr />

<h2 id="7-multi-thread의-단점">7. Multi Thread의 단점</h2>

<ul>
  <li>스레드 간 자원 공유로 인한 동기화 문제 발생 가능</li>
  <li>Race Condition 발생 가능성</li>
  <li>하나의 스레드 장애 시 전체 프로세스 영향 가능</li>
</ul>

<hr />

<h2 id="8-multi-process의-장점">8. Multi Process의 장점</h2>

<ul>
  <li>프로세스 간 독립성 보장</li>
  <li>하나의 프로세스 장애가 다른 Process에 영향 없음</li>
  <li>높은 안정성 구조</li>
</ul>

<hr />

<h2 id="9-multi-process의-단점">9. Multi Process의 단점</h2>

<ul>
  <li>메모리 사용량 증가</li>
  <li>Context Switching 비용 증가</li>
  <li>프로세스 간 통신 비용(IPC) 발생</li>
</ul>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>Multi 프로세스</strong></p>

  <ul>
    <li>독립적인 프로세스 기반 실행 구조</li>
    <li>높은 안정성</li>
    <li>높은 자원 사용 비용</li>
  </ul>

  <p><strong>Multi 스레드</strong></p>

  <ul>
    <li>하나의 프로세스 내에서 실행되는 스레드 기반 구조</li>
    <li>메모리 및 자원 효율성 높음</li>
    <li>동기화 문제 및 안정성 이슈 존재</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/3.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Processes” / “Threads”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="process" /><category term="thread" /><category term="comparison" /><category term="concurrency" /><summary type="html"><![CDATA[1. Multi 프로세스 vs Multi 스레드 개념]]></summary></entry><entry><title type="html">Multi 스레드</title><link href="https://mooooonmin.github.io/2026/03/19/Multi_Thread/" rel="alternate" type="text/html" title="Multi 스레드" /><published>2026-03-19T00:00:00+09:00</published><updated>2026-03-19T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/03/19/Multi_Thread</id><content type="html" xml:base="https://mooooonmin.github.io/2026/03/19/Multi_Thread/"><![CDATA[<h2 id="1-스레드-개념">1. 스레드 개념</h2>

<p><strong>스레드</strong>란 하나의 프로세스 내부에서 실행되는 <strong>동작의 단위</strong> 의미.</p>

<p>Thread는 프로세스 내부에서 <strong>독립적인 기능을 수행하는 실행 흐름</strong> 의미.</p>

<p>여기서 독립적인 기능 수행이란 <strong>독립적으로 함수를 호출하고 실행하는 구조</strong> 의미.</p>

<hr />

<h2 id="2-multi-스레드-개념">2. Multi 스레드 개념</h2>

<p><strong>Multi 스레드</strong>란 하나의 Process가 동시에 여러 작업을 수행할 수 있도록 하는 구조 의미.</p>

<p>즉, 하나의 프로세스 내부에 <strong>여러 개의 Thread가 존재하는 구조</strong> 의미.</p>

<p>이를 통해 하나의 프로그램이 여러 작업을 <strong>동시에 처리하는 방식</strong> 구현 가능.</p>

<hr />

<h2 id="3-thread와-메모리-구조">3. Thread와 메모리 구조</h2>

<p>Multi 스레드 환경에서 각 Thread는 <strong>Stack 영역을 제외한 나머지 메모리 영역을 공유하는 구조</strong>.</p>

<p>공유되는 영역은 다음과 같음.</p>

<ul>
  <li>Code 영역</li>
  <li>Data 영역</li>
  <li>Heap 영역</li>
</ul>

<p>반면 <strong>Stack 영역은 각 Thread가 독립적으로 할당받는 구조</strong>.</p>

<p>즉 Thread의 메모리 구조는 다음과 같은 형태.</p>

<table>
  <thead>
    <tr>
      <th>구분</th>
      <th>공유 여부</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Code</td>
      <td>공유</td>
    </tr>
    <tr>
      <td>Data</td>
      <td>공유</td>
    </tr>
    <tr>
      <td>Heap</td>
      <td>공유</td>
    </tr>
    <tr>
      <td>Stack</td>
      <td>독립</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="4-독립적인-stack-memory가-필요한-이유">4. 독립적인 Stack Memory가 필요한 이유</h2>

<p>Thread는 프로세스 내부에서 <strong>독립적으로 함수를 호출하는 실행 단위</strong> 의미.</p>

<p>함수 호출 과정에서는 다음 정보 저장 필요.</p>

<ul>
  <li>함수 인자(Parameter)</li>
  <li>Return Address</li>
  <li>지역 변수(Local Variable)</li>
</ul>

<p>이 정보들은 <strong>Stack 메모리 영역에 저장되는 구조</strong>.</p>

<p>따라서 각 Thread가 서로 독립적으로 실행되기 위해서는<br />
각 Thread마다 <strong>독립적인 Stack 메모리 영역 필요</strong>.</p>

<hr />

<h2 id="5-pc-register와-스레드">5. PC Register와 스레드</h2>

<p>Multi 스레드 환경에서는 <strong>각 Thread가 자신의 실행 위치(Program Counter 값)를 별도로 보존해야 함</strong>.</p>

<p>그 이유는 스레드 간에도 <strong>Context Switch 발생</strong>하기 때문.</p>

<p>PC Register에는 다음 정보 저장.</p>

<ul>
  <li>다음에 실행할 명령어 주소</li>
</ul>

<p>스레드 실행이 중단되었다가 다시 이어서 실행되기 위해서는<br />
각 Thread가 <strong>자신의 다음 실행 위치 정보 유지 필요</strong>.</p>

<p>즉, 실제 하드웨어 Register는 CPU가 현재 실행 중인 Thread의 값을 담고,<br />
각 Thread는 자신의 PC 값을 <strong>Thread Context</strong>에 저장해 두었다가 다시 복구하는 구조.</p>

<hr />

<h2 id="6-multi-스레드-동작-구조">6. Multi 스레드 동작 구조</h2>

<p>하나의 프로세스 내부에 여러 Thread가 존재하는 구조.</p>

<p>이때 각 Thread는</p>

<ul>
  <li>Stack 영역 독립 사용</li>
  <li>Code / Data / Heap 영역 공유</li>
  <li>독립적인 실행 흐름 유지</li>
</ul>

<p>즉 하나의 프로세스 내부에서 여러 기능을 동시에 수행하는 실행 모델 의미.</p>

<hr />

<h2 id="7-process와-스레드-비교">7. Process와 스레드 비교</h2>

<table>
  <thead>
    <tr>
      <th>구분</th>
      <th>프로세스</th>
      <th>스레드</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>개념</td>
      <td>운영체제로부터 자원을 할당받는 작업 단위</td>
      <td>프로세스 내부에서 실행되는 동작 단위</td>
    </tr>
    <tr>
      <td>메모리</td>
      <td>Code, Data, Heap, Stack 모두 독립</td>
      <td>Stack 제외 나머지 영역 공유</td>
    </tr>
    <tr>
      <td>자원 할당</td>
      <td>운영체제가 직접 자원 할당</td>
      <td>Process가 할당받은 자원 활용</td>
    </tr>
    <tr>
      <td>실행 단위</td>
      <td>프로그램 실행 단위</td>
      <td>함수 실행 흐름 단위</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>스레드</strong></p>

  <ul>
    <li>하나의 프로세스 내부에서 실행되는 동작 단위</li>
    <li>독립적인 기능 수행 구조</li>
  </ul>

  <p><strong>Multi 스레드</strong></p>

  <ul>
    <li>하나의 프로세스 내부에서 여러 Thread가 동시에 실행되는 구조</li>
  </ul>

  <p><strong>메모리 구조</strong></p>

  <ul>
    <li>Code / Data / Heap 영역 공유</li>
    <li>Stack 영역 독립 할당</li>
  </ul>

  <p><strong>독립 Stack 필요 이유</strong></p>

  <ul>
    <li>함수 인자, Return Address, 지역 변수 저장 필요</li>
  </ul>

  <p><strong>PC Register</strong></p>

  <ul>
    <li>각 Thread는 자신의 실행 위치 정보를 별도로 보존</li>
    <li>스레드 간 Context Switch 이후 실행 위치 복구 목적</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/3.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Threads”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="thread" /><category term="concurrency" /><category term="multithreading" /><summary type="html"><![CDATA[1. 스레드 개념]]></summary></entry><entry><title type="html">Multi 프로세스</title><link href="https://mooooonmin.github.io/2026/03/16/Multi_Process/" rel="alternate" type="text/html" title="Multi 프로세스" /><published>2026-03-16T00:00:00+09:00</published><updated>2026-03-16T00:00:00+09:00</updated><id>https://mooooonmin.github.io/2026/03/16/Multi_Process</id><content type="html" xml:base="https://mooooonmin.github.io/2026/03/16/Multi_Process/"><![CDATA[<h2 id="1-multi-프로세스-개념">1. Multi 프로세스 개념</h2>

<p><strong>Multi 프로세스</strong>란 <strong>2개 이상의 Process가 동시에 실행되는 구조</strong> 의미.</p>

<p>여기서 동시에 실행된다는 의미는 다음 두 가지 개념 포함.</p>

<ul>
  <li><strong>동시성(Concurrency)</strong></li>
  <li><strong>병렬성(Parallelism)</strong></li>
</ul>

<hr />

<h2 id="2-동시성concurrency-vs-병렬성parallelism">2. 동시성(Concurrency) vs 병렬성(Parallelism)</h2>

<table>
  <thead>
    <tr>
      <th>동시성</th>
      <th>병렬성</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Single Core 환경</td>
      <td>Multi Core 환경</td>
    </tr>
    <tr>
      <td>동시에 실행되는 것처럼 보이는 구조</td>
      <td>실제로 동시에 실행되는 구조</td>
    </tr>
  </tbody>
</table>

<p><strong>동시성</strong>은 CPU Core가 하나일 때 여러 Process가 <strong>짧은 시간 단위로 번갈아 실행되는 방식</strong> 의미.</p>

<p>이를 <strong>시분할 시스템(Time Sharing System)</strong>이라고 함.</p>

<p><strong>병렬성</strong>은 CPU Core가 여러 개 존재할 때 각각의 Core가 서로 다른 Process를 동시에 실행하는 구조 의미.</p>

<hr />

<h2 id="3-multi-프로세스-구조">3. Multi 프로세스 구조</h2>

<p>Multi 프로세스 환경에서는 여러 Process가 동시에 Memory에 적재되는 구조.</p>

<p>각 Process는 <strong>자신만의 메모리 영역을 독립적으로 할당받는 구조</strong>.</p>

<p><strong>하나의 CPU Core는 한 순간에 하나의 Process 또는 Thread만 실행 가능</strong>.</p>

<p>하지만 CPU 처리 속도가 매우 빠르기 때문에 <strong>수 ms 단위로 Process가 교체 실행되는 구조</strong>.</p>

<p>이로 인해 사용자 입장에서는 <strong>여러 프로그램이 동시에 실행되는 것처럼 보이는 현상 발생</strong>.</p>

<p>이러한 방식이 <strong>시분할 시스템(Time Sharing System)</strong> 구조 의미.</p>

<hr />

<h2 id="4-메모리-관리">4. 메모리 관리</h2>

<p>여러 Process가 동시에 Memory에 적재되는 상황 발생.</p>

<p>이때 서로 다른 Process의 메모리 영역 침범 방지 필요.</p>

<p>이를 위해 운영체제가 다음 기능 수행.</p>

<ul>
  <li>각 Process의 메모리 영역 분리 관리</li>
  <li>Process가 자신의 메모리 영역에만 접근하도록 제어</li>
</ul>

<p>즉 <strong>프로세스 간 메모리 보호 구조 존재</strong>.</p>

<hr />

<h2 id="5-cpu-연산과-program-counter-register">5. CPU 연산과 Program Counter Register</h2>

<p>CPU는 <strong>PC(Program Counter) Register가 가리키는 명령어를 실행하는 구조</strong>.</p>

<p>PC Register 역할</p>

<ul>
  <li>다음에 실행할 명령어 주소 저장</li>
  <li>CPU 실행 흐름 제어</li>
</ul>

<p>Multi 프로세스 환경에서 동작 구조</p>

<ol>
  <li>Process1 실행 시 PC Register가 Process1 Code 영역 명령어 가리키는 상태</li>
  <li>Process2 실행 시 PC Register가 Process2 Code 영역 명령어 가리키는 상태</li>
  <li>CPU는 PC Register가 가리키는 명령어를 읽어 연산 수행</li>
</ol>

<p>즉 <strong>PC Register에 따라 실행 프로세스 변경 구조</strong>.</p>

<hr />

<h2 id="6-context">6. Context</h2>

<p>시분할 시스템에서는 Process가 CPU를 <strong>아주 짧은 시간 동안 점유하는 구조</strong>.</p>

<p>Process가 CPU를 다시 사용할 때 이전 실행 상태 정보 필요.</p>

<p>이러한 정보를 <strong>Context</strong>라고 함.</p>

<p><strong>Context 의미</strong></p>

<ul>
  <li>프로세스 실행 상태 전체 정보</li>
  <li>CPU Register 상태</li>
  <li>Program Counter</li>
  <li>메모리 정보</li>
</ul>

<p>Context 정보는 <strong>PCB(프로세스 Control Block)</strong>에 저장되는 구조.</p>

<hr />

<h2 id="7-pcb-프로세스-control-block">7. PCB (프로세스 Control Block)</h2>

<p>PCB는 <strong>운영체제가 Process를 관리하기 위해 사용하는 자료구조</strong> 의미.</p>

<p>PCB는 일반 사용자가 접근할 수 없는 <strong>보호된 메모리 영역</strong>에 저장되는 구조.</p>

<p>일부 운영체제에서는 <strong>커널 Stack 영역에 위치</strong>.</p>

<p>PCB에 포함되는 정보</p>

<table>
  <thead>
    <tr>
      <th>PCB 정보</th>
      <th>설명</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>프로세스 State</td>
      <td>new, running, waiting, halted 상태 정보</td>
    </tr>
    <tr>
      <td>프로세스 Number</td>
      <td>프로세스 식별 번호</td>
    </tr>
    <tr>
      <td>Program Counter</td>
      <td>다음 실행 명령어 주소</td>
    </tr>
    <tr>
      <td>Registers</td>
      <td>CPU Register 값</td>
    </tr>
    <tr>
      <td>메모리 Limits</td>
      <td>base register, limit register, page table 등</td>
    </tr>
    <tr>
      <td>기타 정보</td>
      <td>CPU Scheduling 정보 등</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="8-context-switch">8. Context Switch</h2>

<p><strong>Context Switch</strong>란 <strong>한 Process에서 다른 Process로 CPU 제어권을 넘기는 과정</strong> 의미.</p>

<p>Context Switch 수행 과정</p>

<ol>
  <li>현재 실행 프로세스 상태를 <strong>PCB에 저장</strong></li>
  <li>다음 실행 Process의 <strong>PCB 정보 로드</strong></li>
  <li>저장된 Context 복구</li>
  <li>CPU 실행 프로세스 변경</li>
</ol>

<p>즉 <strong>CPU가 실행하는 Process가 변경되는 과정</strong> 의미.</p>

<hr />

<h2 id="핵심-정리">핵심 정리</h2>

<blockquote>
  <p><strong>Multi 프로세스</strong></p>

  <ul>
    <li>여러 Process가 동시에 실행되는 구조</li>
  </ul>

  <p><strong>동시성</strong></p>

  <ul>
    <li>Single Core 환경에서 시분할 방식 실행</li>
  </ul>

  <p><strong>병렬성</strong></p>

  <ul>
    <li>Multi Core 환경에서 실제 동시 실행</li>
  </ul>

  <p><strong>Context</strong></p>

  <ul>
    <li>프로세스 실행 상태 정보</li>
  </ul>

  <p><strong>PCB</strong></p>

  <ul>
    <li>프로세스 관리 자료구조</li>
  </ul>

  <p><strong>Context Switch</strong></p>

  <ul>
    <li>CPU 실행 프로세스 변경 과정</li>
  </ul>
</blockquote>

<hr />

<h2 id="참고-자료">참고 자료</h2>

<ol>
  <li>KOCW, 운영체제 강의자료<br />
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/3.pdf</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “Processes”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html</li>
  <li>University of Illinois Chicago, Operating Systems Notes, “CPU Scheduling”<br />
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/6_CPU_Scheduling.html</li>
</ol>]]></content><author><name>mooooonmin</name><email>minhee610@gmail.com</email></author><category term="1" /><category term="os" /><category term="process" /><category term="concurrency" /><category term="multiprocessing" /><summary type="html"><![CDATA[1. Multi 프로세스 개념]]></summary></entry></feed>