🔥 네트워크를 미시적으로 살펴보는 이유

이전 강에서는 네트워크를 거시적으로 살펴보는 방법을 다루었습니다.
이번엔 네트워크를 좀 더 세부적으로(Micro) 관찰하며, 데이터가 어떻게 전송되는지 학습합니다.

 

📌 네트워크 미시적 분석의 핵심:
두 대의 호스트가 데이터를 주고받을 때 어떤 일이 일어나는지 이해하기
데이터(패킷)가 이동하는 과정에서 사용되는 프로토콜을 알아보기


🏗 패킷(Packet)이란?

현대 대부분의 네트워크는 패킷 교환 방식(Packet Switching) 을 사용합니다.
즉, 데이터를 패킷 단위로 나누어 전송하며, 각 패킷에는 제어 정보(헤더)와 실제 데이터(페이로드)가 포함됩니다.

패킷의 구조

[Header] | [Payload] | [Trailer]
  • 헤더(Header): 송신자/수신자 주소, 패킷 번호 등
  • 페이로드(Payload): 실제 전송할 데이터
  • 트레일러(Trailer): 오류 검출 정보

📌 일상 속에서 패킷을 쉽게 이해하기
택배를 주고받는 과정과 유사
택배 박스(패킷) 안에는 실제 물건(페이로드)과 배송 정보(헤더)가 포함됨
택배 기사(네트워크 장비)가 물건을 정확한 주소로 전달


🛠 네트워크의 언어, 프로토콜(Protocol)

📌 프로토콜이란?
네트워크에서 데이터를 올바르게 주고받기 위해 정해진 규칙과 방법

 

프로토콜이 필요한 이유

  • 데이터를 주고받는 모든 장비가 같은 규칙을 따라야 원활한 통신 가능
  • 서로 다른 네트워크 장비(컴퓨터, 서버, 라우터)가 같은 언어를 사용해야 함

일상 속 프로토콜 예시

  • 우리가 대화를 할 때, 같은 언어(예: 한국어, 영어)를 사용해야 이해 가능
  • 네트워크에서도 각 기기가 같은 프로토콜을 사용해야 데이터 전송 가능

🎯 프로토콜의 종류와 역할

1️⃣ IP (Internet Protocol)

📌 IP는 "데이터를 목적지까지 전달하는 역할"을 수행

  • 송신지에서 수신지까지 패킷을 정확히 전달
  • 패킷이 이동하는 경로(Route)를 결정
  • 네트워크에서 가장 기본적인 프로토콜
[송신자] --- (IP 주소 기반 데이터 전송) ---> [수신자]

 

IP 프로토콜의 특징

  • IP 주소를 기반으로 목적지를 식별
  • 데이터가 여러 개의 네트워크를 거쳐 전달됨
  • 패킷 단위로 데이터를 전송하므로, 일부 패킷이 손실될 수 있음

2️⃣ ARP (Address Resolution Protocol)

📌 ARP는 "IP 주소를 MAC 주소로 변환하는 프로토콜"

  • IP 주소만으로는 로컬 네트워크에서 데이터를 전송할 수 없음
  • ARP를 통해 IP 주소에 대응하는 MAC 주소를 찾아 데이터 전송
[IP 주소] → [MAC 주소 찾기] → [데이터 전송]

 

ARP의 역할

  • IP 주소를 기반으로 같은 네트워크 내 장치를 찾음
  • 네트워크 통신의 첫 단계에서 중요한 역할 수행

3️⃣ HTTP vs HTTPS

📌 HTTP (HyperText Transfer Protocol)와 HTTPS (Secure HTTP)의 차이

  • HTTP: 웹 페이지를 요청하고 응답하는 기본 프로토콜
  • HTTPS: HTTP에 보안(SSL/TLS 암호화)을 추가한 프로토콜

HTTPS는 보안성이 뛰어남

  • 데이터를 암호화하여 해커가 도청할 수 없도록 보호
  • 온라인 결제, 로그인 페이지 등에서 필수적으로 사용됨
[HTTP 요청] → [웹 서버] → [HTTP 응답]

 

📌 웹 개발자는 HTTP/HTTPS의 원리를 반드시 이해해야 함


4️⃣ TCP vs UDP

📌 TCP (Transmission Control Protocol)

  • 데이터를 안정적으로 전송
  • 패킷이 순서대로 도착하도록 신뢰성 높은 전송 방식 제공
  • 웹 브라우징, 이메일, 파일 다운로드 등에 사용됨

