마치 프로그래머들을 위한 책이라기 보다는
의외로 자기계발서같다는 생각을 했다.
코드를 깔끔하게 한다는 것, 그리고 그것을 위한 방법은 우리의 삶을 더 효율적으로 만들어주는 방식과 크게 다르지 않다고 생각한다. 특히 '세세함'에 대해서 이야기를 할 때에는 많은 생각을 하게했다. 코드 뿐만 아니라 내가 그냥 이정도면 되지 않을까? 라는 마음으로 그냥 넘겼던 일들을 다시 되돌아 보게 만든다. 그런 일들이 쌓이고 쌓여 지금의 나를 만들어온게 아닌가라는 마음에 앞으로 다가올 일들에 대해 조금 더 책임감을 가질 필요가 있다고 생각했다. 말 그대로 100을 위해서 100을 하겠다고 마음먹어 80을 완료하기 보다는 100을 위해서 나의 게으름, 예상치 못한 오류와 같은 변수들을 모두 감안하여 120, 150을 생각하고 임해야 한다는 것을 마음에 새길 수 있게 된 것같다.
" 세세함 "
세세함에 몰두하는 태도는 탁월함을 추구하는 노력 과정에서 공통적으로 발견된다.
세세함을 추구하는 것, 그 사소한 차이가 일반적임과 탁월함을 구분짓는 요인들 중 하나라고 생각한다. 물론 세세함을 위해서 희생해야하는 비용은 크지만 분명 그만큼의 혹은 그 이상의 가치가 있다고 생각한다. 우리가 흔히 말하는 '프리미엄'을 붙인 것들은 조금의 세세함을 더한 것들이다. 기능이 구현되는 데에는 '일반' 제품과 차이가 없지만 무언가 조금씩 더 상향된 수준이다. 무언가 다르다. 사람이 하는 일도 마찬가지라고 생각한다. 그 무언가 살짝 다른 차이를 위해서, '프리미엄'을 붙인 생각, 코드를 만들어 내기 위해서 '세세한' 부분까지도 신경을 써야한다고 생각한다. 물론 일반적인 프로그래머가 될 것이라면 상관없다고 생각한다. 하지만 그 이상의 가치있는 프로그래머가 되기 위해서는 '세세한' 것까지도 신경쓸 수 있는 프로그래머가 되자.
TMP: Total Productive Management 에는 다섯 가지 원칙이 있다.
- 정리 : 적절한 명명법
- 정돈 : 코드는 누구나 예상하는 위치에
- 청소 : 작업공간에서 쓰레기나 부스러기 제거 - 주석으로 처리한 코드는 제거하라
- 청결, 표준화 : 작업공간을 청소하는 방식은 그룹 내 모든 사람들이 동의한 일관된 스타일 혹은 방식으로 한다(표준을 따르자)
- 생활화 : 관례를 따르고, 작품을 자주 돌아보고 변경 사항은 기꺼이 변경한다
그 밖에도 눈 여겨 볼 문구들은
- 버그 출현 전까지 유지 보수를 방치하기 보다는 미리 인정사정 없는 리팩토링으로 오류를 방지해나가자
- 리팩터링이 '완료' 개념의 일부여야 한다. 즉, 리팩터링도 프로그램을 만드는 일련의 과정에 포함을 시켜야 한다는 것이다.
보이스카웃 규칙
체크 인 할 때 보다 체크 아웃할 때 더 깨끗한 코드로 만들고 나가라
반복적인 리팩터링으로 완성도를 차츰차츰 끌어올릴 수 있는 어찌보면 당연한 규칙이 아닐까. 정말 쉬워보이는 규칙이지만 실천하기는 정말 어려운 것같다. 바쁘다는 이유로 내팽계쳐질 수 있는 규칙이므로 두고두고 새겨가면서 당연한 것으로 만들어야 하는 규칙들 중 하나라고 생각한다.
'클린코드' 카테고리의 다른 글
[클린코드] 4장 주석 (0) | 2020.12.27 |
---|---|
[클린코드] 3장 함수 (0) | 2020.11.29 |
[클린코드] 2장 의미있는 이름 (0) | 2020.11.14 |