운영체제는 컴퓨터의 모든 하드웨어 자원을 관리하고, 이를 사용자와 응용 프로그램이 사용할 수 있도록 관리하는 핵심 소프트웨어다. 

 

  • 또한 운영체제는 하드웨어 및 시스템 리소스를 제어하고 프로그램에 대한 일반적인 서비스를 지원한다.
  • 컴퓨터 시스템 자원들을 효율적으로 관리한다.

 

운영체제의 4가지 구성요소

 

사용자 인터페이스

  • 사용자 인터페이스는 사용자와 컴퓨터가 정보를 쉽게 주고 받을 수 있도록 도와주는 매개체를 말한다.
  • 매개체에는 CLI( Command-Line Interface )와 GUI( Graphical User Interface )가 존재한다.

CLI( Command-Line Interface )

  • CLI 방식은 키보드에 입력한 텍스트를 통해 컴퓨터와 소통한다.
  • 입력과 출력이 존재하며, 정해진 명령어를 사용하여 소통한다.
  • 이때 입력한 명령을 출력하는 프로그램을 쉘( Shell )이라고 한다.

 

GUI( Graphical User Interface )

  • 그래픽으로 전달되는 그림 혹은 아이콘을 이용하여 사용자와 소통한다.
  • 키보드와 마우스 모두 사용할 수 있다.
  • 윈도우 검색창에서 [시스템] -> [정보]를 확인하거나, 바탕화면의 아이콘을 보는 것이 모두 이에 해당한다.
  • 즉, 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 같은 그래픽으로 나타내는 것

 

커널

운영체제의 핵심이 되는 컴퓨터 프로그램으로, 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스 제공

 

커널의 동작 방식

  • 커널은 메모리에 상주하여 사용자의 요청을 처리한다.
  • 커널의 성능에 따라 운영체제의 안정성, 성능, 속도 등의 영향을 받는다.

 

커널의 프로세스 및 메모리 관리

  • Windows의 경우, [ctrl] + [alt] + [delete]를 함께 누르면 작업 관리자가 나타난다
  • 사용중인 프로세스를 확인 가능하다.
  • 커널은 프로세스들이 공평하게 자원을 활용할 수 있도록 도운다.
  • CPU의 경우 하나의 프로세스가 독점하면, 다른 프로세스를 사용할 수 없으므로 일정 시간이 경과하면 다른 프로세스로 전환하여 프로세스를 병행하여 실행할 수 있다
  • CPU는 다수의 프로세스를 실행할 수 없으나, 커널이 여러 개의 프로세스를 빠른 속도로 스케줄링 한다.
  • 커널의 스케줄링으로 인해 마치 여러 개의 프로세스가 동시에 사용하는 것처럼 보인다.
  • 메모리는 한정된 자원이므로, 커널에서 각 프로세스 별 필요한 공간을 적절히 분배한다.

 

커널의 파일 관리

  • 커널은 파일의 생성, 삭제, 수정, 읽기 등의 작업 수행을 도운다.
  • 즉, 커널이 파일 관리를 하지 않는다면 간단한 사진 파일조차 저장하기 힘들다.
  • 폴더, 디렉터리 등의 관리 또한 커널이 담당한다.

 

커널의 입출력 관리

  • 키보드, 마우스, 디스크, 프린터, USB 등의 장비 또한 커널이 관리한다.
  • 프로그램은 메모리에 적재되어야 실행되는데, 입출력 장치 또한 작동하려면 메모리를 거쳐야 한다.
  • 커널은 항상 메모리에 상주해 있으므로, 입출력 장치의 요청을 적절한 곳에 할당하고 사용자가 편리하게 사용할 수 있도록 관리한다.

 

시스템 호출( System Call )

  • 시스템 호출(System Call)은 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
  • 즉, 프로그램을 실행시키기 위해서는 시스템 호출을 거쳐 커널에 접근한 뒤 하드웨어를 사용할 수 있다
  • 운영체제는 안전을 위해 User 모드와 Kernel 모드로 나뉜다.
  • 각 모드 별 권한을 다르게 가지고 있다.
  • Kernel 모드를 사용해야 할 이벤트의 경우 다음 그림과 같은 흐름을 가진다.

 

