본문 바로가기
글쓰기 연습/독후감

[책 리뷰] 클린 코드(로버트 C.마틴)

by ggyongi 2022. 10. 1.
반응형

-------------------------------

<책 정보>

제목 : 클린 코드 (애자일 소프트웨어 장인 정신)

로버트 C.마틴 지음 / 박재호, 이해영 옮김

출판사: 인사이트

-------------------------------

 

<2장 의미 있는 이름>

습관적으로 이름을 짧게 지으려고 했는데, 그보다는 길더라도 의미와 역할이 분명한 이름이 좋다.

 

<3장 함수>

함수 인수의 개수는 적을 수록 좋다. 너무 많아지면 클래스로 분리, 클래스 내 프로퍼티로 승격 등을 고려해보자.

결과를 담당하는 변수, 객체를 함수 인자로 넣으면 읽는 입장에서 헷갈림. 함수 인자는 '인풋'의 역할이라는 것이 일반적인 생각이기 때문.

함수 인자를 1개로 쓰는 경우 -> 1. is, has나 같이 변수의 속성 확인 2. 인풋을 변환하여 아웃풋으로 받고자 할 때

 

<4장 주석>

주석이 나쁜 코드를 무마하려는 짓인 것을 깨달았다. 주석은 가독성에 도움이 되지 않는다. 애매한 코드를 주석으로 보완하려 하지 말자.

하지만 도움이 될 때도 있으니 잘 생각하자.

 

<5장 형식 맞추기>

적절한 가로길이, 세로 길이를 맞추어 가독성을 높이자. 가로로 너무 길어도 안 좋고 세로로 너무 긴 코드도 보기 싫다.

특정 함수에서 호출하는 프라이빗 함수는 그 바로 뒤에 두어 함수 간 수직거리를 짧게 유지하자.

적절한 공백은 가독성을 높여준다.

 

<6장 객체와 자료 구조>

 

<7장 오류 처리>

의미있는 예외를 만들어 예외 이름만으로 의도가 드러나도록 한다.

null을 전달하거나 반환하지 말자. 실수하기 쉬움(ex) 널체크 빼먹기). 자바에서는 Optional을 활용하자. 코틀린에서는 널허용 객체를 사용하자.

 

<8장 경계>

 

<9장 단위 테스트>

테스트에서 가장 중요한 건 가독성! 핵심이 아닌 것은 잘 숨겨보자.

 

<10장 클래스>

단일책임의 원칙에 의해, 클래스는 나눌 수록 좋은 것 같다. 

응집도란 클래스내 변수가 클래스내의 메서드와 얼마나 밀접한지에 관한 지표다. 모든 변수들이 모든 메서드에서 사용되면 그 클래스는 응집도가 높은 것이고, 변수들이 하나의 메서드에만 사용되면 그 클래스는 응집도가 낮은 것이다. 

응집도가 낮은 경우 클래스 분리를 할 수 있는 여지를 주는 것이기 때문에, 클래스 분리를 생각해보자.

 

<11장 시스템>

일단 어렵고 생소한 용어가 많아 읽을 때 재미가 없었다. 그래서 이해도 잘 안됐다. 대충 관점지향 프로그래밍이 좋다는 것을 말하는 듯 하다.

 

<12장 창발성>

창발이라는 용어가 어려운데, 만들 창에 발생할 발이다. Emergence로 번역된다.

근데 이 챕터 이름이 왜 창발성이지? 켄트 벡이 제시한 다음의 설계 규칙 네 가지를 잘 따르면, 우수한 소프트웨어 설계의 창발성을 촉진한다고 한다.

1. 모든 테스트를 실행 2. 중복 제거 3. 프로그래머의 의도를 표현 4. 클래스와 메서드 수를 최소로 줄임

 

<13장 동시성>

동시성 프로그래밍은 아직 어렵다. 나중에 다시 읽어야 될 거 같다.

 

<14장 점진적인 개선>

실제 코드 리팩토링을 보여준다. 앞서 소개한 원칙들을 실제로 적용하는 느낌.

 

<15장 JUnit>

junit 프레임워크를 간략히 소개하고, 그 중 코드 하나를 리팩토링한다.

 

<16장 SerialDate 리팩토링>

역시 이 챕터도 리팩토링.

 

<17장 냄새와 휴리스틱>

코드에서 나는 온갖 냄새들을 소개한다. 앞 내용과 많이 중복된다. 그 동안 전달하고자 했던 원칙들을 총 정리해주는 느낌.

 

- 마치며

책 들어가는 글에서 책이 세 부분으로 나눠진다고 했는데(원칙과 패턴 - 사례 연구 - 결말),

1~13 / 14~16 / 17 정도로 나눠지는 게 아닐까 생각한다.

14~16은 설명과 코드를 번갈아 봐야하는 불편함이 큰데(그래서 너무 힘듦), 저자가 이 불편함을 버티면서 코드를 분석해보기를 강조하므로 나중에 한번 더 읽어봐야겠다.

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글