1. 폴더명 (Directory)
- 도메인 폴더:
camelCase, 단수형 (예: user, auth, post)
- 공통 폴더:
camelCase (예: global, config)
2. 파일명 (File)
- 일반 파일:
kebab-case.ts
- 파일명 패턴:
{domain}.{type}.ts (예: user.controller.ts, user.service.ts)
- 예외: 진입점 파일:
app.ts, server.ts, index.ts
3. 변수명 (Variable)
- 일반 변수:
camelCase (예: userName, userCount)
- 불린 변수:
is, has 접두사 사용 (예: isActive, hasPermission)
- 배열 변수: 복수형 또는
List, Array 접미사 (예: users, userList)
4. 함수명 (Function)
- 일반 함수:
camelCase, 동사로 시작 (예: getUserById, createUser)
- 함수명 동사 패턴:
- 조회:
get, find (예: getUserById, findUserByEmail)
- 생성:
create, add (예: createUser, addPost)
- 수정:
update, modify (예: updateUser, modifyPost)
- 삭제:
delete, remove (예: deleteUser, removePost)
- 검증:
validate, check, verify (예: validateEmail, checkEmail)
5. 클래스명 (Class)
- 클래스명:
PascalCase (예: UserService, UserController)
- 클래스명 패턴:
- Controller:
{Domain}Controller
- Service:
{Domain}Service
- Repository:
{Domain}Repository
- Middleware:
{Domain}Middleware
6. 인터페이스/타입명 (Interface/Type)
- 인터페이스/타입:
PascalCase, I 접두사 사용 X (예: User, UserStatus, ApiResponse<T>)
- DTO 타입:
{Action}{Domain}Dto 패턴 (예: CreateUserDto, GetUserDto)