📌 UDP (User Datagram Protocol)

  • 빠른 속도로 데이터를 전송하지만, 신뢰성이 낮음
  • 패킷이 일부 손실될 수 있지만 속도가 중요한 경우 사용
  • 온라인 게임, 스트리밍, VoIP(인터넷 전화) 등에 사용됨

TCP vs UDP 비교

비교 항목 TCP UDP
신뢰성 높음 (순서 보장, 재전송 기능) 낮음 (패킷 손실 가능)
속도 느림 (확인 과정 필요) 빠름 (확인 과정 없음)
사용 사례 웹 브라우징, 파일 전송 실시간 스트리밍, 게임

 

📌 TCP는 신뢰성이 필요한 데이터 전송, UDP는 속도가 중요한 데이터 전송에 사용됨


🏁 정리: 네트워크에서 프로토콜의 역할

📌 네트워크에서 프로토콜은 데이터를 올바르게 주고받기 위한 규칙
📌 각 프로토콜은 특정 목적과 특징을 가짐

 

주요 프로토콜 정리

프로토콜 역할
IP 목적지까지 패킷을 전달
ARP IP 주소를 MAC 주소로 변환
HTTP/HTTPS 웹 페이지 요청 및 응답 (HTTPS는 보안 강화)
TCP 신뢰성 높은 데이터 전송 (순서 보장)
UDP 빠른 데이터 전송 (순서 미보장)

 

📌 개발자가 네트워크 프로토콜을 이해하면 더욱 최적화된 시스템을 개발할 수 있음


이 블로그 포스트를 통해 배운 점

  • 패킷(Packet)의 구조와 역할
  • 프로토콜(Protocol)이란 무엇이며, 왜 필요한가?
  • IP, ARP, HTTP, TCP/UDP 등 주요 프로토콜의 개념과 차이점
  • 각 프로토콜이 네트워크에서 어떤 역할을 수행하는지 이해

 

 

출처:
혼자공부하는 네트워크 - 강민철

🔥 네트워크에서 주소(Address)와 전송 방식이 중요한 이유

네트워크에서 데이터를 송수신할 때 어떤 기기(호스트)로 데이터를 전송할지를 결정해야 합니다.
이를 위해 네트워크에서는 주소(Address) 개념이 필수적으로 사용됩니다.

📌 주소(Address)란?

네트워크에서 송신자(보내는 쪽)와 수신자(받는 쪽)를 특정하는 정보

  • 주소가 없다면 데이터를 어디로 보내야 할지 알 수 없음
  • 네트워크에서는 다양한 주소 체계를 사용하여 데이터가 정확한 목적지에 도달하도록 설계

네트워크에서 사용되는 대표적인 주소 체계 1️⃣ IP 주소 → 인터넷에서 가장 많이 사용되는 주소
2️⃣ MAC 주소 → 로컬 네트워크에서 사용되는 장치 고유 주소

📌 이러한 주소 정보는 네트워크 패킷의 "헤더(Header)"에 포함되어 있음
📌 패킷이 송수신될 때 반드시 주소 정보가 필요함


🏗 네트워크 패킷(Packet)과 헤더(Header)의 역할

네트워크에서 데이터를 전송할 때 패킷(Packet) 단위로 전달됨
패킷은 크게 헤더(Header), 페이로드(Payload), 트레일러(Trailer) 로 구성됨.

패킷 구조

[Header] | [Payload] | [Trailer]
  • 헤더(Header): 송신자/수신자 주소, 패킷 번호 등 제어 정보 포함
  • 페이로드(Payload): 실제 전송할 데이터
  • 트레일러(Trailer): 오류 검출 정보

📌 헤더(Header)에 담기는 대표적인 정보송신자 주소 (Sender Address) → 패킷을 보낸 기기의 주소
수신자 주소 (Receiver Address) → 패킷을 받을 기기의 주소
기타 제어 정보 → 패킷 번호, 프로토콜 정보 등


🛠 네트워크의 전송 방식 (송수신 유형)

네트워크에서는 데이터를 전송할 때 수신지를 특정하는 방식이 다릅니다.
주로 네 가지 전송 방식이 존재합니다.

1️⃣ 유니캐스트(Unicast) - 1:1 전송

