[TIL] Clean Code - 1. 깨끗한 코드
노개북 1일차.
1. Today I Read
추천사 ~ 1장. 깨끗한 코드
2. 내용 정리
✨ 깨끗한 코드의 필요성
깨끗한 코드는 1) 잘 읽히고 2) 남도 잘 읽을 수 있고 3) 의존성이 최소이고 4) 중복됨이 없고 5) 테스트 케이스가 있고 6) 고치기 쉬운 코드이다.
3. 느낀점
우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그 시절 우리는 르블랑의 법칙을 몰랐다. 나중은 다시 오지 않는다.
이 책을 읽으면서 가장 찔렸던 구절이다. 내가 프로젝트를 할 때마다 하는 생각이기 때문이다.
시간에 쫓긴다는 핑계로 일단 기능만 되게 해놓고, 나중에 정리해야지 생각하면서 넘어가는 경우가 정말 많았다. 그리고 그 코드를 다시 고친 적이 있던가? 시도를 해본 적은 있다. 하지만 그동안 쌓이고 쌓인 코드 더미를 단시간에 깔끔하게 손보기는 생각보다 쉽지 않았고, 고치려고 하다가 기능들이 망가져서 포기한 적도 있다.
내 코드는 1장에서 말하는 깨끗한 코드의 그 어떤 조건도 충족시키지 못하는 듯한 느낌이 들어서 반성하게 되었다. 3년차 개발자가 될 동안 테스트 케이스는 만들 생각조차 해본 적이 없어서 더 부끄러웠다. 이 책을 끝까지 읽고 내가 조금 더 나은 코드를 만들어내는 개발자가 될 수 있었으면 좋겠다..
4. 용어 정리
✅ 르블랑의 법칙: 나중은 절대 돌아오지 않는다는 법칙
✅ 테스트 주도 개발(Test Driven Development, TDD): 소프트웨어 개발 프로세스에서 테스트를 먼저 작성하고, 그 테스트를 통과하는 코드를 나중에 작성하는 방법론
✅ 휴리스틱(Heuristic): 의사 결정 과정을 단순화하여 만든 지침