HwangHub

[Spring] 패키지 구성 : repository와 query 분리 본문

무엇을 합니다/기술이해

[Spring] 패키지 구성 : repository와 query 분리

HwangJerry 2023. 6. 28. 01:18

이제부터 언급할 repository는 entity를 조회하는 dao 코드를 담는 패키지, 그리고 dto와 관련되어 화면을 구성하는 레벨의 모듈을 담는 패키지는 query라고 한다.

위와 같이, repository와 query를 구분할 경우, 관심사를 분리하는 효과를 얻을 수 있어 유지보수성이 증가한다.

 

주로 entity를 직접 조회하고 수정하는 dao의 경우에는 핵심 비즈니스 로직을 수행할 때 사용되며, query와 같은 경우는 클라이언트로 반환하기 위해 dto를 사용한다. 즉, 화면 구성을 위한 object를 다루기 때문에 화면과 관련된 것들을 파악할 때에는 query 패키지만 확인해 주면 된다.

 

이렇게 관심사를 명확히 분리하면,

1. 향후 문제가 발생했을 때 파악하기도 용이할 뿐만 아니라,

2. 핵심 비즈니스 로직을 수행하기 위한 라이프사이클과 화면 구성을 위한 라이프사이클이 다르므로 이에 대한 이점도 확보할 수 있다.

query 패키지가 query인 이유는, 화면과 관련된 것들을 일반적으로 쿼리문과 밀접하게 연관된 경우가 많기 때문이다.
Comments