Day 7: 종합 정리 및 면접/실무 팁
- 네트워크 트러블슈팅 사례
- ping, traceroute, netstat, tcpdump 등의 활용
- 실제 문제 해결 과정 예시
- 면접 대비 정리
- 자주 나오는 질문 유형과 답변 팁
- 주요 프로토콜 개념 한 줄 요약
- 실무에서의 응용
- 시스템 설계 시 네트워크 구조 고려
- API 서버, 마이크로서비스, 분산 시스템에서의 통신 전략
1. 네트워크 트러블슈팅 사례
1.1 기본 진단 명령어
-
ping
- 대상 서버(호스트)의 IP까지 도달 가능한지 확인하고, 응답 지연(RTT) 시간 측정
- 예:
ping google.com - 패킷이 전송·응답되지 않는다면, DNS 문제, 라우팅 문제, 방화벽 차단 등 원인을 좁혀볼 수 있음
-
traceroute (tracert on Windows)
- 목적지까지 경유하는 라우터(홉) 경로와 각 홉까지의 지연 시간을 확인
- 네트워크 구간별 장애 지점이나 지연 구간 파악에 유용
- 예:
traceroute 8.8.8.8
-
netstat
- 현재 호스트에서 열려 있는 소켓 연결, 포트 사용 상태 등을 확인
- 예:
netstat -an(TCP/UDP 연결 상태, 포트 바인딩 정보 등)
-
tcpdump (Wireshark)
- 네트워크 인터페이스로 오가는 패킷을 캡처해 분석
- 패킷 헤더 정보(TCP/UDP, 포트, 플래그)와 페이로드 일부까지 확인 가능
- 예:
tcpdump -i eth0 port 80(TCP 80번 포트를 통한 HTTP 트래픽 모니터링)
1.2 실제 문제 해결 과정 예시
-
DNS 문제
ping google.com이 안 될 때 IP 주소로 직접ping 8.8.8.8시도- IP로는 통신이 되면 DNS 문제가 의심됨 →
/etc/resolv.conf(리눅스)나 DNS 설정 확인
-
라우팅 문제
traceroute결과 특정 홉에서 응답이 끊기면 해당 구간 라우터나 방화벽에 문제가 있을 수 있음- 구간 별로 스위치/라우터 로그, 방화벽 규칙 등을 점검
-
포트 차단 또는 방화벽 이슈
- 서버에 접속 실패 시,
netstat -an으로 해당 포트가 LISTEN 상태인지 확인 - 외부 방화벽 또는 서버 내 방화벽(iptables, Windows Firewall 등)의 포트 허용 설정 검사
- 서버에 접속 실패 시,
-
트래픽 폭주 / DDoS
tcpdump나 모니터링 툴에서 비정상적으로 많은 동시 연결, 특정 IP나 패턴의 트래픽 급증 등을 식별- 로드밸런서 또는 방화벽 규칙으로 트래픽을 차단하거나, CDN과 연계해 분산 처리
2. 면접 대비 정리
2.1 자주 나오는 질문 유형과 답변 팁
-
OSI 7계층 vs TCP/IP 4계층
- “각 계층별 기능과 프로토콜은 무엇인지” 정리
- 면접에서는 “실제로는 TCP/IP 모델을 더 많이 쓴다”는 점도 언급
-
TCP vs UDP, 3-Way·4-Way 핸드셰이크
- 핸드셰이크 시나리오와 왜 3-Way가 필요한지(2-Way는 Half-open 문제), 4-Way로 종료하는 이유
- 혼잡 제어, 흐름 제어 원리
-
HTTP/HTTPS
- Stateless 특성과 쿠키/세션, TLS 암호화 기법, 인증서 처리 과정
- HTTP/2, HTTP/3 변화 포인트(HOL Blocking, UDP 기반 QUIC 등)
-
DNS, DHCP
- DNS가 어떻게 도메인을 IP로 매핑하는지(Recursive/Iterative), 캐싱
- DHCP가 IP, 서브넷 마스크, 게이트웨이 등을 어떻게 할당하는지
-
로드밸런서, CDN, 클라우드
- L4 vs L7 로드밸런싱, 라운드 로빈/가중치/해시 등 알고리즘
- CDN 엣지 서버와 캐싱, 고가용성(Active-Active, Active-Standby) 구성
2.2 주요 프로토콜 개념 한 줄 요약
- TCP: 연결 지향, 신뢰성, 혼잡 제어
- UDP: 비연결, 빠른 전송, 신뢰성 보장은 없음
- HTTP: 웹 서비스 통신 프로토콜, Stateless
- HTTPS: TLS로 HTTP 암호화, 인증서 기반 보안
- DNS: 도메인을 IP로 해석, 분산 계층 구조
- FTP: 파일 전송 프로토콜 (포트 21)
- SMTP: 이메일 발송 프로토콜 (포트 25, 587)
- SSH: 원격 터미널 접속을 암호화 (포트 22)
3. 실무에서의 응용
3.1 시스템 설계 시 네트워크 구조 고려
- 계층 분리
- 프론트엔드 서버(웹 서버) + 백엔드 서버(App 서버, DB) 분리
- DMZ 구역, 사설 서브넷 등을 활용해 보안을 강화
- 로드밸런싱
- 트래픽 규모에 맞춰 L4/L7 로드밸런서를 배치
- 세션 스티키(Sticky Session), 혹은 JWT/토큰 기반 인증으로 서버 무상태(Stateless)화
- 스케일링 아키텍처
- 오토 스케일링(Auto Scaling) 또는 쿠버네티스(Kubernetes)로 동적 자원 할당
- CDN, 캐싱 전략으로 백엔드 서버 부하를 경감
3.2 API 서버, 마이크로서비스, 분산 시스템에서의 통신 전략
- API Gateway
- 여러 마이크로서비스가 공통된 게이트웨이를 통해 클라이언트와 통신
- 인증, 라우팅, 로깅, Rate Limiting 등을 중앙에서 처리
- Service Mesh
- 마이크로서비스 간 트래픽을 프록시 사이드카(Sidecar) 방식으로 제어
- 예: Istio, Linkerd 등
- 보안(암호화), 로깅, 모니터링, 트래픽 라우팅을 세분화 가능
- 트랜잭션, 메시지 큐 사용
- 분산 환경에서 데이터 무결성을 유지하기 위해, 메시지 큐(Kafka, RabbitMQ 등)나 이벤트 브로커 사용
- 서버 간 비동기 통신과 백프레셔(Backpressure) 전략으로 시스템 안정성 향상
요약
-
트러블슈팅
- ping, traceroute, netstat, tcpdump 등 명령어를 활용하여 문제 발생 지점을 좁히고, DNS·라우팅·방화벽·트래픽 등을 단계적으로 점검
-
면접 대비
- OSI 모델, TCP/UDP, HTTP, DNS, 보안, 로드밸런싱, CDN, 클라우드 등 핵심 개념을 정리
- 구체적 사례를 들어 말할 수 있도록 준비(어떤 상황에서 어떤 도구를 사용해 문제를 해결했는지)
-
실무 응용
- 대규모 시스템 설계에서는 네트워크 구조, 보안, 스케일링, 로드밸런싱, 모니터링을 종합적으로 고려
- API 서버, 마이크로서비스, 분산 환경에서의 동시성 제어 및 부하 분산 방식을 적절히 조합