본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
독서는 마음의 양식/클린코드

[Clean Code.Chapter 1_깨끗한 코드]

by SpaciousKitchen 2021. 4. 8.

 

해당 게시물은  로버트 C. 마틴 저 'Clean Code' 내용을 정리한 내용입니다.

 

코드의 종말

사람들은 말한다. "AI가  모든 걸 다 하는 시대가 올겨야" 마찬가지로 "코드 또한 자동으로 생성 되는 날이 올 것이야"

이 말은 즉은, 기획자의 몇번의 클릭으로 프로그램을 구현 할 수 있는 시대가 도래 할 것이며, 프로그래머는 필요 없어진다것 이다.

 

과연 사실일까 ? 

 

물론 어느 정도는 맞을 것이다. 하지만 필자는 말한다. "헛소리 !"

 

고도화된 추상화 시대가 오면, 코드의 도움 없이 요구사항을 작성할 수 있을 것이라 판단하겠지만, 그것은 오산이다.

어느 순간에는 정밀한 표현이 필요한 것이고, 요구사항은 점점 구체화 될 것이다.

'원하는 대로 돌아가는 기계'가 생긴다는 것은 절대적으로 불가능 하다. 우리의 의도를 완벽하게 구현하는 기계는 없다.

 

따라서 코드는 필요하다. 코드는 요구사항을 표현하는 언어이기때문에..

 

 

나쁜코드

나쁜 코드는 팀 생산성을 떨어트린다. 한 예시로 코드를 리뉴어 하기 위해 타이거 팀이 꾸려질 것이다. 이는 '새로운 작품을 창조할 기회'로 생각될 것으로 유능 한 사람들이 차출 된다. 나머지 팀원은 지속적으로 유지 보수를 할 것이다. 새로운 팀은 기존 시스템 변경 사항+새로운 시스템 을 내놓아야한다. 새로운 시스템은 기존 시스템의 100%이상을 제공하지 않는 이상 대체될 수는 없다.

 

하지만 이러한 과정은 분명 오래 걸린다고 필자는 말한다. 길게는 10년... 새로운 시스템이 대체할 상황이 되었을 때, 초창기 팀원들은 사라지고 새로운 팀원들이 새  시스템을 설계 하자고 할 것이다. 왜냐 ? 현 시스템은 엉망이니까 !

 

 

이것은 나쁜 코드를 짰을때, 발생하는 이야기 상황이다. 시간을 들여 깨끗한 코드를 만들어야 하는 이유이다.

 

 

깨끗한 코드

깨끗한 코드의 대한 정의는 다양하다. 유명하고 노련한 프로그래머들의 의견을 들어보자.

 

` c++ 창시자` :우아하고 효율 적인 코드를 좋아한다. 깨끗한 코드는 '보기 좋은 코드' 이다. 나쁜  코드는 더 나쁜 코드로 빠지는 유혹을 이끈다.

 

` 데이브`: 테스트 케이스가 없다면 깨끗한 코드가 아니다. 코드는 큰코드 보다는 작은 코드가(최소)코드가 가치있다.

 

` 마이클`: 깨끗한 코드란 '주의'깊게 짠 코드 이다. 시간을 들여서 작성한,

 

`론 제프리스`: 내가 구현하는 코드는 단순한 규칙이 있다.

 

  1. 모든 테스트를 통과한다.
  2. 중복이없다.
  3. 시스템내 설계 아이디어를 표현한다.
  4. 클래스,메서드,함수등을 줄인다.

 

`워드 커닝햄`: 짐작한 그대로 수행되는 코드이다.코드를 보고 독해하느라 쥐어짜서는 안된다.

 

 

 

 

댓글