시작

Cookie

작성일 2026.06.28 수정일 2026.06.28 조회 1

기본 정보

  • 명칭: Cookie
  • 한글명: 쿠키
  • 분류: 웹 데이터 저장 기술
  • 저장 위치: 사용자 웹 브라우저
  • 주요 용도: 로그인 유지, 사용자 설정 저장, 세션 관리
  • 관련 기술: HTTP, Session, JWT, 웹 보안

개요

Cookie는 웹 브라우저에 저장되는 작은 데이터 조각이다.

웹사이트는 쿠키를 이용하여 사용자의 로그인 상태를 유지하거나, 장바구니 정보, 언어 설정, 자동 로그인, 사용자 환경설정 등을 저장할 수 있다.

쿠키는 브라우저가 서버에 요청(Request)을 보낼 때 자동으로 함께 전송되므로, 서버는 이를 통해 사용자를 식별하거나 이전 상태를 유지할 수 있다.


Cookie 구조

사용자

↓

브라우저

↓

Cookie 저장

↓

HTTP 요청

↓

Cookie 자동 전송

↓

웹 서버

동작 과정

사용자 로그인

↓

서버

↓

Set-Cookie

↓

브라우저 저장

↓

다음 요청

↓

Cookie 자동 전송

↓

로그인 유지

HTTP 응답 예시

서버가 쿠키를 생성한다.

HTTP/1.1 200 OK
Set-Cookie: session_id=abc123; Path=/; HttpOnly

HTTP 요청 예시

브라우저가 자동으로 쿠키를 전송한다.

GET /mypage HTTP/1.1
Cookie: session_id=abc123

주요 특징

  • 브라우저에 저장
  • 자동 전송
  • 로그인 유지
  • 사용자 설정 저장
  • 만료 시간 설정 가능
  • 도메인별 관리
  • 보안 옵션 제공

Cookie 구성 요소

항목설명
Name쿠키 이름
Value저장되는 값
Domain적용 도메인
Path적용 경로
Expires만료 시간
Max-Age유지 시간
SecureHTTPS에서만 전송
HttpOnlyJavaScript 접근 차단
SameSiteCSRF 공격 방지

Cookie 생성 (PHP)

setcookie(
    "username",
    "cloud",
    time() + 3600
);

1시간 동안 유지된다.


Cookie 읽기 (PHP)

echo $_COOKIE["username"];

Cookie 삭제 (PHP)

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

JavaScript에서 생성

document.cookie = "theme=dark";

JavaScript에서 조회

console.log(document.cookie);

만료 시간 지정

document.cookie =
"theme=dark; max-age=3600";

로그인 과정

로그인

↓

Session 생성

↓

Session ID

↓

Cookie 저장

↓

브라우저

↓

다음 요청

↓

Session 조회

일반적으로 로그인 정보 자체를 저장하는 것이 아니라 세션 ID를 저장한다.


Cookie와 Session

CookieSession
브라우저 저장서버 저장
용량 제한 있음서버 메모리 사용
클라이언트 관리서버 관리
변조 가능성 존재상대적으로 안전

실무에서는 Session ID를 Cookie에 저장하는 방식이 가장 많이 사용된다.


Cookie와 JWT

CookieJWT
브라우저 저장브라우저 또는 앱 저장
서버와 함께 사용토큰 기반 인증
자동 전송직접 Authorization 헤더에 포함하는 경우가 많음
세션 인증API 인증

Cookie와 Local Storage

CookieLocal Storage
자동 전송자동 전송 안 됨
용량 약 4KB약 5~10MB
만료 시간 설정 가능직접 삭제 전까지 유지
서버 통신용클라이언트 데이터 저장

보안 옵션

HttpOnly

Set-Cookie:
session=abc;
HttpOnly

JavaScript에서 접근할 수 없도록 설정한다.


Secure

Set-Cookie:
session=abc;
Secure

HTTPS에서만 전송된다.


SameSite

SameSite=Lax

CSRF 공격을 방지하는 데 사용된다.

대표 값

  • Strict
  • Lax
  • None

장점

  • 로그인 유지
  • 사용자 설정 저장
  • 자동 전송
  • 서버에서 쉽게 사용 가능
  • 대부분의 브라우저 지원

단점

  • 용량 제한(약 4KB)
  • 클라이언트 저장
  • 보안 설정이 중요
  • 너무 많은 쿠키는 요청 크기를 증가시킴

대표 활용 분야

  • 로그인 유지
  • 자동 로그인
  • 장바구니
  • 다국어 설정
  • 다크모드 저장
  • 최근 방문 기록
  • 사용자 환경설정
  • 방문자 추적

실무 메모

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

  • 로그인 정보 대신 Session ID 저장
  • 민감한 데이터는 Cookie에 저장하지 않기
  • HttpOnly 활성화
  • Secure 옵션 사용
  • SameSite 설정 적용
  • HTTPS 사용
  • 만료 시간 관리
  • 필요한 최소 데이터만 저장
  • 쿠키 암호화 검토
  • 개인정보 저장 금지

Cookie와 함께 사용하는 기술


대표 활용 사례

  • 로그인 유지
  • 쇼핑몰 장바구니
  • 관리자 페이지 인증
  • 다크 모드 설정
  • 언어 설정
  • 사용자 환경설정 저장
  • 방문자 통계
  • 인증 토큰 관리

관련 문서


출처

  • MDN Web Docs - HTTP Cookies
  • RFC 6265 HTTP State Management Mechanism