약 6분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
7.8 간단한 쇼핑몰 기능 구현
이번 챕터에서는 간단한 쇼핑몰 기능을 구현해 보겠습니다. 쇼핑몰의 기본 기능인 상품 조회, 장바구니 추가 및 구매 기능을 단계별로 구현할 것입니다. 이 과정을 통해 PHP, MySQL, 클라이언트-서버 간의 데이터 흐름을 이해하고, 보안 및 오류 처리에 대한 기초 지식을 쌓을 수 있습니다.
1. 웹의 동작 원리
브라우저에서 사용자의 요청이 발생하면, 다음과 같은 흐름으로 데이터가 처리됩니다:
- 브라우저: 사용자가 입력한 데이터를 서버로 전송합니다.
- 웹 서버: 요청받은 데이터를 PHP로 처리합니다.
- PHP: 데이터베이스와 상호작용하여 필요한 정보를 가져옵니다.
- 데이터베이스: 저장된 데이터를 전달합니다.
- 브라우저: 최종적으로 사용자에게 결과를 보여줍니다.
2. 데이터베이스 설계
아래와 같이 상품 정보를 저장할 테이블을 생성합니다:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
price DECIMAL(10, 2),
description TEXT
);
3. PHP를 이용한 상품 조회 기능 구현
상품 정보를 데이터베이스에서 가져와서 브라우저에 표시하는 간단한 예제입니다.
<?php
$pdo = new PDO('mysql:host=localhost;dbname=shop', 'user', 'password');
$query = $pdo->query('SELECT * FROM products');
$products = $query->fetchAll(PDO::FETCH_ASSOC);
foreach ($products as $product) {
echo '<h2>' . htmlspecialchars($product['name']) . '</h2>';
echo '<p>가격: ' . htmlspecialchars($product['price']) . ' 원</p>';
echo '<p>상세 설명: ' . htmlspecialchars($product['description']) . '</p>';
}
?>
4. 장바구니 기능 구현
장바구니에 상품을 추가하는 기능 또한 구현해야 합니다. 이를 위해 세션을 사용할 것입니다.
session_start();
if (isset($_POST['add_to_cart'])) {
$productId = $_POST['product_id'];
$_SESSION['cart'][] = $productId;
}
5. 구매 기능 구현
구매 기능은 장바구니에서 선택한 제품을 데이터베이스에 기록하는 작업입니다. 이 과정에서 주의할 점은 SQL Injection 공격을 방지하는 것입니다.
if (isset($_POST['checkout'])) {
$stmt = $pdo->prepare('INSERT INTO orders (product_id, quantity) VALUES (:product_id, :quantity)');
$stmt->execute([
':product_id' => $_POST['product_id'],
':quantity' => $_POST['quantity']
]);
}
6. 보안 및 오류 처리
각 기능을 구현하면서 SQL Injection, XSS, CSRF 등 보안 사항을 반드시 고려해야 합니다. 예를 들어, 사용자가 입력한 데이터를 출력하기 전에 htmlspecialchars() 함수를 사용하는 것이 매우 중요합니다.
7. 정리
이번 강의를 통해 간단한 쇼핑몰의 기본 기능을 구현해보았습니다. 각 기능이 어떻게 연결되는지 이해하고, 실무에서 발생할 수 있는 다양한 상황에 대비할 수 있는 능력을 기르셨기를 바랍니다. 이후에는 이러한 기능들을 바탕으로 더욱 복잡한 웹 서비스를 설계하고 구현할 수 있을 것입니다.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.