Contents

Closure(클로저)에 대하여

   Aug 3, 2023     1 min read

Closure(클로저)에 대한 글입니다.

JS를 공부하다 보면 함수형 프로그래밍에 대해 많이 접할 수 있습니다. 함수형 프로그래밍에는 빠지지 않고 등장하는 개념이 있는데 일급 함수(first-class functions)와 클로저(closure)입니다.

오늘은 클로저에 대해 알아보겠습니다.

Gradle 이란?

Gradle(그래들)은 현대적인 빌드 자동화 시스템과 빌드 도구입니다. 안드로이드 프로젝트뿐만 아니라 다양한 플랫폼과 언어의 프로젝트에서도 사용됩니다. Java, Kotlin, Groovy 등 다양한 언어로 작성된 프로젝트를 빌드할 수 있으며, 빌드 스크립트를 통해 프로젝트를 구성하고 관리하는데 사용됩니다.

Gradle의 정의와 역할에 대해서 알게 되었습니다. 그럼 이제 Gradle의 주요 특징을 알아보겠습니다.

클로저란 무엇일까요?

클로저(closure)는 함수와 그 함수가 선언될 때의 환경 정보 사이의 조합입니다. 다시 말해, 클로저는 함수 내부에 있는 로컬 변수들이 함수의 실행이 끝나도 사라지지 않고 유지되는 특성을 말합니다.

특징

클로저의 중요한 특징은 내부 함수가 외부 함수의 변수에 접근할 수 있으며, 외부 함수가 종료된 후에도 그 상태를 기억한다는 점입니다.

예시

function makeAdder(x) {
  return function (y) {
    return x + y;
  };
}

let add5 = makeAdder(5);
console.log(add5(2)); // 출력: 7

위의 예제에서 makeAdder는 클로저를 반환합니다. add5라는 변수는 makeAdder 함수에 의해 반환된 함수를 저장하고 있습니다. 이 함수는 makeAdder 함수의 매개변수 x에 접근할 수 있으며, makeAdder 함수의 실행이 끝난 후에도 x의 상태를 기억합니다. 그래서 add5(2)를 실행하면, 이전에 저장된 x 값인 5와 새로운 입력 2를 더한 결과 7을 출력합니다.

결론

이러한 클로저의 특성은 데이터를 숨기고 캡슐화하는데 유용하게 사용될 수 있습니다.