Driver( 드라이버 )

  • 드라이버는 새로운 기기를 사용할 때 설치하지 않으면, 기기 사용 시 컴퓨터가 인식하지 못함
  • 마우스, 키보드 같은 간단한 디바이스는 커널에 포함되어 있으므로 연결되면 바로 작동하지만 그래픽 카드, 프린터기 등의 복잡한 디바이스는 직접 드라이버를 설치해주어야 한다.
  • 즉, 드라이버는 새로운 장치 연결 시 어떤 장치이고 사용법은 어떻게 되는지에 대한 정보를 포함하고 있다.
HTML 문서의 레이아웃과 디자인을 포함한 시각적 요소를 정의하기 위한 규격
  • 콘텐츠의 위치, 정렬, 글자크기, 여백, 색상 등 시각적인 요소를 정의한다.

 

 

css는 코드를 작성하는 위치에 따라 인라인, 인터널, 익스터널 CSS로 구분한다.

  • Inline CSS : 적용할 HTML 태그에 style 요소를 이용하여 시각적인 요소를 적용하는 형태
  • Internal CSS : HTML 문서 내 HEAD 태그에 style 요소를 이용하여 시각적인 요소를 적용하는 형태
  • External CSS : HTML 문서와 별개로 CSS 파일에 작성하며 링크를 통해 시각적인 요소를 적용하는 형태

 

Inline CSS는 적용할 HTML 태그에 style 요소를 이용하여 시각적인 요소를 적용한다.

  • HTML 문서 내에 작성하기 때문에 원하는 곳에 쉽고 빠르게 시각적인 요소를 적용할 수 있다.
  • External CSS와 다르게 별개의 CSS파일을 필요로 하지 않는다.

 

Internal CSS는 적용할 HTML 문서 내 HEAD 태그에 style 요소를 이용하여 시각적인 요소를 정의한다.

  • HTML 문서 내에서 별도로 작성하므로 문서 내에 선언되는 태그, 클래스, ID선택자 등을 지정하여 디자인 적용이 가능하다.

웹 페이지가 어떻게 구성되어 있는지 브라우저가 이해할 수 있도록 하는 마크업 언어
  • 요소( element )와 태그( tags )를 통해 제목, 단락, 목록 등의 구조를 만드는데 사용된다.
  • 쉽게 생각해서 우리가 보는 웹페이지의 뼈대를 잡아주는 역할을 한다고 보면 된다.

 

HTML은 기본적으로 5가지 태그로 이뤄져 있으며 이를 이용하여 웹페이지의 뼈대를 만들 수 있다.

  • <!DOCTYPE html> : HTML 문서임을 선언하는 구문
  • <HTML> ~ </HTML> : HTML 문서의 시작부터 끝을 의미함
  • <HEAD> ~ </HEAD> : CSS, JavaScript, meta 태그, title 태그 등 문서의 정보를 설정하는 부분
  • <BODY> ~ </BODY> : HTML 문서의 본 내용으로 실제 화면에 출력되는 콘텐츠 부분

  • 사용자는 웹페이지에 접속할 때 마우스 클릭 혹은 주소를 입력하여 접속한다.
    • 사용자가 웹페이지 링크를 클릭하거나 주소를 입력하면 브라우저에서 해당 주소를 확인하여 연결해준다.
    • 이 때, 주소창에는 우리가 읽을 수 있는 문자로 적혀진 것을 확인할 수 있다.
  • 컴퓨터는 주소창에 적힌 문자를 그대로 읽고 해석하지 못한다.
    • 컴퓨터는 IP 주소로 통신할 대상을 찾기 때문에 주소창에 적힌 문자를 읽고 해석할 수 없다.
    • 따라서, 주소창에 적힌 문자를 해석하여 IP 주소를 알려줄 필요성이 생긴다.

 

  • 클라이언트와 서버는 숫자로 이루어진 IP 주소를 가지고 통신한다.
    • www.naver.com을 입력하여 네이버에 접속하거나 223.130.200.104을 입력하여 네이버에 접속한다.
    • 동일한 웹사이트가 표시 되는 것을 확인할 수 있다.

 

 

  • 주소창에 적힌 문자를 해석하기 위해 도메인 네임 시스템의 도움을 받는다.
    • 도메인 네임 시스템( Domain Name System, DNS ) : 문자로 된 주소와 매칭된 IP 주소 정보를 가지고 있는 시스템
    • 컴퓨터는 주소창에 적힌 문자를 도메인 네임 시스템에 질의하여 IP 주소를 확인하게 된다.

