이전

리뷰 (12)

한줄평
평점 분포
  • 리뷰 총점10 67%
  • 리뷰 총점8 33%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 8.0
  • 30대 9.0
  • 40대 10.0
  • 50대 8.0

포토/동영상 (7)

리뷰 총점 종이책
[서평] 실무로 통하는 클린 코드
"[서평] 실무로 통하는 클린 코드" 내용보기
"이 책은 한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다."만 책 내용에 대한 아쉬움이 많아 비판하는 내용을 같이 담아본다.실무(협업, 오픈소스 기여 등)에서 클린 코드를 적용하는 데 도움을 줄 것으로 기대했으나, 여러 가지 아쉬운 점들이 많았다.책의 구성과 주요 내용이 책은 총 25개의 챕터로 구성되어 있으며, 각 챕터는 5개에서 17개의 레시피(Sub Chapter)로 세분
"[서평] 실무로 통하는 클린 코드" 내용보기

"이 책은 한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다."만 책 내용에 대한 아쉬움이 많아 비판하는 내용을 같이 담아본다.

실무(협업, 오픈소스 기여 등)에서 클린 코드를 적용하는 데 도움을 줄 것으로 기대했으나, 여러 가지 아쉬운 점들이 많았다.

책의 구성과 주요 내용

이 책은 총 25개의 챕터로 구성되어 있으며, 각 챕터는 5개에서 17개의 레시피(Sub Chapter)로 세분화되어 있다.

다양한 상황에서 클린 코드를 어떻게 적용할 수 있는지 구체적으로 설명하려는 의도를 가지고 있는 듯했다.

특히 이 책에서 크게 얻어갈 수 있는 내용은 다음과 같다:

  1. 클린 코드의 이론과 이점 이해하기
  2. 단계별로 배우는 리팩터링 기술
  3. 코드 스멜을 식별하고 해결하는 방법
  4. 가독성이 높은 코드 작성 노하우

이 책의 독특한 점은 15종류가 넘는 프로그래밍 언어를 넘나들며 클린 코드의 개념을 설명하는 것이다.

기존의 클린 코드 서적들과는 차별화된 부분으로, 특정 언어에 국한되지 않는 클린 코드의 범용성을 강조하고 있다고 볼 수 있다.

기존에 읽어본 서적
Clean Code(로버트 C. 마틴) - Java
Tidy First(켄트 벡) - JavaScript, Python
파이썬 클린코드 2nd Edition(마리아노 아나야) - Python

다양한 언어의 활용: 장점과 한계

책에서는 클린 코드가 특정 프로그래밍 언어에 제한되지 않으며, 대부분의 레시피가 여러 언어에 적용 가능하다고 주장하고 있다. 기존의 클린 코드 책들이 특정 언어(Java, Python 등)에 집중한 것과는 다르게 접근한 점이 인상적이었다.

하지만 이 접근법은 실무에서 다루는 언어에 따라 책의 유용성이 달라질 수 있다는 문제점이 있었다. 나는 주로 Python과 C++을 사용하는 개발자로서, 여러 언어가 등장하는 부분에서 혼란스러움을 느꼈다. Bad Case와 Clean Case 코드를 비교할 때, 언어가 자주 바뀌는 점이 문제였다. 예를 들어, 한 레시피에서는 Java로 설명하다가, 바로 다음 레시피에서는 C++, 그다음은 Ruby, Kotlin, ... 등으로 전환되는 방식은 코드 이해를 어렵게 만들었다.

또한, 같은 레시피 내에서도 언어가 바뀌는 경우가 있었다. 예를 들어, Java로 Bad Case를 설명한 후, Kotlin 문법을 이용해 문제를 해결하라는 식의 설명은 나에게 혼란을 초래했다. 심지어 해당 문법은 파이썬에서는 완전히 다르게 동작한다. 이러한 방식은 각 언어에 대한 깊은 이해 없이, 단순히 여러 언어를 사용하려는 시도로 보일 수밖에 없었다. 책의 서문에서 "책에 작성된 코드들은 Copilot, Bard, ChatGPT 등의 도구로 작성되었습니다."라는 문구를 보고, 작성된 코드에 대해서는 언어별로 검수를 받았으면 좋았지 않았을까라는 생각이 들었다.

코드의 일관성과 가독성 문제

책을 읽으며 가장 큰 불만 중 하나는 코드의 일관성과 가독성 문제였다. 클린 코드의 기본 원칙 중 하나는 코드를 읽기 쉽게 만드는 것이다. 하지만 이 책에서는 코드에 설명 주석이 과도하게 붙어있어(아마 독자에게 설명하기 위한 배려일듯하지만), 오히려 코드 이해를 방해하는 경우가 많았다. 클린 코드라면 코드 자체로 이해할 수 있어야 한다는 점에서, 이러한 주석들은 불필요하게 느껴졌다.

각 레시피에서 참조하는 다른 레시피를 배치한 점도 문제가 있었다. 예를 들어, Chapter 3.4에서 Chapter 10.1과 Chapter 23.1을 참조하는 식의 구성은 처음 읽을 때 흐름을 방해했다. 물론, 나중에 사전처럼 활용할 때는 왔다갔다하며 유용할 수 있지만, 처음 읽는 입장에서는 불편하다고 느꼈다.

더 나아가, 책의 초반부터 코드 예시가 줄줄이 나오는 반면, Chapter 9에서야 코딩 표준에 대한 내용이 등장했다. 예를 들어, Python에서는 스네이크 케이스를 사용하라고 설명하면서도, 실제 책에서는 Python 예시코드에서 캐멀 케이스와 스네이크 케이스가 혼용된 경우가 있었다. 이는 번역 과정에서의 문제인지, 원서 자체의 문제인지는 모르겠다만... 책에서 제공하는 Github 소스코드를 확인해보니, 최근에서야 Python 변수 선언부 코드를 수정한 점도 아쉬움이 남았다.

실무와 동떨어진 조언들

이 책의 제목은 "실무로 통하는 클린 코드"이지만, 실제 내용은 실무와는 다소 동떨어져 있다는 느낌을 받았다. 예를 들어, 비즈니스 코드를 작성할 때 Go, Rust, C++을 피하라는 조언이 있었다. 회사에서 이미 사용 중인 언어를 다른 언어로 바꾸라는 식의 조언은 현실적이지 않으며, 실무에서의 적용 가능성을 떨어뜨렸다.

또한, C++에서 전처리기를 사용하지 말라는 권고는 지나치게 극단적인 표현으로 느껴졌다. 전처리기의 단점이 분명 존재하지만, 해당 단점을 포기함으로써 얻는 이점이 있어 여전히 유용하게 사용된다. 이러한 상황을 무시하고 단순히 사용하지 말라고 권하는 것은 클린 코드의 유연성을 해치는 접근이었다.

