framework/spring

스프링에서 db 관계표현을 어떻게 할것인가

datajoy 2020. 4. 22. 21:48

A와 B가 1:N 관계일때,
1) API에서 B의 데이터 전체를 불러와 A에 맵핑한다.
: 특정 대상자의 데이터가 지정되어있거나 캐싱을 할때는 사용가능하나 매번 전체 데이터를 불러오면 성능에 큰이슈 발생가능성존재.

2) API에서 A를 루프돌면서 키값으로 B데이터를 가져와 맵핑한다.
: A루프돌릴 데이터가 많은경우 여러번 db콜을 하기때문에 db에 부하가 커진다.

3) 쿼리에서 A와 B를 Join해서 조회한다.
: 성능상 이슈는없지만 관리포인트가 계속적으로 증가하기때문에 API개발에는 맞지않다

3)번은 was가 필요없고 db에서 조회만하는 환경에서 사용해도되지만 was에서 개발을 하는한 관리포인트가 계속 증가하기때문에 객체지향과는 거리가 멀고 유지보수가 매우어렵거나 할수없는 상황발생하게된다

1)번은 성능에 매우 큰영향이 있기때문에
2)번으로 관계를 표현한다