이 글에서 얻는 것

  • OSI 7계층을 단순히 외우는 것이 아니라, “문제가 발생했을 때 어느 계층을 봐야 하는지” 알게 됩니다.
  • L4 vs L7 로드밸런서의 차이를 통해 아키텍처 설계의 기본을 익힙니다.
  • TCP Handshake가 왜 필요한지, 연결 비용이 왜 비싼지 실무적으로 이해합니다.

0. 왜 계층을 나눴을까?

복잡한 네트워크 통신 과정을 역할별로 쪼개서 관리하기 위함입니다.

  • 랜선이 끊어지면(1계층 문제), 유튜브 앱(7계층)을 고칠 필요 없이 랜선만 바꾸면 됩니다.
  • 이것이 캡슐화모듈화의 전형적인 예시입니다.

1. 실무에서 중요한 4가지 계층 (TCP/IP 모델)

OSI 7계층은 이론에 가깝고, 실무에서는 TCP/IP 4계층 위주로 사고합니다.

L7: 응용 계층 (Application)

  • 우리가 만드는 코드: HTTP, JSON, HTML, DNS
  • 장비: L7 로드밸런서 (Nginx, AWS ALB), WAF(웹 방화벽)
  • 특징: “패킷의 내용"을 볼 수 있습니다. (URL /login은 A서버로, /search는 B서버로)

L4: 전송 계층 (Transport)

  • 연결과 포트: TCP, UDP, Port
  • 장비: L4 로드밸런서, 방화벽(Port 제어)
  • 특징: 내용(HTTP 헤더 등)은 모르고, IP와 Port만 보고 배달합니다. “이 패킷은 8080 포트로 가는구나”

L3: 네트워크 계층 (Network)

  • 주소와 경로: IP, 라우터
  • 특징: 목적지 컴퓨터를 찾아가는 네비게이션 역할입니다. (서울시 강남구…)

L2/L1: 데이터 링크/물리 계층

  • 랜선과 MAC: 이더넷, 와이파이, 스위치
  • 특징: 옆 컴퓨터(공유기 등)로 물리적 신호를 전달합니다.

2. L4 vs L7 로드밸런서 (면접 단골, 실무 필수)

구분L4 로드밸런서 (AWS NLB)L7 로드밸런서 (AWS ALB, Nginx)
기준IP 주소 + 포트 번호URL, HTTP 헤더, 쿠키
속도빠름 (패킷 내용을 안 까보니까)L4보다 느림 (내용 분석 비용)
기능단순 부하 분산SSL 종료, URL 라우팅, 인증 처리 가능
용도대규모 트래픽 단순 분산, TCP 베이스마이크로서비스 라우팅, HTTPS 처리

실무 팁:

  • “서비스가 너무 느린데 HTTPS 복호화 비용 때문인가?” -> L7 앞단에 L4를 둬서 부하를 줄이기도 합니다.
  • MSA 환경에서는 **L7(Ingress)**가 필수입니다. /users 요청과 /orders 요청을 찢어줘야 하니까요.

3. TCP 3-way Handshake: “연결은 비싸다”

TCP는 신뢰성이 생명입니다. “나 보낸다?” “어, 보내!” “오케이 쏜다!” 확인이 필요합니다.

  1. SYN: (클라 -> 서버) “접속해도 돼?”
  2. SYN+ACK: (서버 -> 클라) “어, 내 말 들려? 너도 준비 됐어?”
  3. ACK: (클라 -> 서버) “어 잘 들려. 이제 데이터 보낸다.”

실무 포인트:

  • 이 과정이 0.1초씩 걸린다면, HTTP 요청 하나 보낼 때마다 낭비가 심합니다.
  • 그래서 HTTP Keep-Alive (연결 재사용)나 Connection Pool (미리 연결해둠)을 씁니다.
  • “커넥션 맺는 비용"을 줄이는 것이 성능 최적화의 첫걸음입니다.