결론: 기대와 실망 사이에서

이 책은 클린 코드의 이론과 실무 적용을 다루며, 다양한 언어를 통해 범용적인 코딩 원칙을 설명하려고 했다. 그러나 코드의 일관성, 가독성 문제, 그리고 실무와의 괴리감 때문에 여러 면에서 실망스러웠다. 개인적으로는 오라일리 책을 읽으며 이렇게 실망한 적은 처음이었다. 클린 코드를 배우고자 한다면, 한두 개의 언어에 집중한 다른 책이나, 방법론적인 내용을 다룬 책을 선택하는 것이 더 나을 것 같다.

같은 한빛출판사의 Tidy First책을 감명깊게 읽었고 강추한다!!!
코드설명은 적지만 범용적으로 코드의 퀄리티들을 높여줄 수 있는 다양한 방법론을 예시를 들어 잘 설명해준다.

비판이 많이 담긴글이지만.. 아쉬워서 하는소리다.
현업에서 일어나는 다양한 부분들을 놓치지 않고 208개의 레시피로 설명하니 사전과 같이 필요할때 참고하기 좋은 책인듯하다.
궁금하다면 한번 구매해서 읽어보길 바란다.

YES마니아 : 골드 c*****n 2024.08.29. 신고 공감 1 댓글 0
리뷰 총점 종이책
먹기 좋은 크기로 구성된 클린 코드 모음집
"먹기 좋은 크기로 구성된 클린 코드 모음집" 내용보기
소프트웨어 개발자라면 항상 클린 코드를 작성하고 싶어 하며, 미래의 나 또는 다른 엔지니어를 위해서 그렇게 해야 한다고 생각한다. 이런 이유에서 소프트웨어 개발자를 위한 필독서로는 Clean Code, Refactoring, Design Patterns와 같은 책들이 항상 언급되고 많은 추천을 얻는 이유라고 본다. 이미 클린 코드를 위한 책들은 시중에 많이 나와 있지만, 실무로 통하는 클린 코드는 이
"먹기 좋은 크기로 구성된 클린 코드 모음집" 내용보기

소프트웨어 개발자라면 항상 클린 코드를 작성하고 싶어 하며, 미래의 나 또는 다른 엔지니어를 위해서 그렇게 해야 한다고 생각한다. 이런 이유에서 소프트웨어 개발자를 위한 필독서로는 Clean Code, Refactoring, Design Patterns와 같은 책들이 항상 언급되고 많은 추천을 얻는 이유라고 본다. 이미 클린 코드를 위한 책들은 시중에 많이 나와 있지만, 실무로 통하는 클린 코드는 이론적인 내용을 너무 깊게 들어가는 대신, 작은 단위로 우리가 흔히 마주할 수 있는 문제 제시 => 해결 방안 => 해결 방안에 대한 설명의 구조로 208가지 케이스 스터디에 대해서 설명하고 있다.
한 가지 특이한 점은 여러 케이스에 대해서 단일 프로그래밍 언어가 아닌, 여러 가지 프로그래밍 언어를 활용해서 설명하는데 이는 장점이자 단점이 될 수 있을 것 같다. 다만 프로그래밍 개발자로 일하는 경우 적어도 2가지 이상의 언어를 활용하는 경우가 많으므로 다른 언어로 작성된 코드도 읽어보는 연습을 할 수 있다는 점은 긍정적으로 생각되며, 서두에 언급한 것처럼 생성 AI를 활용하여 내가 주로 쓰는 프로그래밍 언어로 예제를 직접 작성해 보면 더 얻어가는 점이 많을 것으로 생각한다. 책의 내용은 첫 1~2장에서 정의하는 내용들 (MAPPER 등)을 기본적으로 깔고 가기 때문에 해당 부분을 잘 이해하고 넘어가야 뒤에서 혼란의 여지가 없을 것으로 보이며, 케이스 스터디가 아닌 이런 정의와 같은 부분은 조금 더 친절한 설명이 있었으면 어땠을까 하는 아쉬움이 있다. 전반적인 난이도는 아주 일반적이고 당연한 얘기부터 시작해서 섣부른 최적화 (16장), 결합도 (17장), 계층 (19장) 같은 내용은 어느 정도 규모 있는 소프트웨어를 개발한 경험이 있어야 얻어가는 내용이 많을 것으로 보인다. 사람마다 공부하는 스타일이 다르므로, 이론적인 베이스를 깔고 좋은 코드를 작성하고자 하는 사람보다는 코드를 보면서 반대로 이론적인 내용을 이해해 가는 스타일의 학습자에게 더 적합할 것으로 보인다. 개인적으로는 아주 주니어 엔지니어보다는 어느 정도 소프트웨어 개발이 익숙해진 경력 엔지니어들이 본다면 얻어가는 내용이 더 많을 것 같다.

> 한빛미디어의 도서 지원을 받아 작성한 리뷰입니다

l*****9 2024.08.28. 신고 공감 1 댓글 0
리뷰 총점 종이책
개발자 클린코드 실무로 통하는 클린코드 품질개선
"개발자 클린코드 실무로 통하는 클린코드 품질개선 " 내용보기
실무로 통하는 클린코드 한빛미디어코드를 변화하게 하면 조금 더 나은 코드를 쓰도록 도와주는 실무로 통하는 클린코드 입니다.코드품질과 디자인을 개선하는 208가지의 방안을 제시합니다.의사코드로 되어 있어서 다양한 언어에서 사용이 가능합니다.가독성부터 보안까지 실무에서 통하는 클린코드를 배울 수가 있습니다.개발자라면 문법을 배우고 더 나아가 어떠한 코드가 좋은 코드일
"개발자 클린코드 실무로 통하는 클린코드 품질개선 " 내용보기
실무로 통하는 클린코드 한빛미디어

코드를 변화하게 하면 조금 더 나은 코드를 쓰도록 도와주는 실무로 통하는 클린코드 입니다.

코드품질과 디자인을 개선하는 208가지의 방안을 제시합니다.

의사코드로 되어 있어서 다양한 언어에서 사용이 가능합니다.

가독성부터 보안까지 실무에서 통하는 클린코드를 배울 수가 있습니다.

개발자라면 문법을 배우고 더 나아가 어떠한 코드가 좋은 코드일까?

의문을 가지게 됩니다. 이러한 코드를 배울수 있도록 도와주는 책입니다.

실제로 예제코드도 직접 git-hub에 올라가 있어서 도움을 박을 수 있습니다.


기본적으로 다양한 코드의 예제를 그리고 활용하는 방법을 배웁니다.

각각 필요한 요소의 어떠한 코드를 어떻게 적용해야 좋은지부터 차근히 설명해줍니다.

코드의 리팩토링 or 코드의 클린코드

