728x90
project-root/
│
├── app.js # 메인 서버 파일 (애플리케이션 진입점)
├── package.json # 프로젝트 메타데이터 및 의존성 관리
├── config/ # 환경 설정 및 데이터베이스 설정
│ ├── config.js # 환경변수 및 설정
│ └── db.js # 데이터베이스 연결 설정
│
├── controllers/ # 요청 처리 로직
│ ├── userController.js
│ └── productController.js
│
├── models/ # 데이터베이스 모델 정의
│ ├── userModel.js
│ └── productModel.js
│
├── routes/ # 라우팅 처리
│ ├── userRoutes.js
│ └── productRoutes.js
│
├── services/ # 비즈니스 로직 (Controller와 Model 사이 로직)
│ ├── userService.js
│ └── productService.js
│
├── middlewares/ # 미들웨어 함수 (인증, 로깅 등)
│ ├── authMiddleware.js
│ └── errorHandler.js
│
├── views/ # 템플릿 파일 (EJS, Pug 등)
│ └── index.ejs
│
├── public/ # 정적 파일 (CSS, JavaScript, 이미지 등)
│ ├── css/
│ ├── js/
│ └── images/
│
├── utils/ # 공통 유틸리티 함수
│ └── helper.js
│
└── tests/ # 테스트 코드 (Jest, Mocha 등)
├── user.test.js
└── product.test.js
기본 파일 및 폴더 구조
각 폴더 및 파일 설명
- app.js 또는 server.js
- 기능: 애플리케이션의 진입점.
- 내용: 서버 설정, 미들웨어 등록, 라우트 연결.
- package.json
- 기능: 프로젝트의 의존성 및 스크립트 관리.
- 내용: 설치된 패키지 목록과 실행 스크립트 정의.
- config/
- 기능: 환경 설정 및 데이터베이스 연결 정보.
- 파일 예시: config.js(환경 변수), db.js(DB 설정).
- controllers/
- 기능: HTTP 요청을 처리하고, 비즈니스 로직 호출.
- 내용: 요청을 받아 서비스를 호출하고 응답 반환.
- models/
- 기능: 데이터베이스 스키마 및 모델 정의.
- 내용: ORM(Mongoose, Sequelize 등)으로 데이터 구조 정의.
- routes/
- 기능: URL 경로와 컨트롤러 연결.
- 내용: RESTful API 경로 정의.
- services/
- 기능: 비즈니스 로직 구현 (Controller와 Model 사이 로직).
- 내용: 데이터 처리, 복잡한 연산 수행.
- middlewares/
- 기능: 요청 전/후 처리 작업 (인증, 로깅, 에러 처리).
- 예시: JWT 인증, 에러 핸들링 미들웨어.
- views/
- 기능: 서버 사이드 렌더링을 위한 템플릿.
- 내용: EJS, Pug, Handlebars 등의 템플릿 파일.
- public/
- 기능: 정적 파일 제공.
- 내용: CSS, JavaScript, 이미지 파일.
- utils/
- 기능: 공통 유틸리티 함수 저장.
- 내용: 데이터 포맷, 암호화, 공통 함수.
- tests/
- 기능: 테스트 코드 작성.
- 내용: 단위 테스트 및 통합 테스트 파일.
728x90
반응형
'Dev > Javascript' 카테고리의 다른 글
[git] add, commit 취소 (0) | 2024.11.28 |
---|---|
[JavaScript] 화살표 함수 기본 (0) | 2024.11.27 |
[Node.js] 오라클 연동 NJS-116, DPI-1047 해결 (0) | 2024.11.26 |
[git] 커밋하고 푸시 (1) | 2024.11.23 |
[git] vscode commit push 무한 로딩 (0) | 2024.11.21 |