📌 특징

  • 네트워크에서 가장 일반적인 데이터 전송 방식
  • 송신자가 특정한 하나의 수신자에게만 데이터를 전송

📌 예제

  • 웹 브라우징 (내 PC → 구글 서버)
  • 이메일 전송 (내 PC → 상대방 이메일 서버)
[송신자] → [수신자]

일반적인 네트워크 통신 방식
특정 기기 간의 개별 통신이 필요할 때 사용


2️⃣ 브로드캐스트(Broadcast) - 1:N 전송 (모든 호스트에게 전송)

📌 특징

  • 하나의 기기가 같은 네트워크에 연결된 모든 기기에게 데이터를 전송
  • 네트워크 내부에서만 사용되며, 인터넷에서는 사용되지 않음
  • 로컬 네트워크에서 정보를 공유할 때 사용

📌 예제

  • DHCP 요청 (IP 자동 할당)
  • ARP(Address Resolution Protocol) (MAC 주소 확인)
[송신자] → [네트워크 내 모든 수신자]

네트워크 내부에서 특정 정보 공유에 유용
하지만 불필요한 트래픽을 발생시킬 수 있음

📌 브로드캐스트 도메인(Broadcast Domain)이란?

  • 브로드캐스트 메시지가 전달되는 네트워크 범위
  • 보통 하나의 LAN(Local Area Network) 을 의미
  • 라우터를 지나지 않음 (즉, 같은 네트워크 안에서만 브로드캐스트 가능)

3️⃣ 멀티캐스트(Multicast) - 1:특정 그룹 전송

📌 특징

  • 특정한 그룹(Group)에게만 데이터를 전송
  • 유니캐스트와 브로드캐스트의 중간 형태

📌 예제

  • 화상 회의 (Zoom, Webex 등)
  • 스트리밍 서비스 (IPTV, 스포츠 중계 등)
[송신자] → [특정 그룹]

브로드캐스트보다 효율적이고, 특정 그룹만 데이터를 받을 수 있음
멀티캐스트 그룹 주소를 활용하여 특정 기기만 데이터 수신 가능


4️⃣ 애니캐스트(Anycast) - 1:가장 가까운 서버로 전송

📌 특징

  • 여러 개의 서버 중 가장 가까운 서버로 데이터 전송
  • DNS, CDN(Content Delivery Network) 같은 서비스에서 많이 사용됨

📌 예제

  • DNS 서버 요청 (Google DNS - 8.8.8.8)
  • Cloudflare CDN (웹사이트 로딩 속도 향상)
[송신자] → [가장 가까운 서버]

빠른 응답 속도를 위해 최적의 서버로 연결
글로벌 서비스에서 네트워크 부하를 줄이기 위해 사용


🎯 정리: 네트워크에서의 주소와 전송 방식

📌 네트워크에서 주소(Address)는 송수신지를 특정하는 핵심 정보
📌 헤더(Header)에 송신자/수신자 정보가 포함됨


📌 전송 방식은 네 가지로 구분됨
유니캐스트(Unicast)1:1 전송 (웹 브라우징, 이메일)
브로드캐스트(Broadcast)1:N 전송 (DHCP, ARP 요청)
멀티캐스트(Multicast)1:특정 그룹 전송 (화상 회의, IPTV 스트리밍)
애니캐스트(Anycast)1:가장 가까운 서버로 전송 (DNS 요청, CDN)

 

📌 유니캐스트와 브로드캐스트는 가장 많이 사용되는 방식
📌 멀티캐스트와 애니캐스트는 효율적인 네트워크 트래픽 관리를 위해 활용


이 블로그 포스트를 통해 배운 점

  • 네트워크에서 주소(Address)의 역할과 중요성
  • 패킷(Packet) 구조와 헤더(Header)에 포함되는 정보
  • 네트워크 전송 방식 (유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트)
  • 실무에서 사용되는 주요 네트워크 프로토콜의 전송 방식

 

 

출처:
혼자공부하는 네트워크 - 강민철

🔥 네트워크의 분류 기준

이전 강에서는 네트워크의 기본 개념과 구조를 살펴보았습니다.
이번엔 네트워크를 어떻게 분류할 수 있는지에 대해 학습합니다.

 

📌 네트워크 분류 기준은 크게 두 가지로 나뉩니다.
1️⃣ 범위에 따른 분류 (LAN vs WAN)
2️⃣ 메시지 교환 방식에 따른 분류 (회선 교환 vs 패킷 교환)


