ThePragmaticProgrammer가 써먹는 ComputerProgramming기법중 하나. 시스템을 바꾸고, 변경하는 작업을 하는 동안, 항상 시스템이 망가질 위험요소, 새로운 버그의 가능성이 존재한다. 따라서 Configurable한 시스템을 만드는 것이 중요하다. '''Configure, Don't Integrate''' configuration option(tuning parameter, user preferences and so on)을 묘사할 때 MetaData를 써서 MetaData가 주도하는 시스템을 만들도록 한다. 이런 방법은 시스템을 보다 dynamic and adaptable하게 만든다. 장점을 열거하면, * [[Design]] decoupling (->) flexible, adaptable * more robust, abstract [[Design]] * customize without recompiling * MetaData can be expressed in problem domain * different project using same application engine but with different MetaData 기술적지원 * EnterpriseJavaBeans * AspectOrientedProgramming 관련정보 * [[http://holgerkrekel.net/2012/11/22/metaprogramming-in-python-what-pypy-pyramid-pytest-have-in-common/|Metaprogramming in Python]] MetaData를 사용한 configuration option적용은 시스템재시작없이 되도록 하면 좋다. MetaData를 다룰때는 KeepKnowledgeInPlainText를 따른다. ---- See also [[Meta]] ---- CategoryManual