관리 메뉴

ARTIFEX ;)

몽키패치(Monkey patch)란? 본문

# Develop or Testing/개발 참고용

몽키패치(Monkey patch)란?

Artifex_Ethan_ 2020. 4. 17. 22:08
반응형
*몽키패치(Monkey Patch) :
 
몽키패치란
일반적으로 런타임 중인 프로그램 메모리의 소스 내용을 직접 바꾸는 것이다.
 
몽키패치의 어원을 찾아보았는데 이게 상당히 재밌다.
 
원래 "게릴라 패치" 였는데 (guerrilla patch)
발음의 유사성 때문에 사람들이 "고릴라 패치" 라고 쓰기 시작했다. (gorilla patch)
 
근데 "고릴라" 라고 하면 좀 무섭고 위험하게 들리므로 (CEO 에게)
고릴라보다 덩치가 작은 "원숭이 패치" 로 부르게 됐다고 한다. (monkey Patch)
 
프로그램을 확장하거나, 로컬 시스템 소프트웨어를 지원하고 수정하는 방법이다.(그냥 런타임 중 코드를 수정한다는 의미) - 오직 실행중인 프로그램의 인스턴스에 영향을 미친다.
 
+ 런타임상에서 함수, 메서드, 속성을 바꾸는 것을 말한다.
 
코드가 없는 서드파티 제품을 사용하는 중 기능을 변경하거나 확장 등을 위해 사용하며, 런타임 실행중 메모리상의 오브젝트에 적용된다.
 
(C#,Swift의 경우 기능변경은 불가하지만, 확장은 가능하도록 설계했다.)
 
일반적으로 개발자들 사이에서 몽키패치는 안티패턴으로 인식된다고 한다.
반응형