✍️ 글쓰기/📕 읽고
#노마드북클럽 | 클린 코드 (Clean Code) 2일차
ddubimoon
2022. 2. 19. 17:27
TIL (DAY 2)
🔖 오늘 읽은 범위: 시작 ~ 1장, 깨끗한 코드
책에서 기억하고 싶은 내용
- 품질은 하늘에서 뚝 떨어진 위대한 방법론이 아니라 사심 없이 기울이는 무수한 관심에서 얻어진다. (p. xxvii)
- 이 책을 읽는 동안 마음 고생할 준비를 하기 바란다. ... 열심히, 아주 열심히 독파해야 하는 책이다. (p.xxxii)
- 어떤 언어를 사용하든 코드는 기계가 이해하고 실행할 정도로 엄밀하고 정확하고 상세하고 정형화되어야 한다. (p 3)
- 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다. (p 7)
- 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. (p 10)
- 코드는 추측이 아니라 사실에 기반해야 한다. 반드시 필요한 내용만 담아야 한다. 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다. (p 11)
- 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다고 위드는 말한다. (p15)
오늘 읽은 소감 및 생각
- 이 책에서 이야기하는 코드에 대한 태도나 생각이 비단 코드 뿐만 아니라 인생관에도 직결된다고 생각했다.
- CST에서 처음 코딩을 배우기 시작하면서 피넛버터-딸기잼 샌드위치를 만드는 방법을 Flow chart로 그리는 과제가 있었다. 자고로 코드란 5살 아이부터 80세 노인까지 이해할 수 있을 정도로 간단하면서 섬세한 설명이 되어 있어야 한다고 배웠다. 이 책의 도입부에서 이러한 첫 수업의 내용이 생각나면서 초심으로 돌아갈 수 있는 계기가 된 것 같다.
- 사이드 프로젝트나 과제를 하면 할수록 개발은 계획 부분이 가.장. 중요하다는 것을 깨달았었다. 그렇지 않을 경우엔 프로젝트 도중에 전체 코드를 뒤집어 엎고 싶은 충동이 생겨나곤 했다. 바로 이 책에서 이야기하는 '나쁜 코드'는 이러한 충동을 일으키는 코드이며, 결국엔 효율성도, 코드가 해야하는 역할도 챙기지 못한채 시간과 돈을 낭비하는 것이다.
- Legacy code를 후임에게 남겨두고 떠나는 개발자도, 그에 적응해야 하는 신입 개발자도, 모든 개발자에게 필수적인 역량은 바로 커뮤니케이션 스킬이었다는 점을, 책을 읽으면서 더 뼈저리게 느끼게 되었다. 왜 이 코드를 삽입했는지, 왜 파일을 이렇게 수정했는지 모든 업데이트와 변화에는 스토리가 필요하다. 그 뒷 배경을 설명하는 것도 개발자들의 몫.
- 추상 클래스에 대한 예시를 보면서, 새삼 추상 클래스의 목적을 이제야 복기하고 이해할 수 있었다. 추상 클래스는 중복적으로 사용되는 객체나 메소드를 모아 놓은 컬렉션 같은 느낌이라면 맞으려나.
궁금한 내용이나 새로 알게 된 개념
- 5S
TPM(Total Productive Management)라는 일본에서 등장한 품질 관리론을 지탱하는 원칙.
정리(Seriri): 적절한 명명법으로 무엇이 어디에 있는지 알고 있는 것.
정돈(Seiton): 누구나 예상하는 위치에 있을 것.
청소(Seiso): 필요 없는 코드, 주석 처리한 코드는 제거하는 것.
청결(Seiketsu): 표준화. 그룹 내에서 일관적인 구현 스타일과 기법을 공유하는 것.
생활화(Shutsuke): 관례를 따르고, 본인의 코드를 성찰하고, 기꺼이 변경할 줄 아는 것. - 린 (Lean)
: 린 관리는 자원을 절약하고 더 나은 제품을 생산하기 위해 조직에서 낭비를 제거하고 피하는 지속적인 프로세스. (출처) - 르블랑의 법칙
: 나중은 결코 오지 않는다. 지금 짠 '나쁜 코드'를 나중에 다시 돌아와 수정할 것이라 하지만, 그 '나중'은 절대 오지 않는다. - 문학적 프로그래밍 (Literate Programming)
: 인간이 읽기 좋은 코드를 작성하는 것. 마치 문학 작품을 읽는 것처럼 프로그래밍을 읽을 수 있도록 만드는 것.