개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.19
오늘 읽은 범위
1장. 깨끗한 코드
책에서 기억하고 싶은 내용을 써보세요.
궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. (p.3)
"깨끗한 코드를 어떻게 작성할까?" 깨끗한 코드가 무엇인지 모르면 깨끗한 코드를 만들려고 애써봤자 소용이 없다. 안타깝게도 깨끗한 코드를 구현하는 행위는 그림을 그리는 행위와 비슷하다. 그림을 보면 대부분의 사람은 그림이 잘 그려졌는지 엉망으로 그려졌는지 안다. 그렇지만 잘 그린 그림을 구분하는 능력이 그림을 잘 그리는 능력은 아니다. 다시 말해, 깨끗한 코드와 나쁜 코드를 구분할 줄 안다고 깨끗한 코드를 작성할 줄 안다는 뜻은 아니다. 깨끗한 코드를 작성하려면 힘겹게 습득한 감각을 활용해 자잘한 기법들을 적용하는 절제와 규율이 필요하다. 열쇠는 '코드 감각'이다. 어떤 사람은 코드 감각을 타고난다. 어떤 사람은 투쟁해서 얻어야 한다. '코드 감각'이 있으면 좋은 코드와 나쁜 코드를 구분한다. 그뿐만이 아니다. 절제와 규율을 적용해 나쁜 코드를 좋은 코드로 바꾸는 전략도 파악한다.(p.8)
코드는 추측이 아니라 사실에 기반해야 한다. 반드시 필요한 내용만 담아야 한다. 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다.(p.11)
테스트 케이스가 없는 코드는 깨끗한 코드가 아니다. 아무리 코드가 우아해도, 아무리 가독성이 높아도, 테스트 케이스가 없으면 깨끗하지 않다. (p.12)
데이브는 또한 코드가 '문학적'이어야 한다고 말한다. 커누스가 저술한 Literate Programming이 떠오르는 발언이다. 요점은 인간이 읽기 좋은 코드를 작성하라는 말이다.(p.12)
마이클은 정곡을 찌른다. 깨끗한 코드는 주의 깊게 작성한 코드다. 누군가 시간을 들여 깔끔하고 단정하게 정리한 코드다. 세세한 사항까지 꼼꼼하게 신경 쓴 코드다. 주의를 기울인 코드다. (p.12~13)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
코드가 절대 사라지지 않을거라는 이야기가 흥미로웠다. 이렇게까지 단정적으로 이야기 할 수 있는 문제는 아니라고 생각하지만, 없어질 것이냐고 묻는다면 일단은 아닐 거라고 말할 것 같다. 지금까지 인간이 쌓아왔던 방식이 있으니 말이다.
좋은 코드, 혹은 깨끗한 코드가 무엇인지에 관한 다양한 프로그래머들의 관점을 알 수 있어서 좋았다. 또 그에 관한 해설이 길게 달려있는 점도 좋았다. 이건 생각보다 접하기 힘든데! 재밌는 내용이 너무 많아서 적을 것을 고르는데 고생했다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
커누스의 Literate Programming 도 읽어보고 싶다!