명명 규칙
- 컴포넌트 - Pascal Case
- 그 외 파일 - Kebab Case (ex. hook-bookmark.ts)
- const variant - Upper Case
- 변수명, 타입 - Camel Case
- 리액트 훅 - React객체를 사용
- 함수는 화살표 함수 사용
- 컴포넌트 타입은 React.FC
import 순서
- 외부 라이브러리
- 내부 라이브러리
- 컴포넌트
- asset 등 기타
export
- 컴포넌트, 커스텀훅만 export default
비동기
- async / await 사용
컴포넌트 내부 선언 순서
- 리액트 훅
- 라이브러리 훅
- 커스텀 훅
- 변수 및 상수
- 함수
- useEffect (상태값을 의존성으로 갖는 것 -> 초기 렌더링 순)
- 파생되는 값
타입 스크립트 컨벤션
- 타입 전역 선언 = 전역 상태값에 대한 타입, 서버 요청 response값에 대한 타입
- 특정 값에 대한 타입은 type으로 객체에 대한 타입은 interface로
- any, as 사용 x
스타일(tailwind CSS) 컨벤션
- variant로 선언
const StMainSidebar = {
mainSideBar: "flex flex-col items-center basis-1/3",
logo: "w-[200px] h-[200px] my-[60px]",
// ...
}
- 반응형 작업을 위한 스타일 객체 리터럴 선언 (width, height, margin, padding, flex-direction, gap)
const width = {
"w-full": "w-full sm:w-[300px]",
};
폴더 구조
- index 사용 x
- 디자인 시스템은 components/designSystem 폴더 안에 아토믹 패턴으로 구성
- 페이지별로 폴더 구성
깃 컨벤션
- 깃 이모지 x
- 커밋 단위는 기능 단위로 (커밋 날렸을 때 정상 동작)
- FEAT: 새로운 기능 추가
- FIX: 버그 수정
- DOCS: 문서 수정
- REFACTOR: 코드 리팩토링
- STYLE: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
- TEST: 테스트 코드, 리팩토링 테스트 코드 추가
- CHORE: 빌드 업무 수정, 패키지 매니저 수정
- 브랜치명(병합 후 삭제) - feature/기능명, fix/기능명, chore/기능명
기타
- 스프린트 방식으로 진행
- 추가 기능은 다음 스프린트 사이클에서 개발
테스트 코드
- 테스트 파일은 units폴더에 작성