-
로버트 C. 마틴 "Clean Code"를 읽어보여 느낀점 - part1카테고리 없음 2025. 11. 25. 18:27
이번 포스트에서는 로버트 C. 마틴의 "Clean Code"라는 도서를 읽어보며 느낀 점을 써보려 한다.
1. "Clean Code"를 읽게 된 이유
요즘 필자 본인은 학교에 있는 시간이 많아지면서 그동안 생각만 하고 읽어보지 못했던 도서들을 읽을 시간이 생겨 이번 기회에 많은 책들을 읽게 되었다.
그중 하나가 로버트 C. 마틴의 "Clean Code"이다.매일 아침에 하루 계획을 세울 때 하루 한 파트씩 읽기로 고정시켜 두고 계속해서 읽는 중이다.
지금은 제11장 "시스템"까지 읽었다.2. 제11장까지 읽으며 느낀 점
먼저 이해하기 어려운 파트들을 존재해서 읽는데 시간이 조금 오래 걸렸다.
이번에는 제1장, 2장, 4장에 대한 이야기를 해보겠다.제1장 - 깨끗한 코드
깨끗한 코드는 단순히 동작만 하면 되는 코드와는 수준이 다르다.
저자가 강조하는 깨끗한 코드는 "한 가지 일을 잘" 하면서도 명확하게 그 목적과 구조를 드러내는 코드이다.
즉, 처음 보는 개발자도 설계자의 의도를 쉽게 파악할 수 있어야 한다는 것이다.
실제로 지금까지 본인이 했었던 프로젝트에서 코드를 짤 때 가독성을 생각하며 짜긴 했지만 그 코드가 정말 가독성이 좋다고 말할 수 있을까?라는 질문을 하며 진짜 가독성이 좋은 코드에 대해서 다시 생각해 볼 수 있는 기회가 되어 좋았다.
또한 실무에서 잠깐에 급급해 작성한 더러운 코드는 결국 팀 전체의 생산성을 해치게 되고 결국은 이런 더러운 코드를 이해하고 유지보수하느라 작업 속도가 느려지게 되고 일정이 촉박해짐에 따라 계속해서 더러운 코드를 짜는 악순환이 반복되는 상황이 생기는 것을 실제로 봤었기 때문에 더 느끼는 것이 많았다.
그리고 "보이스카우트 원칙"이 가장 기억이 남았다. 이는 지나가기 전보다 더 깨끗하게 유지하는 습관을 가져야 한다는 것이다.
앞으로 개발하면서 위와 같은 느낀 점을 토대로 개발에 임해야겠다.제2장 - 의미 있는 이름
의미 있는 이름 이는 코드의 이름이 단순한 식별자의 넘어서 의도를 명확하게 전달하는 중요한 역할을 한다는 점을 강조하는 것이다.
코드의 변수, 함수, 클래스 이름은 그 자체로 목적과 역할을 설명할 수 있어야 불필요한 주석 없이도 누가 보아도 쉽게 이해할 수 있는 깨끗한 코드가 된다.그릇된 정보를 주면 안 된다. 와 영어 이름을 쓸 때는 발음과 검색이 쉽게 하여 협업과 유지보수를 용이하게 해야 한다.
이러한 부분을 읽으며 지금까지 프로젝트에서 필자 본인이 함수 이름을 정할 때 위와 같은 고민을 하지 않고 그냥 생각나는 대로 찍어냈다는 사실을 인지하고 반성했다.
나중에 기회가 된다면 기존 프로젝트에서 네이밍 컨벤션을 합의하고 일관되게 사용하여 코드 품질을 향상해보려 한다.제4장 - 주석
해당 파트는 깨끗한 코드 작성에서는 주석이 기본적으로 없어야 한다는 원칙을 제시한다.
주석은 코드가 자신의 의도를 스스로 표현하지 못하는 부분을 보완하는 필요약이며 가능하면 주석 없이도 코드가 명확하게 의도를 드러내도록 작성해야 한다라고 강조한다.
주석이 가져오는 문제점은 주석이 부정확하거나 오래되면 읽는 이를 혼란에 빠뜨리고, 코드보다 더 신뢰할 수 없는 정보가 될 수 있고, 주석을 단 뒤 코드가 변경되면서 주석을 갱신하지 않은 경우가 많은데 이는 나쁜 정보가 되어 오히려 이해하기 어렵게 만든다.
필자 본인은 해당 부분을 읽고 어느 정도 동의하는 부분도 있었지만 꼭 그렇지 않은 부분도 있다고 생각했다.
주석을 단 뒤 코드가 변경되고 다시 주석을 갱신하지 않는 경우는 정말 좋지 않다고 생각하지만 주석이 오히려 이해를 돕고 중요한 맥락이나 이유를 전달하는 데 필수적인 경우도 분명 있다고 생각한다.
복잡한 알고리즘의 의도 설명, 코드에서 바로 알기 어려운 결정 이유, 중요한 경고와 같은 경우이다.
그래서 필자 본인은 주석이 그렇게 나쁘지 않다고 생각한다.3. 결론
내가 느낀 최종 결론은 코드 품질 향상에 대해서는 배울 점이 많다고 생각하지만 모든 조언과 원칙들을 무조건 수용하기에는 무리가 있다고 생각한다.
이번 포스트에서는 제1장, 2장, 4장에 대해 다뤘지만 다음 포스트에서는 다른 파트에 대한 필자 본인에 대한 생각을 써보려 한다.