2. 클로저

클로저(Closure)

클로저를 이해하기 위해선 먼저 '스코프'라는 개념에 대해 숙지하고 있어야합니다.
구글에 JavaScript Scope 검색 후 해당 개념 숙지한다면 더 수월하게 읽을 수 있습니다.

추후 내용이 정정, 추가될 수 있습니다.

클로저란

  • 함수가 종료되었음에도 불구하고 그 함수를 외부에서 참조하고 있어서 마치 남아있는 것처럼 동작하는 것

    모든 함수에는 Life Cycle이라는 것이 존재합니다. 함수의 생애주기가 종료되었음에도 불구하고 외부의 참조로 인해 마치 존재하는 것처럼 여겨지는 것이 클로저의 특징입니다.

  • 메모리 차원에서 손해를 볼 수 있지만 JavaScript의 강력한 기능이므로 적극 사용할 필요가 있습니다.

  • 현재 상태를 기억하고 변경탠 최신 상태를 유지하는 데 사용합니다.

  • 전역 변수의 사용을 억제하고 타 프로그래밍 언어의 접근 제한자 private을 흉내낼 수 있습니다.

클로저의 장점

  • 데이터의 보존

    • 특정 데이터를 스코프 안에 가두어 폐쇄성을 유지합니다.

  • 캡슐화

    • '객체'에 담아 여러 함수를 리턴하도록 만들어 정보의 접근 제한을 가능하게 합니다.

  • 모듈화

    • 함수를 '독립적인 기능을 하는 최소한의 단위'인 모듈로 분리해 재사용성을 극대화합니다.
    • 클로저를 통해 데이터와 메서드를 묶어다닐 수 있기 때문에 모듈화에 유리합니다.

핵심?

스코프를 이용해서 변수의 접근 범위를 폐쇄적으로 다루는 것
자주 사용하는 변수를 전역으로 선언한다면
보안에 취약하고 오류를 추적하는 데 어려움을 겪을 수 있다.
클로저를 통해 이를 방지할 수 있고 비슷한 형태의 코드 재사용률을 높일 수 있다.

좋은 웹페이지 즐겨찾기