좋은 코드, 나쁜 코드 - 프로그래머의 코드 품질 개선법, 2023년 세종도서 학술부문 추천도서
톰 롱 지음, 차건회 옮김 / 제이펍 / 2022년 5월
평점 :
장바구니담기


책 제목에서 알 수 있듯 어떻게 하면 좋은 코드를 작성할 수 있는지 배울 수 있다.

개발자라면 유명한 "클린코드" 책을 한번쯤 읽어보거나 들어보았을 것이다.

몇년 전 클린코드라는 책을 읽어본 뒤 코드 작성법에 대해 많이 배울 수 있었고, 내가 작성했던 코드와 비교해보는 등 여러 방면에서 나에게 많은 영향력을 주었던 책이다.

이 책도 "클린코드"처럼 올해 나에게 많은 영향력을 준 책이 되었다.

최근 코드를 작성하면서 내가 작성한 코드를 리팩토링하거나 작성한 코드에 대해 동료들에게 피드백을 받을 때, 아직도 좋은 코드를 작성하지 못하는 것 같은 생각이 들었다.

코드를 작성하면서 항상 하는 생각이지만 "어떻게 하면 좋은 코드를 작성할 수 있을까...?"라는 생각을 한다.

나 뿐만 아니라 개발자라면 하는 생각일 것이다.

어떤 코드가 그럼 좋은 코드인지 생각해보면 에러가 없는 코드, 가독성이 좋은 코드, 테스트하는 데에 용이한 코드, 재사용이 가능한 코드, 모듈화가 잘 된 코드 등 각자 마다의 기준이 있을 것이다.

이 책은 이러한 기준들을 여러 도메인에서 사용할 예시 코드를 통해서 설명한다.

이론, 실전, 단위 테스트라는 대주제에서 우리가 한번쯤 고민했던 좋은 코드의 기준에 대한 지침을 소개한다.

이론편은 코드에 대한 개발자의 접근 방식을 통해 코드 품질의 핵심 요소에 대한 소개와 코드에 대한 이해, 재사용, 테스트 하기 쉽게 추상화하는 방법, 내가 작성한 코드를 여러 개발자들이 사용하기 쉽게 작성하는 방법에 대한 가이드, 코드에서 발생한 오류를 어떻게 확인하고 오류 사항을 어떻게 대처하는 지에 대한 내용을 다룬다.

이론편에서 다룬 코드 품질의 핵심 6가지 요소를 소개한다.

  1. 코드는 읽기 쉬워야 한다.

  2. 코드는 예측 가능해야 한다.

  3. 코드를 오용하기 어렵게 만들라.

  4. 코드를 모듈화하라.

  5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라.

  6. 테스트가 용이한 코드를 작성하고 제대로 테스트하라.

실전편은 이론편에서 다룬 코드 품질의 핵심 요소에 대한 실제 예시 코드를 사용한다.

내가 작성한 코드를 여러 개발자들이 이해하기 쉽도록 가독성이 높은 코드와 예측 가능한 코드를 작성하여 다른 개발자들이 코드를 잘못 해석하지 않도록 하는 방법, 코드를 잘못 사용하지 못하게 하여 버그를 발생할 수 있는 가능성을 줄이는 방법, 코드의 모듈화, 재사용화 하는 방법을 다룬다.

특별히 나는 실전편은 이 책을 읽는 분들이라면 꼼꼼하게 읽었으면 한다.

예시 코드를 보면서 내가 이러한 잘못된 코드를 작성하고 있지 않았나라는 생각도 해볼 수 있었다.

단위 테스트편은 단위 테스트 코드를 작성하기 위한 가이드를 설명한다.

단위 테스트 코드를 작성할 때의 고려해야 하는 여러 사항들을 설명하고, 유지보수하기 쉬운 단위 테스트 코드를 작성하기 위해 적용할 수 있는 사례와 기술들을 소개한다.

단위 테스트 코드를 작성해본 적이 있는 분들이나 아직 경험이 없는 분들 모두에게 도움이 될 내용들이다.

단위 테스트편에서 다룬 바람직한 단위 테스트의 주요 특징을 소개한다.

  1. 문제가 생긴 코드의 정확한 탐지

  2. 구현 세부 정보에 구애받지 않음

  3. 실패가 잘 설명됨

  4. 이해하기 쉬운 테스트 코드

  5. 쉽고 빠르게 실행

부록편도 좋은 코드를 작성하기 위한 도움이 될 내용들이 많다.

특히 널 안성과 옵셔널의 내용과 필더 패턴 내용이다.

널 안정성을 활용할 때의 이점을 통해 코드에서 발생하는 오류를 줄이고, 다른 기능을 사용하여 가독성을 높이면서 더 간결한 코드를 작성할 수 있도록 해준다.

옵셔널의 경우에는 널 처리를 제대로 하지 않은 코드의 문제에서 코드의 수가 길어지더라도 에러를 줄이기 위한 효과가 있다는 점에서 옵셔널 사용의 이점을 설명한다.

빌더 패턴은 사용 예를 통해서 좀 더 완성도 있게 구현한 코드를 배울 수 있다.

개발자에게 있어서 좋은 코드를 작성하는 것은 숙명이다.

어떻게 하면 좋은 코드, 완성도 있는 코드를 작성할 수 있을 까라는 고민을 하는 모든 개발자분들께, 그리고 항상 좋은 코드를 작성하기 위해 노력하는 개발자분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo