Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
『클린 코드』 TIL DAY-1
#clean_code
2년 전
781

오늘 TIL 3줄 요약

  • 나중은 결코 오지 않는다.

  • 깨끗한 코드는 단순하고 직접적이다.

  • 중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기

TIL (Today I Learned) 날짜

2022.04.23

오늘 읽은 범위

추천사 ~ 1장 깨끗한 코드

책에서 기억하고 싶은 내용을 써보세요.

삼색볼펜법 으로 책을 읽었습니다. 빨간 줄만 정리하겠습니다.

  1. 사소한 것에 집중 할 뿐 아니라 사소한 것에 정직해야 한다.
    코드에 정직하고, 코드의 상태에 대해 동료들에게 정직하고,
    무엇보다 자기 코드에 대해서 자신에게 정직하라. (p.xxviii)

  2. 코드의 품질을 측정하는 유일한 척도 = 분 당 내지르는 WTF! 의 횟수

  3. 코드는 요구사항을 상세히 표현하는 수단이니까! (p.2)

  4. 나중은 결코 오지 않는다. (p.4)

  5. 하지만 딜버트씨, 잘못은 전적으로 우리 프로그래머에게 있답니다. 우리가 전문가답지 못했기 때문입니다. (p.6)

  6. 기한을 맞추는 유일한 방법은, 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p. 7)

  7. 깨끗한 코드는 한 가지를 제대로한다. 나쁜 코드는 나쁜 코드를 '유혹'한다!(p.9 - 비야네 스트롭스트룹)

  8. 깨끗한 코드는 한 가지에 '집중'한다. (p. 10 - 비아네 스트롭스트룹)

  9. 깨끗한 코드는 단순하고 직접적이다. 깨끗한 코드는 잘 쓴 문장처럼 읽힌다.(p, 10 - 그래디 부치)

  10. 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. (p. 11 - 데이브 토마스)

  11. 깨끗한 코드는 주의 깊게 작성한 코드다. (p. 12)

  12. 중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기. 나에게는 이 세 가지가 깨끗한 코드를 만드는 비결이다. (p.14 - 론 제프리스)

  13. 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. (p. 15 - 워트 커닝햄)

  14. 프리퀄과 원칙 (p.19)

    1. SRP : 클래스에는 한 가지, 단 한 가지 변경 이유만 존재해야 한다.

    2. OCP: 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다.

    3. LSP: 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다.,

    4. DIP: 추상화에 의존해야 하며, 구체화에 의존하면 안 된다.

    5. ISP: 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

깨끗한 코드에 대한 권위자들의 정의와 그 정의를 필자가 해석하고 재정리한 것이 오늘 읽은 범위의 전반적인 내용이다. 너무나 당연한 말에 고개를 끄덕이는 부분도 있는가 하면, 이해가 가지 않아 볼펜칠을 하지 못한 부분도 있다. 책의 텍스트만 줄줄 읽는다고 해서 절대 좋은 코드를 보는 안목과 쓸 수 있는 실력을 가질 수 없다는 것을 안다. 때문에 책을 읽는 챌리지 이지만 3주간 꾸준히 코딩하며 되돌아 보는 시간을 가져보기로 했다. 마지막으로 4 페이지의 나쁜 코드로 치르는 대가 바로 위 단락 '우리 모두는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다.' 읽으면서 정말 발가벗은 느낌이 들었다. '나중은 결코 오지 않는다.' 정말 무서운 말이다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 테스트 케이스가 없다면 깨끗한 코드라고 할 수 없다고 했다. 그렇다면 테스트의 범위는 어떻게 설정하는 것이 시간을 잡아 먹지 않으면서 깨끗한 코드를 작성할 수 있을까?

오늘 읽은 다른 사람의 TIL