ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

네트워크 (Network)

 

정의
서로 다른 컴퓨터(노드)가 데이터를 주고받도록 연결된 통신 구조입니다.

네트워크를 이해한다는 건 단순히 “인터넷이 된다/안 된다”가 아니라, 데이터가 어디서 병목이 생기고, 어떤 계층에서 장애가 발생하며, 지연(latency)과 처리량(throughput)이 왜 달라지는지를 설명할 수 있다는 뜻입니다.

백엔드 관점에서는 결국 클라이언트 ↔ 서버가 “패킷 단위로” 통신한다는 점이 핵심이고, 그 사이에 라우터, 스위치, DNS, 방화벽, 프록시, CDN 같은 수많은 중간 계층이 개입합니다.

핵심 메시지

“네트워크는 결국 패킷을 주소(IP)로 찾아가게 하고,
신뢰성/순서 보장은 TCP 같은 프로토콜이 책임진다.”

- ‘연결’이 아니라 ‘전달’의 문제 -
본질
네트워크는 주소 지정 → 라우팅 → 전송(신뢰성/혼잡 제어)의 조합입니다.

데이터를 보내려면 (1) 어디로 보낼지(IP, Port) 정해야 하고, (2) 그 목적지까지 어떤 길로 갈지(라우팅) 결정해야 하며, (3) 전송 중 손실/중복/순서 문제를 어떻게 처리할지(TCP/UDP)가 필요합니다.

계층 구조
네트워크는 계층으로 나눠서 복잡함을 관리합니다. (TCP/IP 관점)
계층 대표 예시 역할(한 줄)
Application HTTP, DNS 앱이 이해하는 메시지 규칙(요청/응답, 도메인 조회 등)
Transport TCP, UDP 프로세스 간 통신(Port), 신뢰성/순서/혼잡 제어
Internet IP 호스트 간 라우팅(주소 지정, 패킷 전달)
Link Ethernet, Wi-Fi 물리적/로컬 네트워크 전송(MAC, 프레임)

💡 TIP / 참고사항

장애/성능을 볼 때는 “어느 계층 문제인지”를 먼저 나누면 진단이 빨라집니다.
예: DNS 문제(이름 해석) vs TCP 문제(연결/재전송) vs 라우팅 문제(IP 경로) vs 로컬 링크 문제(Wi-Fi 끊김)

 

자주 등장하는 키워드
백엔드에서 네트워크를 “실전”으로 만드는 요소들

👍 GOOD (알아두면 강해지는 것)

  • DNS: 도메인 → IP 변환, 캐시/TTL 때문에 “가끔만” 실패하는 현상
  • TCP 3-way handshake: 연결 성립 과정, SYN/SYN-ACK/ACK
  • Keep-Alive: 연결 재사용으로 성능/지연 개선
  • Timeout: 연결/읽기/쓰기 타임아웃은 장애 확산을 막는 안전장치
  • Load Balancer: 트래픽 분산, Health Check로 장애 노드 제거

👎 BAD (실수하기 쉬운 것)

  • timeout 미설정 → 요청이 “영원히” 대기하며 스레드/커넥션 고갈
  • 재시도 무조건 적용 → 장애 시 트래픽 폭발(Thundering herd)
  • 연결 재사용(Keep-Alive/Pooling) 미고려 → 지연/부하 증가
  • 네트워크 문제를 “코드 버그”로만 보고 계층을 안 나눔
실전 흐름 예시
“브라우저에서 https://example.com 접속”은 내부적으로 이렇게 흘러갑니다.
1
DNS 조회 example.com → IP 주소로 변환(캐시/TTL이 영향)
2
TCP 연결(3-way handshake) SYN → SYN-ACK → ACK로 연결 성립
3
TLS 핸드셰이크(HTTPS) 인증서 검증, 키 교환 후 암호화 채널 생성
4
HTTP 요청/응답 GET / … → 서버가 응답(상태코드/헤더/바디)

💡 TIP / 참고사항

실무에서 “느리다”의 원인은 대개 3가지 중 하나입니다: DNS 지연 / TCP·TLS 연결 비용 / 서버 처리 시간.
그래서 Keep-Alive, 커넥션 풀, CDN, 캐시 전략이 체감 성능에 큰 영향을 줍니다.

 

✅ 핵심 요약

  • ✔️ 네트워크는 노드 간 데이터 전달을 위한 구조이며, 패킷 기반으로 동작한다.
  • ✔️ 문제/병목은 계층(애플리케이션/TCP/IP/링크) 관점으로 나누면 진단이 빨라진다.
  • ✔️ 실무에서 중요한 포인트는 DNS, Timeout, Keep-Alive, 재시도, 로드밸런싱이다.
728x90