🏗 1. 범위에 따른 네트워크 분류

네트워크는 연결된 범위에 따라 크게 두 가지로 나뉩니다.

1️⃣ LAN (Local Area Network, 근거리 통신망)

📌 특징

  • 근거리에 있는 기기들을 연결하는 네트워크
  • 한정된 공간 내에서 구축 (가정, 사무실, 학교 등)
  • 빠른 속도와 낮은 지연 시간(Low Latency)
  • 개발자가 관리하는 네트워크 대부분이 LAN

📌 예제

  • 집에서 사용하는 Wi-Fi 네트워크
  • 회사 내부의 사무실 네트워크
  • 대학교 캠퍼스 네트워크
[노트북] --- Wi-Fi --- [공유기] --- 유선 --- [사무실 네트워크]

LAN은 보통 한정된 공간에서 한 개인이나 조직이 구축한 네트워크를 의미
개발자가 구축하고 관리하는 대부분의 네트워크는 LAN


2️⃣ WAN (Wide Area Network, 광역 통신망)

📌 특징

  • 멀리 떨어진 지역까지 연결하는 네트워크
  • 다른 LAN과 연결하여 데이터를 주고받는 역할
  • 인터넷이 대표적인 WAN의 예시
  • 주로 인터넷 서비스 제공업체(ISP)가 구축하고 관리

📌 예제

  • 인터넷 (KT, SKT, LG U+ 등 ISP가 제공)
  • 기업 간 전용 회선
  • 국가 간 연결된 해저 케이블
[사무실 LAN] --- 인터넷(ISP) --- [해외 데이터 센터 LAN]

WAN은 주로 ISP(인터넷 서비스 제공업체)가 관리
인터넷을 통해 LAN끼리 연결될 때 WAN이 사용됨


🛠 2. 메시지 교환 방식에 따른 네트워크 분류

네트워크에서 데이터(메시지)를 주고받는 방식에 따라 크게 두 가지로 나뉩니다.

1️⃣ 회선 교환 방식 (Circuit Switching)

📌 특징

  • 메시지를 주고받기 전에 고정된 경로(회선)를 먼저 설정
  • 설정된 회선을 통해서만 데이터를 전송
  • 전송로를 예약하고 사용하기 때문에 전송 속도가 일정함

📌 예제

  • 전통적인 유선 전화망 (PSTN, Public Switched Telephone Network)
  • 전화 통화를 할 때, 상대방과 연결되면 하나의 회선이 유지
  • 통화가 끝나기 전까지 다른 데이터는 해당 회선을 사용하지 못함
[A 사용자] ----- (고정된 회선) ----- [B 사용자]
 

장점:

  • 전송 속도가 일정하고 안정적
  • 실시간 음성 통신에 적합 (전화, 음성 회의 등)

단점:

  • 회선이 예약된 동안 비효율적 (데이터가 전송되지 않더라도 회선 점유)
  • 네트워크 자원 낭비가 발생할 가능성이 있음

2️⃣ 패킷 교환 방식 (Packet Switching)

📌 특징

  • 메시지를 여러 개의 작은 패킷(Packet) 단위로 쪼개서 전송
  • 각 패킷은 최적의 경로를 찾아 독립적으로 이동
  • 네트워크의 이용 효율이 높음

📌 예제

  • 인터넷 (TCP/IP 기반 네트워크)
  • 웹사이트 요청, 파일 다운로드, 이메일 송수신
[A 사용자] ----> [라우터] ----> [B 사용자]  
(A → B로 패킷이 여러 경로를 통해 이동)

장점:

  • 네트워크 자원을 효율적으로 사용 (여러 사용자가 하나의 네트워크를 공유 가능)
  • 대용량 파일 전송 가능 (예: 영화 다운로드)
  • 인터넷에서 널리 사용되는 방식

단점:

  • 패킷이 다른 경로로 이동하므로, 도착 순서가 다를 수 있음
  • 일시적인 네트워크 지연(Jitter) 가능

📌 현대 인터넷 환경에서는 대부분 패킷 교환 방식이 사용됨
📌 웹 개발자라면 패킷 구조와 데이터 흐름을 이해하는 것이 중요


🎯 정리: 네트워크의 분류

📌 네트워크는 범위와 메시지 교환 방식에 따라 분류 가능

범위에 따른 네트워크 분류

