IMCAT.DEV
로그인 가입
PHP 입문 도구

PHP 세션과 쿠키

PHP 세션과 쿠키 — 초급

세션과 쿠키

1. 도입 (왜 배워야 하는가)

웹 애플리케이션을 개발할 때 사용자 경험을 향상시키기 위해서는 사용자 상태를 관리하는 것이 매우 중요합니다. 세션과 쿠키는 이를 가능하게 해주는 두 가지 주요 방법입니다. 예를 들어, 사용자가 쇼핑몰에서 장바구니에 상품을 추가했을 때, 이 정보를 유지하지 않으면 사용자가 페이지를 새로고침하거나 다른 페이지로 이동할 때 장바구니가 비어버리는 불편을 겪게 됩니다.

세션과 쿠키를 올바르게 사용하지 않으면 사용자 정보가 사라지거나 보안 문제가 발생할 수 있습니다. 따라서, 이 두 개념을 이해하고 적절하게 활용하는 것은 웹 개발에서 필수적입니다.

2. 핵심 개념 설명

세션

  • 정의: 서버 측에서 특정 사용자의 데이터를 저장하는 방법입니다. 사용자가 웹사이트에 접속하는 동안 정보를 유지할 수 있습니다.
  • 비유: 세션은 마치 호텔의 체크인 절차와 같습니다. 체크인할 때 귀중품을 맡기고, 호텔에 있는 동안 그 귀중품을 필요할 때마다 찾아볼 수 있는 것처럼, 세션은 사용자의 정보를 서버에 안전하게 저장합니다.
  • 쿠키

  • 정의: 클라이언트(사용자 브라우저) 측에 데이터를 저장하는 방법입니다. 사용자의 컴퓨터에 저장되며, 다음 번 방문 시에 이 정보를 사용할 수 있습니다.
  • 비유: 쿠키는 마치 당신이 좋아하는 카페에서 종종 사용하는 '단골 고객 카드'와 같습니다. 카페는 이 카드를 통해 당신의 선호도와 방문 기록을 기억하고, 다음 방문 때 맞춤 서비스를 제공할 수 있습니다.
  • 용어저장 위치유효 기간
    세션서버사용자가 브라우저를 닫을 때까지
    쿠키클라이언트설정된 기간 (최대 4년)

    3. 기본 코드 예제

    세션 사용 예제

    <?php
    // 세션 시작
    session_start();
    
    // 사용자 이름 저장
    $_SESSION['username'] = '홍길동';
    
    // 세션 값 출력
    echo '안녕하세요, ' . $_SESSION['username'] . '님!'; // 안녕하세요, 홍길동님!
    ?>
  • 실행 결과: 안녕하세요, 홍길동님!
  • 한 줄씩 동작 설명:
  • 1. session_start(); - 세션을 시작하거나 기존 세션을 불러옵니다. 2. $_SESSION['username'] = '홍길동'; - 세션 배열에 사용자 이름을 저장합니다. 3. echo '안녕하세요, ' . $_SESSION['username'] . '님!'; - 저장된 사용자 이름을 출력합니다.

    쿠키 사용 예제

    <?php
    // 쿠키 설정 (유효기간 1시간)
    setcookie('user', '홍길동', time() + 3600);
    
    // 쿠키 값 출력
    if(isset($_COOKIE['user'])) {
        echo '안녕하세요, ' . $_COOKIE['user'] . '님!'; // 안녕하세요, 홍길동님!
    }
    ?>
  • 실행 결과: 안녕하세요, 홍길동님!
  • 한 줄씩 동작 설명:
  • 1. setcookie('user', '홍길동', time() + 3600); - 'user'라는 이름의 쿠키를 설정하고 1시간 후 만료되도록 합니다. 2. if(isset($_COOKIE['user'])) { - 'user' 쿠키가 존재하는지 확인합니다. 3. echo '안녕하세요, ' . $_COOKIE['user'] . '님!'; - 쿠키에 저장된 사용자 이름을 출력합니다.

    4. 실전 활용 예제

    1. 로그인 상태 유지 (세션 활용)

  • 사용자가 로그인할 때 세션에 사용자 ID를 저장하여 사용자가 웹사이트를 탐색하는 동안 로그인 상태를 유지합니다.
  • 2. 장바구니 구현 (세션 활용)

  • 쇼핑몰에서 사용자가 장바구니에 추가한 상품 정보를 세션에 저장하여, 사용자가 다른 페이지로 이동하더라도 장바구니 정보가 사라지지 않도록 합니다.
  • 3. 사용자 선호 설정 (쿠키 활용)

  • 사용자가 웹사이트에 방문할 때마다 선호하는 언어 또는 테마를 쿠키에 저장하여, 다음 방문 시 자동으로 해당 설정이 적용되도록 합니다.
  • 5. 흔한 실수와 주의사항

    실수 1: 세션 시작 전에 출력

  • 잘못된 코드:
  • echo '세션을 시작합니다.'; // 세션 시작 전에 출력
    session_start();
  • 올바른 코드:
  • session_start(); // 세션 시작 후 출력
    echo '세션을 시작합니다.';

    실수 2: 쿠키 설정 후 즉시 사용

  • 잘못된 코드:
  • setcookie('user', '홍길동', time() + 3600);
    echo $_COOKIE['user']; // 쿠키를 즉시 사용
  • 올바른 코드:
  • setcookie('user', '홍길동', time() + 3600);
    echo '쿠키가 설정되었습니다. 다음 방문 시 사용 가능합니다.'; // 쿠키 사용을 다음 방문으로 미룸

    6. 정리

  • 세션은 서버 측에서 사용자 정보를 저장하여 웹사이트 탐색 중 상태를 유지하는 데 사용됩니다.
  • 쿠키는 클라이언트 측에서 정보를 저장하여 다음 방문 시 사용할 수 있게 합니다.
  • 세션은 보안이 중요한 정보에 적합하며, 쿠키는 사용자 설정이나 선호도에 적합합니다.
  • 세션과 쿠키를 적절히 활용하면 사용자 경험을 향상시킬 수 있습니다.
  • 다음에 학습하면 좋은 주제

  • PHP에서 데이터베이스 연동하기 (MySQL)
  • 사용자 인증 및 권한 관리
  • AJAX를 활용한 비동기 웹 애플리케이션 개발