Naming Convention (이름 규칙):
camelCase (e.g., productList, getUserData)
kebab-case (e.g., test-file.js)
React Component
함수명 작성:
getResult)Husky(feat.Prettier & ESLint):
Prettier와 ESLint 설정 적용폴더 및 파일 구조
project-root/
├── public/ # 정적 파일 (이미지, 폰트, etc.)
├── src/ # 소스 코드
│ ├── components/ # 재사용 가능한 컴포넌트(css 관련 파일도 이 폴더에)
│ │ ├── layout/ # Header, footer, etc.
│ │ ├── common/ # Button, DropDown, etc.
│ ├── pages/ # Next.js 페이지 라우트
│ │ ├── api/ # API 라우트
│ │ ├── auth/ # 인증 관련 페이지 (예: 로그인, 회원가입)
│ │ └── index.tsx # 메인 페이지
│ │ └── _app.tsx # 모든 페이지의 공통 설정
│ ├── styles/ # 전역 스타일 또는 컴포넌트 스타일
│ ├── hooks/ # 커스텀 훅
│ ├── contexts/ # Context API 관련 파일
│ ├── lib/ # 유틸리티 함수, API 호출 함수
│ ├── types/ # TypeScript 타입 정의
│ └── store/ # 전역 상태 관리 (Recoil, Redux 등 사용 시)
├── .env.local # 환경 변수
├── next.config.js # Next.js 설정 파일
└── tsconfig.json # TypeScript 설정 파일
https://www.codeit.kr/topics/fe-sprint10-mission/lessons/8612
Feat: "로그인 기능 구현")https://velog.io/@ye-ji/Git-PR-잘-쓰는-방법
<aside> 💡
| Feat | 새로운 기능을 추가할 경우 |
|---|---|
| Style | CSS 등 사용자 UI 디자인 변경 |
| Fix | 버그를 고친 경우 |
| Refactor | 프로덕션 코드 리팩토링 |
| Test | 테스트 추가, 테스트 리팩토링 (프로덕션 코드 변경 X) |
| Rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 |
| Remove | 파일을 삭제하는 작업만 수행한 경우 |
| !BREAKING CHANGE | 커다란 API 변경의 경우 |
| !HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 |
| Comment | 필요한 주석 추가 및 변경 |
| Docs | 문서를 수정한 경우 |
| Chore | 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우 (프로덕션 코드 변경 X) |
| </aside> |
main 브랜치는 항상 배포 가능한 상태 유지feature/이슈번호-기능이름 브랜치에서 작업
feature/이슈번호-기능이름 인지 확인feature → develop → main
featuredevelop
main