분류 설명 예제
LAN (근거리 네트워크) 한정된 공간 내에서 연결 가정, 사무실 Wi-Fi
WAN (광역 네트워크) 멀리 떨어진 지역까지 연결 인터넷 (ISP 제공)

 

메시지 교환 방식에 따른 분류

분류 설명 예제
회선 교환 방식 고정된 회선을 먼저 설정 후 메시지 전송 전화 통화 (PSTN)
패킷 교환 방식 데이터를 여러 패킷으로 나눠 최적 경로로 전송 인터넷 (TCP/IP)

📌 오늘날 인터넷에서 사용되는 네트워크는 "패킷 교환 방식"
📌 앞으로의 강의에서는 패킷의 구조와 데이터 흐름을 집중적으로 다룰 예정


이 블로그 포스트를 통해 배운 점

  • 네트워크의 기본적인 분류 (LAN vs WAN)
  • 메시지 교환 방식 (회선 교환 vs 패킷 교환)
  • 현대 인터넷이 패킷 교환 방식을 사용하는 이유
  • 개발자가 네트워크의 흐름을 이해해야 하는 이유

 

출처:
혼자공부하는 네트워크 - 강민철

🔥 네트워크를 거시적으로 바라보기

컴퓨터 네트워크를 학습하기 전에, 네트워크의 기본 개념과 큰 그림을 먼저 이해해야 합니다.
이번엔 네트워크의 기본 구조핵심 요소를 거시적으로 살펴봅니다.

 

📌 네트워크를 거시적으로 이해해야 하는 이유
✅ 네트워크는 데이터가 어떻게 전달되는지 파악하는 핵심 요소
✅ 전체 구조를 이해하면, 세부적인 기술과 프로토콜을 쉽게 학습할 수 있음
✅ 네트워크의 핵심 개념이 계속 반복되므로 처음부터 모든 용어를 암기할 필요 없음


🏗 네트워크의 기본 구조

1️⃣ 네트워크는 그래프(Graph) 형태를 띔

네트워크는 자료구조에서의 "그래프(Graph)" 형태로 표현할 수 있습니다.
즉, 노드(Node)와 간선(Edge)로 이루어진 연결 구조를 가집니다.

 

🔹 그래프 구조 이해하기

  • 노드(Node) = 컴퓨터, 서버, 스마트폰, 네트워크 장비 등
  • 간선(Edge) = 유선 또는 무선 연결 (LAN, Wi-Fi, 광케이블 등)

 

📌 그래프 형태의 네트워크 예시

[스마트폰] --- Wi-Fi --- [공유기] --- 유선 --- [인터넷]

노드와 간선이 연결되며 네트워크를 형성
네트워크는 노드와 간선의 조합으로 동작


2️⃣ 네트워크의 주요 구성 요소

📌 네트워크는 기본적으로 네 가지 요소로 구성됨
1. 호스트 (Host) → 사용자가 직접 사용하는 기기 (컴퓨터, 스마트폰, 서버 등)
2. 네트워크 장비 → 라우터, 스위치, 허브 등 중간 노드 역할
3. 통신 매체 → 유선(LAN, 광케이블) / 무선(Wi-Fi, 5G)
4. 메시지 (Message) → 네트워크에서 주고받는 데이터

 

🔹 네트워크의 구조를 쉽게 이해하려면?
가장자리에 위치한 노드호스트 (Host)
중간에 위치한 노드네트워크 장비 (Network Device)
호스트와 장비를 연결하는 선통신 매체 (유선/무선)
연결된 노드들이 주고받는 데이터메시지 (Message)


3️⃣ 호스트 (Host)의 개념

📌 호스트(Host)란?

  • 네트워크에서 최초로 데이터를 송신하거나 최종적으로 데이터를 수신하는 장치
  • 사용자의 컴퓨터, 스마트폰, 서버 등이 대표적인 예

🔹 예제: 이메일 전송 과정

[스마트폰] → (이메일 전송) → [인터넷] → [상대방 컴퓨터]
 
이메일을 전송한 스마트폰 = 호스트

이메일을 수신한 상대방 컴퓨터 = 호스트


4️⃣ 클라이언트(Client)와 서버(Server)

📌 클라이언트(Client)와 서버(Server) 개념

  • 클라이언트 → 요청을 보내는 호스트
  • 서버 → 요청을 처리하고 응답을 보내는 호스트

