최근 면접을 보면서 나의 코딩 스타일에 대해 생각하게 되었다.
나는 많은 인강을 보면서 react를 독학한 케이스인데 아무래도 인강 강사님의 코드 스타일을 따라가게 되었고 무의식적으로 그렇게 코딩을 했었다.
면접관님이 코딩스타일은 다 다르지만 내가 사용한 코딩스타일은 값과 코드를 확인하기 위해 여러군데를 살펴봐야 하기때문에 본인은 선호하는 방식이 아니라고 하셨다. (솔직히 생각해본적이 없어서 충격 😱)
신규 서비스를 개발하는 경우도 있지만 대부분의 개발은 기존코드를 유지보수 하는 경우가 많다. 이전 개발자가 코딩했던 스타일이 지극히 개인적이라면 어떻겠는가? 또는 동료 개발자가 내 스타일데로 코딩한 코드를 이해하지 못한다면? 개발자들은 자신이 코딩했던 코드도 까먹는 경우가 꽤 많다. 저 당시에 내가 왜 저렇게 코딩 했지?하는 경우를 많이 봤기 때문에 더더욱 개발자들 사이의 규칙이 중요한 것 같다.
현업에서 혼자 개발하는 개발자는 드물다. 그렇기 때문에 협업을 위한 코딩 스타일 규칙은 중요하다는 생각이 들었다.
코딩 컨벤션은 협업 시 유지보수 및 가독성, 코드 이해를 위해 지켜지는 개발자들 사이의 규칙이다.
효율적이고 관리하기 쉬운 코드를 만들기 위해(유지보수) 효율적으로 규칙을 정해야 한다.
*사용하는 이유?
components 이름은 Pascal case
로 작성해라.
pascal case : 첫 단어를 대문자로 시작하는 표기법
Header.js Footer.jsx MainBanner.js BlogList.jsx
Non-components 이름은 Camel case
로 작성해라.
Camel case : 띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식
myUtilityFile.js cookieHelper.js fetchApi.js
Unit test 파일명은 대상 파일명과 동일하게 작성해라.
MainBanner.js MainBanner.test.js BlogList.js BlogList.test.js
속성명은 Camel case
로 작성해라.
className
<div className=""></div>
onClick, onSubmit
<div onClick="{}" onSubmit="{}"></div>
inline 스타일은 Camel case
로 작성해라.
<div style={{ fontSize: '1rem', fontWeight: '700' }}></div>
null
또는 undefined
일 수 있는 값은 optional chaining 연산자 (?.)를 사용한다.obj?.prop;
obj?.[expr];
arr?.[index];
func?.(args);
import { Nav } from './Nav.js';
import { CookieBanner } from './CookieBanner.js';
export { Nav, CookieBanner };
-참고