독서 기록/클린 코드

[클린 코드] 1장 깨끗한 코드

JoJobum 2023. 1. 16.

코드는 요구사항을 표현하는 수단

언어의 추상화 수준은 높아지고, 특정 응용 분야에 특화된 언어가 많아지는 등의 변화 있을 수 있음
But, 요구 사항을 모호하게 줘도 우리의 의도를 정확하게 파악하고 프로그램을 만들 수 있는 기계가 나올 수 없음
그렇기에 코드는 항상 존재할 것

나쁜 코드가 나오는 이유

시간상의 이유 등으로 나쁜 코드를 생산
아예 안돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로 위로하는 일 흔함
그리고 나중에 다시 리팩토링하겠다는 다짐을 하지만 나중은 오지 않는다 (= 르블랑의 법칙)

 

나쁜 코드는 쌓일수록 생산성이 떨어짐

쌓일수록 수정과 개선의 난이도를 기하급수적으로 늘림
결국 생산성이 0에 수렴하고 재설계를 시도함 ( aka. 차세대, 빅뱅 등...)
재설계를 시도하는 팀은 기존 시스템을 동일하게 구현하며 그사이에 발생하는 변경 사항 또한 모두 따라잡아야 함
기존 시스템을 추월하는 재설계를 구현하는 사이에 나쁜 코드는 다시 쌓이고 결국 목적지에 도달한 곳엔 새로운 재설계가 기다린다.

즉 시간을 들여서라도 깨끗한 코드를 만드는 것이 당장은 느려도 결국에는 빠른 길이라는 것

 

나쁜 코드들이 발생하는 이유들 중 촉박한 일정, 요구사항의 잦은 변경 등의 이유들은 부가적인 이유
관리자들이 일정이나 요구사항을 밀어붙이는 것은 그것이 그들의 책임이기에, 비슷한 맥락으로 좋은 코드를 사수하는 것은 프로그래머의 책임이다.

기한을 맞추기 위해 나쁜 코드를 양산하는 일은 프로그래머의 역량 미달로 발생하는 것
그러하지 않기 위해
코드를 최대한 깨끗하게 유지하는 습관을 가지자

 

그래서 깨끗한 코드란 무엇인가?

세세한 사항까지 꼼꼼하게 신경쓰는 코드
철저한 오류 처리
의도와 목적이 명확한 코드
다른 사람이 고치기 쉬운 코드
테스트 케이스가 존재히는 코드
주의를 기울인 코드
중복이 없는 코드
등등...

 

 

반응형

댓글