개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.19
오늘 읽은 범위
추천사 ~ 1장. 깨끗한 코드
책에서 기억하고 싶은 내용을 써보세요.
일상적이고 간단한 활동 모두가 인간의 노력에 들어 있는 위대함과 아름다움의 바탕이다. 이들을 무시하고서는 제대로 인간적일 수 없다. (p.xxvii)
시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길 (p. 6)
빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. (p. 7)
주변 코드를 읽지 않으면 새 코드를 짜지 못한다. 주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽다. 주변 코드를 읽기가 어려우면 새 코드를 짜기도 어렵다. 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다. (p.18)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
‘들어가면서’에 그려져 있는 삽화를 보고 한참을 웃었다.
‘코드 품질을 측정하는 유일한 척도 = 분당 내지르는 WTF! 횟수’ 라고 적혀있었는데
WTF는 또 어떤 기술 용어 인건가 하고 찾아봤는데 “What The Fuck”의 줄임말이었다.🤣
실제로 협업 프로젝트를 진행하며 다른 팀원이 짠 코드를 보면서 머리를 쥐어뜯으며 절규해본 경험이 있어 굉장히 공감되는 이야기였다.
본격적인 책 내용을 들어가기에 앞서 왜 코드를 클린하게 짜는 것이 중요한가에 대한 질문의 답을 얻을 수 있었다.
초보 개발자의 입장으로서 지금까지 일단 구동되게만 만들자라는 생각으로 코드를 짜왔었는데 이 책에서는 소프트웨어 개발 활동에서 80%를 차지하는 것은 유지보수과정이며, 진정으로 책임 있는 개발자라면 제품 생명주기까지 고려해야 한다고 말한다.
그렇기 때문에 코드를 짜고, 읽고, 정리하는 관점에 있어서 세세함에 주의를 기울이는 태도가 개발자에게는 필수적인 자질이라고 한다.
‘작은 차이가 명품을 만든다.’라는 말처럼 장인정신으로 코드를 작성하는 과정이 필요한 것 같다.
앞으로 책을 완독하면서 손으로, 몸으로, 마음으로 익혀 더 나은 개발자가 되어야겠다.
시간이 부족해서 나쁜 코드를 사용했다는 변명은 통하지 않는 다는 것을 깨달았다.
책에 나온 비유로 정확하게 이해했는데 ‘환자가 시간이 오래 걸린다는 이유로 의사에게 손을 씻지 말라고 요구하더라도 의사는 거부한다. 이유는 질병과 감염의 위험은 환자보다 의사가 더 잘 아니까 환자 말을 그대로 따르는 행동은 전문가 답지 못한 행동’이라는 거다.
그러므로 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가 답지 못하며 프로젝트의 실패에는 개발자에게도 커다란 책임이 있다는 이야기이다.
한 분야의 전문가라면 자신의 행동에 대한 위험성을 인지하고 제대로 책임질 수 있는 자세가 필요하다는 것을 깨달았다.
깨끗한 코드에 대한 전문가들의 생각은 대부분 비슷하다. 중복을 피하고, 한 기능만 수행하며, 의도를 제대로 표현하고, 작게 추상화 하는 것.
즉 다른 사람들이 내가 짠 코드를 보아도 쉽게 이해 할 수 있도록 많은 생각을 하며 짠 코드이다.
그리고 이런 코드를 짜기 위해서는 연습을 많이 해야한다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
휴리스틱(heuristic)이란? 경험에 기반하여 문제를 해결하거나 학습하거나 발견해 내는 방법 즉 그때그때 상황과 직관에 따라 행동하여 시행착오를 겪고, 지식을 얻고 다시 생각을 발전시키는 것을 말한다.
프리퀄(Prequel) : 전편보다 시간상으로 앞선 이야기를 보여주는 속편이다. 본편의 이야기가 왜 그렇게 흘러가는지 설명하는 기능을 하며, 전편이 흥행해서 후편을 만들고자 할 때 만들어지기도 한다.