[javascript] 클로저를 사용한 자주 사용되는 로직 추출
개발자들은 종종 비슷한 로직을 여러 곳에 반복해서 사용해야 할 때가 있습니다. 이런 상황에서 클로저를 사용하면 중복 코드를 효과적으로 제거할 수 있습니다. 클로저는 함수와 그 함수가 선언될 때의 렉시컬 환경(Lexical Environment)을 함께 기억하는 함수입니다. 이 기능을 활용하여 자주 사용되는 로직을 추출하여 재사용 가능한 모듈로 만들 수 있습니다.
클로저 사용 예시
아래는 클로저를 사용하여 자주 사용되는 로직을 한 곳에 모아둔 간단한 예시입니다.
function createCounter() {
let count = 0;
return function() {
count++;
console.log(count);
};
}
const counter1 = createCounter();
const counter2 = createCounter();
counter1(); // 1
counter1(); // 2
counter2(); // 1
위 예시에서 createCounter
함수는 클로저를 사용하여 count
변수를 기억하고 있는 내부 함수를 반환합니다. 각각의 counter1
, counter2
는 독립된 렉시컬 환경을 가지고 있기 때문에 서로 독립적으로 count
변수를 유지하면서 동작합니다.
이런 식으로 클로저를 사용하면 같은 로직을 반복해서 작성하지 않고도 중복을 효과적으로 제거할 수 있습니다.
클로저의 장단점
장점
- 중복 로직을 효과적으로 제거할 수 있음
- 외부에서 보이지 않는 상태 정보를 유지할 수 있음
단점
- 메모리 누수가 발생할 수 있음
- 지나치게 사용하면 코드를 이해하기 어려워질 수 있음
클로저를 사용할 때는 이러한 장단점을 고려하여 신중하게 사용해야 합니다.
클로저를 효과적으로 사용하면 코드의 재사용성을 높이고 중복을 줄여 유지 보수가 용이한 코드를 작성할 수 있습니다. JavaScript 뿐만 아니라 다른 프로그래밍 언어에서도 클로저를 활용하여 코드를 개선할 수 있습니다.
참고 자료:
이상입니다. 별도의 문의 사항이 있으시면 언제든지 질문해 주세요.