thumbnail

모두가 클린 코드를 작성하라고 하지만, 그 이유를 알기는 쉽지 않다. 코더들은 언어를 이해하는 데에 집중하고 아키텍처는 추후에 공부하면 되지 않겠냐는 생각이 태반일 것이다. 나 또한 그랬으며 아키텍처라는 이야기 자체가 사실 중요하다고 생각하지만 그것이 개발자 꿈나무로서 프로그래밍에 적극적으로 관여한다는 사실을 알지 못했다.

로버트 C. 마틴의 클린코드 : 애자일 소프트웨어 장인정신의 1장에서는 클린 코드를 왜 해야하는지, 클린 코드를 시작하기 전 생각해야할 가장 중요한 이야기를 다룬다.

클린 코드 책을 추천하는 이유

“사소한 곳에서 발휘하는 정직은 사소하지 않다”

옛날 덴마크 속담을 이야기한 제임스 O. 코플리엔은 추천사를 한 문장으로 표현할 수 있다고 설명한다. 클린 코드의 책은 사소한 것 같지만 사소하지 않은 내용을 다룬다고 한다.

  • 지속적인 개선과 보살핌은 결코 끝나지 않는다.

  • “처음 왔을 때보다 캠프장을 더 깨끗이 치우고 떠나려고” 최선을 다했는가?

클린 코드라는 것은 코드의 유지보수를 위하여 지속적으로 시간과 체력이 든다는 사실을 이야기하고 있다.

들어가면서

장인 정신을 익히는 과정은

  1. 이론

  2. 실전

이 두가지가 전부이다. 우리는 클린 코드를 위하여 이론과 실전을 견비한 개발자가 되야 한다.

깨끗한 코드를 작성하는 방법은 배우기 어렵다. 고생을 해야한다. - 책에서…

그러므로 개발자가 되길 위한, 개발자인, 모든 사람들은 클린 코드를 위하여 노력해야하지만 힘이 든다는 사실을 추천사와 챕터 0에서 열심히 설명하고 있다. ‘마음을 먹으라는 뜻’이다.

깨끗한 코드란?

기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다.

안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 르우리는 블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다. - 책에서…

개발자는 깨끗한 코드를 작성해야할 의무가 있다. 그냥 겨우 어떻게든 돌아가는 코드가 아니라, 좋은 코드를 작성해야한다는 뜻이다. 만약 상사가 일정을 재촉해도 개발자는 좋은 코드를 사수해야 한다.

좋지 못한 코드는 유지 보수에서 문제점을 발생시키기 때문이다. 나쁜 코드를 양산하면 기한을 못맞추거나 예산을 많이 필요로 하는 등 많은 문제를 만들기 때문에 결국 효율을 중시하는 개발자는 클린 코드가 답이다.

필자는 세상을 바꾼 유명한 프로그래머들을 소개하면서 이들이 얼마나 클린 코드를 중요시 했는지 볼 수 있다.

  1. 우아하고 효율적인 코드

  2. 설계자의 의도를 숨기지 않는 코드

  3. 다른 사람이 고치기 쉬운 코드

  4. 주의깊게 짠 코드

네가지는 클린코드에서 가장 중요한 기본 원리이다. 마치 글쓰기는 제대로 한 듯, 클린코드를 잘 활용한다면 개발자의 일을 잘 한다고 볼 수 있다.

그래서 클린 코드를 왜 해야하는데?

개발자는 새 코드를 짜면서 끊임없이 기존 코드를 보는데, 만약 기존 코드가 읽기 쉽다면 코드 작성이 더 효율적일 것이다. 다른 사람이 내 코드를 유지보수 할 때도, 내가 기존 코드를 볼 때도, 누군가 코드를 손봐줄 때도 결국 클린 코드는 협업을 비롯한 모든 프로젝트에 긍정적인 영향만 끼친다.

보이 스카우트의 규칙처럼 “캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라”는 것 같이 개발자들은 코드 작성의 효율을 위해서 지속적으로 클린 코드로 코딩해야한다.

클린코드도 하나의 이론인 것을 명심해야

클린코드에서 주장하는 기법의 다수는 논쟁의 여지가 있으며, 모든 기법에 동의하지 않아도 괜찮다.

책에서 이야기하는 것이 절대적이라고 생각하지 않아도 되지만 필자의 시각을 이해하고 존중하려는 자세로 접근하여 클린코드가 무엇인지 진지하게 생각해볼 필요가 있다.