🔹 클라이언트-서버 모델 예시

[웹 브라우저] → (HTTP 요청) → [웹 서버] → (응답) → [웹 브라우저]

웹 브라우저(Chrome, Edge 등) = 클라이언트
웹 페이지를 제공하는 서버(AWS, Nginx 등) = 서버

 

📌 중요한 점:

  • 클라이언트와 서버는 역할이 다를 뿐, 같은 장비에서 동작 가능
  • 하나의 컴퓨터가 클라이언트이면서 서버 역할도 할 수 있음
  • 예) 개발자가 자신의 노트북에서 서버와 클라이언트를 동시에 실행 가능

5️⃣ 네트워크 장비 (Network Devices)

📌 네트워크 장비란?
네트워크 내에서 데이터가 안전하고 안정적으로 전달되도록 돕는 장치

  • 라우터(Router) → 네트워크 간 데이터 전송을 담당
  • 스위치(Switch) → 같은 네트워크 내에서 데이터 전송
  • 방화벽(Firewall) → 보안 및 네트워크 보호 역할

네트워크 장비는 중간 노드 역할을 수행
호스트 간의 통신을 원활하게 하기 위해 필수적인 요소


6️⃣ 통신 매체 (Transmission Medium)

📌 통신 매체란?
네트워크에서 데이터를 전송하는 물리적인 연결 방식

  • 유선 통신 매체 (LAN, 광케이블, 이더넷 등)
  • 무선 통신 매체 (Wi-Fi, 블루투스, 5G 등)

📌 왜 개발자가 통신 매체를 알아야 할까?
✅ 네트워크 속도와 성능에 영향을 줌
✅ 개발한 프로그램이 특정 네트워크 환경에서 어떻게 동작할지 예측 가능
✅ 와이파이와 이더넷의 차이를 이해하면 최적화된 네트워크 설정이 가능


7️⃣ 네트워크에서 주고받는 메시지 (Message)

📌 메시지란?
네트워크에서 호스트 간에 주고받는 데이터

  • 웹 페이지 요청 및 응답 (HTTP Request / Response)
  • 이메일 (SMTP, IMAP)
  • 파일 전송 (FTP)
  • 영상 스트리밍 (RTSP)

네트워크를 통해 다양한 형태의 데이터가 전송됨
5장에서 HTTP 및 다양한 메시지 형식에 대해 학습할 예정


🏁 정리: 네트워크의 기본 구조

📌 네트워크는 그래프(Graph) 형태의 구조를 가짐


📌 네트워크의 주요 요소
호스트 (Host) → 데이터를 송수신하는 기기
네트워크 장비 (Router, Switch) → 데이터 전달을 돕는 중간 노드
통신 매체 (Wired, Wireless) → 데이터를 주고받는 경로
메시지 (Message) → 실제로 네트워크에서 전송되는 데이터

 

📌 클라이언트(Client)와 서버(Server)의 개념을 이해해야 함


📌 개발자가 네트워크 성능과 데이터 흐름을 이해하면 더욱 최적화된 프로그램 개발 가능

 

이 블로그 포스트를 통해 배운 점

  • 네트워크의 기본 구조와 그래프 개념
  • 네트워크의 주요 요소 (호스트, 네트워크 장비, 통신 매체, 메시지)
  • 클라이언트와 서버의 역할 및 상호 작용 방식
  • 개발자가 네트워크 개념을 이해해야 하는 이유

 

 

출처:
혼자공부하는 네트워크 - 강민철

🔥 컴퓨터 네트워크란?

컴퓨터 네트워크란 여러 개의 장치가 마치 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망을 의미합니다.
쉽게 말해, 우리가 사용하는 인터넷도 하나의 거대한 컴퓨터 네트워크입니다.

 

📌 네트워크의 특징
그래프(Graph) 구조로 이루어짐

  • 네트워크는 자료구조 중 그래프 형태를 띄고 있음.
  • 노드(Node): 컴퓨터, 서버, 스마트폰 등 네트워크에 연결된 장치
  • 간선(Edge): 유무선 연결 매체 (LAN, Wi-Fi, 광케이블 등)

여러 개의 네트워크가 존재할 수 있음

  • 예를 들어, A 네트워크와 B 네트워크는 각각 독립적으로 존재 가능
  • 이러한 네트워크가 연결된 것이 "인터넷"

