김주엽
1. 📌 핵심 개념 정리
✅ 요약하기
앞으로 코드가 사라질 가망은 없다. 프로그래밍이란 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업을 말한다.
이러한 이유로 코드의 도움 없이는 요구사항을 상세하게 표현하기 어렵다.
따라서 우리는 좋은 코드와 나쁜 코드를 구분하고 나쁜 코드를 좋은 코드로 바꾸는 실력을 키울 필요가 있다.
- 나쁜 코드
- 나쁜 코드가 쌓일수록 팀 생산성은 저하된다.
- 생산성 증진을 위해 인력을 추가로 투입해도 새 인력은 시스템 설계에 대해 조예가 깊지 않아 결국은 나쁜 코드를 더 생산하게 된다.
- 나쁜 코드의 위험을 이해하지 못하는 고객의 요구사항을 그대로 반영하는 것은 전문가답지 못하다.
- 프로그래머라면 기한을 맞추기 위해 나쁜 코드를 양산할 수밖에 없다고 느낀 적이 누구나 있을 것이다.
- 그러나 기한을 맞추기 위한 유일한 방법은 언제나 코드를 최대한 깨끗하게 작성하는 것이다.
- 나쁜 코드가 쌓일수록 팀 생산성은 저하된다.
- 깨끗한 코드
- 코드 감각이 없는 프로그래머도 때로는 나쁜 모듈을 알아본다. 그러나 거기서 더 개선시키지 못한다.
- 반대로 코드 감각이 있는 프로그래머는 나쁜 모듈을 보면 좋은 모듈로 개선할 방안을 떠올린다.
- 깨끗한 코드에 대한 유명한 프로그래머들의 의견
- 비야네 스트롭스트룹: 깨끗한 코드는 세세한 부분까지 꼼꼼하게 처리하고 한 가지에 집중하는 것이 중요하다.
- 그래디 부치: 코드에 반드시 필요한 내용만 담아 읽는 사람에게 코드의 의도를 명확하게 전달할 수 있어야 한다.
- 데이브 토마스: 깨끗한 코드란 읽기 쉽고 고치기도 쉬운 코드를 말한다.
- 마이클 페더스: 깨끗한 코드의 특징은 언제나 누군가 주의 깊게 짰다는 인상을 준다.
- 론 제프리스: 중복을 피하고 한 기능만 수행하며 작게 추상화해서 제대로 표한하는 것.
- 워드 커닝햄: 코드를 읽으면서 짐작했던 기능을 그대로 수행한다면 깨끗한 코드라 부를 수 있다.
- 코드 감각이 없는 프로그래머도 때로는 나쁜 모듈을 알아본다. 그러나 거기서 더 개선시키지 못한다.
- 보이스카우트 규칙
- "캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라."
- 시간이 지나도 언제나 깨끗하게 코드를 유지해야 한다.
- 한번에 많은 시간과 노력을 투자해 정리할 필요는 없다.
- 차근차근 변수 이름 하나를 개선하고 조금 긴 함수를 분할하고 약간의 중복을 제거하고 복합한 조건문을 정리하는 정도면 충분하다.
2. 🤔 이해가 어려운 부분
🔍 질문하기
- 마이클 페더스가 말한 깨끗한 코드
- 어려웠던 부분
마이클 페더스는 깨끗한 코드가 언제나 누군가 봐도 주의 깊게 짰다는 인상을 주는 코드라고 하는데 구체적으로 어떤 코드인지 이해하기 어려웠다. - 궁금한 점
주의 깊게 짰다는 인상을 주는 코드란 구체적으로 무엇인가?
- 어려웠던 부분
- 보이스카우트 규칙
- 궁금한 점
코드를 수정할 때마다 작게라도 개선하라는 말이 있지만 사람마다 깨끗한 코드에 대한 기준이 다르기 때문에 현실적으로 쉽지 않다고 생각한다. 이를 해결할 수 있는 대안이 있을까?
- 궁금한 점
3. 📚 참고 사항
📢 논의하기
- 관련 자료 공유
- 추가 자료
보이스카우트 규칙
- 추가 자료
- 논의하고 싶은 주제
- 보이스카우트 규칙
보이스카우트 규칙을 지킨다는 것은 어떤 것인가? - 설명
사람마다 깨끗한 코드에 대한 기준이 다르다.
예를 들어 변수 이름에 대한 기준, 클래스와 인터페이스를 나누는 단위는 프로그래머마다 모두 다른데
책에서 얘기한 보이스카우트 규칙을 지키는 것은 어렵지 않을까?
- 보이스카우트 규칙
No Comments