본문 바로가기
CS/책 & 강의

[클린코드] 1장 깨끗한 코드

by 공부하는 무니 2023. 6. 20.
반응형

이 책을 읽으면 좋은 코드와 나쁜 코드를 구분하는 능력과 나쁜 코드를 좋은 코드로 바꾸는 실력이 쌓이게 된다.


1) 코드가 존재하리라

앞으로 코드가 없어질 일은 없다. 코드는 요구사항을 표현하는 언어이기 때문. 

2) 나쁜 코드
르블랑의 법칙(나중은 결코 오지 않는다. 나쁜 코드를 구현하면 나중은 오지 않는다.)

3) 나쁜 코드로 치르는 대가
나쁜코드가 쌓일수록 팀 생산성은 떨어지고, 그렇다고 인력을 추가하면 새 인력은 기존 시스템을 잘 모르기 때문에 도움이 되지 않는다. 이 상태에서 인력 추가가 되기 때문에 생산성은 높여야 하는 압력이 주어지지만 생산성은 점점 0이 된다.

a. 원대한 재설계의 꿈
차세대 시스템과 기존 시스템의 경주. 기존 시스템이 엉망이면 차세대를 한다고 해도 기간이 길어지고 어려워진다. 

b. 태도
나쁜 코드의 책임은 프로그래머에게 있다. 요구사항, 일정, 관리자 탓이 아니다. 의사와 환자의 예시(환자가 수술전에 시간이 오래걸리니 손을 씻지 말아달라고해서 안씻을 것인가?)

c. 원초적 난제
기한을 맞추려면 나쁜 코드를 양산할 수 밖에 없다? 아니다. 틀렸다. 빨리 가는 유일한 방법은 언제나 깨끗한 코드를 유지하는 습관이다.

d. 깨끗한 코드라는 예술?
깨끗한 코드를 구현하는 것은 그림을 그리는 것과 비슷하다. 코드 감각이 있어야 나쁜 코드를 알아보고 좋은 코드로 바꿀 수 있다.

e. 깨끗한 코드란?
프로그래머마다 깨끗한 코드에 대한 정의가 다르다.
비야네 스트롭스트룹 Bjarne Stroustup (C++창시자)
- 우아하고 보기에 즐거운 코드
- 효율(시간, CPU)
- 철저한 오류 처리
- 한 가지를 잘 한다.
그래디 부치 Grady Booch
- 가독성
- 명쾌한 추상화
큰 데이브 토마스 big Dave Thomas
- 다른 사람이 고치기 쉽다.
- 테스트 케이스
- 최소
- 문학적
마이클 페더스 Michael Feathers
- 주의 깊게 작성한 코드
- 세세한 사항까지 꼼꼼하게 신경 쓴 코드
론 제프리스 Ron Jeffries
- 중복을 피하라
- 한 기능만 수행하라
- 제대로 표현하라
- 작게 추상화하라
워드 커닝햄 Ward Cunningham
- 짐작한 대로 돌아가는 코드

4) 우리들 생각
이 책에서 상세히 설명할 예정이니 믿고 따라와보라.

  • 위에서 말한깨끗한 코드 대한 여러 해석이 있었는데, 책에서 말하는 클린 코드는 어떤 걸까?
  • 저자 Robert C. Martin 그의 동료들이 생각하는 깨끗한 코드를 전반에서 상세하게 다룬다. 
  • 무술의 세계에서 최고의 기술을 꼽으라면 자신이 속한 문파의 기술을 최고라고 말하는 것처럼, 일단 책에서 주장하는 기법들을 믿고 실천해보자. 


5) 우리는 저자다
우리는 저자이면서 독자다. 코드를 읽는 시간이 작성하는 시간보다 훨씬 길다. 읽기 쉽게 짜자. 

  • 우리는 일단 코드를 작성하는 저자이다.
  • 또한 코드를 읽는 독자이기도 하다.
  • 코드를 때에는 내가 저자라는 사실과, 코드를 보고 판단을 내릴 독자가 있다는 것을 기억해야 한다. 
  • 실제로 우리는 코드를 읽는 시간이 작성하는 시간보다 훨씬 길다.



6) 보이스카우트 규칙
"캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라."

  • 코드를 짰다고 해서 끝이 아니다.
  • 시간이 지나도 언제나 깨끗하게 유지해야 한다.
  • 보이스카우트 규칙캠프장은 처음 왔을 때보다 깨끗하게 해놓고 떠나라.”
  • 시간이 지날수록 퇴보하는 코드가 아니라, 좋아지는 코드라니! 
  • (지금은 꿈같은 이야기지만, 클린코드를 읽고 실천하면서 이상에 가까워지길)



7) 프리퀄과 원칙
이 책은 PPP책(Agile Software Development: Principes, Patterns, and Practices | 2002)의 프리퀄이다. 이 책에서 거론되는 설계원칙(SRP, OCP, DIP 등)이 PPP에서 자세히 다뤄진다.

  • 클린 코드클린 소프트웨어(PPP)’ 프리퀄.
  • 클린 코드를 읽고 나서 클린 소프트웨어를 읽어보라고 추천.
  • 클린 코드에서는 SRP, OCP, DIP 설계원칙을 산발적으로 거론
  • 원칙에 대한 자세한 설명은클린 소프트웨어(PPP)’ 있다.



8) 결론
이 책은 세세한 정보로 가득하지만 읽고 직접 연습해야 내 것이 된다

반응형

'CS > 책 & 강의' 카테고리의 다른 글

[클린코드] 2장 의미 있는 이름  (0) 2023.06.20

댓글