코드를 개선하는것을 리팩토링이라고 합니다. 동작을 유지되면서 코드를 수정하는것입니다. 

클린코드는 코드를 작성할 때부터 이해와 유지보수성을 위해서 잘 짜여진 코드를 말합니다.

실무로 통하는 클린코드를 통하여 잘 짜여진 코드를 배울 수가 있습니다.


직접적인 의사코드를 통하여 우리는 코드를 배웁니다.

중복된 매서드의 사용, 주석처리된 코드 제거등 

정리가 필요한 소스코드를 클랜징 하게 됩니다. 


실무를 하다보면 가장 많이 사용하게 되는 분기문과 조건 입니다.

실무에서 어떻게 if 문과 for 문등을 조금 더 유현하고 잘 쓸수 있는지 볼 수가 있습니다.

실제로 분기문을 쓰면 조금 더 가독성이 좋고 빠른 코드를 원하게 됩니다.

이러한 자세한 코드까지 적혀져 있어서 클린코드의 많은 도움이 됩니다.

마지막으로 예외처리와 더불어 보안까지 프로젝트의 한싸이클에 대하여 자세히 클린코드의 적용법이 적혀져 있습니다.

실무로 통하는 클린코드 책의 마지막부분에는 용어사전이 수록되어 있어서 개발용어의 대해서 자세히 적혀져 있어서 클린코드뿐만 아니라 개발적인 부분에서도 스킬업을 할 수 있는 좋은 책이라고 생각합니다.
5***e 2024.08.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
실무자가 꼭 보았으면 하는 도서, 실무로 통하는 클린 코드
"실무자가 꼭 보았으면 하는 도서, 실무로 통하는 클린 코드" 내용보기
실무로 통하는 클린 코드- 코드 품질과 디자인을 개선하는 208가지 실전 레시피 -안녕하세요. 율시시스SS입니다.오늘 소개시켜드릴 개발 도서는 실무에서 개발을 할 때 좀 더 리팩토링을 잘 하고 싶고, 유연한 코드를 만들고 누가 봐도 알아보기 쉬운 코드를 만들고 싶은생각이 누구나 있을겁니다. 이런 코드품질을 개선하는 방법을 담은 도서 '실무로 통하는 클린 코드'인데요.코드 품질
"실무자가 꼭 보았으면 하는 도서, 실무로 통하는 클린 코드" 내용보기

실무로 통하는 클린 코드
- 코드 품질과 디자인을 개선하는 208가지 실전 레시피 -

안녕하세요. 율시시스SS입니다.
오늘 소개시켜드릴 개발 도서는 실무에서 개발을 할 때 좀 더 리팩토링을 잘 하고 싶고, 유연한 코드를 만들고 누가 봐도 알아보기 쉬운 코드를 만들고 싶은
생각이 누구나 있을겁니다. 이런 코드품질을 개선하는 방법을 담은 도서 '실무로 통하는 클린 코드'인데요.
코드 품질을 높히고 싶은 분들은 해당 도서를 꼭 읽어보시기를 추천드립니다.





실무로 통하는 클린 코드 입니다.실무에서 일하고 계시는 개발자분들, 개발을 하면서 나중에 수정할 때 과거의 나가 짠 코드에 경악을 해 보신적이 있으신가요?
저는 ... 있는데요. 해당 도서를 읽으면서 과거에 개발할 때 하지 말아야 한짓이 책에 있었습니다. 과거의 기억을 되살리면서 앞으로 개발할 때도 클린 코드가 되도록 노력할 수 있는 도서입니다







코드 품질, 개발할때마다 계속 생각하게 되는 단어 입니다.누군가 내 코드를 볼 때 이해할 수 있을까? 이해하기 쉬울까? 유연성있게 개발한게 맞을까? 라는 생각을 계속 하게 되는데요.
협력하여 개발하기 때문에 코드 품질이 좋으면 좋을 수록 다른 개발자가 해당 코드를 이해하고 수정하기도 쉬워지죠.





실무로 통하는 클린 코드도서는 25개의 장으로 구성되어 있으며 클린코드를 올바르게 적용했을 떄와 그렇지 않았을 때의 장단점을 보여주는 여러 원칙과 기본 사항으로 시작하는데요.
각 장마다 보면 문제가 있으며 문제에 대한 해결과 설명을 통해 클린 코드를 도와줍니다.
각 장마다 문제를 보면 여러분이 실제 개발을 할 때 실수할 수 있는 부분이 굉장히 많습니다. 읽으면서 기억을 하시고 개발할 때 해결방안으로 개발 하면 좀 더 코드 품질이 좋아지지 않을까 싶네요.




요즘에는 플러그인으로 다양하게 코드 품질을 높힐 수가 있는데요. 해당 플러그인도 해당 도서에서 비슷하게 발견된 문제를 해결해주는 플러그인입니다. 그렇기 때문에 실무로 통하는 클린 코드 도서를 읽고 난 뒤 왜 플러그인이 수정해 주는지 이해를 하면 더욱더 좋을것 같습니다. 중간중간에 원칙으로 인해
문제를 수정하는 과정이 나오는데요. 해결에 대한 팁도 함께 나오기 때문에 이런 포인트도 보면서 함께 문제를 해결해 나가는 과정을 읽었으면 좋겠습니다.
저 또한 개발을 하면서 클린 코드를 지향합니다. 내 코드를 남이 봤을 때 또는 내가 남의 코드를 봤을 때 메소드의 기능을 명확하게 파악할 수 있어야 하고
유연한 코드면 수정하기도 편하기 때문인데요. 예측할 수 없는 코드를 볼 때면 수정하기도 힘들고 왜 이렇게 만들었는지 알기도 힘들기 때문입니다.
여러분도 해당 도서를 읽고 조금이나마 클린 코드를 했으면 좋겠습니다.







한빛미디어 < 나는리뷰어다 > 활동을 위해서 책을 제공받아 작성된 서평입니다.





