Cookie 최종 수정일 2026-06-19 01:54 조회수 8
대시보드

Cookie

기본 정보

  • 명칭: Cookie
  • 한글명: 쿠키
  • 분류: 브라우저 데이터 저장 기술
  • 주요 용도: 사용자 정보 저장 및 상태 유지
  • 관련 주제: #Cookie #HTTP #Session #JWT #보안

개요

Cookie는 웹 서버가 사용자의 브라우저에 저장하는 작은 데이터 조각이다.

웹은 기본적으로 Stateless(무상태) 프로토콜인 HTTP를 사용하기 때문에 사용자를 기억하지 못한다. 이를 보완하기 위해 Cookie를 사용하여 로그인 유지, 사용자 설정 저장, 장바구니 정보 유지 등의 기능을 구현한다.

Cookie 자체는 클라이언트(브라우저)에 저장되며, 서버는 요청 시 함께 전달받아 사용자를 식별하거나 필요한 정보를 처리한다.


Cookie 구조

사용자

↓

브라우저

↓

Cookie 저장

↓

HTTP 요청

↓

Cookie 자동 전송

↓

웹 서버

동작 과정

웹사이트 접속

↓

Server

↓

Set-Cookie

↓

브라우저 저장

↓

다음 요청

↓

Cookie 자동 포함

↓

Server 처리

HTTP Header 예시

서버 응답

Set-Cookie:

user=cloud;

Path=/;

HttpOnly

브라우저 요청

Cookie:

user=cloud

브라우저가 자동으로 Cookie를 포함하여 전송한다.


Cookie 구성 요소

속성설명
Name쿠키 이름
Value저장 값
Expires만료 시간
Max-Age유지 시간
Path적용 경로
Domain적용 도메인
SecureHTTPS 전용
HttpOnlyJavaScript 접근 차단
SameSiteCSRF 방지 설정

PHP Cookie 생성

setcookie(

"user",

"cloud",

time()+3600

);

1시간 동안 유지된다.


PHP Cookie 조회

echo

$_COOKIE['user'];

PHP Cookie 삭제

setcookie("user","",time()-3600);

만료 시간을 과거로 설정하여 삭제한다.


JavaScript 생성

document.cookie ="user=cloud";

JavaScript 조회

console.log(document.cookie);

HttpOnly 쿠키는 JavaScript에서 접근할 수 없다.


Session Cookie

브라우저 종료 시 삭제된다.

Browser 종료

↓

Cookie 삭제

Persistent Cookie

만료 시간까지 유지된다.

Expires 2030-01-01

자동 로그인 등에 사용된다.


HttpOnly

Set-Cookie: 

token=abc; 

HttpOnly

JavaScript 접근을 차단하여 XSS 공격 위험을 줄인다.


Secure

Set-Cookie:

token=abc;

Secure

HTTPS 연결에서만 전송된다.


SameSite

Strict

동일 사이트에서만 전송

SameSite=Strict

Lax

일반적인 웹사이트에서 가장 많이 사용된다.

SameSite=Lax

None

크로스 사이트 전송 허용

SameSite=None;

Secure

HTTPS와 함께 사용해야 한다.


Cookie와 Session 관계

Browser

↓

Cookie

(Session ID)

↓

Server

↓

Session Data

Cookie에는 Session ID만 저장되고 실제 데이터는 서버에 저장되는 경우가 많다.


Cookie와 JWT 관계

Browser

↓

HttpOnly Cookie

↓

JWT

↓

API 요청

JWT를 HttpOnly Cookie에 저장하여 사용하는 방식도 널리 활용된다.


Cookie 장점

  • 사용이 간단함
  • 브라우저 자동 관리
  • 로그인 유지 가능
  • 사용자 설정 저장 가능
  • 서버 부담 감소

Cookie 단점

  • 클라이언트에 저장됨
  • 용량 제한(약 4KB)
  • 변조 가능성 존재
  • 민감한 정보 저장 부적합

보안 위험

XSS

JavaScript를 통해 Cookie 탈취 가능

예방

  • HttpOnly
  • CSP 적용

CSRF

사용자의 Cookie를 이용한 위조 요청

예방

  • SameSite 설정
  • CSRF Token 사용

Session Hijacking

Session Cookie 탈취 공격

예방

  • HTTPS
  • Secure Cookie
  • Session 재생성
  • 짧은 만료 시간

Cookie 활용 사례

  • 로그인 유지
  • 자동 로그인
  • 장바구니
  • 언어 설정
  • 다크모드 설정
  • 최근 본 상품
  • 팝업 하루 동안 보지 않기
  • 사용자 환경 설정

Cookie와 LocalStorage 비교

CookieLocalStorage
자동 전송자동 전송 안 함
약 4KB 제한약 5~10MB
HttpOnly 지원지원 안 함
서버 인증에 적합클라이언트 데이터 저장에 적합
만료 시간 설정 가능직접 삭제 전까지 유지

Cookie와 Session 비교

CookieSession
브라우저 저장서버 저장
용량 제한 있음서버 자원 사용
속도 빠름보안 우수
설정 저장에 적합로그인 인증에 적합

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • 민감한 정보는 Cookie에 직접 저장하지 않기
  • 인증 정보는 HttpOnly Cookie 사용
  • HTTPS 환경에서는 Secure 옵션 활성화
  • SameSite=Lax 또는 Strict 적용
  • 만료 시간을 명확하게 설정
  • JWT 저장 시 HttpOnly Cookie 사용 고려
  • 로그인 시 Session ID 재생성
  • XSS 및 CSRF 방어 적용
  • Cookie 최소 개수 유지
  • 개인정보는 암호화 또는 서버 저장 방식 사용

Cookie와 함께 사용하는 기술


대표 활용 사례

  • 그누보드 자동 로그인
  • 워드프레스 로그인 유지
  • 쇼핑몰 장바구니
  • ERP 사용자 설정
  • SaaS 로그인
  • 관리자(Admin) 페이지
  • 다국어 설정
  • 테마(다크모드) 저장

관련 문서


출처

  • MDN Web Docs - HTTP Cookies
  • RFC 6265 - HTTP State Management Mechanism
  • OWASP Cookie Security Guide