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

wnsqhr1230님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

24강. 유저 테이블에 대응되는 Entity Class 만들기

JPA 를 사용하는 이유

24.04.04 14:36 작성

·

415

1

안녕하세요 강사님.
항상 정성 가득하고 충분한 설명 덕분에 도움을 많이 받고 있습니다 : )

강의를 듣다가 문득 호기심이 생겨 질문을 드립니다 !

JPA 를 사용하는 이유가 DB가 변경 시에 유리하기 때문이라고 이해했습니다.

그런데 만약 DB 변경이 일어나지 않는다고 가정한다면, JPA 설정을 통해서 스프링이 DB 에 넣어주는 것 보다, 일일이 쿼리를 작성하는 것이 더 속도나.. 그런 측면에서 유리하지는 않나요?

1개의 기능을 만드는데 그보다 많은 기능이 포함되어있는 어떤것을 쓰면 자원이 낭비되는 것이 아닐까? 하는 생각이 들었습니다.

현업에서 DB를 변경할 일이 많아서 그런 것일까요?
왜 요즘 MyBatis 보다 JPA 를 선호하는 추세인지도 궁금합니다. (취업 공고를 보면 MyBatis 보다는 JPA 가 많이 보이더라구요!)
항상 감사하고 존경드리며 환절기 감기 조심하세요 !

답변 2

1

인프런 AI 인턴님의 프로필 이미지

2024. 04. 04. 14:41

안녕하세요, 인프런 AI 인턴입니다.

wnsqhr1230님의 질문에 답하기 위해 유사한 내용의 기존 답변을 찾아보았습니다. JPA를 사용하는 이유에 대해 궁금해 하시는군요. 다음 링크에서 JPA의 장점과 필요성, 그리고 MyBatis와의 비교에 대한 자세한 설명을 찾아보실 수 있습니다.

해당 답변에서는 JPA의 속도 문제와 “특정 상황”에서의 사용 예시에 대해 설명하고 있습니다. 특히, JPA가 갖는 장단점을 인지하고 적절한 상황에서 기술을 선택하는 것이 중요하다는 점을 강조합니다. 또한, JPA 사용이 선호되는 추세와 관련하여, 개발자가 JPA에 대한 충분한 이해를 가지고 있어야 한다는 점과, JPA는 이미 많이 성숙한 기술이어서 극적인 변화가 없다는 점 등을 지식 공유자가 설명하고 있습니다.

질문하신 내용과 연관성이 높은 다른 답변으로는, MyBatis를 JPA와 비교하며, 왜 현대 개발 환경에서 JPA를 선호하는지를 설명하는 내용이 있습니다:

여기서는 데이터 접근 기술에 대한 폭넓은 설명과 함께, JPA를 선택하는 이유에 대한 자세한 설명이 나와 있습니다. 특히 JPA를 사용하지 않았던 이유에 대해 설명하고, 어느 정도까지의 데이터 처리가 JPA로 가능한지, 그리고 실제 현업에서는 어떻게 JPA를 선택하고 활용하는지에 대한 통찰을 제공합니다.

이 자료들을 통해 JPA의 장점과 사용례, 그리고 MyBatis와의 비교점에 대한 이해를 돕고, 현업에서 왜 JPA를 선호하는지에 대한 궁금증을 해소하는 데 도움이 되셨으면 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wnsqhr1230님의 프로필 이미지
wnsqhr1230
질문자

2024. 04. 04. 16:10

감사합니다 !

0

최태현님의 프로필 이미지
최태현
지식공유자

2024. 04. 04. 18:34

안녕하세요! wnsqhr1230님! 🙂

좋은 질문 감사드립니다! 👍 AI 인턴이 공유해준 내용과 글들에서도 관련한 내용이 나오고요!

 

추가로 덧붙여 보자면, JPA를 사용하는 것은 단순히 DB 변경이 일어날 때 유용하기 때문은 아닙니다!

제가 강의에서, SQL을 그냥 사용하는 것의 단점을 몇 가지 설명드렸는데요! 그런 이유가 복합적으로 작용한 결과라고 보시면 되어요! 예를 들어 문자열 SQL을 그냥 사용해야 한다거나, 수백개의 테이블에 대해 CRUD 를 작업하려면 단순 반복 노동이 너무 심하다던가 하는 문제가 있죠

 

그리고 JPA를 사용하면, 순수한 SQL을 사용하는 것보다 컴퓨터 자원이 조금 더 소모될 수는 있으나, 보통 개발자 인건비가 컴퓨터 비용보다 훨씬 비싼 편입니다! 😅 그래서 개발 생산성을 높이기 위한 JPA가 더 많이 쓰이는게 아닐까 싶네요! (물론 복합적입니다~ 😉)

그리고 정말 성능한 중요한 부분은, <추가 - MyBatis 적용과 DB 접근 기술 비교>에서 다루는 것처럼 JPA 외에 다른 기술을 (ex.JdbcTemplate) 사용하기도 합니다!

image

답변이 도움이 되었으면 좋겠습니다!

감사합니다 🙏 wnsqhr1230님도 항상 건강 조심하세요~ 🥰

wnsqhr1230님의 프로필 이미지
wnsqhr1230
질문자

2024. 04. 05. 14:41

친절한 답변 감사합니다!