⭐ 컨벤션 결정 회의 - boostcampwm-2022/web33-Mildo GitHub Wiki
- 일시 및 장소 : 11.08.(화) 16:30 ~ 11:40 및 16:00~18:00, discord
- 참여자 : 전원
- 목적 : 코드 및 커밋 컨벤션 결정
- 회의 중요도 : 중
- NHN, TOAST UI 코드 컨벤션을 함께 읽으며 소거법의 형식으로 우리만의 컨벤션 결정
- 함께 결정한 내용을 쉽게 숙지하고 적용할 수 있도록 최대한 간결하게 작성
- 그냥 습관적으로 사용한 경우에는 소수가 다수의 방식 따르기
-
변수, 함수, 컴포넌트가 아닌 파일 이름은 카멜 케이스 사용
const myMonth = 5;
-
상수는 영문 대문자 스네이크 케이스를 사용
const SNAKE_CASE = '뱀';
-
클래스명, 인터페이스명, enum, 컴포넌트, 컴포넌트 파일 이름은 파스칼 케이스 사용
-
타입스크립트 인터페이스 작성 시 이름 끝에 ‘Types’ 붙임
-
함수는 동사와 명사로 조합하고, 형용사는 사용하지 않음
-
이벤트 핸들러의 변수명은 ‘on’으로 시작
-
반환 값이 boolean형인 함수는 ‘is’로 시작
-
배열의 이름은 복수형으로 작성
-
변수
- 가독성을 위해 const는 let보다 상단에 작성
- 선언과 할당을 동시에 하는 변수를 선언만 하는 변수보다 상단에 선언
-
배열과 객체
- 외부 모듈과 내부 모듈 변수를 참조할 때 선언 사이에 공백
- 복잡한 객체 복사 시 스프레드 연산자 사용
- 객체 프로퍼티가 1개인 경우 한줄로 정의, 2개 이상인 경우 개행
-
화살표 함수
- 함수 표현식 대신 화살표 함수 사용
-
별도의 this 바인딩 없이 상위 컨텍스트에 바인딩 되어 추론이 쉬움
-
암시적 반환을 우선적으로 활용
//Good const people = arr.map((i) => i * 2);
//bad const people = arr.map((i) => { return i * 2 });
-
클래스의 메소드는 화살표 함수를 사용하지 않음
-
- 함수 표현식 대신 화살표 함수 사용
-
비동기 처리
- 가능하면 async/await을 사용
- Promise와 async/await을 함께 사용하지 않음
-
오브젝트의 프로퍼티에 접근할 경우 구조분해할당(Destructuring)을 사용, 새로운 이름으로 정의할 경우에는 사용하지 않아도 됨
const changeFirstName = user.firstName; const {firstName: changeFirstName} = user;
-
변수 등을 조합한 문자열을 생성할 경우
템플릿 문자열
을 사용
- 한 줄 짜리 블록이라도 스코프 사용
-
switch
문은 case와 case, default 사이에 개행,default
는 필수로 넣음
- 문자열 → 숫자 :
+
- 숫자 → 문자열 :
${숫자}
-
탭 1개의 단위를 띄어쓰기 2개로 정의
-
전역변수는 되도록 지양
-
ES6 방식으로
import
,export
하며, 되도록*
보다{}
를 사용 -
기본적으로 early return 사용
-
기본적으로 순회는 고차함수 사용
ex)
forEach
,map
,every
,some
,reduce
,filter
-
홑따옴표(single quote) 사용
-
옵셔널 체이닝(
?.
) 대신에 if문 사용 -
css 컨벤션은 기술 스택 결정 후 논의
-
커밋 메시지 형식
[#이슈번호] 컨벤션 : 커밋 메시지
-
커밋 컨벤션 목록
타입 설명 feat 새로운 기능 추가 fix 버그 수정 refactor 코드 리팩토링 docs 문서 수정 setting 개발 환경 설정 test 테스트 코드, 리팩토링 테스트 코드 추가 chore 기타 -
커밋 본문은 자유 양식 기재, 제목에서 미처 표현하지 못했던 부분에 대한 설명 작성