projection 방식은 type safety와 결합 비용을 함께 본다

constructor 순서 runtime 오류와 Querydsl annotation 결합 중 어느 비용을 감수할지 test로 고정한다.

1. DTO 결합 허용인가

QueryProjection

2. 순수 DTO인가

constructor expression

3. entity가 필요한가

aggregate query

4. report인가

thin projection