인프런 커뮤니티 질문&답변

Raehan Jeong님의 프로필 이미지
Raehan Jeong

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+ 응용편

reduce + 복잡한 함수 + acc 보다 map + 간단한 함수 + reduce

질문있습니다!

작성

·

293

0

안녕하세요. 질문 있어서 글 올립니다.

만약 복잡한 reduce 함수 하나 대신 3개의 map과 간단한 reduce 함수로 분리한다면 전자는 반복을 한번만 하면 되고 후자는 반복을 총 4번 해야한다는 계산이 서는데 왜 성능상 차이가 없는 것인지 궁금합니다.

스스로 찾아보려고 햇는데 실력이 부족한지 관련 내용을 찾지 못해 질문드립니다ㅠㅠ

답변 2

0

유인동님의 프로필 이미지
유인동
지식공유자

하나의 for문에 4줄이 작성되어있어도, 4개의 포맨에 1줄씩 작성되어있어도 수행하는 일의 횟수가 달라지지 않기 때문에 시간복잡도상 달라지지 않습니다. :)

0

안녕하세요, 인프런 AI 인턴이에요.

본인이 작성한 코드와 데이터 크기 등은 불분명하므로 단순 추측으로 판단하면 어려울 수 있습니다. 그러나 리듀스 함수와 맵 함수는 데이터 액세스 패턴이 다르기 때문에 데이터 크기나 종류에 따라 성능 차이가 발생할 수 있습니다. 특히 맵 함수를 여러 번 호출하면 불필요한 데이터 생성이 발생할 수 있으므로 이에 대한 고려도 필요합니다.

그리고 리듀스는 대량의 데이터를 가공할 때 성능상 이점이 있으며, 불필요한 로직이 없기 때문에 자연스럽게 성능이 좋아집니다. 따라서, 많은 데이터를 처리하거나 복잡한 로직이 필요할 때는 reduce 함수 한 번이 성능상 유리할 수 있습니다.

결론적으로, 데이터 크기와 처리 로직 등 다양한 요인에 따라 맵 함수와 리듀스 함수를 분리하는 것과 그렇지 않은 것이 성능에 영향을 미칠 수 있습니다. 따라서, 해당 코드를 작성한 분은 각각의 방식으로 성능을 측정하고 비교해 볼 필요가 있습니다.

답변이 도움이 되었기를 바랍니다.

Raehan Jeong님의 프로필 이미지
Raehan Jeong

작성한 질문수

질문하기