둘러보기 생략.
 

[참고] QueryService와 Reflection 문의사항에 대한 답변

* 아래 내용은 이메일로 받은 문의사항이나, 함께 공유하기 위해서 포럼에 올립니다.
참고하시기 바랍니다.

----------------------------------------------------------------------------------------
(1) 보안관련

queryService.find 혹은 여타 메서드의 인자로 넘어가는 값이 SQL에 매핑되는 방식이 PSTMT 방식과
같은 방식으로 구현되어 있습니까? 본 프로젝트 보안담당이 쿼리서비스가 PSTMT 방식으로 구현되어 있는지 여부를 문의해왔습니다.
[답변] 쿼리서비스가 PSTMT 방식으로 구현되어 있습니다.

(2) SELECT 결과 VO 클래스 리플렉션관련

Q1) 명시적 ROW MAPPER 를 사용하지 않는한 항상 리플렉션이 발생하는지요?
[답변] 네, 발생합니다.

Q2) 아래와 같이 해도 리플렉션이 발생하는지요?
<result class="~~~~">
<result-mapping column="CHAIN_NO" attribute="chainNo"
</result>
[답변] 네, 발생합니다.

Q3) 컬럼과 자바 멤버가 camel-case 자동 변환가능 함에도 불구하고 RESULT-MAPPING을 명시
할 경우 퍼포먼스 측면에서 이득이 있는지요? (2번과 같은 맥락인것 같습니다)
[답변] 이득이 있습니다.
camel-case 자동 변환을 위한 String 연산에 오버헤드가 많이 발생하므로
직접 result-mapping을 명시해주시는 것이 성능 향상 측면에 이득이 있습니다.

(3) 리플렉션으로 SELECT 결과 매핑시 오버헤드관련 참고 자료 같은 것이 있는지요?
[답변] 제가 따로 갖고 있는 문서는 없는데, 혹시 갖고 계신 분 있으면 공유 부탁드립니다.
참고사항으로, JDK 1.5 이상에서는 리플렉션으로 발생하는 오버헤드보다는 camel-case 변환,
column name을 db meta정보를 통해 얻어오는 기능 등이 더 오버헤드가 심하다고 합니다.
참고하세요.

답변이 내용 본문에 있습니다.

문의 사항이 각 질문 하단에 함께 답변해 놓았습니다.