예를 들어 클라이언트가 v-room.kr에 접속을 한다고 하면, v-room.kr의 주소를 도메인 네임 시스템에 물어보게 되고, 도메인 네임 시스템에 등록된 주소라면 매칭되어 있는 IP 주소를 알려주게 된다. 이를 받은 클라이언트가 해당 IP 주소에 다시 통신을 요청하게 되는 것

 

 

 

 

 

 

 

 

웹에서 검색을 하거나 클릭을 하여 여러 웹사이트에 들어가는 것이 사실은 클라이언트가 여러 서버에 접속하여 정보를 요청하는 동작으로 볼 수 있다.
  • 웹에 연결된 컴퓨터는 일반적으로 서버와 클라이언트로 구분한다.
    • 서버 : 웹페이지, 웹 등을 저장하는 컴퓨터로 클라이언트가 서버에 접근하길 원할 때, 이를 확인하여 HTML, CSS, JavaSCript와 같은 웹페이지 사본을 제공한다.
    • 클라이언트 : 이용자가 인터넷을 이용할 때 사용하는 전자기기( 컴퓨터, 스마트폰 등 )를 뜻하며, 브라우저를 통해 웹에 접근한다. 사용자의 컴퓨터로 웹 브라우저를 통해 서버에 접속하고 웹 문서를 다운로드 받아오게 된다.

  • 웹은 클라이언트가 서버에 접속 및 웹페이지를 요청하면 서버가 이를 확인하여 응답하는 구조로 동작한다.
    • 클라이언트 -> 서버 : 요청( Request )
    • 서버 -> 클라이언트 : 응답( Response )
  • 클라이언트가 웹 사이트에 접속하면 서버에 메인 웹페이지를 요청하게 되고, 서버에서는 클라이언트의 접속 및 요청을 확인하여 그에 응하는 결과값을 알려주는 것이라 보면 된다.

 

 

서버의 상황에 따라 보여줄 웹 문서가 정적 또는 동적 웹페이지로 구성된다.

정적 웹페이지( Static Webpage )

  • 웹 서버에 저장된 파일( HTML, CSS, JavaScript, 이미지 등 ) 그대로 사용자에게 전달되는 웹페이지
    • 사용자는 웹 서버에 저장된 데이터가 변경되지 않는 한 항상 같은 웹페이지를 보게 된다.
    • 기관 및 기업의 소개 홈페이지 등이 정적 웹페이지의 대표적인 예시다

 

동적 웹페이지( Static Webpage )

  • 사용자의 설정, 정보에 따라 동적으로 만들어진 파일 형태로 사용자에게 전달되는 웹페이지
    • 사용자의 성향, 정보, 설정 등에 따라 콘텐츠가 달라지는 형태로 개인마다 다른 웹페이지를 보게 된다.
    • SNS, 유튜브, OTT 플랫폼 등이 동적 웹페이지의 대표적인 예시다

 

가상 사설망으로 사용자가 인터넷과 같은 공용 네트워크를 통해 사설 망에 안전하게 연결할 수 있는 기술을 말한다.

 

VPN의 등장 배경

  • 물리적으로 떨어져 있는 서버들은 안전한 통신을 위해 전용 회선이 필요하다
  • 회선 일부를 독점 하기 때문에 가격이 비싸다
  • 대역폭에 따라 가격 변동으로 인해 많은 데이터를 전송할 땐 더 많은 비용을 지불해야 한다.

해결 방안 탐색

  • 전용 회선이 아닌 공인 인터넷망을 이용해 사설망과 사설망을 연결할 방법
  • 공인 인터넷망을 지나가도 안전해야 하고, 암호화 문제를 해결할 방법

위 2가지 해결 방법을 고안해 탄생한 것이 VPN이다.

 

VPN 구성

  • VPN Client는 터널링 프로토콜이라는 특별한 TCP/IP 기반 프로토콜을 사용하여 VPN 서버의 가상 포트에 대해 가상 호출을 수행한다.
  • 터널링은 공인망을 사용하여 별도의 라우팅 없이 사설망과 사설망의 통신을 제공하는 동시에 암호화된 통신을 제공하는 것을 의미한다.
    • 터널링 3요소
      • Passenger Protocol : VPN 터널이 전달하는 프로토콜로, VPN 터널을 통해 전송되는 데이터를 암호화하고 해독하는 데 사용한다
      • Encapsulating Protocol : VPN 터널을 만드는 데 사용되는 프로토콜로 Passenger Protocol을 캡슐화 하고 암호화된 메세지를 공인망을 통해 안전하게 전송하는 역할을 한다.
      • Carrier Protocol : Encapsulating된 패킷을 운반하기 위한 프로토콜로 네트워크 장비들이 이해할 수 있는 프로토콜이다. 주로 IP를 사용한다.

 

