인프런 커뮤니티 질문&답변

junmo sung님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

이야기 - 자바 진영의 추운 겨울과 스프링의 탄생

JPA 이야기가 나와서 개인적으로 궁금한 내용을 질문드립니다!

22.03.06 18:46 작성

·

581

0

안녕하세요, 존경하는 갓영한님

JAVA진영에서 JPA가 중요하다 하여 개인적으로 궁금했던 추상적인 질문을 남깁니다.

1. JPA에 대한 깊은 개념이 없는 현 개발 환경?이라면, JPA를 사용하여 중요한 데이터를 조작하는 것은 굉장히 위험하다고 개인적으로 생각됩니다. 구체적인 예를 들어 결제 모듈 api연동했을 경우, 현금관련 부분은 굉장히 민감하고 보안적으로도 조심드럽게 다루어야 하는 data라 생각됩니다.

이러한 중요한? 민감한 데이터도 JPA를 사용하여도 크게 문제가 없을까요? 아니면 다른 일반적인 데이터들은 JPA를 사용하고, 이러한 특별한 경우에만 Mybatis와 같은 좀 더 안정적?(query 지향적?)인 방법을 사용하여야 할까요?

추가적으로, 배민에서는 수 많은 결제들이 수 없이 이루어지는데 이 엄청난 트랙픽을 받으면서도 순수 JPA를 이용하여 처리 가능하게 하였는지 궁금합니다.

2. JPA도 결국 서드파트 프에임워크라 판단됩니다. 고로 버전에 따라 지원하지 않는 신규 업데이트된?(오라클DB, MySql, 마리아DB 등등) query문들이 존재할 수 있다 생각합니다.

따라서 JPA를 쓰는 가장 큰 장점인 orm에서 지원하지 않을 경우, 만약 해당 업데이트된 기술이 필요한 상황이라면 JPA와 Mysql과 같은 프레임워크를 동시에 사용하는게 해결방법일까요? 좀 더 좋은 해결 방법이 있을까여?

추가적으로 JPA와 querydsl로도 표현 할 수 없는 query들이 존재할 경우들이 있을까여? 만약 그러하다면 어떻게 처리하는 방법이 있을지 궁금합니다.

이상입니다.

늘 좋은 명강의 감사합니다.

답변 1

1

David님의 프로필 이미지

2022. 03. 07. 14:36

안녕하세요. junmo sung님, 공식 서포터즈 David입니다.

1. JPA 따로, DB 따로가 아니라 JPA를 잘 사용하려면 DB를 잘 알아야 한다고 늘 말씀하십니다. DB를 잘 모른다면 JPA를 쓰지 않아도 결제 모듈을 작성할 때 문제가 되겠죠.

JPA 사용에 대한 것은 아래 글 답변을 참고해주세요:)

https://www.inflearn.com/questions/40192

2. 그럴리는 없을테지만 벤더의 신규 기능이 Hibernate에 업데이트 되지 않는다면 네이티브 쿼리를 직접 사용하면 됩니다.

복잡한 쿼리의 경우 1번에 업급된 링크 글 답변을 참고해주세요.


감사합니다.