문제점
1.
Reflection 사용이 큰 부분을 차지함
•
현재 필드에 직접 접근하여 필드의 값을 가져온다. 이 부분이 문제가 생길 가능성이 있다. 하지만 예측이 불가능하다.
•
성능 또한 장담 못한다.
2.
Annotation의 meta data를 의미 있는 객체로 제작하기 위한 structure가 너무 많다.
•
여러 Annotation이 생각보다 순서에 영향을 받는 경우가 많다. 이 때문에 structure를 만드는 로직도 복잡하다.
•
structure 또한 복잡하다.
3.
structure의 복잡성 때문에 매핑 로직 또한 복잡해지고 있다.
•
structure 타입이 2개라서 매핑 할 때 너무 복잡해진다.
개략적 개선 방향성
1.
Reflection을 사용하지 않는 방향
•
annotation Processor를 이용하여 컴파일 타임에 structure(메타데이터 모델)을 삽입 시킨다.
2.
클래스 코드를 컴파일 타임에 삽입 시킨다.
•
메타데이터 모델이 복잡한 이유가 get을 어떻게 가져올 것인가 때문이다. 이 부분을 하나의 래핑 객체를 통해 해결 해본다.