a*****9 2024.08.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
클린 코드 Q&A 세션
"클린 코드 Q&A 세션" 내용보기
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 클린 코드. 말은 쉽다. 읽기 좋고, 간단하고 직관적이며, 그럼에도 좋은 동작을 보여주는 코드. 사실상 실무에서 이런 코드를 접하는 건 하늘의 별따기다. 솔직히 아직까지 클린 코드라고 볼만한 코드를 본 적은 없다. 심지어 본인도 그런 코드를 짜본 적이 없다. 다시 말하자면, 말은 그럴 듯한데
"클린 코드 Q&A 세션" 내용보기
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 클린 코드. 말은 쉽다. 읽기 좋고, 간단하고 직관적이며, 그럼에도 좋은 동작을 보여주는 코드. 사실상 실무에서 이런 코드를 접하는 건 하늘의 별따기다. 솔직히 아직까지 클린 코드라고 볼만한 코드를 본 적은 없다. 심지어 본인도 그런 코드를 짜본 적이 없다. 다시 말하자면, 말은 그럴 듯한데, 이게 클린 코드다라고 할 만한 전형을 본 적이 없다. 그래서 뭐가 클린 코드인지 머릿속에 잘 그려지지 않는다.

 이 책을 보기 전에 클린 코드 바이블 격인 책을 본 적은 있다. 그런데 내 머릿속에 남아 있는 게 별로 없다. 본인이 제대로 안 읽었던지, 너무 이론 중심적이었던지, 아무튼 없다.

 뭔가 써먹을 만한 걸 모아둔 책이라고 한다. 208가지나 실었다. 뭐라도 하나 건지면 다행이란 생각이 들었다. 그래서 일단 펼쳐 읽기 시작했다. 구성은 매우 간단하다. 문제와 해결, 그리고 설명. 208번 반복하고 있다. 이를 이해시키기 위해 좀 장황하게 설명을 하고 시작했다. 갑자기 전단사? 수학 용어가 나온다. 아, 물론 프로그래밍의 기본은 논리와 수학이다. 이를 무시하는 건 아니지만, 갑작스레 수학 용어를 자주 반복해서 사용하다보니 복잡한 느낌을 받는다. 여전히 수학은 잘 모르겠다.

 전단사와 더불어 매우 자주 언급되는 표현은 "빈약한"이다. 원서에서 어떤 단어를 빈약한으로 번역한 걸까? 그냥 번역기에 돌려보면 "빈약한"은 "poor"로 번역하는데, 정말 이 단어였을까? 다른 단어이진 않을까? 궁금해진다. 차후에 원서를 보게 되면, 한 번 신경써서 봐야겠다 싶다.

 1장과 2장은 좀 어려웠다. 원래 책에 서두와 첫 번째 장이 제일 어렵다고는 하지만, 희한하게 잘 읽히는데 어려웠다. 아마 이해해야 할 핵심 내용인지라 그런 인상을 받았을지도 모르겠다. 인내심을 갖고 읽어내린 다음 3장부터 이제 실질적으로 필요한 레시피가 나오기 시작한다.

 전반적으로는 이렇게 평가할 수 있겠다. 어떤 레시피는 아하, 하고 감탄할만 하고, 어떤 레시피는 묘했고, 어떤 레시피는 아닌 것 같은데 싶었고, 어떤 레시피는 무슨 얘길하는지 잘 이해가 되지 않았다. 다시 말해 208가지 전부가 나에게 다 이해가 되고, 필요했으며, 적합한 건 아니었다는 얘기다. 그러나 상당수가 내 생각과 비슷했고, 도움이 될 만한 내용들이었다.

감탄할 만한 레시피는 객체의 본질 파악하기를 그 예로 들 수 있겠다. 완벽히 이해가 된 상태는 아니지만, 필수 동작이 객체를 식별한다는 설명 그 자체는 내게 울림을 줬다. 이를 잘 소화해내서 체화하는 건 내 몫인지라 고민이 많이 필요한 내용이었다.

묘했던 레시피는 작은 객체 생성하기다. 보통은 이름을 저장할 변수를 정의하면 String name으로 끝난다. 그런데 그렇게 하지 말고 Name을 정의하고 Name name으로 사용하라고 한다. 의도는 이해가 되지만 이게 과연 현실적인가라는 의문은 남는다. 이렇게 사용한 객체를 DB와 연관짓게 되면 변환 절차를 거치도록 추가 작업을 해야 하는데, 이게 과연 현실적인가 묘했다.

아닌 것 같은 레피시는 괴상한 조건문 재작성하기다. 상수값을 왼쪽에 놓지 말고 오른쪽에 두라는 얘기다. 왜 이상할까? 꽤 오랫동안 후자 방식으로 했을 때 실수로 할당문을 사용하거나 했을 때 문제를 알아차리지 못하고 실행될 수 있고, 이로 인해 오류가 발생할 수 있으니 문제가 되지 않도록 전자처럼 코드를 작성하라고 조언을 받아왔다. 꽤 여러 책과 글에서 접했던 내용이었다. 그런데 이렇게 하지 말라고 얘길하는 게 아닌 것 같다는 생각이 들었다. 둘 다 나름의 논리를 갖고 있으니 결국 받아들이는 건 본인이니 본인이 잘 판단해야 할 문제긴 하겠지만 말이다.

무슨 얘긴지 이해가 안 되는 레시피는 객체 ID 피하기다. 실질적으로 처리하는 모든 데이터는 DB와 밀접한 관계가 있다. 값을 처리해서 DB에 저장하거나, DB에 저장된 값을 읽어와 주어진 처리를 한 다음 다시 저장한다. 그렇기 때문에 거의 모든 객체에는 ID가 존재한다고 볼 수밖에 없다. 그래서 이 부분은 잘 이해가 되지 않았다. 잘못된 내용은 아닐 테고, 저자가 얘기하는 바를 제대로 이해하고 받아들이지 못한 것 같아 좀더 연구할 필요가 있는 내용일 테다.

 각 경우에 맞게 하나씩 레시피를 그 사례로 들었지만, 그런 유형들이 여러 개 있다. 그래서 이 책은 한 번 읽고 책장에 꽂아두는 책이 아니다. 다양한 경험을 할 수록 이 책에서 적용 가능한 레시피를 찾아 써보는 게 좋다. 그리고 가끔 레시피 하나를 뽑아 그 내용을 곱씹어보는 게 좋을 만한 책인 듯도 싶다. 

 다만 아쉬운 점은 다양한 레시피를 소개하고 있고, 필요에 의해서 어떤 레시피들은 적절하게 설명을 달아놨지만, 어떤 레시피는 그 설명이 상대적으로 빈약해서 관련 자료를 더 찾아봐야 하는 경우도 있었다. 즉, 만병통치약처럼 볼 수는 없는 내용이 있다. 이 점은 주의해야 한다.

 현재 진행 중인 프로젝트에서 이 레피시들 중 적용할만한 게 있다. 다만, 그대로 적용하기엔 무리인 것들도 있다보니 점진적으로 적용할 수 있는 방법을 찾아야 한다. 그래도 개선 방향에 써먹을만한 내용(특히 16장 섣부른 최적화, 17장 결합도, 20장 테스트, 21장 기술 부채, 22장 예외 등)이 많으니 차분히 활용해 볼 생각이다. 

