클린코드 1장 깨끗한 코드

mingggkeee·2022년 5월 18일
0

클린코드

목록 보기
1/2
post-thumbnail

내가 이 책을 읽게 된 이유는 더 나은 프로그래머가 되기 위해서다
협업을 하다보니 클린코드의 중요성에 점점 더 와닿게 되었고, 좋은 코드를 작성하고자 이 책을 읽기로 했다.
단원마다 핵심요지를 정리해서 올리겠다.

코드가 존재하리라

코드는 요구사항을 상세히 표현하는 수단이므로 앞으로 코드가 사라질 가망은 전혀 없다! 어느 수준에 이르면 코드의 도움 없이 요구사항을 상세하게 표현하기란 불가능하다. 추상화도 불가능하다. 정확히 명시하는 수밖에 없다.
궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 요구사항에 더욱 가까운 언어를 만들 수도 있고, 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다. 하지만 어느순간에는 정밀한 표현이 필요하다. 그 필요성을 없앨 방법이 없기 때문에 코드는 항상 존재하리라

나쁜 코드

프로그래머라면 누구나 당연히 나쁜 코드로 고생한 경험이 있다. 어째서 나쁜 코드를 짰는가? 급해서? 서두르다가? 아마 그랬을 것이다.
우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐하지만 나중은 절대 오지 않는다.

나쁜 코드로 치르는 대가

나쁜 코드는 개발 속도를 크게 떨어뜨린다. 코드를 고칠 때마다 엉뚱한 곳에서 문제가 생긴다. 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.

원초적 난제

프로그래머는 근본적인 가치에서 난제에 봉착한다. 경력이 어느정도 쌓인 프로그래머라면 누구나 나쁜 코드가 업무 속도를 늦춘다는 사실을 익히 안다. 그럼에도 모든 프로그래머가 기한을 맞추려면 나쁜 코드를 양산할 수 밖에 없다고 느낀다. 하지만 진짜 전문가는 나쁜 코드를 양산하면 기한을 맞추지 못한다는 것을 안다. 오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고, 결국 기한을 놓친다. 기한을 맞추는 유일한 방법은 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.

깨끗한 코드란?

C++ 창시자는 깨끗한 코드는 '보기에 즐거운'코드가 깨끗한 코드라고 했다. 비야네는 효율도 언급한다. 또한 철저한 오류 처리도 언급한다. 세세한 사항까지 꼼꼼하게 신경 쓰라는 말이다. 프로그래머들이 대충 넘엄가는 부분 중 하나가 오류 처리다. 메모리 누수, 경쟁 상태, 일관성 없는 명명법이 또 다른 예다. 한마디로 요약하면, 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드다.
데이브 토마스는 '가독성'을 강조하고 깨끗한 코드란 다른 사람이 고치기 쉽다고 단언한다. 데이브는 깨끗한 코드를 테스트 케이스와 연관짓는다. 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 아무리 코드가 우아해도, 가독성이 높아도, 테스트 케이스가 없다면 깨끗하지 않다.

profile
만반잘부

0개의 댓글