클린 코드
독후감 작성 최근 종이책을 읽을 때 집중력이 높다는 연구 결과를 듣고 종이책으로 공부하는 것에 빠져있던 시점에 노마드 코더에서 클린 코드 북클럽 챌린지
를 한다는 소식을 들었다. 클린 코드
책을 한 번은 읽어야지 생각하면서 미루고 있었는데 지금이 기회라는 생각이 들어 바로 신청했다. 책에서 나온 나쁜 예시들은 회사에서 일을 했던 경험이 있어서 공감도 되고 이해하기 쉬웠다. 이 책을 회사에 있을 때, 읽고 회사 프로젝트에 적용했으면 어땠을까 하는 아쉬움도 남았다. 176쪽에서 우리들 대다수는 두뇌 용량에 한계가 있어 '깨끗하고 체계적인 소프트웨어'보다 '돌아가는 소프트웨어'에 초점을 맞춘다
라는 문장이 있는데 책에서는 이 태도가 올바른 태도라고 하지만 돌아가는 소프트웨어
를 만들고 그다음 관심사로 깨끗하고 체계적인 소프트웨어
로 전환해야 한다고 말한다. 그래야 점점 복잡해진 소프트웨어를 다루기 위해서는 체계적인 정리가 필수이기 때문이라고 말한다. 이 부분을 읽을 때, 과거에 작성했던 코드를 떠올리며 많이 반성했다. 항상 돌아가는 소프트웨어
를 만들고 깨끗하고 체계적인 소프트웨어
만들기는 뒤로 미루는 경우가 많았기 때문이다. 그래서 고객들의 요구사항은 쌓여가는데 매일 야근을 해도 쌓인 걸 해결하지 못하는 경우가 발생했던 것 같다. 시간이 없다는 핑계는 대지 말고 구현을 완료했다고 해서 끝내지 말고 코드를 보고 변수명은 괜찮은지? 함수명은 괜찮은지? 함수의 크기, 클래스의 크기는 적당한지? 오류 처리는 어떤지? test 코드는 괜찮은지? 등등을 확인하는 습관을 들여야겠다.
3주라는 짧은 시간 안에 읽고 싶었던 클린 코드
를 읽으면서 과제를 통해 애매하게 이해하고 있던 SOLID 원칙 중 SRP, OCP, DIP 원칙의 나쁜 예와 좋은 예를 직접 생각하고 JavaScript 코드로 작성해 보면서 이해하는 계기가 됐다. 클린 코드
책의 예제들은 Java 코드로 되어 있어서 이해하기 어려워 커뮤니티에서 추천해 준 clean-code-javascript-ko Github Repository를 통해 책의 원칙들을 이해할 수 있었다.
챌린지가 끝난 후에는 개인 프로젝트 코드를 클린 코드
에서 배운 원칙들을 적용해서 리팩토링하는 연습을 통해 내 것으로 만들어야겠다.