/////
Search
🗣️

컨벤션 회의

1. 코드 컨벤션

1.1 기본세팅

들여쓰기(tab) 2칸
prettier & eslint 사용
{ // env: 어떤 환경에서 스크립트를 실행할 것인지 설정 "env": { "browser": true, "es2021": true, "node": true, "commonjs": true, "es6": true }, "settings": { "react": { "version": "detect" } }, "extends": [ "eslint:recommended", "plugin:react/recommended" ], "parserOptions": { // ECMAScript 규격의 JSX 사용 여부: true "ecmaFeatures": { "jsx": true }, // 사용할 ECMAScript 버전을 설정 "ecmaVersion": "latest", // parser의 export 형태를 설정, react는 module 기반의 import, export 사용 "sourceType": "module" }, "plugins": [ "react" ], "rules": { // 들여쓰기 2칸만 허용 "indent": [ "error", 2 ], // var 키워드 사용 불가능 "no-var": "error", // asynn 함수 내부에 await 키워드가 없으면 오류 발생 "require-await": "error", // ==, != 대신에 ===, !== 사용 "eqeqeq": "error", //프롭스 타입 무시 "react/prop-types": 0, // 호출되지 않은 변수도 사용가능하게 설정 "no-unused-vars": "off" } }
HTML
복사
{ "bracketSpacing": true, "jsxBracketSameLine": false, "jsxSingleQuote": true, "printWidth": 80, "proseWrap": "preserve", "semi": true, "singleQuote": true, "tabWidth": 2, "useTabs": false, "vueIndentScriptAndStyle": false }
HTML
복사

1.2 네이밍 규칙

폴더명
camelCase
파일명
• REACT 컴포넌트 : PascalCase • 이미지파일 : kebab-case (어쩌고저쩌고-image, lion-licat-image.png) • JSX : PascalCase • JS : camelCase • 스타일드 컴포넌트 파일 : ~~Style.jsx로 표현
변수명
• 일반적인 변수, 함수 : camelCase -변수: ‘명사형'으로 작성. 무엇을 담고있는지 정확히 표현(예: numberOfPeople) -불린형 변수: is~~로 표현 -함수 : ‘동사형'으로 작성. 무엇을 하는 함수인지 정확히 표현(예: getInputValue) 어떤 값으로부터 다른 값을 계산하는 함수 ⇒ get으로 시작 (ex: getToday) 이벤트 함수를 보내는 prop 이름은 on__으로 짓고, 이벤트 함수 이름은 handle__으로 짓는다 커스텀 훅의 이름은 use___ (ex: useGetWindowSize) • 상수 : UPPER_SNAKE_CASE • 생성자 함수, 클래스 : PascalCase

1.3 그 외 규칙

JavaScript ES6+ 문법 사용
var 사용 금지
세미콜론 필수
작은 따옴표 사용
1.
커밋 컨벤션 ⇒ 정해놓은거
2.
코딩 컨벤션 ⇒ 이전기수꺼 참고
3.
네이밍 컨벤션 ⇒ 이전기수꺼 참고
4.
폴더&파일구조 컨벤션
src ㄴ Assets (이미지, 폰트 등 에셋 저장) ㄴ Images ㄴ Fonts ㄴ Components ㄴ Header ㄴ Header.jsx ㄴ Button ㄴ Button.jsx ㄴ Pages ㄴ HomePage ㄴ HomePage.jsx
HTML
복사