From 8ac8a88e4b148da308844eacab040982b232d96e Mon Sep 17 00:00:00 2001 From: hyesungoh Date: Sun, 12 May 2024 18:03:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B1=95=ED=84=B0=2010?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\354\230\244\355\230\234\354\204\261.md" | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 "\354\261\225\355\204\260_10/\354\230\244\355\230\234\354\204\261.md" diff --git "a/\354\261\225\355\204\260_10/\354\230\244\355\230\234\354\204\261.md" "b/\354\261\225\355\204\260_10/\354\230\244\355\230\234\354\204\261.md" new file mode 100644 index 0000000..488f604 --- /dev/null +++ "b/\354\261\225\355\204\260_10/\354\230\244\355\230\234\354\204\261.md" @@ -0,0 +1,57 @@ +# 일급 함수 1 + +## 함수 이름에 있는 암묵적 인자 + +* 함수의 이름으로 구분하는 코드의 냄새 + + 코드로 다룰 수 없는 함수 이름 대신 일급 값인 인자로 바꾸는 '암묵적 인자 드러내기' 리팩터링을 적용해 없앨 수 있음 + +## 일급 ? + +* 인자로 넘길 수 있고 +* 함수의 리턴값으로 받을 수 있고 +* 변수에 넣을 수 있고 +* 배열이나 객체의 항목으로 넣을 수 있고 + +는 것들을 일급이라고 함 + +### 자바스크립트에서 일급이 아닌 것은? + +* 수식 연산자 +* 반복문 +* 조건문 +* try/catch 블록 + +## 데이터 지향 원칙 + +* 일급 필드를 사용하면 코드에 객체를 많이 사용하는 것 같음 + +* 데이터를 데이터 그래도 사용하는 것이 좋음 + + 왜냐면 여러 가지 방법으로 해석할 수 있기 때문 + + 제한된 API로 정의하면 데이터를 제대로 활용할 수 없음 + + 데이터가 미래에 어떤 방법으로 해석될지 알 수 없기 때문에, 필요할 때 알맞은 방법으로 해석할 수 있어야 함 + +* 이것이 데이터 지향이라고 하는 원칙 + + `이벤트와 엔티티에 대한 사실을 표현하기 위해 일반 데이터 구조를 사용하는 프로그래밍 형식` + +## 정적 타입 vs 동적 타입 + +* 정적 타입과 동적 타입 언어에 대한 논쟁은 아직도 뜨겁다 +* 하지만 소프트웨어 품질을 위해 이를 구분하는 것보다 숙면을 하는 것이 더 중요하다는 연구 결과가 있음 + + 무조건 좋은 것은 없으니 선택한 언어가 편하다면 걱정하지 말고 계속 사용하면 됨 + +## 일급이 아닌 것을 일급으로 + +* 자바스크립트에서 함수는 일급임 + + 그러니 함수로 감싸 일급이 아닌 것들을 일급으로 만들 수 있음 + + +## 함수 본문을 콜백으로 바꾸기 + +* 고차 함수만드는 것임 + + 고차 함수는 인자로 함수를 받거나 리턴값으로 함수를 리턴하는 것 + + 다양한 동작을 추상화할 수 있음 + +## 콜백 + +* 자바스크립트에서 인자로 전달하는 함수를 콜백이라고 부름 + + 다른 커뮤니티에서도 사용하는 일반적인 용어, 핸들러 함수라고도 함