2025-09-27
오늘 배운 것
Cookie & Session & Exception Handling
HTTP 특징
- Stateless: 서버는 요청 간 상태 저장 X
- 장점: 단순성, 확장성, 신뢰성, 자원 절약
- 단점 보완 → Cookie, Session 활용
Cookie
- 클라이언트에 저장되는 데이터 (서버가 생성)
jakarta.servlet.http.Cookie 로 구현
주요 속성
- name: 고유 식별자 (중복 시 덮어씀)
- value: 값 (한글 가능)
- path: 유효 경로 (미설정 시 context root)
- maxAge: 유효기간 (양수=초 단위, 음수=세션 쿠키, 0=즉시 삭제)
- secure / httpOnly: 보안 관련 옵션
- 확인: DevTools → Application → Cookies
활용
- 최근 구구단 기억하기 같은 작은 상태 저장에 활용
Session
- 서버에 저장되는 상태값
- 브라우저당 1개 세션 성립
- JSESSIONID 쿠키 필요 (세션 공간 키)
HttpSession
- 획득:
request.getSession()
- 주요 메서드:
setAttribute, getAttribute, invalidate 등
- 유효기간:
setMaxInactiveInterval(int sec) or web.xml 설정
로그인/로그아웃
- 로그인 시 세션에 사용자 정보 저장
- 로그아웃 시
session.invalidate()
- remember-me 쿠키로 편의 기능 제공 가능
SessionFilter
Exception Handling
- 원칙: 예외 정보를 클라이언트에 직접 노출하지 않기
- 사용자용 페이지 + 내부 로깅 병행
404 처리
- 컨트롤러 없음 → forward로 404 페이지 or WAS 기본 처리
- 경로 자체 없음 → WAS 기본 처리
500 처리
- Checked Exception → try~catch 처리 or
ServletException wrapping 후 전달
- Unchecked Exception → WAS로 전달
WAS 활용
web.xml에 에러 페이지 매핑 가능
DispatcherType.ERROR 필터로 예외 모니터링