-
-
Do it! 클린 프로그래밍 - 코드만 짜던 당신, '진짜' 개발자가 된다! ㅣ Do it! 시리즈
김종관 지음 / 이지스퍼블리싱 / 2025년 6월
평점 :
이 책은 책의 제목처럼 코드를 깔끔하게 작성하는 방법과 함께 다른 개발자 동료와 협업이 가능한 개발자가 되기 위한 방법 및 클린한 설계를 위한 프로그래밍 원칙들을 배울 수 있는 책이다.
시중에 이런 클린 프로그래밍과 관련된 책이 많이 출간되어 있지만 이 책은 개발을 이제 시작하려는 분들이나 신입 개발자분들에게 초점이 맞추어진 책이어서 핵심 내용에 대해 어렵지 않게 설명되어 있고 무엇보다 각 챕터를 시작할 때 왜 이런 내용을 다루는지에 대한 내용을 소개하고 후반부에서 이런 핵심 내용을 정리해주고 있어서 다시 한번 내용을 되새길 수 있도록 구성되어 있다.
그렇기 때문에 이 책을 읽는 누구나 어렵지 않게 내용을 이해할 수 있다.
이 책은 총 네 가지 챕터로 이루어져있다.
첫번째 마당에서는 클린 코드 개발자 되기라는 주제를 다룬다.
클린 코드를 왜 지켜야 하는지에 대한 내용을 먼저 다루기 때문에 소프트웨어를 개발하면서 코드의 가독성과 개발 생산성, 유지보수성을 향상하기 위해 개발자라면 반드시 준수해야 하는 중요한 사항임을 깨달으면서 시작한다.
이를 위해 클린 코드의 원칙과 기존 코드에서 발생하는 코드 스멜을 개선하기 위한 리팩토링과 함께 개선한 코드를 검증하기 위한 테스트 코드의 작성 방법도 다루고 있어 클린 코드를 위해 개발자가 어떠한 부분을 할 수 있는지에 대해서 배울 수 있다.
특히 나의 경우 첫번째 장에서 다루는 내용의 예시 코드를 나는 어떤 방식으로 바꿀지에 대해 먼저 생각해보고 책의 내용과 비교해보았다.
두번째 마당에서는 협업 가능한 개발자 되기라는 주제를 다루는데, 주 내용이 코드 리뷰에 관한 내용이다.
코드 리뷰는 최근 개발 과정 중에서 중요하다고 생각되는 단계 중 하나이다.
코드 리뷰는 작성한 코드를 다른 동료 개발자들의 시각에서 검토하고 오류 사항이나 코드 스멜을 찾아내는 프로세스로 코드의 품질 향상에 많은 도움이 된다.
내가 현재 근무중인 회사에서도 코드 리뷰를 진행하고 있다.
나뿐만 아니라 다른 개발자들은 처음에는 코드 리뷰를 많이 부담스러워한다. 일정이 빠듯한 점도 있지만 내 코드를 다른 동료들에게 평가를 받는다는 부담감 뿐만 아니라 귀찮기도 하지만 코드 리뷰를 통해 다른 개발자의 코멘트로 코드의 품질이 향상이 되기도 하고 리뷰이도 개발 역량을 높일 수 있는 이점을 많이 갖고 있다.
코드 리뷰를 하는 방법과 함께 이를 효과적으로 수행하는 방법을 통해 다른 개발자와의 협업의 한 부분인 코드 리뷰를 효율적으로 하는 방법을 알 수 있다.
세번째 마당에서는 좋은 구조를 만드는 개발자 되기라는 주제로, 이 책에서 중요하다고 생각한 챕터이다.
객체 지향 프로그래밍이라는 용어를 한번쯤 들어보았을 텐데 이 객체지향 프로그래밍의 특징인 추상화와 상속, 그리고 다형성과 캡슐화를 통해 절차 지향 프로그래밍보다 코드의 확장성과 재사용성, 그리고 외부에서 추가 요청이나 기능 변경이 있을 때의 유연하게 대응할 수 있도록 하는 특징을 이해할 수 있다.
특히 많이 들어보았을 생성 패턴, 구조패턴, 행동패턴, MVC 패턴으로 나누어볼 수 있는 효과적인 디자인 패턴의 활용 전략들도 예시 상황과 코드를 통해서 이해할 수 있다는 점에서 클린 코드를 작성하기 위한 패턴의 구조를 이해할 수 있다.
특히 이 내용들은 면접 시에도 질문 내용으로 다룰 수 있는 내용들을 이해하기 쉽게 다루고 있어서 내용을 정리하고 예시코드도 이해하는 것을 추천한다.
다만 나는 디자인 패턴 내용의 서론에서 저자가 언급했듯이 "패턴병에 걸리지 말라"는 내용에 많은 공감을 했다.
주변에 개발자분들 중 처음 디자인 패턴을 배울 때 모든 부분을 패턴으로 해결하려는 분들을 많이 보았기 때문이다. 실제로는 좀 더 간단하게 해결 할 수 있는 부분인데도 디자인 패턴의 내용에 기반하여 해결하려고 하여 여러 애로새항을 경험한 적이 있었다.
저자의 생각처럼 나도 클린 코드의 기본은 간결하고 이해하기 쉬운 깨끗한 코드를 작성하는 데에 있기 때문에 이를 너무 남용하지 않아야 한다고 생각한다.
마지막 네번째 마당에서는 소프트웨어를 설계하는 개발자 되기라는 주제로 소프트웨어 프로세스 모델에 내용을 다룬다.
소프트웨어 프로세스 모델은 프로젝트의 전반적인 흐름을 이해하고 관리하는데 도움이 되고 각 단계에서 필요한 작업과 책임을 명확히하기 때문에 여러 이해 관계자들의 소통을 명확히 할 수 있다는 점에서 안정적이고 효과적으로 설계할 수 있다.
특히 UML은 이러한 의사 소통을 원활하게 하기 위해 시스템을 시각화하여 표현하게 하여 의사소통을 원활하게 해주고 개발자들이 이 UML만으로도 프로세스를 빠르게 이해할 수 있도록 도와준다.
그렇기 때문에 네번째 장에서는 UML을 작성하는 방법을 소개하는데 실무에서도 실제로 UML을 작성해야 하는 단계가 있기 때문에 이 부분도 꼼꼼히 읽는 것을 추천한다.
개발 프로세스에서 중요 핵심 내용들을 이 책에서 다루기 때문에 코드를 깔끔하게 작성하는 것을 넘어 품질 높은 코드를 작성하고 주변 동료 개발자들과의 협업을 원할하게 하는 방법, 그리고 시스템 설계에서 각 구조를 이해하기 위한 작업들에 대해서도 다루기 때문에 이 책의 제목처럼 클린 프로그래밍의 핵심 내용을 공부해볼 수 있다.
클린 프로그래밍은 개발자의 숙명이다.
클린 프로그래밍의 관심이 많은 개발자분들께 추천하고 기초 내용부터 이해하고 싶은 분들에게 특히나 추천한다.