네트워크 간 통신이 가능

  • 같은 네트워크 내 통신뿐만 아니라,
  • 서로 다른 네트워크 간에도 데이터를 주고받을 수 있음.

🎯 왜 개발자는 네트워크를 배워야 할까?

오늘날 대부분의 프로그램은 네트워크와 연결되어 동작합니다.
즉, 네트워크 없이 사용할 수 있는 프로그램이 거의 없다는 것!
개발자가 네트워크를 잘 이해하면 프로그램 개발 및 유지보수 시 큰 도움이 됩니다.

개발자가 네트워크를 활용하는 경우

📌 1️⃣ 새로운 프로그램을 개발할 때

  • 네트워크 프로그래밍이 필수적
  • 예제: TCP, UDP, HTTP 등의 프로토콜을 활용하는 기능 개발
  • 공식 문서에서 네트워크 관련 내용을 이해해야 함
// 네트워크 소켓을 활용한 간단한 서버 코드 예제 (Java)
ServerSocket serverSocket = new ServerSocket(8080);
Socket clientSocket = serverSocket.accept();

 

📌 2️⃣ 기존 프로그램을 유지보수할 때

  • 네트워크 오류를 해결해야 하는 경우가 많음
  • 예제: 404 Not Found 오류가 발생했을 때 원인을 분석하고 수정
  • 네트워크 명령어 및 디버깅 도구 활용 (ex: ping, traceroute, Wireshark)
ping google.com   # 네트워크 연결 상태 확인
traceroute google.com  # 경로 추적

🛠 네트워크 지식이 필요한 실제 사례

웹 개발자:

  • API 통신 (REST API, GraphQL)
  • HTTP 요청 & 응답 처리
  • 쿠키, 세션, 인증 관련 개념 이해

서버 개발자:

  • 서버 간 데이터 전송 (TCP/IP, UDP)
  • 로드 밸런싱, 트래픽 관리
  • 데이터베이스 네트워크 연결 설정

보안 전문가:

  • 네트워크 패킷 분석
  • 방화벽, VPN 설정 및 보안 정책 수립

네트워크 엔지니어:

  • 네트워크 장비(스위치, 라우터) 설정
  • 기업 네트워크 구축 및 관리

📌 네트워크 관련 채용 공고 & 면접

많은 IT 기업들은 네트워크 관련 기초 지식을 평가합니다.

  • 기술 면접에서 네트워크 개념 질문 (TCP vs UDP, HTTP 상태 코드)
  • 코딩 테스트에서 API 개발 문제 출제
  • 실무에서 HTTP 통신 및 데이터 전송을 다룰 일이 많음

📌 예제: 기술 면접 질문

1️⃣ TCP와 UDP의 차이점은?
2️⃣ HTTP와 HTTPS의 차이점은?
3️⃣ 404 Not Found 오류는 언제 발생하는가?
4️⃣ 네트워크 패킷 캡처 도구(Wireshark) 사용법


🏁 결론: 네트워크를 공부해야 하는 이유

  • 네트워크는 현대 IT 기술의 핵심 개념
  • 대부분의 프로그램이 네트워크 기반으로 동작
  • 개발자로서 네트워크 개념을 이해하면 업무 생산성이 향상
  • 코딩 테스트 & 기술 면접에서도 자주 출제되는 중요 개념

📌 "컴퓨터 네트워크를 공부하는 것은 선택이 아니라 필수!" 🚀


이 블로그 포스트를 통해 배운 점

  • 컴퓨터 네트워크의 기본 개념 (그래프 구조, 인터넷)
  • 개발자가 네트워크 개념을 학습해야 하는 이유
  • 실제 개발 업무에서 네트워크가 어떻게 활용되는지
  • 네트워크 관련 채용 공고 및 면접에서 다뤄지는 주요 개념

 

출처:
혼자공부하는 네트워크 - 강민철

OSI 7계층이란?

OSI 7계층은 네트워크 통신 과정을 7단계로 나누어 설명하는 국제 표준 모델이다. 각 계층은 독립적인 역할을 가지며, 상위/하위 계층과 협력하여 데이터 전송이 이루어진다.

 

OSI 7계층을 나누는 이유

