자바스크립트 코드를 읽고 고치기 쉽게 만드는 기준
함수 하나를 고치려다 다른 곳까지 손이 가는 일이 잦다면, 이 가이드라인이 도움이 됩니다. 로버트 C. 마틴의 『클린 코드』 원칙을 자바스크립트 문법에 맞춰 풀어 쓴 참고서입니다. 스타일 가이드가 아니라, 코드를 읽고 고치기 쉽게 만드는 방향을 알려줍니다.
변수 이름부터 함수 구조까지
가이드는 변수, 함수, 객체, 클래스, SOLID 원칙, 테스트, 동시성, 오류 처리, 포맷팅, 주석 순서로 이어집니다. 변수 이름은 의미를 바로 알 수 있게 짓고, 같은 종류의 데이터에는 같은 어휘를 쓰라고 권합니다. 함수는 한 가지 일만 하도록 나누고, 인자는 두 개 이하로 유지하라고 조언합니다. 조건문은 가능한 한 피하고, 타입 체크 대신 다형성을 쓰라고 제안합니다. 이 원칙들은 엄격한 규칙이 아니라, 팀이 코드의 품질을 판단할 때 참고하는 기준점입니다.
구체적인 코드 예시로 보는 차이
각 항목마다 '나쁜 예'와 '좋은 예'를 나란히 보여줍니다.
- 의미 있는 이름 변수나 함수 이름이 코드의 의도를 바로 드러내야 합니다. 검색하기 쉬운 이름으로 지어야 나중에 코드를 찾는 데 도움이 됩니다.
- 단일 책임 함수 함수는 한 가지 일만 해야 합니다. 여러 일을 하는 함수는 테스트하기 어렵고, 재사용하기도 힘들어집니다.
- 부수 효과 최소화 함수가 외부 상태를 바꾸는 부수 효과를 줄여야 합니다. 객체나 배열을 수정할 때는 복사본을 만들어 반환하는 방식이 안전합니다.
코드의 첫 번째 초안으로 시작합니다
이 가이드는 모든 원칙을 무조건 따라야 한다고 주장하지 않습니다. 소프트웨어 공학은 아직 발전 중인 분야이므로, 이 원칙들은 오랜 경험에서 나온 지침일 뿐입니다. 코드는 처음부터 완벽할 수 없으며, 모든 코드는 첫 번째 초안에서 시작합니다. 동료 리뷰를 통해 불완전한 부분을 다듬어 나가는 과정이 중요합니다. 이 원칙을 알았다고 해서 즉시 더 나은 개발자가 되지는 않지만, 코드를 다듬는 기준이 생기는 것은 사실입니다.
적용 전 확인 사항
이 저장소는 자바스크립트 프로젝트에서 코드 리뷰 기준을 세울 때 유용합니다. 특히 팀원 간 코드 스타일 불일치로 인한 마찰을 줄이고 싶을 때 참고할 만합니다. 다만, 모든 원칙이 모든 상황에 적합하지는 않으므로, 프로젝트 규모와 팀 문화에 맞게 선별적으로 적용해야 합니다. TypeScript를 사용하는 경우, 타입 체크 관련 조언은 TypeScript의 정적 타입 기능을 활용하는 방향으로 조정할 수 있습니다. 이 가이드는 특정 프레임워크나 라이브러리에 종속되지 않는 일반적인 자바스크립트 원칙을 다루므로, 다양한 환경에서 적용 가능합니다.