728x90
closure 기법이란 자바스크립트에서 사용하는 정보은닉의 한 방식입니다.
자바스크립트이 변수는 어디에서나 접근 가능하고 쉽게 변경할 수 있습니다.
하지만 외부에서 접근을 막고 변수 값이 변경되는 것을 막아야하는 때가 있습니다.
그럴 때 데이터 보호차원에서 클로저(closure) 방식을 사용하는 것입니다.
function increment() {
let saveNumber = 1;
return function() {
return saveNumber++;
}
}
let value = increment();
console.log(value()); // 1
console.log(value()); // 2
console.log(value()); // 3
함수 안에 사용할 변수를 선언하고, 선언한 변수는 외부에서 접근하지 못하도록 합니다.
그리고 함수에서 결과값을 리턴하고 그 결과값을 또 다른 변수에 저장해서 사용합니다.
이렇게 하면 함수 내부에 선언한 접근&변경을 할 수 없게 됩니다.
새로운 변수에 함수를 호출하는 순가 함수 내부의 변수가 선언되고 고정되는 셈이죠.
함수를 받은 변수만으로 값을 컨트롤하는 이러한 방식이 클로저이며, 정보은닉을 구현한 것입니다.
클로저 방식 외에도 타입스크립트에서 정보은닉하는 방식이 있습니다.
타입스크립트의 class 내부의 접근제어자를 사용하면 됩니다.
접근제어자는 public, private, protected 3가지가 있는데 이중에 상황에 맞는 접근제어자를 class 속성 앞에 붙여서 사용하면 됩니다.
접근제어자의 자세한 설명은 이전 포스트글을 참조하시면 좋을 것 같습니다.
728x90
'javaScript' 카테고리의 다른 글
javaScript - 객체의 병합(깊은 복사, 얕은 복사) (0) | 2021.08.05 |
---|---|
javaScript - 프로세싱 코드모음 (0) | 2021.08.04 |
javaScript - context 문법 (0) | 2021.07.27 |
javaScript - 배열2 배열 연산 (0) | 2021.07.22 |
javaScript - 배열1 배열 메소드 (0) | 2021.07.22 |
댓글