JavaScript - 고차 함수 사용 시 주의점 및 코드 리뷰
익스랩 최고 관리자
·2023. 7. 30. 20:25
안녕하세요
오늘은 JavaScript의 고차 함수를 사용하면서 주의해야하는 성능 문제에 대해 이야기하려고 합니다. 이번에 문의 받은 코드 리뷰 중 이문제를 잘 보여주는 코드가 있어서 들고왔습니다.
문제의 발견
function expensiveOperation(element) {
// This is a time-consuming operation
}
let arr = Array.from({length: 10000}, (_, index) => index);
arr.forEach(expensiveOperation);
위 코드는 배열의 각 요소에 대해 시간이 많이 소요되는 연산을 수행하는 'expensiveOperation' 함수를 호출합니다. 그런데 이 경우, 'forEach'는 해당 함수의 배열의 모든 요소에 대해 호출하므로, 중간에 조건에 따라 반복을 중단할 수 없습니다.
해결 방안
이 문제를 해결하기 위해서 우리는 고전적인 'for' 루프를 사용하여 중간에 반복을 중단할 수 있도록 할 수 있습니다. 아래와 같이 수정해보겠습니다.
function expensiveOperation(element) {
// This is a time-consuming operation
}
let arr = Array.from({length: 10000}, (_, index) => index);
for(let i = 0; i < arr.length; i++) {
// Adding a break condition
if (i === 5000) break;
expensiveOperation(arr[i]);
}
위와 같이 수정하면, 원하는 조건(i === 5000)에 도달했을 때, 반복을 중단할 수 있습니다.
마무리
이처럼 'forEach'와 같은 고차 할수의 편리함을 즐기면서도, 성능에 미치는 영향을 이해하는 것은 매우 중요한 것 같습니다. 다음 포스팅에서도 코드 리뷰를 통해 JavaScript 성능 개선 방안을 함께 알아보겠습니다.
코드 리뷰 문의 주세요.
함수 리뷰를 기본으로 합니다.
생각 못한 다양한 예외 상황이나
이상 코드 피드백 드립니다.
'IT 언어 연구소 > 코드 리뷰 모음집' 카테고리의 다른 글
Vue3로 마스터하는 동적 라우트 전환 효과 router transition (0) | 2023.08.03 |
---|---|
클로저와 스코프 깊이 이해 - 이벤트 리스너와 함께 사용할 때의 주의 점 및 코드 리뷰 (0) | 2023.07.31 |
JavaScript - Promise 잘못 사용 시 주의점 및 코드 리뷰 (0) | 2023.07.31 |
React - 성능 최적화, 불필요한 렌더링 방지를 위한 코드 리뷰 (0) | 2023.07.30 |
Python - 사용자 입력받아 피라미드 높이 구하는 코드 리뷰 (0) | 2023.07.29 |