프로그래밍을 할 때, 동일한 기능을 구현하는 다양한 방법이 있다. 자바스크립트에서는 반복문과 조건문을 사용하는 전통적인 접근법과, 내장 함수를 활용하는 현대적인 접근법이 존재하는데 이번 글에서는 이 두 방법의 차이점을 알아보려 한다.
for, while 반복문과 if 조건문을 사용하여 로직을 구성하는 방법 등의 접근법.
.filter(), .map(), .reduce() 등과 같은 배열의 내장 함수를 사용하는 방법 등의 접근법.
배열에서 양의 정수만을 뽑아 합을 구하는 작업을 수행하는 두 가지 방법을 보여주는 간단한 자바스크립트 코드를 예시로 들어보자.
// 예제 배열
const numbers = [1, -2, 3, 4, -5, 6];
이런 배열이 존재하고, 여기에서 양의 정수만 뽑아 합을 구한다고 해보자. 이를 위해서는 전통적인 for 반복문을 사용하는 방법이고, 다른 하나는 filter()와 reduce()를 사용하는 현대적인 함수형 접근법을 사용해볼 수 있다.
// 전통적인 접근법: for 반복문 사용
function sumPositiveNumbersTraditional(array) {
let sum = 0;
for (let i = 0; i < array.length; i++) {
if (array[i] > 0) {
sum += array[i];
}
}
return sum;
}
// 현대적인 접근법: filter와 reduce 사용
function sumPositiveNumbersModern(array) {
return array.filter(num => num > 0).reduce((acc, num) => acc + num, 0);
}
이 두 접근법은 동일한 결과를 반환하지만, 코드의 구조나 가독성 등에서 차이를 보이게 된다.
결국 어떤 방식이 더 좋고, 우월하다고 할 수는 없다. 개발 상황과 요구사항 등에 따라서 알맞는 방법을 선택하면 된다. 복잡하고 세밀한 제어가 필요한 경우 전통적인 접근이 유리할 수 있지만, 간결하고 가독성이 중요한 상황에서는 내장 함수를 사용하는 것이 더 적합할 수 있다.
효율적인 코드를 작성하기 위해서는 각 접근법의 장단점을 이해하고, 주어진 문제에 가장 적합한 도구를 선택하는 능력이 중요하다. 이를 위해서는 다양한 방법을 시도하고 경험을 쌓는 것이 중요하다고 할 수 있다.