세션: 실제 데이터는 서버에, 브라우저는 ID만 보유. 보안↑ (데이터 서버 저장). 단점: 서버 메모리 사용, 수평 확장 어려움 (세션 공유 필요 → Redis 사용).
JWT = Header.Payload.Signature (Base64 인코딩)
Header
알고리즘 & 타입 {"alg":"HS256","typ":"JWT"}
Payload
{"sub":"alice","role":"admin","exp":1234567}
Signature
HMACSHA256(b64(H)+"."+b64(P), secret)
JWT: Stateless 인증 (서버가 상태 저장 불필요). 서명으로 위변조 감지. 단점: 토큰 무효화 어려움(만료 전까지 유효), Payload는 암호화 아님(Base64 디코딩 가능). 보통 Access Token(15분) + Refresh Token(7일) 조합 사용.
② CORS (Cross-Origin Resource Sharing)
브라우저의 Same-Origin Policy: 다른 출처(도메인/포트/프로토콜)의 리소스 접근 차단. CORS는 서버가 명시적으로 허용하는 메커니즘.
③ REST API 설계 원칙
HTTP 메서드
URI 예시
동작
멱등성
GET
/users /users/1
조회
✓ 멱등
POST
/users
생성
✗ 비멱등
PUT
/users/1
전체 수정
✓ 멱등
PATCH
/users/1
부분 수정
△ 경우에 따라
DELETE
/users/1
삭제
✓ 멱등
REST 6원칙: Stateless(서버 상태 미보존) · Uniform Interface(표준 HTTP) · Cacheable · Client-Server · Layered System · Code on Demand(선택).
URI는 명사 사용, 동사 금지. 버전은 /v1/users 형식.
09 — TCP vs UDP
TCP vs UDP
두 전송 계층 프로토콜의 핵심 차이입니다. 신뢰성이 필요하면 TCP, 속도가 중요하면 UDP를 선택합니다.
항목
TCP
UDP
연결 방식
연결지향 (3-way handshake)
비연결 (connectionless)
신뢰성
✓ 보장 (ACK, 재전송)
✗ 보장 안됨
순서 보장
✓ 순서 보장
✗ 순서 보장 안됨
속도
느림 (오버헤드 있음)
빠름 (오버헤드 없음)
헤더 크기
20~60 bytes
8 bytes
흐름/혼잡 제어
✓ 있음
✗ 없음
주요 사용처
HTTP/S, 이메일, 파일전송
DNS, 스트리밍, 게임, VoIP
전송 시뮬레이션
TCP
UDP
TCP 흐름/혼잡 제어
흐름 제어 (Flow Control)
· 수신자 처리 속도에 맞게 전송 속도 조절
· 슬라이딩 윈도우 (Sliding Window) 방식
· 수신자가 rwnd(수신 윈도우 크기) 알림
· rwnd=0이면 전송 중단
혼잡 제어 (Congestion Control)
· 네트워크 혼잡 감지 및 전송량 조절
· Slow Start: cwnd 1부터 지수 증가
· Congestion Avoidance: 선형 증가
· 패킷 손실 시 cwnd 감소
QUIC: Google이 개발한 UDP 기반 프로토콜. TCP의 신뢰성 + UDP의 속도. HTTP/3의 기반. 연결 설정이 0-RTT로 가능.