본문 바로가기

개발/클린 코드

클린코드 1장 - 깨끗한 코드

코드가 존재하리라

  • 코드는 사라지지 않는다. 코드를 자동으로 생성하는 시대가 오더라도, 고도로 추상화된 언어나 특정 응용 분야 언어로 기술하는 '명세' 역시 코드니까.
  • 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심하자.

나쁜 코드

  • 우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다.
  • 우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다.
  • 나중은 결코 오지 않는다

나쁜 코드로 치르는 대가

  • 나쁜 코드는 개발 속도를 크게 떨어뜨린다. 초반에는 번개처럼 나가다가, 1-2년만에 굼뱅이처럼 기어가는 팀도 많다.
  • 시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하라
  • 사용자는 요구사항을 내놓으며 우리에게 현실성을 자문한다. 프로젝트 고나리자는 일정을 잡으며 우리에게 도움을 청한다. 우리는 프로젝트를 계획하는 과정에 깊숙히 관여한다. 그러므로, 프로젝트 실패는 우리에게도 커다란 책임이 있다. 특히 나쁜 코드가 초래하는 실패에는 더더욱 책임이 크다.
  • 기한을 맞추는 유일한 방법은, 그러니까 빨리가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.

깨끗한 코드라는 예술?

  • 깨끗한 코드와 나쁜 코드를 구분할 줄 안다고 깨끗한 코드를 작성할 줄 안다는 뜻은 아니다.

깨끗한 코드란?

  • 우아하고 효율적인 코드, 철저한 오류 처리. 깨끗한 코드는 한 가지를 잘한다고 단언한다. 나쁜 코드는 너무 많은 일을 하려 애쓰다가 의도가 뒤섞이고 목적이 흐려진다.  깨끗한 코드는 한 가지에 '집중'한다. 각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다 - 비야네 스트롭스트룹 ( C++ 창시자 )
  • 가독성 - 그래디 부치
  • 다른 사람이 고치기 쉬운 코드. 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 작을 수록 좋다.  - 데이브 토마스
  • 코드를 주의 깊게 작성하라. - 마이클 페더스
  • 중복을 피하라, 한 기능만 수행하라, 제대로 표현하라, 작게 추상화하라 - 론 제프리스

우리들 ( 저자 ) 생각

  • 깨끗한 변수 이름, 깨끗한 함수, 깨끗한 클래스
  • "오브젝트 멘토 진영이 생각하는 깨끗한 코드" 를 설명한다

캠프장은 처음 왔을 때보다, 더 깨끗하게 해놓고 떠나라. 조금씩. 변수이름 하나를 개선하고, 조금 긴 함수 하나를 분할하고, 약간의 중복을 제거하고, 복잡한 if문 하나를 정리하면 충분하다.

 

결론

  • 좋은 코드도 소개하고 나쁜 코드도 소개한다.
  • 나쁜 코드를 좋은 코드로 바꾸는 방법도 소개한다.
  • 다양한 경험적 교훈과 체계와 절차와 기법도 열거한다.

'개발 > 클린 코드' 카테고리의 다른 글

클린코드 5장 - 형식 맞추기  (0) 2021.04.14
클린코드 4장 - 주석  (0) 2021.04.13
클린코드 3장 - 함수  (0) 2021.04.12
클린코드 2장 - 의미 있는 이름  (0) 2021.04.07
클린코드 정리를 시작하며..  (0) 2021.04.05