본문 바로가기

Dev/Javascript

[nodejs] 기본 폴더 파일 구조

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

 

기본 파일 및 폴더 구조

 
 

각 폴더 및 파일 설명

  1. app.js 또는 server.js
    • 기능: 애플리케이션의 진입점.
    • 내용: 서버 설정, 미들웨어 등록, 라우트 연결.
  2. package.json
    • 기능: 프로젝트의 의존성 및 스크립트 관리.
    • 내용: 설치된 패키지 목록과 실행 스크립트 정의.
  3. config/
    • 기능: 환경 설정 및 데이터베이스 연결 정보.
    • 파일 예시: config.js(환경 변수), db.js(DB 설정).
  4. controllers/
    • 기능: HTTP 요청을 처리하고, 비즈니스 로직 호출.
    • 내용: 요청을 받아 서비스를 호출하고 응답 반환.
  5. models/
    • 기능: 데이터베이스 스키마 및 모델 정의.
    • 내용: ORM(Mongoose, Sequelize 등)으로 데이터 구조 정의.
  6. routes/
    • 기능: URL 경로와 컨트롤러 연결.
    • 내용: RESTful API 경로 정의.
  7. services/
    • 기능: 비즈니스 로직 구현 (Controller와 Model 사이 로직).
    • 내용: 데이터 처리, 복잡한 연산 수행.
  8. middlewares/
    • 기능: 요청 전/후 처리 작업 (인증, 로깅, 에러 처리).
    • 예시: JWT 인증, 에러 핸들링 미들웨어.
  9. views/
    • 기능: 서버 사이드 렌더링을 위한 템플릿.
    • 내용: EJS, Pug, Handlebars 등의 템플릿 파일.
  10. public/
    • 기능: 정적 파일 제공.
    • 내용: CSS, JavaScript, 이미지 파일.
  11. utils/
    • 기능: 공통 유틸리티 함수 저장.
    • 내용: 데이터 포맷, 암호화, 공통 함수.
  12. 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