✅ 1. 세션 (Session)

💡 개념:

사용자별 정보를 서버에 저장하는 방식

로그인 상태, 장바구니, 사용자 정보 등 유지할 때 사용

📦 특징

항목 설명
저장 위치 서버 (메모리)
유지 범위 브라우저 꺼질 때까지 또는 명시적 종료
식별 방법 클라이언트에 JSESSIONID 쿠키로 추적

🔧 사용 예

HttpSession session = req.getSession();
session.setAttribute("userId", "abc123"); // 저장
String id = (String) session.getAttribute("userId"); // 꺼내기

✅ 2. 쿠키 (Cookie)

💡 개념:

사용자 정보를 클라이언트(브라우저)에 저장

로그인 자동 저장, 다크모드 여부 등 가벼운 정보 보관

📦 특징

항목 설명
저장 위치 클라이언트 (브라우저)
유지 범위 설정된 만료 기간까지
용량 제한 1개당 약 4KB

🔧 사용 예

Cookie cookie = new Cookie("userId", "abc123");
cookie.setMaxAge(60 * 60 * 24); // 1일
resp.addCookie(cookie); // 클라이언트에 저장

// 꺼내기
Cookie[] cookies = req.getCookies();

✅ 3. 필터 (Filter)

💡 개념:

요청/응답을 가로채서 전처리 또는 후처리하는 역할

로그인 체크, 인코딩 설정, 로그 기록 등에 사용됨

📦 특징