VPN 종류

IPSEC( Internet Protocol Security )

  • 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜이다.
  • 네트워크 계층에서 IP 패킷 단위로 인증, 암호화, 키관리를 수행하며 주로 VPN에 사용한다.
  • 주로 ISPC VPN은 인터넷을 이용해 본사 네트워크와 자사 네트워크의 LAN을 연결하는데 사용되어 Site to Site 또는 LAN to LAN 방식으로 칭한다.

 

IPSEC의 주요 서비스

  • 보안 통신에 사용되는 프로토콜 이므로 인증, 기밀성, 무결성을 포함한 다양한 보안 서비스를 제공한다.

 

IPSEC Mode

  • 전송 모드( Transport Mode )
    • IP 패킷의 페이로드를 보호하는 모드로 상위 프로토콜 데이터를 보호한다.
    • IP 헤더는 그대로 유지하므로 네트워크 패킷 전송에 문제가 발생하지 않는다.
    • IP 헤더를 보호하지 않기 때문에 트래픽 흐름이 노출될 수 있다.
    • 종단 간( End-to-End ) 데이터 보호를 위해 사용한다.

 

 

  • 터널 모드( Tunnel Mode )
    • IP 패킷 전체를 보호하는 모드로 IP 패킷 전체를 IPSEC으로 캡슐화 하여 IP 헤더를 식별할수 없기 때문에 네트워크상 전송이 불가능하다.
    • 위의 문제를 해결하기 위해서 새로운 IP 헤더를 추가한다.
    • 원본 IP 헤더를 보호하기 때문에 최초 출발지 및 최종 목적지에 대한 트래픽 정보는 기밀성이 보장된다.
    • 주로 게이트웨이 구간 IP 패킷을 보호하는 목적으로 사용되며, 물리적으로 떨어진 본점과 지점 사이 구간 VPN 환경이 있다.

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 웹의 통신 과정  (0) 2025.04.27
[K-Shield][Jr] 웹의 동작 방식  (0) 2025.04.27
[K-Shield][Jr] PAT( Port Address Translation )  (0) 2025.04.27
[K-Shield][Jr] NAT  (0) 2025.04.27
[K-Shield][Jr] DMZ  (0) 2025.04.27
  • 하나의 공인 IP와 여러 개의 사설 IP를 Port 번호를 이용해 NAT를 수행한다.
  • 1:N 방식

 

위 그림처럼 여러 대의 내부망 PC가 라우터를 통해 웹 서버에 접근할 때

NAT Table에 포트 번호를 이용해 어떤 PC에서 요청이 들어왔는지 구분할 수 있도록 기록을 해두는 것이다.

PAT은 NAT 장비가 사용자로부터 패킷을 전달받아 NAT를 실시할 때,

출발지 포트를 임의로 변경하는 방식으로 사용자를 구분할 수 있게 된다.

'K-Shield > Jr' 카테고리의 다른 글

[K-Shield][Jr] 웹의 동작 방식  (0) 2025.04.27
[K-Shield][Jr] VPN( Virtual Private Network )  (0) 2025.04.27
[K-Shield][Jr] NAT  (0) 2025.04.27
[K-Shield][Jr] DMZ  (0) 2025.04.27
[K-Shield][Jr] 7계층 : 응용 계층( Application Layer )  (0) 2025.04.27
  • Network Address Translation의 약자로 네트워크 주소 변환 기술을 뜻한다
  • 한 IP 주소를 다른 IP 주소로 바꾸는 기술이다.
  • 사설 IP 주소를 공인 IP 주소 또는 공인 IP 주소를 사설 IP 주소로 변환한다
  • NAT를 수행하는 장비들을 다른 말로 Session 장비라고도 불린다. 이는 NAT를 실시한 내역을 Session Table에 저장하여 내역을 기록하고 있기 때문이다.

 