저자는 이 책 왜 클린 코드인가요? 에서 읽고, 이해하고, 유지 보수하기 쉬운 코드를 의미한다고 적어놨다. 머리로는 알겠는데, 마음 속 깊숙이 우러나오는 느낌은 아니다. 저자의 말을 이해할 수 있는 그날까지 더 공부해야겠다. 이런 나침반같은 책들을 읽으면서.
YES마니아 : 로얄 g******s 2024.08.26. 신고 공감 0 댓글 0
리뷰 총점 종이책
예제로 배우는 클린 코드
"예제로 배우는 클린 코드" 내용보기
로버트 C. 마틴의 『클린 코드』는 오랫동안 소프트웨어 개발자들 사이에서 코드 품질 향상의 바이블로 여겨져 왔다. 이 책은 코드의 가독성, 유지보수성, 확장성을 높이기 위한 원칙과 가이드라인을 제시하며, 많은 개발자들에게 코드 작성의 새로운 기준을 제시했다. 그러나 이번에 읽은 이 책은 『클린 코드』에 이어, 좀 더 실질적인 적용 방법과 구체적인 사례를 통해 클린 코드를
"예제로 배우는 클린 코드" 내용보기


로버트 C. 마틴의 『클린 코드』는 오랫동안 소프트웨어 개발자들 사이에서 코드 품질 향상의 바이블로 여겨져 왔다. 이 책은 코드의 가독성, 유지보수성, 확장성을 높이기 위한 원칙과 가이드라인을 제시하며, 많은 개발자들에게 코드 작성의 새로운 기준을 제시했다. 그러나 이번에 읽은 이 책은 『클린 코드』에 이어, 좀 더 실질적인 적용 방법과 구체적인 사례를 통해 클린 코드를 실무에 어떻게 구현할 수 있을지에 대한 깊이 있는 통찰을 제공해 준다는 점에서 큰 장점이 있다.


특히 이 책이 유용했던 이유는, 파이썬을 비롯한 여러 프로그래밍 언어로 작성된 예시 코드를 통해 다양한 언어 환경에서 클린 코드 원칙을 어떻게 적용할 수 있는지를 구체적으로 설명해 준다는 점이다. 각 언어의 특성과 문법에 맞춰 클린 코드의 원칙을 어떻게 구현할 수 있는지를 설명함으로써, 개발자들이 자신이 사용하는 언어에서 이러한 원칙을 실천할 수 있도록 돕는다. 이러한 접근은 클린 코드의 개념을 더 깊이 이해하고, 실제 코드에 적용할 수 있는 자신감을 심어주었다.


책에서 다루는 코드 예시는 파이썬뿐만 아니라 자바, C#, 자바스크립트 등 다양한 언어로 작성되어 있다. 이를 통해 각 언어의 특성에 맞게 클린 코드의 원칙을 어떻게 적용할 수 있을지에 대한 다양한 가능성을 발견할 수 있었다. 예를 들어, 파이썬의 동적 타이핑과 유연한 문법을 활용해 클린 코드의 원칙을 실현할 수 있는 방법에 대한 아이디어를 얻었다. 예시 코드가 여러 언어로 제공되면서, 내가 주로 사용하는 파이썬에서도 이 원칙들을 어떻게 구현할 수 있을지 구체적으로 생각해 볼 수 있었다.


이 책은 코드 스멜과 리팩터링의 필요성에 대한 구체적인 예시를 풍부하게 제공한다. 『클린 코드』가 원칙적인 측면에서 코드의 질을 높이는 방법을 제시했다면, 이 책은 실제로 코드 스멜을 어떻게 식별하고, 리팩터링을 통해 문제를 해결할 수 있는지를 단계별로 안내한다. 이를 파이썬에 적용해 본다면, 테스트 코드에서 반복적으로 사용되는 설정 로직을 별도의 함수나 클래스로 분리하고, 중복 코드를 제거하는 방법을 고려해 볼 수 있다. 예를 들어, 파이썬의 pytest 프레임워크를 사용해 공통의 테스트 준비 작업을 fixture로 정의하고, 이를 여러 테스트에서 재사용함으로써 코드의 간결성과 일관성을 높일 수 있을 것이다.


또한, 빈약한 모델과 기본형 집착에 대한 내용을 파이썬에 적용할 때는, 데이터를 다루는 방식을 보다 객체지향적으로 설계하는 것이 가능하다. 예를 들어, 단순히 문자열이나 숫자만을 사용하기보다는, 도메인 객체를 만들어 그 객체를 테스트 코드에 활용하는 방식으로 발전시킬 수 있다. 이를 통해 코드의 의미를 더 명확하게 표현할 수 있으며, 데이터의 무결성을 보장하면서 테스트 코드의 가독성을 높일 수 있다. 파이썬에서는 dataclass를 활용하여 간단한 데이터 객체를 정의하고, 이를 통해 코드의 구조를 더욱 명확히 할 수 있을 것이다.

가변성과 선언적 코드에 대한 챕터에서는 파이썬의 특성을 고려한 적용 방법을 생각해볼 수 있다. 예를 들어, 파이썬에서는 기본적으로 변수의 가변성이 높은데, 이 책에서 강조하는 불변성을 유지하기 위해 파이썬의 frozenset이나 tuple을 활용할 수 있다. 또한, 선언적 코드 작성의 예로는 리스트 컴프리헨션이나 제너레이터 표현식을 사용하여 코드를 더 명료하고 간결하게 만들 수 있다. 이런 접근은 코드의 의도를 명확히 드러내고, 유지보수성을 높이는 데 기여할 것이다.


명명 규칙과 주석에 관한 내용은 파이썬의 네이밍 컨벤션과 잘 어우러질 수 있다. 예를 들어, 테스트 메서드의 이름을 통해 테스트의 목적과 기대 결과를 명확히 표현하고, 주석 대신 코드 자체로 의도를 드러내는 방식으로 코드를 작성할 수 있다. 파이썬에서는 메서드 이름을 명확하고 일관되게 지음으로써, 테스트 코드가 자체적으로 문서 역할을 하게 할 수 있다. 예를 들어, test_calculate_total_returns_correct_sum과 같이 메서드 이름을 통해 테스트의 목적을 분명히 할 수 있다.


섣부른 최적화에 대한 경고는 파이썬 테스트 코드에서도 중요한 고려사항이 된다. 파이썬은 비교적 느린 인터프리터 언어이기 때문에 성능 최적화에 대한 유혹이 있을 수 있지만, 이 책에서 배운 바와 같이 테스트 코드에서는 우선 명료성과 유지보수성을 중시해야 한다. 예를 들어, 복잡한 최적화를 도입하기보다는, 간단한 테스트 케이스로 시작해 필요할 때 최적화를 추가하는 접근이 더 나을 것이다. pytest의 매개변수화 기능을 활용하면, 복잡한 조건문 없이 다양한 테스트 시나리오를 간결하게 작성할 수 있다.


