테스트 사이트 - 개발 중인 베타 버전입니다

[code] # [당신의프로젝트] 표준 웹 애플리케이션

[code]

# [당신의프로젝트] 표준 웹 애플리케이션 설계서

 

## 프로젝트 개요

 

### 프로젝트명

**[프로젝트명을 여기에 입력]**

 

### 프로젝트 목표

- 사용자 관리 시스템을 갖춘 웹 애플리케이션 구축

- 콘텐츠 관리 및 상품/주문 처리 시스템 구현

- 관리자 대시보드를 통한 통합 관리 환경 제공

 

### 개발 환경

- **언어**: PHP 7.4+

- **데이터베이스**: MariaDB 10.4+

- **웹서버**: Apache 2.4+ (Nginx 호환)

- **프론트엔드**: HTML5, CSS3, JavaScript ES6

 

### 예상 개발 기간

총 6단계, 8일 소요 (1인 개발자 기준)

 

---

 

## 시스템 구조

 

### 디렉터리 구조

```

/

├── config/

│   └── config.php              # 데이터베이스 및 시스템 설정

├── lib/

│   ├── database.php            # 데이터베이스 연결 및 기본 쿼리

│   ├── auth.php                # 인증 및 세션 관리

│   ├── user.php                # 사용자 관리

│   ├── content.php             # 콘텐츠 관리

│   ├── product.php             # 상품/주문 관리

│   ├── payment.php             # 결제 처리

│   ├── upload.php              # 파일 업로드

│   ├── admin.php               # 관리자 기능

│   ├── notify.php              # 알림 시스템

│   └── utils.php               # 공통 유틸리티

├── admin/

│   ├── dashboard.php           # 관리자 대시보드

│   ├── users.php               # 사용자 관리

│   ├── products.php            # 상품 관리

│   └── orders.php              # 주문 관리

├── includes/

│   ├── header.php              # 공통 헤더

│   ├── footer.php              # 공통 푸터

│   └── nav.php                 # 네비게이션

├── assets/

│   ├── css/                    # 스타일시트

│   ├── js/                     # 자바스크립트

│   └── images/                 # 이미지 파일

├── uploads/                    # 업로드 파일 저장소

├── index.php                   # 메인 페이지

├── product.php                 # 상품 페이지

├── board.php                   # 게시판

└── mypage.php                  # 마이페이지

```

 

---

 

## 데이터베이스 설계

 

### 테이블 구조 (15개 테이블)

 

#### 사용자 관리 (u_*)

- **u_user**: 사용자 기본 정보

- **u_file**: 파일 관리

- **u_config**: 시스템 설정

 

#### 콘텐츠 관리 (c_*)

- **c_board**: 게시판 설정

- **c_post**: 게시글

- **c_comment**: 댓글

 

#### 상품/주문 (p_*)

- **p_product**: 상품 정보

- **p_order**: 주문 정보

- **p_payment**: 결제 정보

 

#### 관리자 업무 (m_*)

- **m_task**: 관리자 작업

- **m_log**: 시스템 로그

 

#### 시스템 (s_*)

- **s_session**: 세션 관리

- **s_notify**: 알림

- **s_setting**: 전역 설정

- **s_cache**: 캐시 데이터

 

### 주요 테이블 상세

 

#### u_user (사용자)

```sql

CREATE TABLE u_user (

    id INT PRIMARY KEY AUTO_INCREMENT,

    username VARCHAR(50) UNIQUE NOT NULL,

    email VARCHAR(100) UNIQUE NOT NULL,

    password VARCHAR(255) NOT NULL,

    role ENUM('user', 'admin') DEFAULT 'user',

    status ENUM('active', 'suspended') DEFAULT 'active',

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP

);

```

 

#### c_post (게시글)

```sql

CREATE TABLE c_post (

    id INT PRIMARY KEY AUTO_INCREMENT,

    board_id INT NOT NULL,

    user_id INT NOT NULL,

    title VARCHAR(200) NOT NULL,

    content TEXT NOT NULL,

    view_count INT DEFAULT 0,

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (board_id) REFERENCES c_board(id),

    FOREIGN KEY (user_id) REFERENCES u_user(id)

);

```

 

#### p_order (주문)

```sql

CREATE TABLE p_order (

    id INT PRIMARY KEY AUTO_INCREMENT,

    user_id INT NOT NULL,

    total_amount DECIMAL(10,2) NOT NULL,

    status ENUM('pending', 'paid', 'shipped', 'completed') DEFAULT 'pending',

    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (user_id) REFERENCES u_user(id)

);

```

 

---

 

## 라이브러리 구조

 

### lib/database.php (8개 함수)

- `db_connect()`: 데이터베이스 연결

- `db_query()`: 쿼리 실행

- `db_insert()`: 데이터 삽입

- `db_update()`: 데이터 수정

- `db_delete()`: 데이터 삭제

- `db_select()`: 데이터 조회

- `db_escape()`: 문자열 이스케이프

- `db_close()`: 연결 종료

 

### lib/auth.php (12개 함수)

- `session_start_custom()`: 세션 시작

- `login_user()`: 사용자 로그인

- `logout_user()`: 사용자 로그아웃

- `check_permission()`: 권한 확인

- `is_logged_in()`: 로그인 상태 확인

- `get_user_info()`: 사용자 정보 조회

- `register_user()`: 사용자 등록

- `verify_password()`: 비밀번호 검증

- `update_password()`: 비밀번호 변경

- `block_user()`: 사용자 차단

- `get_user_role()`: 사용자 역할 조회

- `session_cleanup()`: 세션 정리

 

### lib/user.php (15개 함수)

- `get_user_profile()`: 프로필 조회

- `update_profile()`: 프로필 수정

