Skip to content

Commit

Permalink
챕터 10 (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
hyesungoh authored May 16, 2024
1 parent 3bb8680 commit 4e8b11b
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions 챕터_10/오혜성.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# 일급 함수 1

## 함수 이름에 있는 암묵적 인자

* 함수의 이름으로 구분하는 코드의 냄새
+ 코드로 다룰 수 없는 함수 이름 대신 일급 값인 인자로 바꾸는 '암묵적 인자 드러내기' 리팩터링을 적용해 없앨 수 있음

## 일급 ?

* 인자로 넘길 수 있고
* 함수의 리턴값으로 받을 수 있고
* 변수에 넣을 수 있고
* 배열이나 객체의 항목으로 넣을 수 있고

는 것들을 일급이라고 함

### 자바스크립트에서 일급이 아닌 것은?

* 수식 연산자
* 반복문
* 조건문
* try/catch 블록

## 데이터 지향 원칙

* 일급 필드를 사용하면 코드에 객체를 많이 사용하는 것 같음

* 데이터를 데이터 그래도 사용하는 것이 좋음
+ 왜냐면 여러 가지 방법으로 해석할 수 있기 때문
+ 제한된 API로 정의하면 데이터를 제대로 활용할 수 없음
+ 데이터가 미래에 어떤 방법으로 해석될지 알 수 없기 때문에, 필요할 때 알맞은 방법으로 해석할 수 있어야 함

* 이것이 데이터 지향이라고 하는 원칙
+ `이벤트와 엔티티에 대한 사실을 표현하기 위해 일반 데이터 구조를 사용하는 프로그래밍 형식`

## 정적 타입 vs 동적 타입

* 정적 타입과 동적 타입 언어에 대한 논쟁은 아직도 뜨겁다
* 하지만 소프트웨어 품질을 위해 이를 구분하는 것보다 숙면을 하는 것이 더 중요하다는 연구 결과가 있음
+ 무조건 좋은 것은 없으니 선택한 언어가 편하다면 걱정하지 말고 계속 사용하면 됨

## 일급이 아닌 것을 일급으로

* 자바스크립트에서 함수는 일급임
+ 그러니 함수로 감싸 일급이 아닌 것들을 일급으로 만들 수 있음


## 함수 본문을 콜백으로 바꾸기

* 고차 함수만드는 것임
+ 고차 함수는 인자로 함수를 받거나 리턴값으로 함수를 리턴하는 것
+ 다양한 동작을 추상화할 수 있음

## 콜백

* 자바스크립트에서 인자로 전달하는 함수를 콜백이라고 부름
+ 다른 커뮤니티에서도 사용하는 일반적인 용어, 핸들러 함수라고도 함

0 comments on commit 4e8b11b

Please sign in to comment.