본문 바로가기
javascript pure/javascript 코어 개념

23. 함수형 프로그래밍(Functional Programming) - 2

by leo2114 2024. 2. 17.
반응형

불변성(Immutability)과 레퍼런셜 투 트루(Reducing to True)

불변성(Immutability)

불변성은 데이터가 생성된 후에는 그 상태를 변경할 수 없는 것을 의미합니다. 이는 데이터의 변경을 허용하지 않고, 새로운 데이터를 생성하는 방식으로 작업을 수행합니다. 불변성은 함수형 프로그래밍에서 중요한 개념으로, 코드의 예측 가능성과 안정성을 높여줍니다. JavaScript에서는 객체나 배열의 불변성을 유지하기 위해 라이브러리나 내장 메서드를 활용할 수 있습니다.

 

핵심 내용:

  • 불변성은 데이터가 생성된 후에는 변경할 수 없는 것을 의미합니다.
  • 데이터의 변경이 필요할 때는 새로운 데이터를 생성하여 사용합니다.
  • 불변성은 코드의 예측 가능성과 안정성을 높여주며, 다중 스레드 환경에서 안전성을 보장합니다.

예시:

// 배열의 불변성 유지 예시: concat 메서드 활용
const arr1 = [1, 2, 3];
const arr2 = arr1.concat(4);

console.log(arr1); // Output: [1, 2, 3]
console.log(arr2); // Output: [1, 2, 3, 4]

레퍼런셜 투 트루(Reducing to True)

레퍼런셜 투 트루는 배열이나 컬렉션을 평가하여 조건에 부합하는 요소를 찾는 과정을 말합니다. 주로 배열의 요소를 조건에 따라 필터링하거나 특정 값을 찾는 데 사용됩니다. JavaScript에서는 배열 메서드인 reduce를 활용하여 레퍼런셜 투 트루를 구현할 수 있습니다.

 

핵심 내용:

  • 레퍼런셜 투 트루는 배열이나 컬렉션을 평가하여 조건에 부합하는 요소를 찾는 과정을 말합니다.
  • 주어진 조건에 따라 필터링하거나 특정 값을 찾는 데 사용됩니다.
  • JavaScript에서는 배열 메서드인 reduce를 활용하여 레퍼런셜 투 트루를 구현할 수 있습니다.

예시:

// 레퍼런셜 투 트루 예시: reduce 메서드 활용
const numbers = [1, 2, 3, 4, 5];

// 배열의 요소 중 홀수를 모두 더하는 예시
const oddSum = numbers.reduce((acc, cur) => {
    if (cur % 2 !== 0) {
        return acc + cur;
    }
    return acc;
}, 0);

console.log(oddSum); // Output: 9 (1 + 3 + 5)

 

불변성과 레퍼런셜 투 트루는 모두 함수형 프로그래밍에서 중요한 개념으로, 코드를 더 안정적이고 예측 가능하게 만들어줍니다. 이러한 개념을 활용하여 JavaScript 코드를 작성하면 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

반응형