클린 코드의 특징
- 응집도, 단일책임, 적당한 추상화를 지키는 코드이다.
- 찾고 싶은 로직을 빠르게 찾을 수 있는 코드이다.
- 유지보수 시간을 줄여주는 코드이다.
클린 코드는 짧은 코드가 아니다.
응집도
- 하나의 목적을 가진 코드가 흩뿌려져 있으면 안 된다.
- 같은 목적의 코드는 뭉쳐두자.
단일 책임
- 하나의 함수는 하나의 역할만 해야 한다.
- 하나의 일을 하는 뚜렷한 함수 이름을 짓자.
- 함수가 뚱뚱해진다 싶으면 이 함수가 1개 이상의 일을 하고 있는 것은 아닌지 점검해보자.
때때론 함수 이름을 한글로 먼저 지어보고 가장 핵심을 짚는 이름이 무엇인지 고민해보자.
추상화
- 함수의 세부 구현 단계가 제각각이면 안 된다.
- 추상화 단계를 조절해 핵심 개념을 필요한 만큼만 노출해야 한다.
- 너무 추상화 단계가 높아서 보여주어야 할 것을 안보여주는 것도 잘못이다.
- 당장 몰라도 되는 디테일만 숨기자.
- 필수적인 핵심 정보는 공개해야 한다.
- 유연성을 방해할 때는 가끔 추상화를 깨는 행위도 필요하다.
- 한 페이지 내부에서는 비슷한 추상화 수준을 가져가는 것이 좋다.
- 코드를 읽는데 사고가 널뛰게 되면 좋지 않다.
해당 페이지의 코드를 빠르게 파악하려면 어떤 것들을 공개해야 하는지 고민해봐야 한다.
선언적 프로그래밍
- 무엇을 해야할지만 알려주면, 세부 구현은 이미 되어있는 방식
- '무엇'을 하는 함수인지 빠른 이해가 가능하다.
- 세부 구현은 안쪽에 뭉쳐둔다.
- '무엇'만 바꾸어서 쉽게 재사용이 가능하다.
무엇을 해야할지 구체적으로 작성하는 프로그래밍을 명령형 프로그래밍이라고 한다. 선언형 프로그래밍도 내부를 까보면 구체적인 코드를 가진 명령형 프로그래밍이다.
선언형 프로그래밍과 명령형 프로그래밍은 좋고 나쁘고로 구분되는 것이 아니라, 필요에 따라 취사선택할 뿐이다.
액션 아이템
담대하게 기존 코드 수정하기
기존 코드의 구조를 뜯는 것을 두려워해선 안 된다.
큰 그림 보는 연습하기
기능 추가 자체는 클린해도 큰 그림으로는 어지러운 코드일 수가 있다.
팀과 함께 공감대 형성하기
코드에 정답은 없으므로 각자 문제라고 생각하는 부분을 공유해 고쳐보자.
문서로 적어보기
클린 코드란 모호한 개념이므로 글로 적어서 명확하게 만들어보자.
- 향후 어떤 점에서 위험해질 수 있는지
- 어떻게 개선할 수 있는지
'자바스크립트' 카테고리의 다른 글
ReferenceError: File is not defined 에러 해결 방법 (0) | 2024.05.01 |
---|