[일일 독서] 2023-03-15 (수)
p.312~390 재능을 폭발시키는 52가지 학습의 기술을 각각 설명하고 있다. 당장 실천할 수 있는 것부터 연습을 하면 좋을 것 같다. 말은 쉬워 보이지만 의식적인 연습을 통해 잘 만들어야 할 것 같다. 이미 실천하고 있던 내용도 있어서 재밌었다.
p.312~390 재능을 폭발시키는 52가지 학습의 기술을 각각 설명하고 있다. 당장 실천할 수 있는 것부터 연습을 하면 좋을 것 같다. 말은 쉬워 보이지만 의식적인 연습을 통해 잘 만들어야 할 것 같다. 이미 실천하고 있던 내용도 있어서 재밌었다.
p.28~59 액션, 계산, 데이터가 무엇인지 정의를 위주로 보다가 실제로 장보기, 쿠폰 보내기, 수수료 보내기 예제를 통해 구분했다. 액션은 외부 세계에 영향을 주는 것, 부수효과, 실행 시점과 횟수에 의존. 액션은 코드 전체로 퍼지기 때문에 매우 조심스럽게 사용해야 한다. 계산은 순수 함수, input이 같으면 output도 항상 동일하다. 테스트하기 쉽다, 조합하기 쉽다. 데이터는 이벤트에 대한 사실, 일어난 결과. 해석이 필요하다. 액션보단 계산을, 계산보단 데이터를.
~p.27 함수형 프로그래밍은 부수 효과를 피하고 부수 효과가 없는 순수 함수를 사용한다고 하지만 함수형 프로그래머는 부수 효과와 순수하지 않은 함수를 사용한다. 구분이 중요한 액션, 계산, 데이터 -> 액션 = 부수효과, IO, 계산 = 비즈니스 로직, 데이터 = 변수 처럼 매핑되는 느낌이었다. 유지보수를 위한 계층형 설계, 변경 가능성으로 레이어를 둠. 액션의 실행 순서를 보장하기 위한 타임라인 커팅, 설명을 보면 콜백 함수라고 느껴졌다.
책을 읽을 때는 왜 읽어야 하는지, 무엇을 알고 싶은지를 미리 생각하고 읽어야 더욱 재밌고 효율적으로 읽을 수 있다고 생각합니다. 따라서 이 2가지에 해당하는 내용으로 먼저 시작해보면 좋을 것 같습니다. 이 도서는 원래 MIT에서 강의하던 SICP라는 강의의 내용을 담고 있습니다. 일반적으로 마법사책이라고 많이 불립니다. SICP는 번역하면 컴퓨터 프로그램의 구조와 해석으로 볼 수 있고 실제로 그렇게 번역되었던 책도 있습니다. MIT에서 SICP는 6.001이라는 수업에 있었습니다. 하지만 이제는 MIT에서 SICP를 가르치고 있지 않는데 SICP 커리큘럼이 더이상 현대적인 엔지니어가 되도록 준비시키지 못한다고 합니다. 8~90년대에는 간단하고 잘 이해할 수 있는 것들을 조립을 해서 프로그램을 만드는데 ..