PHP 16강. 실무형 파일 분리(Project Structure)
1. 파일 분리란?
파일 분리는 기능별로 PHP 파일을 나누어 관리하는 방법입니다.
초보자는
index.php
하나에 모든 코드를 작성하지만,
실무에서는 기능별로 파일을 나눕니다.
2. 왜 파일을 분리할까?
예를 들어
로그인
예약
게시판
갤러리
관리자
모든 기능을
하나의 파일에 작성하면
수천 줄이 되어 관리하기 어렵습니다.
3. 실무 폴더 구조
dongbusan
├── index.php
├── login.php
├── logout.php
├── reservation.php
├── notice.php
├── gallery.php
├── contact.php
│
├── config
│ ├── db.php
│ └── config.php
│
├── includes
│ ├── header.php
│ ├── footer.php
│ ├── nav.php
│ └── sidebar.php
│
├── functions
│ ├── auth.php
│ ├── reservation.php
│ └── common.php
│
├── api
│ ├── login.php
│ ├── reservation.php
│ ├── notice.php
│ └── gallery.php
│
├── uploads
│
├── css
├── js
├── images
└── admin
4. config
설정 파일입니다.
config
↓
db.php
config.php
DB 연결과 환경 설정을 관리합니다.
5. includes
공통 화면입니다.
header
footer
nav
sidebar
모든 페이지에서 재사용합니다.
6. functions
공통 함수입니다.
예)
로그인 확인
예약 계산
날짜 변환
문자열 처리
7. api
React 또는 AJAX에서 호출하는 API입니다.
login.php
reservation.php
notice.php
gallery.php
JSON 데이터를 반환합니다.
8. uploads
업로드 파일을 저장합니다.
uploads
↓
course
gallery
profile
banner
9. admin
관리자 전용 페이지입니다.
admin
↓
dashboard.php
member.php
reservation.php
notice.php
gallery.php
10. css
스타일 파일입니다.
reset.css
common.css
main.css
admin.css
11. js
JavaScript 파일입니다.
main.js
slider.js
reservation.js
admin.js
12. 이미지
images
↓
course
gallery
icon
logo
카테고리별로 관리합니다.
13. React와 비교
React
src
components
pages
hooks
context
services
PHP
config
includes
functions
api
uploads
역할별로 분리한다는 점은 비슷합니다.
14. 동부산CC 구조
Home
↓
Reservation
↓
Notice
↓
Gallery
↓
Admin
↓
API
↓
DB
15. DB 연결
require_once
"config/db.php";
모든 페이지에서 같은 DB 연결 파일을 사용합니다.
16. Header 불러오기
include_once
"includes/header.php";
17. 로그인 확인
require_once
"functions/auth.php";
로그인 여부를 검사합니다.
18. 프로젝트 개발 순서
폴더 생성
↓
DB 연결
↓
공통 Header
↓
로그인
↓
예약
↓
게시판
↓
관리자
19. 실습 과제
다음 구조를 직접 만들어 보세요.
config
includes
functions
api
uploads
admin
css
js
images
그리고
index.php에서
header.php
nav.php
footer.php
를 불러와 화면을 구성해 보세요.
20. 정리
실무 프로젝트는 기능별로 파일과 폴더를 분리하여 관리합니다.
config는 설정과 DB 연결, includes는 공통 화면, functions는 공통 함수, api는 데이터 처리, uploads는 업로드 파일, admin은 관리자 기능을 담당합니다.
동부산CC 프로젝트도 처음부터 이러한 구조로 설계하면 유지보수가 쉽고 기능 확장도 편리합니다.
1. 파일 분리란?
파일 분리는 기능별로 PHP 파일을 나누어 관리하는 방법입니다.
초보자는
index.php
하나에 모든 코드를 작성하지만,
실무에서는 기능별로 파일을 나눕니다.
2. 왜 파일을 분리할까?
예를 들어
로그인
예약
게시판
갤러리
관리자
모든 기능을
하나의 파일에 작성하면
수천 줄이 되어 관리하기 어렵습니다.
3. 실무 폴더 구조
dongbusan
├── index.php
├── login.php
├── logout.php
├── reservation.php
├── notice.php
├── gallery.php
├── contact.php
│
├── config
│ ├── db.php
│ └── config.php
│
├── includes
│ ├── header.php
│ ├── footer.php
│ ├── nav.php
│ └── sidebar.php
│
├── functions
│ ├── auth.php
│ ├── reservation.php
│ └── common.php
│
├── api
│ ├── login.php
│ ├── reservation.php
│ ├── notice.php
│ └── gallery.php
│
├── uploads
│
├── css
├── js
├── images
└── admin
4. config
설정 파일입니다.
config
↓
db.php
config.php
DB 연결과 환경 설정을 관리합니다.
5. includes
공통 화면입니다.
header
footer
nav
sidebar
모든 페이지에서 재사용합니다.
6. functions
공통 함수입니다.
예)
로그인 확인
예약 계산
날짜 변환
문자열 처리
7. api
React 또는 AJAX에서 호출하는 API입니다.
login.php
reservation.php
notice.php
gallery.php
JSON 데이터를 반환합니다.
8. uploads
업로드 파일을 저장합니다.
uploads
↓
course
gallery
profile
banner
9. admin
관리자 전용 페이지입니다.
admin
↓
dashboard.php
member.php
reservation.php
notice.php
gallery.php
10. css
스타일 파일입니다.
reset.css
common.css
main.css
admin.css
11. js
JavaScript 파일입니다.
main.js
slider.js
reservation.js
admin.js
12. 이미지
images
↓
course
gallery
icon
logo
카테고리별로 관리합니다.
13. React와 비교
React
src
components
pages
hooks
context
services
PHP
config
includes
functions
api
uploads
역할별로 분리한다는 점은 비슷합니다.
14. 동부산CC 구조
Home
↓
Reservation
↓
Notice
↓
Gallery
↓
Admin
↓
API
↓
DB
15. DB 연결
require_once
"config/db.php";
모든 페이지에서 같은 DB 연결 파일을 사용합니다.
16. Header 불러오기
include_once
"includes/header.php";
17. 로그인 확인
require_once
"functions/auth.php";
로그인 여부를 검사합니다.
18. 프로젝트 개발 순서
폴더 생성
↓
DB 연결
↓
공통 Header
↓
로그인
↓
예약
↓
게시판
↓
관리자
19. 실습 과제
다음 구조를 직접 만들어 보세요.
config
includes
functions
api
uploads
admin
css
js
images
그리고
index.php에서
header.php
nav.php
footer.php
를 불러와 화면을 구성해 보세요.
20. 정리
실무 프로젝트는 기능별로 파일과 폴더를 분리하여 관리합니다.
config는 설정과 DB 연결, includes는 공통 화면, functions는 공통 함수, api는 데이터 처리, uploads는 업로드 파일, admin은 관리자 기능을 담당합니다.
동부산CC 프로젝트도 처음부터 이러한 구조로 설계하면 유지보수가 쉽고 기능 확장도 편리합니다.
#PHP 16강. 실무형 파일 분리(Project Structure)