Language/Java

[클린 코드] Ch.1 - 깨끗한 코드

비소_ 2022. 8. 1. 15:13

클릭하시면 네이버 Book으로 연결됩니다!

해당 서적을 참고하여 개인 공부용으로 정리한 글입니다.


1. 코드는 왜 중요한가?

  • 코드는 그 자체로 요구사항을 상세히 표현하는 수단이다. 따라서 절대 없어질 수 없다.
  • 나쁜 코드는 생산성을 떨어트린다.
    • 구현에만 신경 쓰고 급급하게 만들면 나쁜 코드가 작성될 확률이 높다.
    • 나쁜 코드는 이후에 추가될 코드를 작성하는 프로그래머를 방해한다.
    • 기존 버전에서 생긴 버그들이 이후 코드와 맞물려 업데이트를 더디게 한다.
    • 르블랑의 법칙(나중은 오지 않는다)에 따라 이후에 수정하려는 생각은 상황을 악화시킬 뿐이다.
      • 많은 개발자들이 기한을 맞추기 위해 안좋다는 사실을 알면서도 나쁜 코드를 양산할 수밖에 없다고 느낀다.
      • 하지만, 오히려 나쁜 코드로 인해 속도가 늦어지고, 기한을 놓친다.


2. 클린 코드란?

비야네 스트롭스트룹

  • 효율적인 코드(자원을 낭비하지 않는 코드)
  • 논리가 간단한 코드(읽기 쉬워 보기에 즐거움)
  • 오류 처리 등 디테일 한 부분까지 꼼꼼하게 처리한 코드
  • 유혹에 빠지지 않는 코드(최적화하겠다고 수정했다가 더 나쁜 코드가 되는 상황을 방지)
  • 한 가지에 집중된 코드

그래디 부치

  • 단순하고 직접적이어서 가독성이 좋은 코드
  • 반드시 필요한 내용만을 담은 코드

데이브 토마스

  • 가독성이 좋아 다른 사람도 읽고 고치기 쉬운 코드
  • 단위 테스트, 인수 테스트 케이스가 존재하는 코드
  • 의미 있는 네이밍(naming)
  • 의존성은 최소로

마이클 페더스

  • 주의 깊게 작성한 코드(그래서 딱히 손 댈 곳이 없는)

론 제프리스

  • 중복이 없는 코드(표현력이 좋아야 한다)
  • 간단하게 추상화하기
  • 명확히 표현하기

워드 커닝햄

  • 코드를 독해하느라 애쓸필요가 없는 코드
  • 읽었을 때 이후 상황이 보이는 코드

결론

코드를 작성하는 사람은 저자(Author)다.

즉, 독자와 잘 소통할 책임이 있다.

마음대로 글을 작성하면 시간이 지났을 때 본인도 무슨 의미인지 모른다.

게다가 새 코드를 짜면서 기존 코드를 읽을 수 밖에 없다.

코드를 작성하는 것과 읽는 것의 비율은 무려 1:10이다.

따라서 기존 코드를 읽기 쉽게 만들면 짜기도 쉬워진다.

 

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

시간이 지나도 언제나 깨끗한 코드를 유지하는 것도 중요하다.
지속적으로 개선하는 것이 전문가 정신이다.

 

클린 코드와 나쁜 코드를 구분할 줄 안다고 해서 클린 코드를 작성할 수 있는 것은 아니다.

이 책에서는 많은 기교를 알려주고 있지만 연습하지 않는다면 본인 것으로 만들 수 없다.

 

연습하자!