웹 사이트를 사용할 때 우리는 로그인도 하고, 내가 뭘 좋아하는지 기억해주기도 하고, 빠르게 페이지가 열리기도 합니다. 이런 게 가능한 이유는 웹이 단순히 정보를 보여주는 걸 넘어, 사용자 정보를 기억하고, 빠르게 처리하고, 안전하게 관리하려고 다양한 기술을 쓰기 때문입니다. 그 중심에 있는 게 바로 쿠키(Cookie), 캐시(Cache), 세션(Session) 이 세 가지입니다.
Ⅰ. 쿠키(Cookie) 란?
쿠키는 웹사이트가 여러분의 브라우저에 저장하는 작은 정보 조각입니다. 예를 들어 “로그인 유지하기” 기능이나 “최근 본 상품” 같은 게 쿠키 덕분에 가능합니다.
ⅰ. 쿠키(Cookie) 구조
1) 이름-값 쌍: user_id=abc123 형태의 식별 정보
2) 도메인/경로 지정: Domain=.example.com; Path=/products
3) 만료 시점: Expires 또는 Max-Age 속성
4) 보안 속성: Secure, HttpOnly, SameSite=Strict 등
(Secure, HttpOnly, SameSite=Stric 옵션으로 계정 탈취 및 웹 공격에 대해 막을 수 있습니다)
ⅱ. 쿠키(Cookie) 속성
특정 웹사이트 안에서만 쓰이고, 저장되는 위치나 유효기간을 설정할 수 있어요.
1) Domain=.example.com; Path=/products
: example.com/products 설정으로 example.com/products 경로에서만 이 쿠키가 전송됩니다.
2) Expires=Wed, 21 Oct 2025 07:28:00 GMT 또는 Max-Age=3600
: Expires는 정확한 날짜, Max-Age는 몇 초 뒤 만료를 의미하고, 유효기간이 지나면 브라우저가 자동으로 쿠키를 삭제합니다.
ⅲ. 쿠키(Cookie) 사용 시 주의할 점
모든 요청에 쿠키가 따라가기 때문에, 너무 많이 저장하면 속도가 느려질 수 있습니다.
그래서 최근에는 쿠키의 개수와 크기를 제한하고, 필요할 때만 쓰도록 개선되고 있습니다.
| 웹 표준 권고안(2025년 기준) 1) 도메인당 최대 180개 쿠키 허용 2) 쿠키 크기 최대 4096바이트 제한 3) 초당 600건 이상의 쿠키 갱신 시 스로틀링 적용 |
Ⅱ. 캐시(Cache) 란?
캐시는 이미 본 페이지나 이미지 등을 사용자의 브라우저에 저장해두는 저장소입니다. 그래서 똑같은 파일을 또 불러올 필요 없이 훨씬 빠르게 페이지를 띄울 수 있습니다.
ⅰ. 캐시 저장 위치
1) 브라우저 안 (메모리/디스크 캐시)
2) 서버 앞단 (Varnish, Nginx)
3) 전 세계 중간 서버 (CDN: Cloudflare, AWS CloudFront)
ⅱ. 캐시 저장 기간
웹사이트에서 설정한 시간에 따라 자동으로 지워지거나, 새 버전으로 갱신됩니다.
실제로는?
캐시가 잘 작동하면, 어떤 이미지 하나를 다시 불러올 때 100분의 1 크기만 전송해도 되는 경우도 있습니다.
Ⅲ. 세션(Session) 란?
세션은 쿠키처럼 정보를 저장하지만, 브라우저가 아니라 서버 쪽에 저장됩니다.
사용자가 웹사이트에 로그인했을 때, 서버는 정보(아이디, 권한 등)를 메모리에 저장해두고, 다음 요청이 왔을 때 “이 사람 누구지?” 하고 확인하는 역할을 합니다.
ⅰ. 세션(Session) 원리
1) 로그인하면 서버가 세션 키를 생성해서 쿠키로 전달
2) 그다음 요청부터는 쿠키를 통해 세션 키 전달
3) 서버는 그 키를 보고 누군지 파악!
ⅱ. 세션 저장소
1) 메모리 (빠르지만 휘발성)
2) Redis (빠르고 안정적)
3) 데이터베이스 (느리지만 확실함)
ⅲ. 세션 보안
1) 자동 로그아웃: 일정 시간 지나면 만료
2) 디바이스 확인: 기기 정보로 일치 여부 확인
3) 양자암호 지원: 최신 암호화로 안전하게
Ⅳ. 쿠키(Cookie), 캐시(Cache), 세션(Session) 활용 방법
웹은 이 3가지(쿠키(Cookie), 캐시(Cache), 세션(Session)ㄱ)를 상황에 맞게 섞어서 사용할 수 있습니다.
ⅰ. 쿠키 + 캐시
쿠키 값에 따라 다른 캐시를 저장해서 개인화된 페이지도 빠르게 보여줄 수 있습니다.
ⅱ. 세션 + 캐시
로그인 정보는 서버 세션에서 확인하고, 그 외 디자인/이미지는 캐시에서 불러올 수 잇습니다.
Ⅴ. 쿠키(Cookie), 캐시(Cache), 세션(Session) 장점과 주의할 점
| 기술 | 장점 | 주의할 점 |
| 쿠키 | 사용자 정보 기억 | 너무 많으면 느려져요 |
| 캐시 | 속도를 빠르게 | 오래된 정보가 나올 수 있어요 |
| 세션 | 로그인 정보 안전하게 유지 및 보관 | 서버 부담이 커질 수 있어요 |
'어플리케이션' 카테고리의 다른 글
| HTTP Flood 공격에 대해 알아보겠습니다. (0) | 2025.06.20 |
|---|---|
| 이메일(e-mail) 전송 흐름에 대해 알아보겠습니다. (0) | 2025.06.13 |
| JDBC(Java Database Connectivity)에 대해 알아보겠습니다. (2) | 2025.06.10 |
| 미디어위키(MediaWiki)에 대해 알아보겠습니다. (2) | 2025.06.09 |
| YARA(Yet Another Recursive Acronym)에 대해 알아보겠습니다. (0) | 2025.06.03 |