본문 바로가기

Book/Clean Code

[클린 코드] Assignment #02: TIL - 추천사 ~ 1장. 깨끗한 코드

728x90

 

📢 DAY 2
🏷️ 오늘 읽은 범위: 추천사 ~ 1장. 깨끗한 코드

🖊️ 짧은 내용 요약

  • 나쁜 코드를 작성하면 생산성이 크게 떨어지며, 프로그래머라면 좋은 코드를 작성하는 의무를 책임져야 한다.
  • 좋은 코드는 깨끗이 유지해야 한다는 사실을 인지하고, 좋은 코드를 작성하려고 노력해야 한다.
  • 뛰어난 프로그래머들(저자와 저자의 동료들)은 좋은 코드의 중요성과 조건을 공통적으로 이야기한다.
  • 앞으로 좋은 코드를 작성하는 방법을 세세하게 소개할 예정이다.
  • 하지만, 이 책을 읽는 것만으로는 좋은 코드를 작성하는 데 충분하지 않다. 꾸준히 연습해라.

😀 책에서 기억하고 싶은 내용

저자에게는 독자가 있다.
그리고 저자에게는 독자와 잘 소통할 책임도 있다.
다음에 코드를 짤 때는 자신이 저자라는 사실을,
여러분의 노력을 보고 판단을 내릴 독자가 있다는 사실을 기억하기 바란다. (p. 17)
더보기
우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그때 그 시절 우리는 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다. (p. 4)
매번 얽히고설킨 코드를 '해독'해서 얽히고설킨 코드를 더한다. (p. 5)
좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. ... 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.(p. 7)
그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p.7)
비야네에 따르면 깨끗한 코드는 '보기에 즐거운' 코드다. (p. 9)
데이브는 깨끗한 모드란 다른 사람이 고치기 쉽다고 단언한다. (p. 11)
읽으면서 짐작한 대로 돌아가는 코드가 깨끗한 코드다. (p. 15)
저자에게는 독자가 있다. 그리고 저자에게는 독자와 잘 소통할 책임도 있다. 다음에 코드를 짤 때는 자신이 저자라는 사실을, 여러분의 노력을 보고 판단을 내릴 독자가 있다는 사실을 기억하기 바란다. (p. 17)
미국 보이스카우트가 따르는 간단한 규칙이 우리 전문가들에게도 유용하다. 
캠프장을 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라. (p. 18 ~ p. 19)

🤔 오늘 읽은 소감 & 떠오르는 생각

책을 읽으면서 공감가는 내용이 너무 많았다. 😮 프로젝트를 진행할 때 단발성이 아니라 장기적인 프로젝트가 되면, 예전에 내가 작성해둔 나쁜 코드를 해석하고 또 해석하느라 많은 시간을 허비했던 게 생각났다. 그 나쁜 코드를 고치겠다고 시간을 투자해도 결국은 나쁜 코드를 더 꼬이게 만들었었다. 다음에는 유지보수가 쉬운 코드를 작성하자고 다짐해도 내가 내 코드를 해석하느라 긴 시간을 보내는 일은 반복되었다.

그래서 책에서 '보기에 즐거운 코드', '다른 사람이 고치기 쉬운 코드', '짐작한 대로 돌아가는 코드' 라는 문구가 눈에 들어왔다. 내 코드는 대부분 여기서 벗어났던 것 같기 때문이다. 책을 계속 꾸준히 읽으면서 나도 배움을 얻어 나중에 내가 작성한 코드를 다른 사람이 봤을 때 한 번이라도 즐겁고, 고치기 쉽다고 느꼈으면 좋겠다. 또한, 내가 작성하는 코드를 다른 사람과 심지어 미래의 내가 읽을 수 있다는 사실을 항상 염두에 두면, 깔끔한 코드를 작성해야 하는 이유를 쉽게 잊지 않을 것 같다.

🔍 새로 알았거나 잘 이해되지 않는 내용

  • 휴리스틱
    경험에 기반하여 문제를 해결하는 방법
  • 킬러 앱(Killer App)
    시장에 등장하자마자 다른 경쟁 제품을 몰아내고 시장을 완전히 재편할 정도로 인기를 누리는 서비스
  • 르블랑의 법칙(Leblanc's Law)
    Later equals never.
  • 경쟁 상태(Race Condition)
    둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태
  • 문학적 프로그래밍
    프로그래밍을 할 때 사람이 이해하기 쉬운 코드를 만드는 것에 중점을 두는 방법

📚 참고

반응형