← Back to NOTES 🌰
← Effective JavaScript 🤿
← 아이템 40 - 표준 클래스를 상속하지 마라
핵심 요약
몽키 패칭(monkey patching)은 기존 객체의 프로토타입에 메서드를 동적으로 추가하거나 수정하는 기법이다. 유용할 수 있지만 라이브러리 충돌, 예측 불가능한 부작용, 코드 유지보수성 저하를 초래할 수 있다. 몽키 패칭은 최소화하고, 반드시 필요한 경우 polyfill 목적으로만 사용하며, 선택적으로 활성화할 수 있는 구조로 설계해야 한다.
자세한 내용
몽키 패칭의 위험성
- 라이브러리 충돌: 같은 이름의 메서드를 서로 다른 라이브러리가 추가할 때 덮어쓰기 발생
- 전역 오염: 프로토타입 수정이 애플리케이션 전체에 영향
- 디버깅 어려움: 예상치 못한 메서드 존재로 인한 혼란
- 호환성 문제: 브라우저나 플랫폼별 동작 차이
안전한 대안
- 네임스페이스 활용: 전용 객체에 유틸리티 함수 정의
- 선택적 활성화: 사용자가 명시적으로 활성화하는 구조
- Polyfill 패턴: 표준 API 부재 시에만 추가
- Mixin 패턴: 개별 객체에 기능 추가
허용되는 몽키 패칭
- 표준 polyfill 구현
- 명확히 문서화된 확장
- 사용자가 제어 가능한 옵션