네트워크 면접 질문 완벽 정리: HTTP, TCP/IP, DNS
·10분 읽기
네트워크는 백엔드, 프론트엔드 구분 없이 모든 개발자 면접에서 단골로 등장합니다. 특히 HTTP와 TCP/IP는 거의 필수 질문입니다. 핵심만 뽑아 정리했습니다.
TCP vs UDP#
가장 기본적인 질문입니다.
TCP (Transmission Control Protocol)#
연결 지향적 프로토콜로, 데이터 전달을 보장합니다.
3-Way Handshake (연결 수립):
클라이언트 서버
│ SYN → │
│ ← SYN-ACK │
│ ACK → │
│ (연결 완료) │
4-Way Handshake (연결 종료):
클라이언트 서버
│ FIN → │
│ ← ACK │
│ ← FIN │
│ ACK → │
│ (연결 종료) │
UDP (User Datagram Protocol)#
비연결형으로, 빠르지만 신뢰성을 보장하지 않습니다.
| 특성 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 | 비연결 |
| 신뢰성 | 보장 (재전송) | 미보장 |
| 속도 | 느림 | 빠름 |
| 순서 보장 | 있음 | 없음 |
| 사용 예 | HTTP, 파일 전송, 이메일 | 스트리밍, 게임, DNS |
HTTP vs HTTPS#
HTTP: 평문 통신, 데이터 도청 가능 HTTPS: HTTP + TLS/SSL 암호화
TLS Handshake 과정#
- 클라이언트가 지원하는 암호화 방식 목록 전송
- 서버가 선택한 방식 + 인증서 전송
- 클라이언트가 인증서 검증
- 대칭키 교환
- 암호화 통신 시작
HTTP 버전별 차이#
| 버전 | 특징 |
|---|---|
| HTTP/1.0 | 요청마다 새 연결 |
| HTTP/1.1 | Keep-Alive (연결 재사용), 파이프라이닝 |
| HTTP/2.0 | 멀티플렉싱, 헤더 압축, 서버 푸시 |
| HTTP/3.0 | UDP 기반 QUIC, 연결 설정 시간 단축 |
HTTP 메서드#
GET - 리소스 조회 (멱등, 캐시 가능)
POST - 리소스 생성 (비멱등)
PUT - 리소스 전체 교체 (멱등)
PATCH - 리소스 부분 수정 (비멱등)
DELETE - 리소스 삭제 (멱등)
멱등성: 같은 요청을 여러 번 해도 결과가 같은 성질
HTTP 상태 코드#
| 범위 | 의미 | 주요 코드 |
|---|---|---|
| 2xx | 성공 | 200 OK, 201 Created, 204 No Content |
| 3xx | 리다이렉션 | 301 Moved Permanently, 302 Found, 304 Not Modified |
| 4xx | 클라이언트 오류 | 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found |
| 5xx | 서버 오류 | 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable |
401 vs 403 차이#
- 401 Unauthorized: 인증 안 됨 (로그인 필요)
- 403 Forbidden: 인증은 됐지만 권한 없음 (접근 금지)
DNS (Domain Name System)#
www.google.com → 142.250.207.100 으로 변환하는 시스템입니다.
DNS 조회 과정#
1. 브라우저 캐시 확인
2. OS 캐시 확인 (/etc/hosts)
3. 로컬 DNS 서버에 질의
4. 루트 DNS 서버에 질의 → .com TLD 서버 주소 반환
5. .com TLD 서버에 질의 → google.com 네임서버 주소 반환
6. google.com 네임서버에 질의 → IP 주소 반환
7. IP 주소 캐시에 저장 후 반환
쿠키 vs 세션 vs JWT#
쿠키#
Set-Cookie: user_id=123; HttpOnly; Secure; SameSite=Strict; Max-Age=3600
- 클라이언트에 저장
HttpOnly: JS에서 접근 불가 (XSS 방어)Secure: HTTPS에서만 전송SameSite: CSRF 방어
세션#
- 서버에 상태 저장, 클라이언트에는 세션 ID만
- 서버 재시작/스케일아웃 시 세션 공유 문제 (Redis 등으로 해결)
JWT (JSON Web Token)#
Header.Payload.Signature
- Stateless: 서버에 저장 안 함
- 장점: 서버 확장 용이
- 단점: 토큰 탈취 시 만료 전까지 무효화 불가
CORS (Cross-Origin Resource Sharing)#
다른 출처(origin)의 리소스에 접근할 때 발생합니다.
출처(Origin) = 프로토콜 + 호스트 + 포트
https://example.com:443 ≠ http://example.com:80
브라우저 서버
│ Preflight OPTIONS → │
│ ← Access-Control-Allow-Origin: *
│ 실제 요청 → │
│ ← 응답 │
서버 응답 헤더에 허용된 출처를 명시해야 합니다:
Access-Control-Allow-Origin: https://myapp.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
면접 빈출 질문 요약#
- TCP 3-Way Handshake란? SYN → SYN-ACK → ACK로 연결 수립
- HTTP와 HTTPS의 차이? TLS 암호화 유무
- GET vs POST 차이? GET은 URL에 데이터, POST는 Body에 데이터. GET은 캐시 가능
- DNS란? 도메인을 IP로 변환하는 분산 데이터베이스 시스템
- 쿠키와 세션 차이? 쿠키는 클라이언트 저장, 세션은 서버 저장
- CORS란? 브라우저가 다른 출처 요청을 차단하는 보안 정책
관련 포스트
면접 준비#CS#자료구조#면접#알고리즘
자료구조 면접 질문 완벽 정리: 스택, 큐, 트리, 해시
스택, 큐, 연결 리스트, 트리, 힙, 해시테이블까지 개발자 면접에 나오는 핵심 자료구조를 코드와 함께 정리했습니다.
·9분 읽기
면접 준비#알고리즘#CS#코딩테스트#면접
시간복잡도와 Big-O 표기법: 코딩테스트 필수 개념
코딩테스트와 면접에 반드시 필요한 시간복잡도와 Big-O 표기법을 실제 코드 예제와 함께 정리했습니다.
·7분 읽기
면접 준비#JavaScript#면접#CS
JavaScript 면접 질문 완벽 정리: 클로저, 호이스팅, 이벤트 루프
클로저, 호이스팅, this 바인딩, 이벤트 루프 등 프론트엔드 면접의 단골 JavaScript 질문들을 코드와 함께 정리했습니다.
·9분 읽기