[Spring] 숙련 Spring 2주차 마무리 요약 정리

이연우·2025년 7월 28일

TIL

목록 보기
64/100

📘 마무리 요약 정리

1️⃣ 🍪 Cookie (쿠키)

항목설명
💾 저장 위치웹 브라우저(클라이언트)에 저장
🎯 목적클라이언트의 상태를 기억하여 로그인 유지, 방문 기록 저장 등
⚠️ 보안 취약사용자가 직접 수정할 수 있고, 탈취 가능성 있음
❗ 주의 사항민감한 정보 저장 금지 (주민번호, 비밀번호 등)
📤 전송 방식브라우저가 모든 요청에 자동으로 Cookie 포함

✅ 간편하지만 보안상 위험이 있어 중요한 정보는 저장 금지

2️⃣ 🗂️ Session (세션)

항목설명
💾 저장 위치서버에서 사용자의 로그인 정보 및 상태 저장
🔐 보안성클라이언트는 SessionId만 저장 → 민감 정보는 서버에만 존재
⏳ 만료 설정HttpSession최근 요청 시간 기준으로 30분 유효
🔑 탈취 대응탈취돼도 유저 정보 노출 없음, Session 무효화로 차단 가능

✅ 쿠키보다 안전하며, 서버가 상태를 직접 관리하는 방식

3️⃣ 🔐 Token (토큰)

항목설명
📜 정의인증/인가를 위해 사용되는 디지털 문자열
📦 저장 위치클라이언트(LocalStorage 등)가 직접 보관
⚙️ 특징서버는 상태 저장 안 함 → Stateless 인증
📱 환경 호환성모바일 앱, API 등에서 쿠키 없이 인증 가능
🔓 보안 고려Payload는 암호화되지 않음 → 민감 정보 저장 금지
⏳ 만료 시간 설정탈취에 대비해 Access Token은 짧게, Refresh Token은 길게 설정

✅ 서버 확장성(Scale-out)에 유리하지만 탈취 시 위험

4️⃣ 🧾 JWT (JSON Web Token)

항목설명
🧱 구성Header.Payload.Signature 형태의 문자열
🔏 Signature서버의 SecretKey로 생성된 서명을 통해 위조 방지
🔓 PayloadBase64 인코딩 → 복호화 가능 / 민감 정보 저장 ❌
💡 목적정보 보호가 아닌 위조 방지
🚫 저장소 불필요자체적으로 필요한 정보(Claims)를 가지고 있어 DB 조회 없이 인증 가능

✅ 인증 정보를 포함한 자체 검증 가능한 토큰
❗ 단, 만료 관리Refresh 전략이 꼭 필요함

5️⃣ 🧹 Filter (필터)

항목설명
🎯 역할모든 요청이 Servlet이나 Controller로 들어가기 전 공통 로직 처리
🔒 인증 필터로그인 여부 확인, 권한 체크 등 보안 처리
🧩 공통 관심사 처리중복되는 로직을 하나의 입구에서 처리 → 코드 간결화
⛓️ Filter Chain여러 필터를 순서대로 실행 가능 (doFilter() 호출로 제어)
🧠 구현 방식Filter Interface를 구현하고,
Spring에서는 FilterRegistrationBean으로 등록

✅ 인증, 인코딩, 로깅 등 HTTP 요청 전처리에 최적화된 구조


🎯 전체 한줄 요약

  • Cookie 🍪: 클라이언트 저장, 가볍지만 보안 취약

  • Session 🗂️: 서버 저장, 안전하지만 자원 부담

  • Token 🔐: 클라이언트가 보관하는 인증 문자열 (Stateless)

  • JWT 🧾: 서명 기반 위조 방지용 JSON 토큰

  • Filter 🧹: 요청 전에 공통 로직(인증 등)을 처리하는 사전 필터

0개의 댓글