-
Notifications
You must be signed in to change notification settings - Fork 1
Code Convention
김성종 edited this page Jan 18, 2025
·
6 revisions
-
Naming Convention (이름 규칙):
- 변수, 함수, 컴포넌트:
camelCase(e.g.,productList,getUserData) - 파일 및 폴더:
kebab-case(e.g.,test-file.js)
- 변수, 함수, 컴포넌트:
-
React Component
- 함수 선언
- 타입 추론 가능하기 때문
- function()
- 외부에서 사용하지 않는 컴포넌트는 export x
- 함수 선언
-
함수명 작성:
- 동사 + 명사 형태(e.g,
getResult)
- 동사 + 명사 형태(e.g,
-
Husky(feat.Prettier & ESLint):
- 코드 스타일을 자동화하기 위해
Prettier와ESLint설정 적용 - [(git hook을 활용한) Husky로 commit, push 전 Prettier, ESLint 검사](https://velog.io/@jiynn_12/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-husky)
- 코드 스타일을 자동화하기 위해
- 폴더 및 파일 구조
project-root/
├── public/ # 정적 파일 (이미지, 폰트 등)
├── src/ # 소스 코드
│ ├── app/ # Next.js app 라우트
│ │ ├── api/ # API 라우트
│ │ │ ├── auth/ # /api/auth/
│ │ │ │ └── route.ts
│ │ │ ├── users/ # /api/users/
│ │ │ │ └── route.ts
│ │ ├── auth/ # 인증 관련 페이지 (로그인, 회원가입)
│ │ ├── layout.tsx # 모든 페이지의 공통 레이아웃
│ │ ├── page.tsx # 메인 페이지
│ ├── components/ # 재사용 가능한 컴포넌트(css 파일 포함)
│ ├── hooks/ # 커스텀 훅
│ ├── contexts/ # Context API 관련
│ ├── lib/ # 유틸리티 함수, API 호출 로직
│ ├── styles/ # 전역 스타일 또는 컴포넌트 스타일
│ ├── types/ # TypeScript 타입 정의
│ └── store/ # 전역 상태 관리 (Recoil, Redux 등)
├── .env.local # 환경 변수
├── next.config.js # Next.js 설정 파일
└── tsconfig.json # TypeScript 설정 파일