- `change_password()`: 비밀번호 변경

- `upload_avatar()`: 아바타 업로드

- `get_user_list()`: 사용자 목록

- `search_users()`: 사용자 검색

- `ban_user()`: 사용자 금지

- `unban_user()`: 사용자 해제

- `delete_user()`: 사용자 삭제

- `get_user_stats()`: 사용자 통계

- `validate_email()`: 이메일 검증

- `send_verification()`: 인증 메일 발송

- `verify_account()`: 계정 인증

- `reset_password()`: 비밀번호 재설정

- `check_username_exists()`: 사용자명 중복 확인

 

---

 

## 페이지 구조

 

### 프론트엔드 페이지

 

#### index.php (메인 페이지)

- **역할**: 서비스 소개 및 최신 콘텐츠 표시

- **사용 테이블**: c_post, p_product, u_user

- **주요 기능**: 인기 상품, 최신 게시글, 사용자 통계

- **연관 lib**: content.php, product.php

 

#### product.php (상품 페이지)

- **역할**: 상품 목록 및 상세 정보 표시

- **사용 테이블**: p_product, p_order, u_user

- **주요 기능**: 상품 검색, 필터링, 주문 처리

- **연관 lib**: product.php, payment.php

 

#### board.php (게시판)

- **역할**: 게시글 목록 및 상세 보기

- **사용 테이블**: c_board, c_post, c_comment, u_user

- **주요 기능**: 글 작성, 댓글, 파일 첨부

- **연관 lib**: content.php, upload.php

 

#### mypage.php (마이페이지)

- **역할**: 사용자 정보 관리 및 주문 내역

- **사용 테이블**: u_user, p_order, c_post

- **주요 기능**: 프로필 수정, 주문 조회, 작성글 관리

- **연관 lib**: user.php, product.php

 

### 백엔드 페이지

 

#### admin/dashboard.php (관리자 대시보드)

- **역할**: 전체 시스템 현황 및 통계

- **사용 테이블**: 모든 테이블

- **주요 기능**: 실시간 통계, 차트, 알림

- **연관 lib**: admin.php, utils.php

 

#### admin/users.php (사용자 관리)

- **역할**: 사용자 목록 및 관리 기능

- **사용 테이블**: u_user, m_log

- **주요 기능**: 사용자 검색, 권한 변경, 활동 로그

- **연관 lib**: user.php, admin.php

 

#### admin/products.php (상품 관리)

- **역할**: 상품 등록 및 재고 관리

- **사용 테이블**: p_product, p_order

- **주요 기능**: 상품 CRUD, 재고 관리, 판매 통계

- **연관 lib**: product.php, admin.php

 

#### admin/orders.php (주문 관리)

- **역할**: 주문 처리 및 배송 관리

- **사용 테이블**: p_order, p_payment, u_user

- **주요 기능**: 주문 상태 변경, 결제 확인, 배송 처리

- **연관 lib**: product.php, payment.php

 

---

 

## 6단계 개발 프로세스

 

### 1단계: 기반 인프라 구축

- **구현 대상**: config/, lib/database.php, lib/auth.php

- **완료 조건**: DB 연결, 기본 인증 시스템

 

### 2단계: 사용자 관리 시스템

- **구현 대상**: lib/user.php, lib/upload.php, mypage.php

- **완료 조건**: 회원 관리, 파일 업로드

 

### 3단계: 콘텐츠 관리 시스템

- **구현 대상**: lib/content.php, board.php

- **완료 조건**: 게시판, 댓글 시스템

 

### 4단계: 상품/주문 시스템

- **구현 대상**: lib/product.php, lib/payment.php, product.php

- **완료 조건**: 상품 관리, 주문 처리

 

### 5단계: 관리자 시스템

- **구현 대상**: lib/admin.php, admin/ 폴더

- **완료 조건**: 관리자 대시보드

 

### 6단계: 통합 테스트

- **구현 대상**: 전체 시스템 검증

- **완료 조건**: 성능 최적화, 보안 검증

 

---

 

## 보안 및 성능 요구사항

 

### 보안 체크리스트

- SQL Injection 방지 (Prepared Statement)

- XSS 공격 차단 (입력값 필터링)

- CSRF 토큰 적용

- 파일 업로드 보안 검증

- 세션 하이재킹 방지

 

### 성능 최적화

- 데이터베이스 인덱싱

- 쿼리 최적화

- 캐시 시스템 활용

- 이미지 최적화

- CDN 연동 (선택사항)

 

### 확장성 고려사항

- 모듈형 구조 설계

- API 호환성 유지

- 다국어 지원 준비

- 모바일 반응형 디자인

- 클라우드 배포 대응

[/code]

 

 

필요한 부분 수정해서 쓰시면 좋을 거같습니다.

 

https://drive.google.com/file/d/125Sct1gDCGcj_7olyByUlb64nZR0aajF/view?usp=sharing

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

그누보드5 가 아니군요.

무엇을 만들고 계신가요????? 그누보드5 보다 더 짜임새 있는 CMS 처럼 보입니다.

@솔그루 삽질만 해보고있습니다~ MVC+SPC 구조입니다.

프로젝트를 진행하기전에 이렇게 먼저 구조를 만들어놓고 진행하는건가요?

바로 코딩 부터하는 제게는 큰 배움이네요

@가후  여러번 삽질을 해본결과 다른 소스에서 시작하는게 아니라면 이렇게  미리 sql이나 준비물들 미리 준비하고 어떤 순서로 어떤것을 참조하면서 만들지 를 계획해두면 시간 단축이 많이 되더라구요. 누군가에게 인계인수 해줄 때도 편하기도 하구요~

게시판 목록

AI

글쓰기
🐛 버그신고