네트워크를 이해한다는 건 단순히 “인터넷이 된다/안 된다”가 아니라, 데이터가 어디서 병목이 생기고, 어떤 계층에서 장애가 발생하며, 지연(latency)과 처리량(throughput)이 왜 달라지는지를 설명할 수 있다는 뜻입니다.
백엔드 관점에서는 결국 클라이언트 ↔ 서버가 “패킷 단위로” 통신한다는 점이 핵심이고, 그 사이에 라우터, 스위치, DNS, 방화벽, 프록시, CDN 같은 수많은 중간 계층이 개입합니다.
“네트워크는 결국 패킷을 주소(IP)로 찾아가게 하고,
신뢰성/순서 보장은 TCP 같은 프로토콜이 책임진다.”
데이터를 보내려면 (1) 어디로 보낼지(IP, Port) 정해야 하고, (2) 그 목적지까지 어떤 길로 갈지(라우팅) 결정해야 하며, (3) 전송 중 손실/중복/순서 문제를 어떻게 처리할지(TCP/UDP)가 필요합니다.
💡 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) 미고려 → 지연/부하 증가
- 네트워크 문제를 “코드 버그”로만 보고 계층을 안 나눔
💡 TIP / 참고사항
실무에서 “느리다”의 원인은 대개 3가지 중 하나입니다: DNS 지연 / TCP·TLS 연결 비용 / 서버 처리 시간.
그래서 Keep-Alive, 커넥션 풀, CDN, 캐시 전략이 체감 성능에 큰 영향을 줍니다.
✅ 핵심 요약
- ✔️ 네트워크는 노드 간 데이터 전달을 위한 구조이며, 패킷 기반으로 동작한다.
- ✔️ 문제/병목은 계층(애플리케이션/TCP/IP/링크) 관점으로 나누면 진단이 빨라진다.
- ✔️ 실무에서 중요한 포인트는 DNS, Timeout, Keep-Alive, 재시도, 로드밸런싱이다.