diff --git "a/\354\261\225\355\204\260_10/\354\240\225\353\246\254.md" "b/\354\261\225\355\204\260_10/\354\240\225\353\246\254.md" new file mode 100644 index 0000000..0bf0aab --- /dev/null +++ "b/\354\261\225\355\204\260_10/\354\240\225\353\246\254.md" @@ -0,0 +1,52 @@ +# Ch 10. 일급 함수 1 + +### 혜성 + +- 고차함수 만들기에 대한 이야기를 주로 함 +- 함수 이름에 암묵적인 인자가 있는 것을 보면 암묵적 인자를 없애는 것이 일급이라는 말 +- 자바스크립트라는 언어에서 일급이 아닌 것들도 함수로 빼서 일급처럼 사용할 수 있다. +- 데이터 지향 원칙 + - 미래에 이 데이터가 어떻게 쓰일지 모르기 때문에 데이터를 데이터 그대로 쓰자 +- 정적타입 동적타입 + - 논쟁이 뜨겁지만 결국 소프트웨어 품질을 위해서는 정적, 동적 타입보다는 숙면이..? 더 낫다 ㅋ ㅋ +- 일급이 아닌 것들은 함수로 감싸서 일급인척 할 수 있음 +- 함수 본문을 콜백으로 바꿔서 고차함수를 만들 수 있고, 다양한 동작을 추상화할 수 있다. +- 콜백이란? + - 인자로 전달하는 함수 + +### 상범 + +- 왜 일급함수가 좋은지? +- 고차함수로 감싸는 방법, 리팩토링 방법이 총 3개가 나왔다. + - 암묵적 인자를 제거하는 것 - 암묵적 인자를 캐치하고 명시적 인자로 바꾸기 + - 암묵적 인자를 드러내는 것 - + - 함수 본문을 콜백으로 바꾸는 것 +- 일급이라는 뜻은 일급시민처럼 혜택을 받는게 아니라 사용할 때 다른 요소들과 아무런 차별이 없다는 뜻이다~ 라고 다른 책에서 읽음. 그래서 일급은 특정한 언어에 국한되는 게 아니다. +- 본문내용을 함수로 빼내고, 콜백으로 바꿔서 리팩토링 한다. +- 그런데 너무 추상화를 성급하게 해버리면.. 위험 + - 다른 도메인에서 그 함수를 쓰게 되면 한번에 읽기 좋은 코드가 되기 어렵다. + - 추상화한 것을 한번 더 추상화해서 훅이나 유틸로 만드는 것이 맞지 않나 싶다. + +### 예찬 + +- 1급의 개념을 소개하고, 1급의 개념이 함수형 기법에서 어떻게 드러나는지 설명하는게 주요한 포인트였던 장 같음 +- 1급의 개념을 설명하기 위해서 10장에서는 두가지 리팩토링을 소개하고 있음 + - 암묵적 인자를 드러내기 + - price 처럼 함수의 이름에 해당하는 부분은 값으로 다룰 수 없기 때문에 이것을 값으로 다룰 수 있게 만들어주는 것이 이 리팩토링 기법의 핵심이구나 + - 함수 본문을 콜백으로 바꾸기 + - 특정 구현사항도 일급으로 만들 수 있구나 + - 해당 구현을 함수로 만들고 그 부분을 콜백으로 받으면 그 내용도 일급으로 바꿀 수 있게 된다는게 이 리팩토링 기법의 가장 중요한 포인트구나 +- 리팩토링 기법을 알면서 그 안에 일급의 개념이 어떻게 들어가 있는지 이해하면 제대로 이해한게 아닐까 +- 두 리팩토링 기법의 공통점 + - 공통된 부분을 정의해서 그것을 맥락에 얽매이지 않는 일반적인 함수로 만든다. +- 차이점 ⇒ 무엇을 일급으로 뽑아내느냐 + - 암묵적 인자를 드러내기 → 값 + - 함수 본문을 콜백으로 바꾸기→ 구현 + +### 대윤 + +- 중복을 줄일 수 있는 방법! +- 예시처럼 쓰는 경우가 … 과연 얼마나 많을까 + - 우리는 어떻게 쓰고 있는가.. + - reducer 같은거 쓸 때 action에 명시적으로 action을 박아서 쓰는 경우가 이 경우일까? +- 콜백을 엄청 많이 쓰고 있는데, 콜백을 따로 빼내서 중복을 줄일 수 있구나!