개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.19
오늘 읽은 범위
-> 추천사 ~ 1장. 깨끗한 코드
책에서 기억하고 싶은 내용을 써보세요.
"사소한 곳에서 발휘하는 정직은 사소하지 않다" (p. xxii)
세세함에 주의를 기울이는 태도는 전문가에게 더더욱 필수적인 자질이 되었다. 첫째, 큰 실무에서 실력을 쌓고 신뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야하는 탓이다. 둘째, 꼭 맞게 닫히지 않는 문이나 비뚫어진 바닥 타일이나 지저분한 책상 등 아주 사소한 것들이 전체의 매력을 깎아먹기 때문이다. 깨끗한 코드가 중요한 이유는 바로 여기에 있다. (p. xxiii)
작은 것에도 충실한 사람이 큰 것에도 충실하다 (p. xxv)
오늘 할 수 있는 일을 내일로 미루지 마라 (p. xxv)
아키텍처도, 깨끗한 코드도, 완벽을 주장하지는 않는다. 단지 최선을 다해 정직하라 요구할 뿐이다. 오류는 인간의 본성이고 용서는 신의 본성이다. (p. xxviii)
난관에 부딪힐 때 옳은 문 뒤에 있으려면 어떻게 해야할까? 답은 장인 정신이다. 장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다. 첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다. 둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다. (p. xxxii)
궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. (p. 3)
나중은 결코 오지 않는다. (p. 4)
비유를 하나 들겠다. 자신이 의사라 가정하자. 어느 환자가 수술 전에 손을 씻지 말라고 요구한다. 시간이 너무 걸리니까. 확실히 환자는 상사다. 하지만 의사는 단호하게 거부한다. 왜? 질병과 감염의 위험은 환자보다 의사가 더 잘 아니까. 환자 말을 그대로 따르는 행동은 전문가답지 못하니까. 프로그래머도 마찬가지다. 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다. (p. 7)
기한을 맞추는 유일한 방법은, 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p. 7)
깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드다. (p. 10)
깨끗한 코드는 한 가지에 '집중'한다. 각 함수와 클래스와 모듈은 주변 상황에 현혹되거나 오염되지 않은 채 한길만 걷는다. (p. 10)
깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. 고치려고 살펴봐도 딱히 손 댈 곳이 없다. 작성자가 이미 모든 사항을 고려했으므로. 고칠 궁리를 하다보면 언제나 제자리로 돌아온다. (p. 12)
중복을 피하라. 한 기능만 수행하라. 제대로 표현하라. 작게 추상화하라. (p. 14)
언어를 단순하게 보이도록 만드는 책임이 우리에게 있다는 뜻이다. (p. 15)
캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라. (p. 19)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
이 책의 대부분은 깨끗한 코드를 만들기 위한 여러 방법들을 소개할 것이다. 하지만 본격적인 내용에 앞서 단순히 방법론적인 것보다 프로그래머의 태도가 참 중요하다는 생각이 들었다.
나는 얼마나 사소한 것까지 중요하게 챙길 수 있을까.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
린 Lean
휴리스틱 heuristic
메서드 추출 Extract Method 리팩터링 기법