- Query DSL으로 데이터를 가져올 때 DTO로 데이터를 꺼내는 방법을 알게 되었다. 지정된 엔티티 타입이 아닌 DTO 타입으로 데이터를 반환할 수 있고 @QueryProjection을 사용했다.
여러 테이블에서 원하는 컬럼만 꺼내는 것도 장점이지만, 복잡한 요구사항과 정렬 조건때문에 이 방법을 선택했다.
정렬 1순위로 지정해야하는 조건이 여러개의 컬럼 값과 외부 다른 값으로의 연산결과도 만족해야했다.
order by에 case문을 사용해서 연산결과대로 정렬해도 되지만, DB에서 복잡한 연산을 하기 보다는 애플리케이션단에서 정렬을 하는 것이 더 좋다고 판단했다.
DTO에 정렬 조건으로 가지는 필드를 추가했고, 이 필드로 애플리케이션 단에서 정렬을 구현했다.
- 항상 학습 범위를 욕심내서 정해두니 부담감을 느끼고 부담감으로 몸이 안 움직인적도 많았다. 김영한님이 학습 분량을 과도하게 정해두면 안하게 되니, 매일 일정한 시간에 학습하는 시스템을 만들어두라고 하시더라.
그래서 욕심내지 않고, 목표 분량을 정해두지 않고, 일단 공부를 시작하는걸 목표로 방향을 바꿨다.
- 이번에는 Real MySQL을 완독할거다. 목표기간과 학습분량은 정해두지 않고.