이 책의 가장 큰 장점은 『클린 코드』의 원칙들을 다양한 언어로 구체적인 예시와 함께 설명하며, 이를 파이썬과 같은 실무 환경에 맞게 어떻게 적용할 수 있을지를 명확히 제시한다는 점이다. 파이썬의 유연한 문법과 기능을 활용해 이 원칙들을 구현함으로써, 코드 품질을 높이고 유지보수성을 강화할 수 있는 다양한 가능성을 열어줄 것이다. 예를 들어, 파이썬의 context manager를 활용하여 자원 관리와 관련된 코드를 더 명확하고 안전하게 작성하거나, decorator를 사용해 중복 코드를 제거하고 관심사를 분리하는 방법도 고려해 볼 수 있다.


결론적으로, 이 책은 『클린 코드』의 이론적 토대를 실무에 구현할 수 있는 구체적인 지침으로 발전시킨 중요한 책이다. 같은 원칙을 다양한 프로그래밍 언어에 어떻게 적용할 수 있는지를 비교 설명하는 접근은, 개발자들이 자신이 사용하는 언어에 맞춰 클린 코드의 개념을 실천하는 데 큰 도움을 준다. 앞으로 이 책에서 배운 원칙들을 바탕으로 파이썬 테스트 코드의 품질을 높이고, 유지보수성과 확장성을 동시에 확보하는 방향에 도움이 될 것이다.


이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.


z****e 2024.08.25. 신고 공감 0 댓글 0
리뷰 총점 종이책
[서평] 실무로 통하는 클린 코드(막시밀리아노 콘티에리, 2024)
"[서평] 실무로 통하는 클린 코드(막시밀리아노 콘티에리, 2024)" 내용보기
실무로 통하는 클린 코드(막시밀리아노 콘티에리, 2024)책 소개저자 : 막시밀리아노 콘티에리 (Contieri, Maximiliano )제목 : 실무로 통하는 클린 코드번역 : 이태영출판사 : 한빛미디어출간 연도 : 2024. 08.원문 제목 : Clean Code Cookbook(2024. 01.)페이지 : 488쪽ChatGPT등의 생성형 AI를 통한 코드 구현이 활발해지면서 단순한 로직의 코드의 작성은 생성형 AI를 활용하고 있다.
"[서평] 실무로 통하는 클린 코드(막시밀리아노 콘티에리, 2024)" 내용보기
실무로 통하는 클린 코드(막시밀리아노 콘티에리, 2024)



책 소개

저자 : 막시밀리아노 콘티에리 (Contieri, Maximiliano )

제목 : 실무로 통하는 클린 코드

번역 : 이태영

출판사 : 한빛미디어

출간 연도 : 2024. 08.

원문 제목 : Clean Code Cookbook(2024. 01.)

페이지 : 488쪽




ChatGPT등의 생성형 AI를 통한 코드 구현이 활발해지면서 단순한 로직의 코드의 작성은 생성형 AI를 활용하고 있다. 실제 구현이 불가능한, 오류로 컴파일 할 수 없는 코드를 생성하던 시기를 지나, 실제 구현 가능한 코드를 제공하는 생성형 AI의 활용이 보편화되면서, '코드'에 대한, '클린 코드'의 중요성이 다시 떠오르고 있다.

(※ 클린 코드는 읽고, 이해하고, 유지 보수하기 쉬운 코드를 의미한다.)


코드 품질과 디자인 개선 방법을 안내하는 이 책은 각 테마별 '문제 - 해결 - 설명'의 형식으로 구성되어 있으며, 총 25개의 챕터, 208개의 소 주제로 다양한 프로그래밍 패러다임에 적용 가능한 '클린 코드 개념'을 제시한다.

책은 '객체'를 중심으로 코드 구현을 하는데, 예시 코드는 자바, 파이썬, C 등 다양한 프로그래밍 언어로 쓰여져 있지만, 타 프로그래밍 언어로 변경이 쉽도록 간결한 코드 예시를 제공한다. 


25개의 다양한 클린 코드 키워드 중, 'NULL'과 '예외처리' 파트가 인상 깊었다.

Chapter 15의 주제인 'NULL'은 코딩하며 자주 사용하는 조건 처리 방식인데, '값이 없거나 정의되지 않은 값' 혹은 '오류' 등 다양한 조건을 NULL 처리로 사용해왔어서 해당 챕터를 읽으며 코드 구현에 대해 조금 더 생각을 하게 되었다.  또한, Chapter 22. 예외처리에서는 불필요한 예외를 제거하고, 중첩된 예외 처리 코드의 처리 매커니즘을 다른 클래스나 함수로 추출하는 방법을 통해 코드 가독성 개선 방안 역시 고민해보게 되었다.




 책을 읽으며 좋았던 점은, '노트'로 제공되는 해당 장의 주요 키워드에 대한 정리 제공과, 부록에 실린 '용어사전'이다. 또한, 해당 장과 연관된 책의 다른 챕터를 바로 제시함으로써, 학습의 유기적 연속성을 지향하는 점이 책을 꼭 순서대로 읽지 않아도 관련된 내용을 더 효과적으로 이해 할 수 있어 좋았다.


책의 서문에 실린 옮긴이의 말에 나오는 두 가지 질문이 책을 관통하는 핵심 주제이다.


 ◎ 사람들이 이해하기 쉬운 코드를 작성하려면 어떻게 해야 할까?

 ◎ 코드를 오랬동안 안전하게 유지 보수할 수 있는 방법은 무엇일까?


이와 관련된 생각과 고민을 하고 있다면, 혹은 코드 리팩토링과 클린 코드에 관심이 있다면, '실무로 통하는 클린 코드'의 일독을 추천한다. 




  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

i*****s 2024.08.25. 신고 공감 0 댓글 0
리뷰 총점 종이책
[한빛미디어] 실무로 통하는 클린 코드
"[한빛미디어] 실무로 통하는 클린 코드" 내용보기
?'좋은 코드는 단순히 빨리 돌아가기만 해서는 안 된다. 사람이 읽히는 그런 코드여야 한다.'협업을 하며 가장 고민되어야 하는 포인트는 바로 같이 일하는 동료들이 나의 코드를 보았을 때, 쉽게 이해가 가능하며 내가 수정한 사항이 다른 컴포넌트들과 맞물려 동작할 때 커플링이 없는지이다.알고리즘 문제를 오랫동안 풀어왔고, 효율의 관점을 항상 1순위로 생각했던 필자의 경우에는
"[한빛미디어] 실무로 통하는 클린 코드" 내용보기
?
'좋은 코드는 단순히 빨리 돌아가기만 해서는 안 된다. 사람이 읽히는 그런 코드여야 한다.'


협업을 하며 가장 고민되어야 하는 포인트는 바로 같이 일하는 동료들이 나의 코드를 보았을 때, 쉽게 이해가 가능하며 내가 수정한 사항이 다른 컴포넌트들과 맞물려 동작할 때 커플링이 없는지이다.