1. 이해하기 쉽게 하기 위해
네트워크의 복잡한 과정을 계층별로 구분하여 학습과 이해를 돕는다.
2. 문제 해결의 효율성
특정 계층에서 발생한 문제를 분리하여 해결할 수 있어 시간과 비용을 절감한다.
3. 호환성 제공
다양한 장치와 시스템 간 상호작용이 원활하도록 표준을 제공한다.
4. 유지보수와 확장성 강화
각 계층이 독립적으로 설계되어 수정, 업그레이드가 용이하다.

 

OSI 7계층의 역할과 특징

1. 물리 계층 (Physical Layer)

  • 역할: 데이터를 전기적 신호 또는 광 신호로 변환하여 물리적인 매체를 통해 전달.
  • 주요 기능: 비트(Bit) 단위 전송, 하드웨어적 전송 매체 관리.
  • 관련 장비: 케이블, 허브, 리피터.
  • 특징:
    • 전송 매체의 유형(유선/무선) 정의.
    • 전기적, 기계적, 절차적 연결 방식을 규정.

2. 데이터 링크 계층 (Data Link Layer)

  • 역할: 데이터 프레임 단위로 전송하며, 오류 검출 및 흐름 제어 수행.
  • 주요 기능:
    • MAC 주소를 기반으로 통신.
    • CRC(순환 중복 검사)를 통해 오류 검출.
    • 신뢰성 있는 프레임 전달 및 충돌 방지.
  • 관련 장비: 스위치, 브릿지.
  • 특징:
    • 데이터 단위: 프레임(Frame).
    • Point-to-Point 연결에서 신뢰성 제공.

3. 네트워크 계층 (Network Layer)

  • 역할: 데이터를 목적지까지 가장 효율적으로 전달할 경로를 설정.
  • 주요 기능:
    • IP 주소를 사용해 논리적 주소 지정.
    • 라우팅 및 경로 선택 기능 제공.
    • 데이터 패킷 단위로 전송.
  • 관련 장비: 라우터.
  • 특징:
    • 데이터 단위: 패킷(Packet).
    • 계층적(Hierarchical) 구조로 경로 제어.

4. 전송 계층 (Transport Layer)

  • 역할: 종단 간(end-to-end) 신뢰성 있는 데이터 전송 보장.
  • 주요 기능:
    • 데이터 흐름 제어 및 오류 제어.
    • 연결형(TCP)과 비연결형(UDP) 통신 방식 지원.
    • 데이터 분할 및 재조립, 손실 시 재전송 처리.
  • 관련 프로토콜: TCP, UDP.
  • 특징:
    • 데이터 단위: 세그먼트(Segment).

5. 세션 계층 (Session Layer)

  • 역할: 통신 세션 설정, 유지, 종료를 담당.
  • 주요 기능:
    • 연결 상태를 유지하거나 복구.
    • 대화 관리 및 흐름 제어.
  • 특징:
    • API나 소켓을 통해 응용 프로세스 간 데이터 교환 지원.

6. 표현 계층 (Presentation Layer)

  • 역할: 데이터의 형식 변환(인코딩/디코딩), 압축, 암호화 수행.
  • 주요 기능:
    • 서로 다른 시스템 간 데이터 표현 차이를 해결.
    • 파일 형식 처리 및 데이터 압축.
  • 관련 예시: JPEG, MPEG.

7. 응용 계층 (Application Layer)

  • 역할: 사용자와 네트워크 간 인터페이스 제공.
  • 주요 기능:
    • 이메일, 파일 전송, 웹 브라우징 등 지원.
    • 응용 프로그램 간 통신 관리.
  • 관련 프로토콜: HTTP, FTP, DNS.

 

TCP/IP 4계층과의 비교

OSI 7계층은 TCP/IP 4계층 모델과도 대응된다.

  • 응용 계층(OSI 5~7 계층)
  • 전송 계층(OSI 4 계층)
  • 인터넷 계층(OSI 3 계층)
  • 네트워크 액세스 계층(OSI 1~2 계층)

 

이처럼 OSI 7계층은 네트워크 통신의 복잡한 과정을 체계적으로 나누어 쉽게 이해하고 문제를 해결할 수 있도록 돕는다.

각 계층의 역할을 이해하면 네트워크 구조와 작동 방식을 더 잘 이해할 수 있다.

 

 

참조:
https://velog.io/@conatuseus/2019-09-10-2009-%EC%9E%91%EC%84%B1%EB%90%A8-xsk0ds2eqf

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-OSI-7%EA%B3%84%EC%B8%B5-%EC%A0%95%EB%A6%AC

 

 

+ Recent posts