이번 주 수정사항

  1. 폴더 구조 변경 완료 → 호민
  2. api/axios 추상화 코드 추가 + Get API 타입 선언 및 Model 타입 선언 → 호민

다음주 요구 수정사항

  1. Tanstack 도입
  2. Styled Lint 도입
  3. 기존 컨벤션 수정

기존 컨벤션

Code Naming

종류 형식 예시
상수 UPPER, snack_case API_KEY
함수 동사, 명확한 네이밍, camelCase fetchPostData
파일 .tsx, 명확한 네이밍, PascalCase LoginPage
컴포넌트 PascalCase Input
type, interface PascalCase Users
hooks use__형식, camelCase useAxios
utils camelCase validatePassword
API camelCase getPostList

Code Style

규칙 비고
약어 사용 금지 const btn → const button
커밋 파일 내 주석, console 금지 console 및 //, /* */ 삭제 요망
함수 표현식 (화살표 함수) 우선 사용 함수 선언식은 this 바인딩이 필요할 경우 사용
배열의 이름은 반드시 ___Array 형태로 명시적 사용 chat, chats, chatList → chatArray
boolean값은 is___ 형태로 명시적 사용 isCompleted
var 사용 금지, let보다 const를 권장 값이 변하지 않으면 const만 사용할 것
const는 let보다 상단에 위치 const constantName = 0;
let variableName = 0;
비동기 처리는 async await 사용 const promise = new Promise().then().then() →
const fetchData = async (url) ⇒ { … }
문자열 조합은 템플릿 리터럴 작성 return **문자열: ${stringABC}**
전역 상수는 src/constants/index.ts 파일에서 관리
타입스크립트는 interface를 기본으로 사용한다. 모든 타입은 types 폴더에서 별도 관리
css단위는 rem단위를 기본으로 적용
src 경로는 @로 단축한다. import Header from @/components/Header
내부 정의 이벤트는 handle__,
props로 전달 받은 이벤트는 on___형식으로 작성한다. handleClick과 onClick 두 가지를 구분하기 위함
블록 구문 내 한 줄 코드 역시 중괄호로 묶어준다. `if (true) {
return 1;
}`
객체 프로퍼티는 Destructuring로 접근한다. const {name, age} = userData
return문은 메인코드 한 줄 아래 작성,
또한 early return을 권장함. 코드 길이로 인한 가독성 측면에서 if-else문 사용 예정 시 팀원 간 공유할 것