CS Study : 쿠키, 세션의 개념과 차이를 설명해보세요

song yuheon·2023년 10월 25일
0

CS Study

목록 보기
32/50
post-custom-banner

쿠키와 세션은 웹 브라우저와 서버 간의 통신에서 사용자의 상태를 유지하기 위해 사용되는 기술이다.
둘 다 사용자의 상태를 저장하고 관리하는 역할을 하지만, 저장 위치와 보안, 수명 등 여러 면에서 차이가 있다.

쿠키

쿠키는 클라이언트 측 (즉, 사용자의 웹 브라우저)에 저장되는 작은 텍스트 파일이다.
웹 서버는 HTTP 응답의 헤더에 Set-Cookie 필드를 사용하여 쿠키를 설정하고 그 후로는 웹 브라우저가 해당 웹 서버에 요청을 할 때마다 자동으로 쿠키를 HTTP 요청의 헤더에 포함시켜서 보낸다.

쿠키의 특징

  • 클라이언트 측 저장
    사용자의 컴퓨터에 저장되기 때문에 사용자가 쿠키를 삭제하지 않는 한 만료 기간까지 유지된다.

  • 제한된 저장 공간
    쿠키 하나당 4KB의 제한된 공간만을 가진다.

  • 자동 전송
    한 번 설정되면 쿠키는 자동으로 모든 HTTP 요청과 함께 서버로 전송된다.

  • 보안 문제
    클라이언트 측에 저장되기 때문에 사용자에 의해 변경되거나 탈취될 위험이 있다.

세션

세션은 서버 측에서 사용자 정보를 관리하기 위해 사용된다.
세션 ID라는 고유한 키를 생성하여 이를 클라이언트 (보통은 쿠키를 사용하여)에 저장하고, 서버 측에서는 이 세션 ID를 키로 사용자의 상태 정보를 저장한다.

세션의 특징

  • 서버 측 저장
    사용자의 상태 정보는 서버에 저장되어 보안이 강화된다.

  • 보다 큰 저장 공간
    쿠키에 비해 훨씬 많은 정보를 저장할 수 있다.

  • 세션 ID를 통한 관리
    클라이언트는 세션 ID만을 저장하고, 이 ID를 통해 서버와 상호작용한다.

  • 수명 관리 필요
    세션은 사용자가 로그아웃하거나 일정 시간 동안 활동이 없으면 만료된다.
    서버 측에서는 만료된 세션을 정리하는 관리 작업이 필요하다.

쿠키와 세션의 차이점

  • 저장 위치
    쿠키는 클라이언트 측에 저장되고, 세션은 서버 측에 저장된다.

  • 보안
    세션은 쿠키에 비해 보안성이 높다.
    쿠키는 사용자에 의해 조작되거나 탈취될 수 있다.

  • 수명
    쿠키는 만료 기간을 설정하여 장기간 유지할 수 있지만 세션은 일반적으로 사용자가 브라우저를 닫거나 일정 시간 동안 활동이 없으면 만료된다.

  • 저장 공간
    쿠키는 저장 공간이 제한적이지만 세션은 서버의 자원을 사용하므로 상대적으로 더 많은 정보를 저장할 수 있다.

시스템 구조에 따른 쿠키 및 세션 사용

마이크로서비스 아키텍처에서의 쿠키
분산 시스템 호환성: 마이크로서비스는 서비스들이 분산되어 있기 때문에, 각 서비스가 독립적으로 사용자 인증 정보 등을 관리할 필요가 있습니다. 쿠키는 클라이언트 측에서 관리되므로, 서비스 간의 세션 동기화 문제를 피할 수 있어 마이크로서비스 환경에 적합합니다.
스케일링 용이성: 쿠키를 사용하면 각 사용자의 인증 정보가 클라이언트에 저장되므로, 서버 측에서 상태를 관리할 필요가 없어 서버의 스케일링이 용이해집니다.
모놀리식 아키텍처에서의 세션
중앙 집중식 데이터 관리: 모놀리식 아키텍처는 모든 기능이 하나의 애플리케이션에 통합되어 있어, 세션 정보를 중앙에서 관리하기 용이합니다. 이는 사용자의 상태를 서버 측에서 효과적으로 관리할 수 있게 해 줍니다.
보안성: 세션은 서버 측에서 관리되므로, 쿠키보다 보안성이 높습니다. 모놀리식 아키텍처에서는 중요한 사용자 데이터를 서버 내부에 보관하며 보안을 강화할 수 있습니다.
그러나 현대 웹 개발에서는 이러한 전통적인 경계가 점점 모호해지고 있습니다. 예를 들어, 마이크로서비스 아키텍처에서도 세션 기반 인증을 사용할 수 있으며, 이를 위해 Redis와 같은 분산 세션 저장소를 사용할 수 있습니다. 반대로, 모놀리식 아키텍처에서도 쿠키 기반 인증을 사용할 수 있습니다.

profile
backend_Devloper
post-custom-banner

0개의 댓글