TIL - 0619

잡담

오늘은 업무를 좀 볼게 있어서 짧게나마 파이썬 공식문서 번역하면서 몰랐던 용어를 정리해야겠다. 내일 TIL에는 몽키패지 문제점, 그리고 mock이 그럼 안티 패턴인지에 대해 생각해볼것


몽키패치

A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program)..

몽키패치 예

테스트를 위해 시간을 조정해야하는 경우가 있는데 이는 운영체제에서 관리한다. 따라서 시스템 시간을 조작하는 대신 프로그래밍 언어 레벨에서 시간 정보와 관련된 내장/외부 패키지를 오버라이딩 혹은 래핑하는 방식으로 제어하는 방법 => 런타임 중에 프로그램 메모리를 직접 건드려 소스를 변경하는 것

>>> import math
>>> math.pi
3.141592653589793
>>> math.pi = 3
>>> math.pi
3
>>> ================================ RESTART ================================
>>> import math
>>> math.pi
3.141592653589793
>>>

어원

생각보다 어원이 재밌어서 참고자료로.. 몽키패치 어원

그렇다면 python unittest.mock은 mㅂonkey patch 인가?

unittest.mock()은 일부 테스트 결과를 위해 몽키패치를 이용함

참고

Monkey Patch Monkey Patch Example