🧾 API 명세서 확인하기
Code convention
-
변수나 함수명은
camelCase
-
함수의 경우 동사 + 명사
- ex) getInformation()
-
DB 테이블 이름
PascalCase
/ 칼럼(column) 이름은snake_case
-
Class / Interface / Type / Namespace / Enum 명은
PascalCase
-
약어는 되도록 사용하지 않는다. (필요한 경우 팀원과의 논의 하에 사용)
-
파일명은
camelCase
ex) userController.ts, userService.ts, userRouter.ts
Commit message convention
태그 이름 | 설명 |
---|---|
[feat] | 새로운 기능 구현 |
[update] | 추가 개발 진행 |
[merge] | 다른 브랜치를 merge 할 때 사용 |
[fix] | 버그, 오류 수정 |
[remove] | 불필요한 코드 삭제 |
[rename] | 파일 이름 변경 시 사용 |
Git Branch convention
-
main : 개발 브랜치
-
master : 배포 브랜치
-
feat/user → router 별로 분리
./src
├── index.ts
├── constants
│ ├── index.ts
│ ├── response.ts
│ ├── responseMessage.ts
│ ├── statusCode.ts
│ └── tokenType.ts
├── controller
│ ├── userController.ts
│ ├── userController.test.ts
│ ├── index.ts
│ ├── contentController.test.ts
│ └── contentController.ts
├── data
│ └── character.json
├── interfaces
│ ├── user
│ │ ├── CharacterCreateDTO.ts
│ │ ├── CharacterResDTO.ts
│ │ ├── CheckIdentityDTO.ts
│ │ ├── UserCreateDTO.ts
│ │ └── UserUpdateDTO.ts
│ └── content
│ ├── AllContentsDTO.ts
│ └── ContentDTO.ts
├── middlewares
│ ├── auth.ts
│ └── index.ts
├── modules
│ └── jwtHandler.ts
├── router
│ ├── userRouter.ts
│ ├── index.ts
│ └── contentRouter.ts
└── service
├── userService.ts
├── index.ts
└── conentService.ts
{
"name": "seminar4",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"dev": "nodemon",
"build": "tsc && node dist",
"db:pull": "npx prisma db pull && npx prisma generate",
"db:push": "npx prisma db push && npx prisma generate",
"generate": "npx prisma generate",
"prepare": "husky install",
"test": "dotenv -e prisma/.env.test npx prisma db push && npx prisma generate && jest --detectOpenHandles --forceExit "
},
"devDependencies": {
"@types/bcryptjs": "^2.4.2",
"@types/express": "^4.17.14",
"@types/express-validator": "^3.0.0",
"@types/jest": "^29.2.5",
"@types/jsonwebtoken": "^8.5.9",
"@types/multer": "^1.4.7",
"@types/multer-s3": "^3.0.0",
"@types/node": "^18.11.9",
"@types/supertest": "^2.0.12",
"husky": "^8.0.3",
"jest": "^29.3.1",
"nodemon": "^2.0.20",
"supertest": "^6.3.3",
"ts-jest": "^29.0.3",
"typescript": "^4.9.4"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.216.0",
"@prisma/client": "^4.5.0",
"bcryptjs": "^2.4.3",
"dotenv": "^16.0.3",
"dotenv-cli": "^6.0.0",
"express": "^4.18.2",
"express-validator": "^6.14.2",
"jsonwebtoken": "^8.5.1",
"multer": "^1.4.5-lts.1",
"multer-s3": "^3.0.1",
"prisma": "^4.5.0"
},
"jest": {
"transform": {
"^.+\\.ts$": "ts-jest"
},
"testRegex": "\\.test\\.ts$",
"moduleFileExtensions": ["ts", "tsx", "js", "json"]
}
}
박서원 | user Router API 구현 |
김규원 | content Router API 구현 |