든든 한 우리 형 , 함수 형 - 역할 의 차이 
 1 . 역할 의 차이 
 2 . 리턴 값 의 차이 
 3 . 속도 의 차이 
 역할 의 차이 
 형 은 대체로 순수 해서 대하 기 편하 지만 , 가끔 까다로운 경우 가 있 었 습니다 . 제 가 함수 의 역할 을 잘못 판단 하 는 경우 죠 . 개발 할 때 forEach 와 map 을 종종 헷갈리 곤 했 습니다 . 배열 을 순서 대로 돌 면서 어떤 행동 을 할지 정의 하 는 함수 라 크 게 다르 지 않 다고 생각 했 거든요 . 이런 저 의 생각 을 우리 형 은 늘 못 마땅 해했 습니다 . 두 함수 의 역할 이 분명히 다르 다는 겁니다 . 이름 이 다르 니까 분명 뭐 가 다르 겠 지 싶 었 지만 , 뭐 가 다른지 이해 하 기 어려웠 습니다 . 사용 해 보 면 크 게 다르 지 않 거든요 . 형 은 어리둥절 하 는 저 를 보 곤 이렇게 말 했 습니다 . “ 리턴 값 을 한번 봐 . ” 
 리턴 값 의 차이 
 두 함수 의 리턴 값 은 분명 달랐 습니다 . forEach 는 undefined 를 반환 했 고 map 은 배열 을 반환 했 죠 . 가만 보 니 map 은 이름 대로 결 괏 값 을 매핑 하 는 함수 인 것 같 았 습니다 . 심지어 forEach 가 하 는 일 ( 순회 ) 도 할 수 있 었 습니다 . 이제 는 forEach 대신 map 만 쓰 면 되 겠 구나 싶 었 습니다 . 형 은 반 만 맞 았 다고 말 했 습니다 . 단순히 순차 적 으로 조회 할 땐 forEach 를 써야 한다고 했 습니다 . 역할 에 맞 는 순간 에 사용 해야 한다는 것 이 었 죠 . 왜 굳이 두 개 를 따로 써야 하 는지 저 는 여전히 의문 이 었 습니다 . 
 극단 적 인 상황 이 지만 속도 가 두 배 가까이 차이 가 났 습니다 . 생각 해 보 니 이유 는 분명 했 습니다 . map 이 하 는 일 이 더 많 았 기 때문 이 죠 . 정말 결 괏 값 을 이용 하 기 위해 , 매핑 하 기 위해 사용 하 는 게 아니 라면 forEach 를 사용 하 는 게 맞 다는 확신 이 생겼 습니다 . 성능 적 으로 손해 를 보 기 싫 다면 말 이 죠 . 미비 한 차이 지만 이렇게 역할 의 차이 를 분명히 알 고 필요 에 맞 게 골라 쓰 는 게 함수 형 , 우리 형 의 매력 이 라는 생각 이 드 네요 . 
 forEach , javascript , map , 든든 한 우리 형 , 함수 형 프로그래밍