약 5분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
9.2 실습 과제 및 응용 문제
이번 섹션에서는 지금까지 배운 내용을 바탕으로 실습 과제와 응용 문제를 통해 여러분의 이해도를 높이고, 실제로 PHP로 웹 애플리케이션을 구축하는 경험을 쌓아보도록 하겠습니다. 각 실습 과제는 단계별로 진행되어 있으며, 이를 통해 여러분은 PHP의 다양한 기능을 직접 활용할 수 있습니다.
실습 과제
-
회원가입 기능 구현
- 사용자로부터 이름, 이메일, 비밀번호를 입력 받아 데이터베이스에 저장하는 기능을 구현합니다.
- 비밀번호는 해시 함수를 이용해 안전하게 저장합니다.
- 입력 데이터에 대한 유효성 체크를 수행합니다.
-
로그인 기능 구현
- 사용자가 이메일과 비밀번호를 입력하면 데이터베이스에서 정보를 확인하고 세션에 사용자 정보를 저장합니다.
-
게시판 기능 구현
- 사용자가 글을 작성, 수정, 삭제할 수 있는 게시판 기능을 만들어 보세요.
- 글 목록을 페이지네이션하여 보여주는 기능도 추가합니다.
-
댓글 기능 구현
- 게시글에 댓글을 달 수 있는 기능을 추가하고, 각 댓글은 데이터베이스에 저장되도록 구현합니다.
-
파일 업로드 구현
- 사용자가 자신의 프로필 사진을 업로드할 수 있는 기능을 구현합니다.
- 파일 유형 및 크기 제한을 적용하여 보안성을 높입니다.
-
관리자 페이지 구현
- 관리자가 사용자를 관리하고 게시글 및 댓글을 관리할 수 있는 기능을 추가합니다.
-
REST API 구현
- 게시판 기능을 RESTful하게 구현하고 JSON을 이용해 데이터 전송하는 기능을 추가합니다.
-
간단한 쇼핑몰 기능 구현
- 제품 목록 조회, 장바구니에 담기, 주문 생성 등의 기본 쇼핑몰 기능을 구현합니다.
응용 문제
- 여러분이 만든 회원가입 기능을 개선하여 이메일 인증 기능을 추가해보세요.
- mysqli와 PDO의 차이를 조사하고, 각각의 장단점에 대해 설명해보세요.
- 프로젝트 중 발생할 수 있는 SQL Injection과 XSS 공격에 대해 어떻게 방어할 수 있는지 고민해보고, 구현 방법을 설명해보세요.
정리
이번 실습 과제 및 응용 문제를 통해 여러분은 PHP와 MySQL을 활용하여 웹 애플리케이션을 구성하는 법을 실제로 경험하게 됩니다. 이러한 프로젝트 경험은 향후 더 복잡한 애플리케이션을 개발하는 데에 큰 도움이 될 것입니다. 각 기능을 구현하며 발생하는 문제를 스스로 해결해보는 것이 중요합니다.
코드
php
<?php
// 데이터베이스 연결
$dsn = 'mysql:host=localhost;dbname=mydb';
$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') {
$name = $_POST['name'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt = $pdo->prepare("INSERT INTO users (name, email, password) VALUES (:name, :email, :password)");
$stmt->execute(['name' => $name, 'email' => $email, 'password' => $password]);
echo '회원가입이 완료되었습니다!';
}
?>
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.