JavaScript IIFE 싱글톤 패턴으로 상태 관리하기
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

자바스크립트에서 IIFE를 이용한 싱글톤 패턴으로 상태 관리하기

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

- 초보~중급 자바스크립트 개발자

- 라이브러리/유틸리티 개발자

- 리액트/바벨 등 프레임워크 외부에서 작업하는 개발자

- 경량 상태 관리 솔루션 필요자

핵심 요약

  • 싱글톤 패턴 + IIFE를 통해 경량 상태 관리 구현 가능
  • configManager.set()/configManager.get() 메서드로 제어된 접근 제공
  • 프레임워크 의존 없이 전역 상태/설정 관리 가능 (예: API_BASE_URL, theme, language)

섹션별 세부 요약

1. 문제 상황

  • Redux, Zustand 등 상태 관리 라이브러리 사용이 과도한 경우
  • 작은 유틸리티, 프레임워크 비종속 위젯, 단순 전역 설정 필요 시
  • 전역 변수 사용 시 전역 오염 위험 발생

2. 싱글톤 + IIFE 구현

const configManager = (() => {
  let config = {};
  return {
    set(key, value) { config[key] = value; },
    get(key) { return key ? config[key] : config; }
  };
})();
  • IIFE로 블로킹 스코프 생성
  • config 객체 비공개 상태 유지
  • set/get 메서드로 제어된 접근 제공

3. 사용 예시

  • configManager.set("theme", "dark")
  • configManager.get("theme")"dark"
  • configManager.get(){ theme: "dark", language: "en" }
  • 비동기/리액티브 처리 필요 없음

4. 장점

  • 0 의존성, 경량 (라이브러리 불필요)
  • 프레임워크 종속성 없음 (리액트/바벨 외부에서도 사용 가능)
  • 상태 변경 제어불필요한 변동 방지

5. 적용 사례

  • 전역 설정 관리: API_BASE_URL, locale, featureToggles
  • 테마/언어 설정: dark, light, en, fr
  • 라이브러리/위젯 내부 상태 관리

결론

  • 경량 상태 관리가 필요한 경우 싱글톤 + IIFE 패턴 사용 권장
  • 전역 오염 방지제어된 상태 조작 가능
  • React/Redux 사용이 불필요한 프로젝트에 특히 효과적