Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[정리] 챕터10: 일급 함수1 #61

Merged
merged 1 commit into from
May 23, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions 챕터_10/정리.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Ch 10. 일급 함수 1

### 혜성

- 고차함수 만들기에 대한 이야기를 주로 함
- 함수 이름에 암묵적인 인자가 있는 것을 보면 암묵적 인자를 없애는 것이 일급이라는 말
- 자바스크립트라는 언어에서 일급이 아닌 것들도 함수로 빼서 일급처럼 사용할 수 있다.
- 데이터 지향 원칙
- 미래에 이 데이터가 어떻게 쓰일지 모르기 때문에 데이터를 데이터 그대로 쓰자
- 정적타입 동적타입
- 논쟁이 뜨겁지만 결국 소프트웨어 품질을 위해서는 정적, 동적 타입보다는 숙면이..? 더 낫다 ㅋ ㅋ
- 일급이 아닌 것들은 함수로 감싸서 일급인척 할 수 있음
- 함수 본문을 콜백으로 바꿔서 고차함수를 만들 수 있고, 다양한 동작을 추상화할 수 있다.
- 콜백이란?
- 인자로 전달하는 함수

### 상범

- 왜 일급함수가 좋은지?
- 고차함수로 감싸는 방법, 리팩토링 방법이 총 3개가 나왔다.
- 암묵적 인자를 제거하는 것 - 암묵적 인자를 캐치하고 명시적 인자로 바꾸기
- 암묵적 인자를 드러내는 것 -
- 함수 본문을 콜백으로 바꾸는 것
- 일급이라는 뜻은 일급시민처럼 혜택을 받는게 아니라 사용할 때 다른 요소들과 아무런 차별이 없다는 뜻이다~ 라고 다른 책에서 읽음. 그래서 일급은 특정한 언어에 국한되는 게 아니다.
- 본문내용을 함수로 빼내고, 콜백으로 바꿔서 리팩토링 한다.
- 그런데 너무 추상화를 성급하게 해버리면.. 위험
- 다른 도메인에서 그 함수를 쓰게 되면 한번에 읽기 좋은 코드가 되기 어렵다.
- 추상화한 것을 한번 더 추상화해서 훅이나 유틸로 만드는 것이 맞지 않나 싶다.

### 예찬

- 1급의 개념을 소개하고, 1급의 개념이 함수형 기법에서 어떻게 드러나는지 설명하는게 주요한 포인트였던 장 같음
- 1급의 개념을 설명하기 위해서 10장에서는 두가지 리팩토링을 소개하고 있음
- 암묵적 인자를 드러내기
- price 처럼 함수의 이름에 해당하는 부분은 값으로 다룰 수 없기 때문에 이것을 값으로 다룰 수 있게 만들어주는 것이 이 리팩토링 기법의 핵심이구나
- 함수 본문을 콜백으로 바꾸기
- 특정 구현사항도 일급으로 만들 수 있구나
- 해당 구현을 함수로 만들고 그 부분을 콜백으로 받으면 그 내용도 일급으로 바꿀 수 있게 된다는게 이 리팩토링 기법의 가장 중요한 포인트구나
- 리팩토링 기법을 알면서 그 안에 일급의 개념이 어떻게 들어가 있는지 이해하면 제대로 이해한게 아닐까
- 두 리팩토링 기법의 공통점
- 공통된 부분을 정의해서 그것을 맥락에 얽매이지 않는 일반적인 함수로 만든다.
- 차이점 ⇒ 무엇을 일급으로 뽑아내느냐
- 암묵적 인자를 드러내기 → 값
- 함수 본문을 콜백으로 바꾸기→ 구현

### 대윤

- 중복을 줄일 수 있는 방법!
- 예시처럼 쓰는 경우가 … 과연 얼마나 많을까
- 우리는 어떻게 쓰고 있는가..
- reducer 같은거 쓸 때 action에 명시적으로 action을 박아서 쓰는 경우가 이 경우일까?
- 콜백을 엄청 많이 쓰고 있는데, 콜백을 따로 빼내서 중복을 줄일 수 있구나!
Loading