Replies: 1 comment
-
|
데이터 접근 기술을 선택하는 기준으로 도메인 복잡성, 개발 생산성, 성능 요구사항, 숙련도 4가지 측면을 고려한 뒤 어떤 접근 기술을 사용할지 결정할 것 같습니다. 현재 상황이라면 저는 JPA를 우선적으로 사용할 것 같습니다. 대부분의 서비스 스프링 어플리케이션에서는 객체를 중심으로 도메인을 모델링하기 때문에, JPA를 사용하여 도메인과 테이블 사이의 매핑을 손쉽게 사용하는 것의 이점이 크게 다가오기 때문입니다. 이 뿐만 아니라, 더티 체킹이나 연관관계 매핑, 영속성 컨텍스트 관리가 어플리케이션 개발자 입장에서 복잡한 디비 연결 과정을 간소화해준다는 측면에서 큰 메리트로 다가옵니다. 하지만, 도메인의 복잡성에 따라 복잡한 쿼리나 대용량 데이터 조회가 필요한 경우 쿼리문을 세밀하게 제어하는 경우에는 JPA가 오히려 역효과가 날 수 있다고 생각합니다. 동적 쿼리 생성시 쿼리문을 예상하기 어렵고 JPA를 따라간다면 튜닝 또한 제한되기 때문에 이 경우에는 직접 쿼리를 작성하는 JdbcTemplate나 MyBatis와 같은 SQL Mapper를 고려할 것 같습니다. 정리도메인 중심의 어플리케이션이라면 JPA를 도입하여 유지보수와 생산성을 기본으로 챙기면서, 복잡한 쿼리가 수반되거나 성능이 중요한 로직의 경우(예를 들어, 대시보드 통계, 검색, 대용량 조회처럼 성능이 중요한 기능)에는 JdbcTemplate같은 SQL매퍼를 사용할 것 같습니다. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
이후 프로젝트에서 데이터 접근 기술을 선택한다면 JPA와 같은 ORM, JdbcTemplate같은 SQL매퍼 등 여러 선택지 중 무엇을 사용할 것인가요?
각 기술의 장단점을 비교하고, 프로젝트의 도메인 특성과 팀 상황에 따라 어떤 기준으로 선택할 수 있을지 이야기해주세요.
Beta Was this translation helpful? Give feedback.
All reactions