학습
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. 로그인 상태 유지 (세션 활용)
2. 장바구니 구현 (세션 활용)
3. 사용자 선호 설정 (쿠키 활용)
5. 흔한 실수와 주의사항
실수 1: 세션 시작 전에 출력
echo '세션을 시작합니다.'; // 세션 시작 전에 출력
session_start();
session_start(); // 세션 시작 후 출력
echo '세션을 시작합니다.';
실수 2: 쿠키 설정 후 즉시 사용
setcookie('user', '홍길동', time() + 3600);
echo $_COOKIE['user']; // 쿠키를 즉시 사용
setcookie('user', '홍길동', time() + 3600);
echo '쿠키가 설정되었습니다. 다음 방문 시 사용 가능합니다.'; // 쿠키 사용을 다음 방문으로 미룸