배열의 각 요소를 반복하여 특정 함수를 실행해 응축된 형태의 결과로 보여주는
reduce에 대해 공부했었다.
-> 배열 reduce 메서드
오늘은 추가로 map, filter 메서드와 MapReduce 모델에 대해 간단히 정리하고자 한다.
const arr = [1, 2, 3, 4, 5];
const newArr = arr.filter((el) => {return el % 2 ===0});
console.log(newArr); // [2, 4]
const arr = [1, 2, 3];
const newArr = arr.map((el) => {return el*el});
console.log(newArr); // [1, 4, 9]
Map과 Reduce의 콘셉트는 이제 대충 알겠는데, 이건 또 무엇인가?
우선, 열심히 구글링을 해본 결과 Map()과 Reduce()같은 메소드는 아니다.
아래는 위키에 따른 MapReduce의 정의다.
다수의 머신들로 구성한 분산 데이터베이스를 병렬로 처리하기 위한 프로그래밍 모델
사실 데이터베이스도 아직 잘 모르고, 이게 무슨 말을 하는지 도통 이해가 안됐다.
하지만 전체적인 콘셉트는 겨우 이해할 수 있었다.
Map : 데이터셋(내가 배운 기준에서는 : 배열)에 특정 조건을 적용해 새롭게 매핑(Mapping)시키는 것.
(Mapping : 하나의 값을 다른 값으로 대응 시키는 것)
Reduce : 데이터셋((내가 배운 기준에서는 : 배열)에 특정 조건을 적용해 원하는 새로운 형태의 응축(?)된 데이터를 반환하는 것.
흩어져있고 무질서한 데이터를 각각의 종류별로 Mapping하고, 필터링과 정렬을 거쳐 원하는 데이터로 추출(Reduce)하는 분산처리 기술과 관련된 프레임워크!
빅데이터와 같은 대용량의 데이터를 처리하기 위해 쓰이는 프로그래밍 모델인데,
아직 깊이는 알 수 없다. 지금은 이 정도 콘셉트라는 것만 기억하고 가자.
아래 그림을 보면 조금 더 직관적으로 이 콘셉트를 이해할 수 있다.