장점

  1. IP 주소 부족 문제 해결
    • IPv4의 주소 부족 문제를 해결하기 위한 방법으로 고려되었다.
    • 주로 사설 네트워크 주소를 사용하는 망에서 외부와의 통신을 위해 네트워크 주소를 변환하게 된다
  2. 보안
    • NAT의 특성상 IP를 숨길 수 있다
    • 라우터를 통해 외부로 나갈 때 사설 IP가 공인 IP주소로 바뀌므로 공격자는 라우터 안쪽에 있는 사설 IP를 알 수 없다

 

NAT 흐름

A PC가 인터넷을 통해 121.16.8.98과 통신하려고 할 때를 예로 들어보자.

A PC는 게이트웨이를 통해 121.16.8.98과 통신하겠다고 인터넷으로 보내달라고 요청하게 된다

  1. 게이트웨이를 통해 외부로 통신 요청
    • 게이트웨이는 A PC의 IP 192.168.0.2를 자신의 공인 IP 33.31.7.100으로 변환하여 외부로 전송한다.
  2. 121.16.8.98의 응답
    • 121.16.8.98 PC는 게이트웨이의 주소로 응답을 하게 된다
  3. 게이트웨이에서 A PC로 전달
    • 신호를 보낸 장비를 기억하고 있다가 원래의 요청 PC IP로 패킷을 전달한다.

 

Static NAT

  • 공인 IP와 사설 IP 주소가 1:1로 매칭되어 있는 1:1 NAT
  • 공인 IP 주소의 절약 효과는 없으나 내부 IP를 숨길 수 있다.

 

IP 헤더가 어떻게 설정되는지 살펴보자

 

 

Dynamic NAT

  • 여러 개의 공인 IP와 여러 개의 사설 IP가 있을 때 사용한다.
  • M:N으로 맵핑되어 사용한다
  • 대부분 공인 IP 주소가 사설 IP 주소보다 적을 경우에 사용한다.

 

공인 IP가 3개인 상황을 가정해보자

 

 

  • DMZ( Demilitarized Zone ) 비무장 지대의 의미
  • 외부에서 접근할 수 있지만 내부에는 접근이 불가능한 영역을 말한다.
  • 다시 말해 네트워크에서의 DMZ는 내부 네트워크에 있는 서버가 외부에서 서비스 제공 시, 내부 자원을 보호하기 위해 내부망과 외부망 사이에서 접근 제한을 수행하는 영역이다.

 

위 그림처럼 네트워크를 구성하게 되면, 외부에서 DMZ로의 접근은 가능하나, 방화벽으로 인해 내부망 Posts clients로는 접근이 불가능하게 된다.

 

DMZ 구성 방법

방화벽, NAT( Network Address Translation ), PAT( Port Address Translation )을 이용해 구성

 

방화벽

  • 들어오는 패킷( Inbound Packet )과 나가는 패킷( Outbound Packet )을 제어하는데 사용되는 보안 장치다
  • 특정 유형의 패킷만 통과하도록 허용하고 다른 모든 트래픽은 차단하도록 구성하면 DMZ 구간만 접근이 가능하게 된다.

NAT

  • IP 헤더에 있는 주소 정보를 수정하여 하나의 IP 주소를 다른 IP 주소로 매핑
  • 공인 IP( 방화벽 )를 DMZ 내부 IP 주소로 매핑하여 사용

PAT ( Port Address Translation )

  • 다른 IP를 가진 여러 장치가 단일 공인 IP 주소의 Port 번호를 사용하여 공유할 수 있게 해주는 NAT의 한 종류
  • NAT로 인해 변환되는 주소는 하나의 공인 IP를 사용하기 때문에 구분이 어려워 Port 번호로 원래의 IP를 구분한다.

 

DMZ 예시

Trusted Network

  • 회사의 직원 또는 신뢰할 수 있는 파트너와 같은 회사 내부 네트워크를 말한다.

Untrusted Network

  • Trusted Network와 반대 개념으로 외부 인터넷을 의미한다.

위 그림을 살펴보면

Untrusted Network에서 들어오는 패킷은 DMZ 영역까지만 접근이 가능하게 설정되고 내부 네트워크는 접근할 수 없게 된다.

이렇게 네트워크를 구축하면 Trusted zone까지 직접 접근할 방법이 없기 때문에 안전한 네트워크를 구축할 수 있게 된다.

애플레이션에 사용자 인터페이스와 네트워크 서비스를 제공한다.
즉, 사용자가 소프트웨어 응용 프로그램과 직접 접촉하게 되는 계층이다.

 

 

+ Recent posts