본문 바로가기
CS/Network

응용 계층(application layer) 개요 🚀

by haerr 2025. 4. 4.

✅ 애플리케이션 레이어란?

애플리케이션 레이어는 네트워크를 사용하는 프로그램(네트워크 애플리케이션)이 동작하는 계층이다. 우리가 매일 쓰는 이메일, 웹 브라우저, 유튜브 같은 서비스가 모두 애플리케이션 레이어에서 작동한다.

 

네트워크 애플리케이션을 개발하려면 트랜스포트 레이어(TCP/UDP)를 이용해서 데이터를 주고받는 방식을 이해해야 한다.

 

 

💡 네트워크 애플리케이션의 예시

다음과 같은 서비스들이 모두 네트워크 애플리케이션이다.

 

📧 이메일 (Gmail, Outlook)

🌍 웹 브라우징 (Chrome, Firefox)

💬 메시징 앱 (카카오톡, WhatsApp)

🎮 온라인 게임 (리그 오브 레전드, 배틀그라운드)

🎥 비디오 스트리밍 (유튜브, 넷플릭스)

📞 인터넷 전화 (VoIP - Skype, Zoom)

🛜 파일 공유 (토렌트, 구글 드라이브)

 

 

🏛 인터넷 프로토콜 스택 (Internet Protocol Stack)

인터넷에서 데이터가 이동하는 과정을 5가지 계층으로 나눠서 관리한다.

 

계층 역할 예제
응용 계층 (Application) 사용자에게 보이는 프로그램 동작 HTTP, FTP, SMTP
전송 계층 (Transport) 데이터 전송 관리 TCP, UDP
네트워크 계층 (Network) IP 주소를 기반으로 데이터 전달 IP, 라우팅 프로토콜
링크 계층 (Link) 근거리 통신 관리 (Wi-Fi, 이더넷) 이더넷, Wi-Fi (802.11)
물리 계층 (Physical) 실제 케이블, 전파 등 데이터 전달 광섬유, 동축 케이블

 

이렇게 계층별로 나누면 설계가 단순해지고, 각 계층이 독립적으로 발전할 수 있다.

 

 

📦 캡슐화 (Encapsulation)

네트워크에서 데이터를 전송할 때는 각 계층이 추가 정보를 덧붙이는 방식으로 이루어진다.

 

1️⃣ 애플리케이션 레이어: 메시지를 만듦

2️⃣ 트랜스포트 레이어: TCP/UDP 헤더 추가

3️⃣ 네트워크 레이어: IP 주소 추가

4️⃣ 링크 레이어: MAC 주소 추가

5️⃣ 물리 레이어: 비트(0과 1) 형태로 전송

 

📥 수신측에서는 반대로 헤더를 하나씩 제거하면서 원래 메시지를 복원한다.

이 과정을 디캡슐화(Decapsulation)라고 한다.

 

 

🏗 네트워크 애플리케이션 구조

네트워크 애플리케이션을 만들 때는 클라이언트-서버 모델P2P 모델 두 가지 방식이 있다.

 

🔹 클라이언트-서버 (Client-Server)

서버는 항상 켜져 있고 고정 IP 주소를 가짐

클라이언트가 서버에 접속해서 요청을 보냄

예) 웹사이트 접속 (크롬이 서버에 요청 → 서버가 응답)

 

🔹 P2P (Peer-to-Peer)

서버 없이 기기들끼리 직접 연결

각 기기가 클라이언트이자 서버 역할을 함

예) 토렌트 (파일을 직접 공유)

 

P2P는 자가 확장성(self scalability)이 뛰어나지만, 관리하기 어렵다는 단점이 있다.

 

 

🎯 프로세스 간 통신 (Inter-Process Communication)

네트워크에서 두 프로그램이 데이터를 주고받으려면 프로세스 간 통신(IPC)을 해야 한다.

같은 컴퓨터 내에서는 운영체제가 IPC를 관리

다른 컴퓨터끼리는 소켓(Socket)을 이용해 통신

 

💡 소켓 (Socket)이란?

소켓은 네트워크에서 데이터를 주고받는 창구 같은 역할을 한다.

이걸 이용해서 클라이언트-서버 프로그램을 만들 수 있다!

 

 

🎯 정리

애플리케이션 레이어는 네트워크를 사용하는 프로그램이 동작하는 계층

네트워크 애플리케이션의 예: 이메일, 웹 브라우저, 메시징 앱, 게임 등

인터넷 프로토콜 스택: 애플리케이션 → 트랜스포트 → 네트워크 → 링크 → 물리

캡슐화: 데이터를 보내면서 각 계층이 헤더를 추가하는 과정

클라이언트-서버 vs. P2P: 클라이언트-서버는 중앙 서버 필요, P2P는 직접 연결

소켓을 이용한 통신으로 네트워크 애플리케이션을 개발할 수 있음

 

'CS > Network' 카테고리의 다른 글

[네트워크] Web Cache  (0) 2025.04.19
HTTP와 웹의 작동 원리  (0) 2025.04.04
🌐 네트워크 코어란?  (0) 2025.04.04
🌐 네트워크 엣지(network edge)란?  (0) 2025.04.04
🌐 인터넷과 네트워크 쉽게 이해하기!  (1) 2025.04.04