Clean Code (1)

잡담

예전부터 Clean Code 를 보려고 몇 번이나 도서관에서 책을 빌렸지만 미루다 보니 여태까지 못 보고 있었다.

이제 더는 안되겠다 싶어 무조건 끝까지 읽어보자고 다짐을 했고, 도서관 간김에 Clean Code를 다시 빌려왔다.

그리고는 동기 부여를 위해서 읽은 내용들을 정리해서 블로그에 포스팅 하기로 하였다.

이 포스팅이 바로 그 시작점이다.

Intro

이 부분은 주로 깨끗한 코드(Clean Code)가 무엇인지 설명하고 있다. 아마도 이 책 전체에 걸친 내용을 가장 간략하게 설명한 부분이 아닐까 싶다. (당연한가? ㅎ)

또한 앞으로 어떠한 방법으로 깨끗한 코드에 대해 알아갈 것인지에 대한 방향을 암시한다. 가벼운 마음으로 이 책을 읽고 넘어가는 것이 아니라, 빡세게 공부하듯 읽으라고 당부하고 있다. (앞 내용인가? ㅎ)

나쁜 코드

나쁜 코드가 가져다주는 재앙에 대해 말해주고 있다.

간단하다. 덩치가 커진 얽힌 실타래는 결국 풀지 못하고 가위로 잘라내야 한다.

애초에 나쁜 코드가 되지 않게 잘 만들어 가야 한다.

태도 & 원초적 난제

여기서 전문가가 되기 위한 마인드를 언급하고 있다.

다음과 같이 머리에 쏙쏙 들어오는 예를 통해서!

1
2
3
4
5
6
7
자신이 의사라 가정하자. 
어느 환자가 수술 전에 손을 씻지 말라고 요구한다.
시간이 너무 걸리니까.
확실히 환자는 상사다.
하지만 의사는 단호하게 거부한다.
왜? 질병과 감염의 위험은 환자보다 의사가 더 잘 아니까.
환자 말을 그대로 따르는 행동은 (범죄일 분만 아니라) 전문가답지 못하니까.

전문가 답지 못하니까!!

나쁜 코드의 위험을 알면서, 상사가 얼른 개발하라고 했다고 대충 만드는건 위험하다! 전문가 답지 못하다! (짤리느냐 자존심을 지키느냐 문제인가… ㅋ)

하지만 시간이 없다고 나쁜 코드를 양산하면 다음번에 발목을 잡힐 수 밖에 없다.

무조건 깨끗한 코드를 유지하는 습관이 중요하다! 라고 언급하고 있다.

깨끗한 코드란?

여기에서는 유명하고 훌륭한 개발자분들의 의견을 언급하며 깨끗한 코드란 무엇인지 설명하고 있다.

책을 읽으면서 몇 가지 정리된 내용을 정리하자면

  1. 깨끗한 코드란 보기에 즐거운 코드이다. (마치 예술 작품을 구경하는 듯하게)
  2. 나쁜 코드는 나쁜 코드를 유혹한다. (나쁜 코드를 고치면서 더 나쁜 코드를 양산한다)
  3. 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리한다.
  4. 깨끗한 코드는 한 가지 일에만 집중한다.
  5. 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.
  6. 깨끗한 코드는 다른 사람이 고치기 쉽다. (읽기 쉬운 코드와 고치기 쉬운 코드는 다르다)
  7. 테스트케이스가 없는 코드는 깨끗한 코드가 아니다.
  8. 깨끗한 코드는 고칠 곳이 없도록 주의 깊게 작성된 코드이다.
  9. 깨끗한 코드는 짐작했던 기능을 각 루틴이 그대로 수행한다.

그리고 다음과 같은 규칙을 언급했다.

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

무슨 말이냐! 바로 pull 할 때 보다 좀 더 깨끗한 코드를 push 하라는 말이다. 그러면 자연스럽게 코드는 깨끗해질 수 밖에 없다.

결론

다들 알고 있지만 실천하지 못한 사소한 내용들을 언급하고 있다.

보다 전문가가 되기 위해 이러한 내용들을 머리가 아닌 몸에 새기도록 노력해야겠다.