본문으로 건너뛰기

Day 7: 종합 정리 및 면접/실무 팁

  • 네트워크 트러블슈팅 사례
    • ping, traceroute, netstat, tcpdump 등의 활용
    • 실제 문제 해결 과정 예시
  • 면접 대비 정리
    • 자주 나오는 질문 유형과 답변 팁
    • 주요 프로토콜 개념 한 줄 요약
  • 실무에서의 응용
    • 시스템 설계 시 네트워크 구조 고려
    • API 서버, 마이크로서비스, 분산 시스템에서의 통신 전략

1. 네트워크 트러블슈팅 사례

1.1 기본 진단 명령어

  1. ping

    • 대상 서버(호스트)의 IP까지 도달 가능한지 확인하고, 응답 지연(RTT) 시간 측정
    • 예: ping google.com
    • 패킷이 전송·응답되지 않는다면, DNS 문제, 라우팅 문제, 방화벽 차단 등 원인을 좁혀볼 수 있음
  2. traceroute (tracert on Windows)

    • 목적지까지 경유하는 라우터(홉) 경로와 각 홉까지의 지연 시간을 확인
    • 네트워크 구간별 장애 지점이나 지연 구간 파악에 유용
    • 예: traceroute 8.8.8.8
  3. netstat

    • 현재 호스트에서 열려 있는 소켓 연결, 포트 사용 상태 등을 확인
    • 예: netstat -an (TCP/UDP 연결 상태, 포트 바인딩 정보 등)
  4. tcpdump (Wireshark)

    • 네트워크 인터페이스로 오가는 패킷을 캡처해 분석
    • 패킷 헤더 정보(TCP/UDP, 포트, 플래그)와 페이로드 일부까지 확인 가능
    • 예: tcpdump -i eth0 port 80 (TCP 80번 포트를 통한 HTTP 트래픽 모니터링)

1.2 실제 문제 해결 과정 예시

  1. DNS 문제

    • ping google.com이 안 될 때 IP 주소로 직접 ping 8.8.8.8 시도
    • IP로는 통신이 되면 DNS 문제가 의심됨 → /etc/resolv.conf(리눅스)나 DNS 설정 확인
  2. 라우팅 문제

    • traceroute 결과 특정 홉에서 응답이 끊기면 해당 구간 라우터나 방화벽에 문제가 있을 수 있음
    • 구간 별로 스위치/라우터 로그, 방화벽 규칙 등을 점검
  3. 포트 차단 또는 방화벽 이슈

    • 서버에 접속 실패 시, netstat -an으로 해당 포트가 LISTEN 상태인지 확인
    • 외부 방화벽 또는 서버 내 방화벽(iptables, Windows Firewall 등)의 포트 허용 설정 검사
  4. 트래픽 폭주 / DDoS

    • tcpdump나 모니터링 툴에서 비정상적으로 많은 동시 연결, 특정 IP나 패턴의 트래픽 급증 등을 식별
    • 로드밸런서 또는 방화벽 규칙으로 트래픽을 차단하거나, CDN과 연계해 분산 처리

2. 면접 대비 정리

2.1 자주 나오는 질문 유형과 답변 팁

  1. OSI 7계층 vs TCP/IP 4계층

    • “각 계층별 기능과 프로토콜은 무엇인지” 정리
    • 면접에서는 “실제로는 TCP/IP 모델을 더 많이 쓴다”는 점도 언급
  2. TCP vs UDP, 3-Way·4-Way 핸드셰이크

    • 핸드셰이크 시나리오와 왜 3-Way가 필요한지(2-Way는 Half-open 문제), 4-Way로 종료하는 이유
    • 혼잡 제어, 흐름 제어 원리
  3. HTTP/HTTPS

    • Stateless 특성과 쿠키/세션, TLS 암호화 기법, 인증서 처리 과정
    • HTTP/2, HTTP/3 변화 포인트(HOL Blocking, UDP 기반 QUIC 등)
  4. DNS, DHCP

    • DNS가 어떻게 도메인을 IP로 매핑하는지(Recursive/Iterative), 캐싱
    • DHCP가 IP, 서브넷 마스크, 게이트웨이 등을 어떻게 할당하는지
  5. 로드밸런서, 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 시스템 설계 시 네트워크 구조 고려

  1. 계층 분리
    • 프론트엔드 서버(웹 서버) + 백엔드 서버(App 서버, DB) 분리
    • DMZ 구역, 사설 서브넷 등을 활용해 보안을 강화
  2. 로드밸런싱
    • 트래픽 규모에 맞춰 L4/L7 로드밸런서를 배치
    • 세션 스티키(Sticky Session), 혹은 JWT/토큰 기반 인증으로 서버 무상태(Stateless)화
  3. 스케일링 아키텍처
    • 오토 스케일링(Auto Scaling) 또는 쿠버네티스(Kubernetes)로 동적 자원 할당
    • CDN, 캐싱 전략으로 백엔드 서버 부하를 경감

3.2 API 서버, 마이크로서비스, 분산 시스템에서의 통신 전략

  1. API Gateway
    • 여러 마이크로서비스가 공통된 게이트웨이를 통해 클라이언트와 통신
    • 인증, 라우팅, 로깅, Rate Limiting 등을 중앙에서 처리
  2. Service Mesh
    • 마이크로서비스 간 트래픽을 프록시 사이드카(Sidecar) 방식으로 제어
    • 예: Istio, Linkerd 등
    • 보안(암호화), 로깅, 모니터링, 트래픽 라우팅을 세분화 가능
  3. 트랜잭션, 메시지 큐 사용
    • 분산 환경에서 데이터 무결성을 유지하기 위해, 메시지 큐(Kafka, RabbitMQ 등)나 이벤트 브로커 사용
    • 서버 간 비동기 통신과 백프레셔(Backpressure) 전략으로 시스템 안정성 향상

요약

  1. 트러블슈팅

    • ping, traceroute, netstat, tcpdump 등 명령어를 활용하여 문제 발생 지점을 좁히고, DNS·라우팅·방화벽·트래픽 등을 단계적으로 점검
  2. 면접 대비

    • OSI 모델, TCP/UDP, HTTP, DNS, 보안, 로드밸런싱, CDN, 클라우드 등 핵심 개념을 정리
    • 구체적 사례를 들어 말할 수 있도록 준비(어떤 상황에서 어떤 도구를 사용해 문제를 해결했는지)
  3. 실무 응용

    • 대규모 시스템 설계에서는 네트워크 구조, 보안, 스케일링, 로드밸런싱, 모니터링을 종합적으로 고려
    • API 서버, 마이크로서비스, 분산 환경에서의 동시성 제어 및 부하 분산 방식을 적절히 조합