7.6 관리자 페이지 기능 구현

약 6분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

7.6 관리자 페이지 기능 구현

관리자 페이지는 웹 애플리케이션의 핵심 관리 도구로, 사용자 관리, 게시물 관리, 통계 조회 등 다양한 기능을 포함합니다. 본 실습에서는 관리자 페이지를 구현하여 데이터베이스와의 상호작용을 익히고, 관리자가 효율적으로 웹 애플리케이션을 관리할 수 있는 환경을 만들어보겠습니다.

1. 웹 개발 흐름 이해

웹 애플리케이션은 브라우저, 웹서버, PHP, 데이터베이스의 흐름으로 작동합니다. 사용자가 브라우저를 통해 요청을 보내면 웹서버가 PHP 스크립트를 실행하여 데이터베이스와 상호작용하고, 그 결과를 다시 브라우저에 반환합니다. 이 과정을 이해하는 것은 관리자 페이지 기능 구현에 있어 매우 중요합니다.

2. 기능 설명

관리자 페이지에서 구현할 주요 기능은 다음과 같습니다:

  • 사용자 목록 조회 및 관리
  • 게시물 목록 조회 및 관리
  • 통계 및 차트보기

3. 관리자 페이지의 구조 및 코드

우선, admin 디렉토리를 만들고, index.php, users.php, posts.php 파일을 생성합니다. 각 파일에 대한 코드를 작성합니다.

예제: index.php

<?php
session_start();

if (!isset($_SESSION['admin_logged_in'])) {
    header('Location: login.php');
    exit;
}

echo '<h1>관리자 대시보드</h1>';

echo '<a href="users.php">사용자 관리</a>';
echo '<a href="posts.php">게시물 관리</a>';
?>

예제: users.php

<?php
require_once 'db.php';

$stmt = $pdo->prepare('SELECT * FROM users');
$stmt->execute();
$users = $stmt->fetchAll();

foreach ($users as $user) {
    echo $user['username'] . '
';
}
?>

4. 실습

위 코드를 바탕으로 관리자 페이지의 각 기능을 확장해보세요. 예를 들어, 사용자를 삭제하고, 게시물을 수정하는 기능을 추가할 수 있습니다. 이를 통해 CRUD 기능을 활용하는 방식을 더 깊이 이해할 수 있을 것입니다.

5. 보안 이슈

관리자 페이지는 매우 중요한 데이터에 접근하므로 보안 또한 철저히 관리해야 합니다. 다음은 기본적인 보안 조치입니다:

  • SQL Injection 방지: Prepared Statement 사용
  • 세션 관리: 세션 하이재킹을 방지하기 위해 확인 절차 추가
  • XSS 및 CSRF 방지: 데이터 입력 시 필터링 및 CSRF 토큰 사용

6. MVC 패턴

이 실습을 통해 MVC 패턴의 개념을 자연스럽게 이해할 수 있도록 관련 코드를 분리하고 각 파일에 적절한 역할을 부여하세요. 이후 Laravel과 같은 프레임워크를 사용하기 위한 기초가 됩니다.

7. 정리

관리자 페이지 구현을 통해 데이터베이스의 접근 및 관리, 보안의 중요성을 깊이 이해하게 되었습니다. 이 과정에서 학습한 내용을 바탕으로 다양한 웹 애플리케이션의 관리 기능을 확장할 수 있습니다.

실습 과제

  • 사용자의 추가/삭제 기능 구현하기
  • 게시물의 리뷰, 수정 기능 구현하기

지금까지 학습한 내용을 활용하여 쟈 개별적인 실습을 진행하면, 실무에서도 유용한 경험을 쌓을 수 있을 것입니다.

코드 php
<?php
// 해당 간단한 테이블 생성 SQL 예제
$sql = "CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL
)";

if ($pdo->query($sql) === TRUE) {
    echo "Table users created successfully";
} else {
    echo "Error creating table: " . $pdo->error;
}
?>

댓글 0

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

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