네트워크 면접은 단순 개념 질문을 넘어 "이런 상황이면 어떻게 하겠습니까?"라는 트러블슈팅 시나리오를 물어봅니다. 실무에서 실제로 마주치는 문제들을 정리합니다.


시나리오 1: "웹사이트 접속이 안 됩니다"

단계적 진단:

BASH
# 1. DNS 확인
nslookup example.com
dig example.com

# 2. 네트워크 연결 확인
ping example.com

# 3. 포트 확인
telnet example.com 443
nc -zv example.com 443

# 4. 경로 확인
traceroute example.com

# 5. HTTP 레벨 확인
curl -v https://example.com

# 6. SSL 인증서 확인
openssl s_client -connect example.com:443

시나리오 2: "서버 응답이 느립니다"

BASH
# 네트워크 지연인지 서버 지연인지 분리
# 1. RTT 확인
ping -c 10 서버IP    # 네트워크 지연

# 2. TCP 연결 시간
curl -w "connect: %{time_connect}s, ttfb: %{time_starttransfer}s, total: %{time_total}s" -o /dev/null -s https://example.com

# time_connect가 크면: 네트워크 문제
# time_starttransfer - time_connect가 크면: 서버 처리 문제

# 3. 서버 측 확인
ss -s                  # 소켓 상태 요약
netstat -an | grep -c TIME_WAIT
cat /proc/sys/net/core/somaxconn    # backlog 큐 크기

시나리오 3: "간헐적으로 연결이 끊깁니다"

BASH
# 1. 패킷 손실 확인
ping -c 1000 서버IP    # 패킷 손실률

# 2. MTU 문제 확인
ping -M do -s 1400 서버IP
# 점점 크기를 줄여서 최대 통과 크기 확인

# 3. TCP 재전송 확인
ss -ti    # retrans 카운트 확인
netstat -s | grep retransmit

# 4. 커넥션 풀 고갈 확인
ss -s     # 열려있는 소켓 수

시나리오 4: "DNS 관련 문제"

Q: "DNS 변경 후 일부 사용자만 새 서버에 접속합니다"

PLAINTEXT
원인: DNS 캐싱
- 브라우저 캐시, OS 캐시, ISP DNS 캐시
- TTL이 3600(1시간)이면 최대 1시간 동안 이전 IP 사용

대응:
- 변경 전 TTL을 60초로 낮추고 → 기존 TTL 대기 → DNS 변경
- DNS 변경 후 TTL 복원

자주 나오는 개념 질문

Q: "URL을 입력하면 무슨 일이 일어나나요?"

PLAINTEXT
1. 브라우저 캐시 확인
2. DNS 조회 (로컬 캐시 → 재귀 DNS → 루트 → TLD → 권한 DNS)
3. TCP 3-way Handshake
4. TLS Handshake (HTTPS)
5. HTTP 요청 전송
6. 서버 처리 (라우팅, 비즈니스 로직, DB 조회)
7. HTTP 응답 반환
8. 브라우저 렌더링 (HTML 파싱 → DOM 구축 → CSSOM → 렌더 트리 → 페인트)
9. 연결 종료 (또는 Keep-Alive로 유지)

Q: "TCP와 UDP 중 어느 것을 선택하겠습니까?"

PLAINTEXT
TCP 선택:
- 데이터 무결성이 중요 (파일 전송, 웹, 이메일)
- 순서가 중요 (데이터베이스 쿼리)

UDP 선택:
- 실시간성이 중요 (게임, VoIP, 영상 스트리밍)
- 작은 패킷을 빠르게 (DNS 쿼리)
- 멀티캐스트/브로드캐스트
- QUIC처럼 자체 신뢰성 구현

Q: "HTTP Keep-Alive와 WebSocket의 차이"

PLAINTEXT
Keep-Alive:
- 하나의 TCP 연결로 여러 HTTP 요청/응답 (순차적)
- 여전히 요청-응답 모델
- 서버가 먼저 데이터를 보낼 수 없음

WebSocket:
- 하나의 TCP 연결로 양방향 통신
- 서버가 먼저 데이터를 보낼 수 있음 (Push)
- HTTP Upgrade로 프로토콜 전환

면접 전략

  1. **계층별 접근 **: 문제가 어느 계층(L2/L3/L4/L7)인지 먼저 파악
  2. ** 도구 활용 **: ping(L3), telnet(L4), curl(L7), Wireshark(전계층)
  3. ** 숫자 감각 **: RTT 1ms(LAN), 50ms(국내), 200ms(대륙 간)

정리

네트워크 면접의 핵심은 "계층별로 나누어 진단" 하는 것입니다. DNS → 네트워크(ping) → TCP(포트) → HTTP(curl) 순서로 확인하며, 각 단계에서 사용하는 도구와 판단 기준을 알고 있으면 대부분의 트러블슈팅 시나리오에 대응할 수 있습니다.

댓글 로딩 중...