3.3.4 DELETE

약 5분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

3.3.4 DELETE

이번 장에서는 데이터베이스에서 데이터를 삭제하는 방법인 DELETE 문을 다루겠습니다. 웹 애플리케이션에서 사용자가 원치 않는 정보를 삭제하는 기능은 매우 중요합니다. DELETE 기능은 CRUD 중에서 가장 주의가 필요한 부분으로, 실수로 데이터를 삭제하지 않도록 철저한 확인 절차가 필요합니다. 이 부분에서는 DELETE 요청을 처리하는 방법과 보안에 대한 고려사항을 설명하겠습니다.

먼저, DELETE 문의 기본 구조를 살펴보도록 하겠습니다. DELETE 문법은 다음과 같이 구성됩니다:

DELETE FROM 테이블명 WHERE 조건;

이 문장은 지정한 조건을 만족하는 레코드를 삭제합니다. 예를 들어, 'users' 테이블에서 'id'가 1인 사용자를 삭제하고 싶다면 다음과 같은 SQL 문을 사용할 수 있습니다.

코드 sql
DELETE FROM users WHERE id = 1;

이제 PHP를 사용하여 DELETE 기능을 구현해보겠습니다. PHP에서는 PDO를 사용하여 SQL문을 실행합니다. 아래의 코드는 특정 사용자를 삭제하는 DELETE 요청 처리 예제입니다.

코드 php
<?php
// DB 연결
$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'root';
$password = '';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

// 사용자 삭제
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['user_id'])) {
    $id = $_POST['user_id'];
    $stmt = $pdo->prepare('DELETE FROM users WHERE id = :id');
    $stmt->execute(['id' => $id]);
    echo '사용자가 삭제되었습니다.';
}
?>

위의 코드는 사용자가 웹 페이지의 폼에서 'user_id'를 POST 요청으로 전송할 때 해당 사용자의 정보를 DELETE하는 기능을 구현하고 있습니다. 사용자가 삭제 요청을 한 경우, 쿼리문을 실행하고 삭제가 완료되었다는 메시지를 출력합니다.

중요: DELETE 요청을 수행할 때는 항상 사용자의 확인을 요청하는 것이 좋습니다. 예를 들어, 삭제 버튼 클릭 시 '정말 삭제하시겠습니까?'와 같은 경고 메시지를 띄워야 합니다.

또한 SQL Injection을 방지하기 위해 Prepared Statement를 사용하는 것이 필수입니다. 위 예제처럼 Prepared Statement를 활용하면 입력값에 대한 검증이 이루어지므로 보안이 강화됩니다. 이제 간단하게 실습을 통해 DELETE 기능을 구현해보세요.

마지막으로, DELETE 기능을 포함한 프로젝트를 통해 실무에서의 오류 처리나 디버깅 방법도 익혀보세요. 삭제된 데이터를 복구할 수 없으므로 실수로 인한 피해를 최소화하기 위한 다양한 방식을 고민해야 합니다.

이 장에서는 DELETE 문에 대해 배웠습니다. 이를 바탕으로 나중에 더욱 복잡한 CRUD 기능을 구현할 수 있는 기반을 다지는 것이 중요합니다. 다음 장으로 넘어가기 전에 반드시 실습 문제를 통해 DELETE 기능을 연습해보세요.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.