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

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

· 4개월 전 · 351 · 4

[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개

4개월 전

그누보드5 가 아니군요.

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

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

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

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

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

게시글 목록

번호 제목
1188
1187
1186
1185
1177
1176
1173
1152
1150
1146
1145
1141
1140
1138
1137
1136
1133
1132
1130
1128
1126
1121
1116
1114
1111
1094
1093
1089
1086
1084