웹 개발

서버(Server)와 세션(Session)

_KH_ 2025. 5. 4. 14:42
1. 서버(Server)란?

요청을 처리하고 응답을 돌려주는 컴퓨터 또는 프로그램

  • 예: 사용자가 웹사이트에 접속하면, 웹 서버가 HTML/JSON 등의 응답을 만들어 돌려줌
  • Java/Spring에서는 Controller, Service, DB 연결 등이 서버 역할 수행

즉, 클라이언트(브라우저, 앱)가 요청하면, 서버는 그 요청을 처리해 결과를 보낸다.


 2. 세션(Session)이란?

"클라이언트와 서버 사이의 연결 상태를 유지하기 위한 저장 공간"

  • 사용자가 로그인하거나 인증번호를 받을 때처럼, 상태를 기억해야 할 때 서버에 데이터를 잠깐 저장하는 방식
  • 세션은 서버에 저장되며, 사용자마다 고유한 세션 ID로 구분됨
  • 브라우저는 쿠키(cookie)로 이 세션 ID를 가지고 있고, 서버는 이 ID로 어떤 사용자인지 확인함
  • 세션은 로그인, 이메일 인증, 장바구니 기능 등에서 사용된다.

- 세션은 서버 메모리에 저장되므로, 너무 많은 데이터를 넣거나 오래 유지하면 서버에 부하가 생김

- 인증번호와 같은 일회용 정보는 비교 후 반드시 세션에서 삭제해야 보안에 안전하다

(같은 브라우저에서 다시 요청할 때 이전 인증번호로 인증될 수 있음. 인증번호의 일회성이 깨지지 않도록 인증 후 세션에서 바로 삭제 할 것)

- 세션은 브라우저를 닫거나 일정 시간이 지나면 자동 만료된다