[javascript] 클로저를 사용한 캡슐화

자바스크립트에서 클로저를 사용하여 데이터를 캡슐화할 수 있습니다. 클로저를 사용하면 외부에서 접근할 수 없도록 보호되는 데이터와 함수를 만들 수 있습니다.

클로저란 무엇인가?

클로저는 내부 함수가 자신이 선언됐을 때의 환경을 기억하는 함수를 가리킵니다. 이를 통해 내부 함수에서 외부 변수를 사용하거나, 외부에서 해당 함수의 환경을 조작할 수 있습니다.

클로저를 사용한 캡슐화 예제

아래는 클로저를 사용하여 변수를 캡슐화하는 간단한 예제입니다.

function createCounter() {
  let count = 0;

  function increment() {
    count++;
  }

  function decrement() {
    count--;
  }

  function getCount() {
    return count;
  }

  return {
    increment,
    decrement,
    getCount
  };
}

const counter = createCounter();
counter.increment();
counter.increment();
console.log(counter.getCount()); // 출력: 2

위 예제에서 count 변수는 createCounter 함수 내부에서만 접근할 수 있습니다. increment, decrement, getCount 함수를 통해 count 변수에 접근하고 조작할 수 있으므로, 외부에서 직접 count에 접근할 필요가 없습니다.

클로저를 사용한 캡슐화의 장점

클로저를 사용한 캡슐화의 장점은 외부에서 보호되는 데이터에 안전하게 접근할 수 있다는 것입니다. 이를 통해 코드의 안정성을 유지할 수 있고, 의도치 않은 데이터 변경을 방지할 수 있습니다.

마치며

클로저를 사용하여 캡슐화를 구현하는 것은 데이터 보호와 코드의 안정성을 유지하는 데 도움이 되는 강력한 도구입니다. 적절히 활용하여 안전하고 유지보수 가능한 코드를 작성할 수 있습니다.