====== Groovy Category ====== * [[http://mrhaki.blogspot.kr/2009/09/groovy-goodness-use-categories-to-add.html|Groovy Goodness: Use Categories to Add Functionality to Classes]] * Method Injection에 사용한다. Method Interception은 [[groovy:meta_programming|Groovy Meta Programming]] 를 사용한다. * 적용 범위를 명확히하고, 범위를 벗어나면 원본 클래스를 보존 시켜주기 때문에 side-effect가 버지는 것을 막을 수 있다. * 카테고리 블록에 대한 진입/탈출이 빈번하면 scope 생성/메소드 추가/scope 초기화가 반복적으로 일어나면서 성능 저하가 발생한다. 따라서 반복문 같은데서 사용할 때 반복문 밖으로 카테고리를 지정하는 등의 최적화가 필요하다. * 현재 쓰레드 안에서만 적용된다.