728x90
반응형

1. Closure에 대해 설명해주세요.

클로저 함수 안에 또 다른 함수가 있을 때, 안쪽의 함수가 바깥쪽의 함수의 변수에 접근할 수 있도록 해주는 기능입니다. 이를 통해 안쪽의 함수는 바깥쪽의 함수가 끝나고 사라진 후에도 그 변수를 계속 사용할 수 있습니다.

이렇게 클로저를 사용하면 변수를 보호하거나 데이터를 숨기는 등의 기능을 구현할 수 있습니다. 

클로저에 의해 참조된 변수를 자유변수라고 합니다. 

 

🔥꼬리질문🔥

< 요즘에는 클로저를 쓰는 경우가 거의 없는데 그 이유는 무엇이며, 클로저를 대신하는 건 뭐가 있나요? >

클로저는 JavaScript에서 강력한 도구가 될 수 있지만 복잡할 수도 있습니다. 
클로저는 함수가 종료된 후에도 외부 변수에 액세스할 수 있으므로 메모리 누수의 원인이 될 수 있습니다. 
클로저는 또한 코드를 복잡하게 만들 수 있으므로 이해하고 유지 관리하기 어려울 수 있습니다.
이러한 이유로 최근에는 클로저를 사용하지 않는 경우가 많습니다. 
클로저를 대신하여 클로저의 이점을 제공하지만 복잡하거나 메모리 누수의 원인이 되지 않는 다른 기술이 사용됩니다. 
이러한 기술에는 객체 지향 프로그래밍, 모듈 시스템 및 고차 함수가 포함됩니다.
객체 지향 프로그래밍은 개체를 사용하여 데이터와 기능을 그룹화하는 방법입니다. 
객체는 클로저 없이 데이터를 유지하는 데 사용할 수 있으며 클로저의 메모리 누수 위험을 제거할 수도 있습니다.
모듈 시스템은 코드를 독립적인 단위로 구성하는 방법입니다. 
모듈은 클로저 없이 코드를 모듈화하고 재사용 가능하게 만드는 데 사용할 수 있습니다.
고차 함수는 다른 함수를 인수로 취하거나 함수를 반환하는 함수입니다. 
고차 함수는 클로저 없이 코드를 더 간결하고 효율적으로 만드는 데 사용할 수 있습니다.

 

< 클로저 사용시 주의해야 할 점은 무엇인가요? >

의도하지 않은 변수 참조: 클로저는 외부 함수 내의 변수에 액세스할 수 있습니다. 따라서 클로저를 사용하지 않을 때는 의도하지 않은 변수에 액세스하지 않도록 주의하는 것이 중요합니다.
메모리 누수: 클로저는 함수가 종료된 후에도 외부 변수에 액세스할 수 있습니다. 따라서 클로저를 사용하지 않을 때는 외부 변수를 해제하는 것이 중요합니다.
복잡성: 클로저는 코드를 복잡하게 만들 수 있습니다. 따라서 클로저를 사용하는 경우 코드가 이해하고 유지 관리하기 쉬운지 확인하는 것이 중요합니다.

 

< 클로저를 사용하는 것이 어떤 이점이 있나요? >

콜백 함수: 클로저는 콜백 함수를 만드는 데 사용할 수 있습니다. 콜백 함수는 나중에 호출될 함수입니다. 
클로저는 이벤트 핸들러, 타이머 및 기타 비동기 작업과 같은 콜백 함수를 만드는 데 사용할 수 있습니다.
상태 유지: 클로저는 함수가 종료된 후에도 데이터를 유지하는 데 사용할 수 있습니다. 이것은 타이머, 로깅 및 기타 데이터를 추적해야 하는 애플리케이션에 유용할 수 있습니다.
고차 함수: 클로저는 고차 함수를 만드는 데 사용할 수 있습니다. 고차 함수는 다른 함수를 인수로 취하거나 함수를 반환하는 함수입니다. 
고차 함수는 코드를 더 모듈화되고 재사용 가능하게 만드는 데 사용할 수 있습니다.
동적 기능: 클로저는 동적 기능을 만드는 데 사용할 수 있습니다. 동적 기능은 호출될 때까지 정의되지 않는 함수입니다. 
클로저는 템플릿 엔진, 데이터 바인딩 및 기타 동적 기능을 만드는 데 사용할 수 있습니다.

728x90
반응형

+ Recent posts