학습목표 정리

[JS/Node] 고차함수 Chapter - 내장 고차함수 이해하기

he2mo 2021. 9. 16. 18:31

 

Achievement Goals

 

 

forEach

호출한 배열의 요소를 순회하면서 콜백 함수를 실행한다.

 

find

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 true인 첫 요소를 반환한다.

 

filter

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 true인 요소만으로 구성된 새로운 배열을 반환한다.

 

map

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값으로 이루어진 새로운 배열을 반환한다.

 

reduce

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값을 다음 순회시 콜백 함수의 첫 번째 인수로 전달하고 하나의 결과값으로 응축하여 반환한다.

 

sort

호출한 배열의 요소를 정렬한다. 두 번째 인수로 전달된 비교 함수가 존재한다면 비교함수의 반환값에 따라 정렬한다.

 

some

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 한 번이라도 참이면 true, 모두 거짓이면 false를 반환한다.

 

every

호출한 배열의 요소를 순회하면서 콜백 함수의 반환값이 모두 참이면 true, 하나라도 거짓이면 false를 반환한다.

 

 

  • 추상화(abstraction)에 대해 설명할 수 있다.

 

추상이라는 단어를 볼 때마다 고등학생 때 국어 선생님이 매번 추상, 구체를 반복해서 강조하셨던 기억이 난다. 구체와 비슷한 단어들을 생각해보면 세부적이나 자세히, 낱낱이 같은 단어들이 생각나고 반대로 추상과 비슷한 단어들을 생각해보면 종합적, 일반적, 포괄적같은 단어들이 생각난다.

 

추상화는 일반화와 비슷한 면이 있다. 공통된 부분들을 뭉뚱그려 일반화시키는 것처럼 프로그래밍에서의 추상화는 안에서 진행되는 복잡한 과정을 숨기고 입력과 출력에만 집중해 전체적인 이해를 쉽게 할 수 있게 한다.

 

이런 관점에서 배열의 고차함수를 살펴보면 map 이라는 메서드를 실행시켰을 때 어떤 순서로 각 요소에 접근하고 언제 새로운 배열을 만들고 함수를 적용시킨 결과는 또 어떻게 배열에 넣는지 자세한 구조를 숨기고 map 메서드의 역할에만 집중할 수 있게 해준다.

 

일상생활에서 음료자판기안의 내부가  어떤식으로 돌아가는지 몰라도 동전을 넣고 원하는 음료의 버튼을 누르면 음료가 나온다는 걸 알 수 있는 것처럼 추상화는 코드의 가독성을 한 층 높여준다.