개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
코딩은 기계적인 작업이 아니라 사려 깊은 생각과 판단으로 결정을 내려야 하는 작업이다.
의식적으로 생각하면서 작업하지 말고
정신을 기민하게 유지하고 자기 상황을 검토하며 잠재적인 문제들을 점검하라.
TIL (Today I Learned) 날짜
2022. 05. 29
오늘 읽은 범위
7장. 코딩하는 동안
책에서 기억하고 싶은 내용을 써보세요.
파충류의 뇌에 귀 기울이기 : 본능과 무의식적인 생각을 더 잘 활용하여야 한다.
우연에 맡기는 프로그래밍 : 무의식적인 우연이 아닌 의도적인 정신으로 작업해야 한다.
알고리즘의 속도 : 알고리즘이 사용하는 시간, 프로세서, 메모리, 자원들을 추정할 수 있어야 한다.
리팩터링 : 우리가 만든 프로그램과 설계에서 개선할 여지를 찾아내야 한다.
테스트로 코딩하기 : 테스트는 코드에 대한 피드백을 받는 작업이다. 설계 , API, 결합 측면에서 등 다양한 피드백을 받아야 한다.
속성 기반 테스트 : 컴퓨터에세 넓은 범위의 테스트를 시킬 수 있을지, 버그가 나타났을때 어떻게 대처할지를 알아야 한다.
바깥에서는 안전에 주의하라 : 우리가 만든 시스템을 뚫고 들어와서 해를 끼치려는 나쁜 코드들로부터 지킬 수 있는 기법과 접근 방법을 숙지해야 한다.
이름 짓기 : 이름은 프로그래머의 의도와 믿음을 드러낸다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
일이 힘들고 잘 진행되지 않을때 잠시 하고 있는 일을 멈추고 우리의 뇌가 정리를 할 수 있도록 약간의 휴식을 확보하라는 것에 큰 공감이 되었다. 프로그래머가 더 좋은 코드를 작성하기 위해서는 건강도 제일 중요하기 때문이다.
우연에 코딩을 맡기게 되면 미래에 발생할 위험에 대처하기 힘든 프로그램이 만들어 질 수 있다. 항상 의도적으로 프로그램을 설계할 수 있도록 기민하게 생각해야 한다.
처음 짧은 프로젝트 기간때문에 작업을 하게 되었을때 코드는 스파게티처럼 엉망진창이 되어버렸었다. 프로그래밍은 건축가의 건축설계가 아닌 정원 가꾸기에 더 가깝다고 하였다. Gardening은 건축보다 딱딱하기 보다는 유기적이며 계획에 따라 식물을 심고 계속 돌봐주어야 한다. 코드를 항상 돌봐주듯이 유기적으로 코드를 작성해야 겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
속성 기반 테스트 : 결과가 입력 데이터와 관련 있는 어떤 속성(property)을 만족하는지 검증하는 것 이다. 코딩보다 먼저 해야 할 일은 함수의 입력과 출력을 고려할 때 검증해야만 하는 속성이 무엇인지 찾아보는 관점 에서 문제를 살펴보는 것이다. 이런 관점에서 생각해 보면 부작용이 없는 함수가 속성을 훨씬 더 쉽게 찾아낼 수 있다는 사실을 금방 깨닫게 된다.