filter(), map(), MapReduce 모델

태로샐러드·2021년 8월 2일
0

javascript 기초

목록 보기
21/22
post-custom-banner

배열의 각 요소를 반복하여 특정 함수를 실행해 응축된 형태의 결과로 보여주는
reduce에 대해 공부했었다.
-> 배열 reduce 메서드
오늘은 추가로 map, filter 메서드와 MapReduce 모델에 대해 간단히 정리하고자 한다.

🍫 filter()

  • boolean type을 리턴하는 함수를 인자로 넣어, 각 배열의 요소에 그 함수를 적용했을 때,
    false인 요소를 제거하고 true인 요소들로만 구성된 '새로운 배열'을 리턴한다.
  • 그 함수는 filter를 적용하는 배열의 각 요소를 인자로 가진다.
const arr = [1, 2, 3, 4, 5];

const newArr = arr.filter((el) => {return el % 2 ===0});

console.log(newArr);  // [2, 4]

🍫 map()

  • 함수를 인자로 넣어, 각 배열의 요소에 그 함수를 적용한 결과를 '새로운 배열'로 리턴한다.
  • 그 함수는 map을 적용하는 배열의 각 요소를 인자로 가진다.
const arr = [1, 2, 3];

const newArr = arr.map((el) => {return el*el});

console.log(newArr);  // [1, 4, 9]

🍫 MapReduce model ??

Map과 Reduce의 콘셉트는 이제 대충 알겠는데, 이건 또 무엇인가?
우선, 열심히 구글링을 해본 결과 Map()과 Reduce()같은 메소드는 아니다.

아래는 위키에 따른 MapReduce의 정의다.

다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델

사실 데이터베이스도 아직 잘 모르고, 이게 무슨 말을 하는지 도통 이해가 안됐다.
하지만 전체적인 콘셉트는 겨우 이해할 수 있었다.

Map과 Reduce를 쪼개서 생각해보자.

Map : 데이터셋(내가 배운 기준에서는 : 배열)에 특정 조건을 적용해 새롭게 매핑(Mapping)시키는 것.
(Mapping : 하나의 값을 다른 값으로 대응 시키는 것)

Reduce : 데이터셋((내가 배운 기준에서는 : 배열)에 특정 조건을 적용해 원하는 새로운 형태의 응축(?)된 데이터를 반환하는 것.

그러면 이제 MapReduce의 콘셉트도 어느정도는 이해할 수 있다.

흩어져있고 무질서한 데이터를 각각의 종류별로 Mapping하고, 필터링과 정렬을 거쳐 원하는 데이터로 추출(Reduce)하는 분산처리 기술과 관련된 프레임워크!

빅데이터와 같은 대용량의 데이터를 처리하기 위해 쓰이는 프로그래밍 모델인데,
아직 깊이는 알 수 없다. 지금은 이 정도 콘셉트라는 것만 기억하고 가자.

아래 그림을 보면 조금 더 직관적으로 이 콘셉트를 이해할 수 있다.

profile
기획, 개발공부, 그 외 잡다한 여정 기록 (SEMI로)
post-custom-banner

0개의 댓글