알고리즘 문제를 오랫동안 풀어왔고, 효율의 관점을 항상 1순위로 생각했던 필자의 경우에는 코드는 단순히 바이너리 (기계어)로 변환되어 cpu에 의해서 해석되는 하나의 명령어일 뿐 그 이상도 그 이하도 아니었다.


아마도 그동안 이런 부분을 최우선으로 바라보는 분들과 협업을 한 경험이 많지 않았기에 그럴 수도 있겠다는 생각이 든다. (어찌 된 게 이 필드에서 나름 20년 가까이 일하면서, 이런 문화를 가진 팀을 많이 만나본 적이 없었다. 그만큼 클린 코드에 관한 문화가 옛날에는 전반적으로 형성되지 않았음을 의미하는 것일 수 있다.)


프로그래밍의 전제는 돌아가는 무엇인가를 만드는 것도 있지만 앞서 언급한 것과 마찬가지로 만들어진 코드의 유지 보수가 용이한지, 흐름은 잘 이해되고 파악되는지를 아는 것에 있다고도 할 수 있다.


이번에 리뷰한 책은 앞서 언급했던 부분에 대해서 각각의 사례를 들어 평소 필자가 궁금해했던 부분을 시원하게 긁어주었으며 이론 외적으로도 알아두면 좋을 법한 팁들을 많이 수록하고 있었다.


【책의 구성】 "실무로 통하는 클린 코드"의 구성은?


위 책은 총 25개의 챕터로 이루어져 있으며 큰 주제를 바탕으로 소주제로 소분되어 대단원을 형성하고 있다. 무엇보다 이 책이 갖는 장점은 원하는 내용을 찾아 해당 단락만 읽어도 실사례와 이에 대해서 어떻게 대처해야 할지 각각을 분리하여 잘 정리해두었다는 점이다.


따라서 이 책은 한번은 쭉 정독을 해보고 이후에는 본인이 평소 궁금하였던 부분을 중심으로 회독을 해보길 권장한다.




5.1 : var를 const로 변경하기

초보 개발자의 가장 큰 실수는 하나의 변수를 선언하고 그 변수를 모든 flow에서 수시로 변조해가며 재활용한다는 부분에 있다.


하나의 변수는 특정 scope에서 특정 역할에 충실해야 되며 이미 선언된 경우에는 될 수 있으면 가변조가 발생하지 않고 그 값을 기능 수행이 완료되는 시점까지 유지하는 것이 다른 프로그래머와 기능의 흐름을 이해하는 부분에서 이점이 크다.


따라서 변수의 R&R이 결정되었다면 그 이상의 용도로는 절대로 사용하지 않도록 하자.




10.1 : 반복되는 코드 제거하기

모든 함수, 기능은 코드로 구성되어 있다. 하지만 간혹 유사하거나 같은 기능을 하는 함수들이 이곳저곳 산재해있는 경우가 다분하다. 이런 경우, R&R을 기반으로 같은 코드는 하나의 클래스 메서드나 혹은 유틸리티 클래스로 뽑아 사용하는 것이 좋다.


그렇게 해야 추후 수정이 발생했을 때, 중복된 같은 코드의 로직을 수정하는 과정에서 누락이 빠지지 않을 수 있으며, 변경 포인트를 한곳으로 합침으로써 코드의 가독력을 향상시키는 데에 효율을 높일 수 있다.




16.2 : 섣부른 최적화 제거하기

'일어나지 않을지도 모르는 일에 대해서 추측하지 말라' 사람은 불안에 취약한 동물이다. 즉, 언제 일어날지 모르는 일을 대비하기 위해서 말도 안 되는 곳에 말도 안 되는 예산을 낭비하는 경향이 있다.


코드도 결이 같다. 경험적 / 논리적 판단에 근거하지 않은 막연한 두려움에 없어도 될 코드들을 덕지덕지 붙이거나 이에 대해서 미리 최적화하여 가독력을 크게 떨어트리거나 혹은 코드의 흐름을 해친다.


좋은 코드는 지금에 집중하고 또한 경험을 바탕으로 실리적인 부분에 대해서만 최적화를 진행한 코드임을 명심하자.


【 실무로 통하는 클린 코드를 읽고 나서 】


'백문이 불여 일타라'


컴퓨터 업계에서 웃으게로 하는 말이다.


필자의 경우에도 수많은 소프트웨어 개발론과 클린 코드 개발론 책들을 읽으며 이론에 관해서는 어느 개발자 못지않은 전문성을 갖추고 있다.


하지만 책에서 읽었던 경험을 실무에서 녹여내는 것은 책을 읽으며 단순히 학습하는 것과 그 결이 사뭇 다르다.


많이 만들어보고 많이 실패해 보고 회고해 봐야 느는 영역인 것이다.


단연, 컴퓨터 학문뿐만 아니라 모든 학문이 이러한 것 같다.
 
0***m 2024.08.25. 신고 공감 0 댓글 0
리뷰 총점 종이책
클린 코드 작성의 필수 지침, ‘실무로 통하는 클린 코드’ 리뷰
"클린 코드 작성의 필수 지침, ‘실무로 통하는 클린 코드’ 리뷰" 내용보기
‘실무로 통하는 클린 코드(Clean Code Cookbook)‘는 소프트웨어 개발자에게 필수적인 클린 코드 작성법을 다루고 있는 책으로, 각 장마다 다양한 주제를 깊이 있게 탐구하고 있습니다. 책에서 제시하는 원칙과 기술들은 실무에서 바로 적용할 수 있는 유용한 팁들로 가득 차 있습니다. 이 후기를 통해 책의 주요 내용과 나의 생각을 정리해보겠습니다.첫 번째로, 책은 클린 코드의 중요
"클린 코드 작성의 필수 지침, ‘실무로 통하는 클린 코드’ 리뷰" 내용보기

실무로 통하는 클린 코드(Clean Code Cookbook)‘는 소프트웨어 개발자에게 필수적인 클린 코드 작성법을 다루고 있는 책으로, 각 장마다 다양한 주제를 깊이 있게 탐구하고 있습니다. 책에서 제시하는 원칙과 기술들은 실무에서 바로 적용할 수 있는 유용한 팁들로 가득 차 있습니다. 이 후기를 통해 책의 주요 내용과 나의 생각을 정리해보겠습니다.


첫 번째로, 책은 클린 코드의 중요성을 강조하며, 코드 스멜, 리팩터링, 그리고 다양한 소프트웨어 설계 원칙에 대해 깊이 있는 설명을 제공합니다. 코드 스멜이란 코드를 읽기 어렵게 하거나 유지보수를 어렵게 만드는 요소를 의미하며, 이러한 문제를 해결하기 위한 리팩터링의 필요성을 잘 설명하고 있습니다. 각 장에서는 이론뿐만 아니라 실질적인 예제를 통해 독자가 쉽게 이해할 수 있도록 돕고 있습니다. 특히, 빈약한 모델과 기본형 집착을 다룬 장에서는 객체 지향 프로그래밍의 본질과 중요성을 다시금 깨닫게 해주었습니다.


