LC·Dict

monkey patch

숙어C1
/ˈmʌŋ.ki ˌpætʃ/

프로그램 실행 중에 기존 코드나 객체를 임시로 바꾸는 것

phrase

  1. 1

    소프트웨어에서 원래 코드를 직접 바꾸지 않고 실행 중에 기존 함수, 클래스, 모듈 등의 동작을 수정하거나 덮어쓰는 것C1

    a change to a program’s existing behavior made at runtime, especially by replacing or modifying a function, class, or module without changing the original source code

    • We used a monkey patch to fix the library bug until the official update was released.

      공식 업데이트가 나오기 전까지 그 라이브러리 버그를 고치려고 몽키 패치를 사용했다.

    • The test suite monkey-patches the network call so it does not contact the real server.

      테스트 스위트는 실제 서버에 접속하지 않도록 네트워크 호출을 몽키 패치한다.

뉘앙스 · 쓰임

일반적인 patch는 버그를 고치기 위한 수정 전반을 뜻하지만, monkey patch는 특히 원래 코드나 라이브러리를 직접 수정하지 않고 실행 중에 몰래 덮어쓰거나 바꾸는 느낌이 강합니다. hotfix는 긴급 수정이라는 시간적 뉘앙스가 있고, workaround는 근본 해결이 아닌 우회책이라는 뜻이 더 강합니다. monkey patch는 편법적이고 유지보수 위험이 있다는 부정적 뉘앙스를 동반하는 경우가 많습니다.

주로 프로그래밍 문맥에서 사용합니다. 명사로는 보통 “a monkey patch”라고 하고, 동사로는 “monkey-patch”처럼 하이픈을 넣어 쓰는 경우가 많습니다. 공식 문서나 코드 리뷰에서는 임시방편·위험한 수정이라는 인상을 줄 수 있으므로, 필요한 이유와 범위를 명확히 설명하는 것이 좋습니다.

유의어 뉘앙스 비교

runtime patch
실행 중 수정이라는 기술적 의미를 더 직접적으로 설명하며, monkey patch보다 중립적입니다.
hotfix
긴급 수정이라는 뜻이 강하고, 반드시 실행 중에 기존 동작을 덮어쓴다는 의미는 아닙니다.
workaround
문제를 근본적으로 고치기보다 우회하는 방법이라는 뉘앙스가 강합니다.

반의어

official patch
원 제작자나 유지보수자가 제공하는 정식 수정이라는 뜻입니다.
source code change
실행 중 덮어쓰기가 아니라 원본 소스 자체를 수정한다는 점이 다릅니다.

어원 · 암기 팁

[English]정확한 유래는 확실하지 않지만, 컴퓨터 프로그래밍 문화에서 생긴 표현입니다. patch는 프로그램을 수정하는 ‘패치’를 뜻하고, monkey는 장난스럽거나 임시방편적인 느낌을 더해, 다소 비공식적이고 위험할 수 있는 코드 수정을 가리키게 된 것으로 설명됩니다.

💡 원숭이가 기계에 몰래 손을 대서 임시로 고쳐 놓는 모습을 떠올리면, 원본 코드를 정식으로 고치지 않고 실행 중에 슬쩍 바꾸는 monkey patch의 의미를 기억하기 쉽습니다.