Skip to content

Commit

Permalink
[정리] 챕터10: 일급 함수1 (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
oyeon-kwon authored May 23, 2024
1 parent 3316aaa commit 516b51b
Showing 1 changed file with 52 additions and 0 deletions.
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을 박아서 쓰는 경우가 이 경우일까?
- 콜백을 엄청 많이 쓰고 있는데, 콜백을 따로 빼내서 중복을 줄일 수 있구나!

0 comments on commit 516b51b

Please sign in to comment.