다음으로, 다루는 내용이 매우 체계적이라는 점이 인상적이었습니다. 각 장이 독립적으로 구성되어 있어 필요에 따라 원하는 내용을 쉽게 찾아볼 수 있습니다. 예를 들어, ‘가변성’ 장에서는 변수 선언의 중요성과 올바른 가변성 관리를 강조하며, 코드의 안정성을 높이는 방법을 제시합니다. 이런 점에서 책은 개발자가 흔히 저지르는 실수를 피할 수 있도록 안내해 줍니다.


또한, ‘주석’ 장에서는 주석의 유용성과 함께 불필요한 주석을 제거하고 코드 자체로 의도를 명확히 할 수 있는 방법을 다룹니다. 주석은 코드를 보완하는 역할을 해야지, 코드의 대체물이 되어서는 안 된다는 점을 다시 한 번 상기시켜 주었습니다. 이와 같은 원칙들은 소프트웨어 품질을 높이는 데 큰 도움이 됩니다.


책의 후반부에서는 테스트와 예외 처리에 대한 내용도 다루고 있습니다. 소프트웨어의 신뢰성을 높이기 위해서는 철저한 테스트와 예외 처리가 필수적입니다. 테스트를 작성할 때는 어떤 상황에서 실패할 수 있는지를 고려하고, 예외 처리는 사용자에게 최악의 상황에서도 친절하게 정보를 제공할 수 있어야 한다는 점이 특히 인상 깊었습니다. 이러한 원칙들은 실제 프로젝트에서 많은 도움이 될 것이라 확신합니다.


마지막으로, 이 책은 단순히 이론적인 지식을 제공하는 데 그치지 않고, 실무에서 바로 활용할 수 있는 다양한 팁과 기법들을 제시합니다. 각 장에서 제안하는 리팩터링 기법이나 코드 개선 방법들은 모두 실제 사례를 기반으로 하여 실용적입니다. 따라서, 개발자들이 자신의 코드를 점검하고 개선하는 데 큰 도움이 될 것입니다.


결론적으로, ‘실무로 통하는 클린 코드‘는 개발자라면 누구나 읽어야 할 필독서입니다. 코드의 품질을 높이고, 유지보수를 용이하게 하며, 팀원들과의 협업을 더욱 원활하게 만들어 줄 수 있는 다양한 원칙과 기술이 담겨 있습니다. 이 책을 통해 많은 것을 배웠고, 앞으로의 개발에 있어 큰 도움이 될 것이라 생각합니다. 클린 코드를 작성하는 것은 단순한 선택이 아니라, 프로페셔널한 개발자로 성장하기 위한 필수적인 과정임을 다시 한 번 깨닫게 해준 책이었습니다.



“한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”


d***4 2024.08.23. 신고 공감 0 댓글 0
리뷰 총점 종이책
실무로 통하는 클린코드
"실무로 통하는 클린코드" 내용보기
https://www.hanbit.co.kr/store/books/look.php?p_code=B2230430901실무로 통하는 클린 코드당신의 코드를 변화시킬 클린 코드 혁명. 개발자 성장을 위한 최적의 코드 작성법www.hanbit.co.kr해도 해도 어렵고 알면서도 못하는 클린코드에 관한 책이 나와 읽어보게 되었다.책은 총 25장으로 이루어져있다. 꽤 많은 장으로 이루어져있다.다루는 내용 중에는 복잡성, if문, null, 결합도,
"실무로 통하는 클린코드" 내용보기

https://www.hanbit.co.kr/store/books/look.php?p_code=B2230430901


실무로 통하는 클린 코드

당신의 코드를 변화시킬 클린 코드 혁명. 개발자 성장을 위한 최적의 코드 작성법

www.hanbit.co.kr


해도 해도 어렵고 알면서도 못하는 클린코드에 관한 책이 나와 읽어보게 되었다.

책은 총 25장으로 이루어져있다. 꽤 많은 장으로 이루어져있다.

다루는 내용 중에는 복잡성, if문, null, 결합도, 계층, 테스트, 예외 등 다양한 내용들을 다룬다.


정리



가독성과 성능 어떤 것을 더 우선으로 할 것인가에 대한 고민을 누구나 한번 쯤 해보지 않았을까? 책 초반에는 위와 같은 내용이 나온다. 관련해서는 '섣부른 최적화' 를보면 좋을 것 같다.


 스스로 잘 지키지 못했던 부분 중 하나가 책에서 나와서 놀랐다. 코드를 짜다보면 이중 부정이 되는 경우가 간혹 있다. 그럴때 최대한 긍정조건으로 바꾸려고 하는 편이지만 또 쉽게 안될 때가(핑계..) 있기도 했었는데 다음부터는 조금 더 조심할 수 있도록 해야겠다는 생각이 들었다.


예제에 너무 극단적인 예제가 나온게 아닌가 싶기도 했다 ㅋㅋㅋ 하지만 누군가는 이렇게 짜고 있을 지도..? 그렇다면 꼭 수정하길 바란다.


가끔 네이밍에 시간을 엄청 사용한다. GPT에게 의견을 묻기도, 팀원들에게 묻기도 한다. 그만큼 내가 지은 변수명이 명확할 수록 다른 사람이 내 코드를 봐도 이해하기 쉽기 때문이라는 생각이 커서 그런것 같다. 약어로 적은 부분을 확장하기도 하고 그렇지만 너무 긴 단어는 약어로 쓸 필요도 있어보이기도 한다.(협의 하에)



책을 보다가 뜨끔한 부분이 참 많았는데 인터페이스 부분도 그렇다. 언젠가 쓰겠지 라는 생각으로 인터페이스를 선언하고 사용하는데(테스트 하기도 편하기 때문에) 일회성을 제거하라고 되어 있어서 신기했다. 관점이 다를 수도 있겠구나 싶은 부분도 책에서는 존재한다. 책에서는 '모의 객체를 실제 객체로 대체하기' 에서 해당 내용을 다룬다.


책 전반적으로 코드 클린을 다루고 있고 한번 쯤은 겪게 되는 코드에 대한 고민을 해보게 해주니 읽어보는 것을 추천한다. 나도 읽다보니 스스로를 계속 반성하게 되었다. 반성에게 그치는 것이 아니라 코드에도 반영한다면 내 코드를 보는 누군가에게 큰 도움이 되지 않을까 생각이 든다.



한빛미디어 < 나는리뷰어다 > 활동을 위해서 책을 제공받아 작성된 서평입니다.

k*********0 2024.08.22. 신고 공감 0 댓글 0