[javascript] 클로저를 활용한 private 변수 생성

자바스크립트에서 private 변수를 만드는 방법 중 하나는 클로저(closure)를 활용하는 것입니다. 클로저를 사용하면 함수 내에서 변수를 은닉하고 외부에서 접근하지 못하도록 할 수 있습니다.

일반적으로, 함수 내에서 변수를 선언하면 해당 변수는 지역 변수로 취급되어 함수 외부에서 접근할 수 없습니다. 하지만 클로저를 사용하면 이러한 변수에 접근할 수 있는 함수를 반환할 수 있습니다.

예를 들어, 다음과 같이 클로저를 사용하여 private 변수를 만들 수 있습니다.

function createCounter() {
  let count = 0;  // private 변수

  return {
    increment: function() {
      count++;
    },
    decrement: function() {
      count--;
    },
    getCount: function() {
      return count;
    }
  };
}

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

위 예제에서 createCounter 함수는 클로저를 사용하여 count라는 private 변수에 접근할 수 있는 함수들을 반환합니다. 외부에서 count 변수에 직접 접근할 수는 없지만 반환된 객체를 통해 increment, decrement, getCount 함수를 사용하여 count 변수를 조작하고 조회할 수 있습니다.

이러한 방식으로 클로저를 활용하면 private 변수를 쉽게 만들 수 있으며, 정보 은닉캡슐화를 통해 안전한 코드를 작성할 수 있습니다.

더 많은 정보를 원하시면 MDN web docs에서 클로저에 대해 더 많이 알아볼 수 있습니다.