책 리뷰/클린코드
클린코드 - 1장
eess
2024. 8. 14. 20:12
🔖 1장 : 깨끗한 코드
읽은 날짜 : 2024.08.14
지은이 : 로버트 C. 마틴
출판사 : 인사이트
기억하고 싶은 내용
나쁜 코드로 치르는 대가
- 나쁜 코드가 쌓일수록 팀의 생산성은 떨어진다.
- 나쁜 코드는 프로젝트 초반에는 빠르게 진도를 나가다가 점차 느려진다.
- 생산성이 떨어지면 관리자는 새 인력을 투입하고, 새 인력과 팀은 생산성을 높여야 한다는 압박에 더욱 시달린다.
- 결과적으로 나쁜 코드를 더 많이 양산한다.
- 전문가 답지 못한 태도다.
- 관리자가 일정에 쫓기게 만들고 고객과 마케팅 부서가 무리한 요구사항을 내놓았다고 해도, 결국 프로젝트 실패는 전문가답지 못한 프로그래머의 책임이 크다.
- 그들에게 그들의 책임이 있듯이, 프로그래머에게는 좋은 코드를 사수할 책임이 있다.
- 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다.
깨끗한 코드
- 세세한 사항까지 꼼꼼하게 처리하는 코드(오류 처리)
- 한 가지 일에 집중하는 코드
- 반드시 필요한 내용만 담은 코드
- 다른 사람이 고치기 쉬운 코드
- 주의 깊게 작성하고, 시간을 들여 깔끔하고 단정하게 정리한 코드
- 읽으면서 짐작한 대로 돌아가는 코드
오늘 읽은 소감
- 나쁜 코드로 치르는 대가로 소개된 현실적인 이야기들이 공감되었습니다. 내가 깨끗한 코드를 유지하지 못했던 이유를 다른 곳에서만 찾고 있지는 않았는지 반성하게 되었습니다.
- 깨끗한 코드를 작성해야 하는 이유를 다시 한 번 생각해보게 되었습니다. 결국은 내가 선택한 직무의 전문가가 되기 위함입니다. 주어진 상황이 어떠하든 전문적인 프로그래머로서 져야 하는 책임들이 있고, 그 중 하나가 깨끗한 코드가 무엇인지 알고 실제로 이행하는 것임을 알게 되었습니다.
- 옮긴이와 저자가 이야기 하듯이, 이 책의 모든 내용이 절대적이라고 생각하지 말고 오랜 시간 뛰어난 개발자들이 고민한 기술과 기법을 이해하는 것에 집중해야겠다는 생각이 들었습니다.
궁금한 내용 & 잘 이해되지 않는 내용
르블랑의 법칙 : 나중은 결코 오지 않는다. "Later equals Never." [참고]
- 우리는 "나중에" 하려고 계획한 일을 전혀 하지 않는 경향이 있다.
- '나중에 버그를 고치겠습니다.'
- '나중에 단위 테스트를 작성하겠습니다.'
- '나중에 중복을 제거하겠습니다.'
- 왜 그럴까?
- 절차를 생략해야 더 빨리 안정적으로 제품을 납품할 수 있다는 잘못된 인식을 고객에게 주게 된다. 고객은 더 많은 일을 요구하게 될 것이고, 업무에 과부하가 걸리면 기술 부채가 쌓인다.
- 테스트와 리팩토링에 적절한 시간을 할애하지 못하게 되고, 결과적으로 디버깅과 버그 수정에 더 많은 시간을 들이게 된다.
- 나중에 처리하기로 계획한 것들이 실제로 완료하기 위해서는, "완료 기준"을 수립해야 한다.
- 완료의 기준에는 여러 가지가 있겠지만, 처음에는 작게 시작하고 몇 번 반복해보면서 기준을 추가해나가면 된다.
- 처음에는 기능 완료, 단위 테스트, 동료 검토, 리팩토링 정도면 좋다.
- 이렇게 하다 보면 "나중에" 해야할 일이 점차 줄어들어 기술 부채를 예방할 수 있다.