본문 바로가기
spring_boot

JPA 사용이유

by 잡다한 개발자 정모씨 2024. 4. 7.

jpa란?

jpa는 자바에서 사용하는 ORM(Object-Relational Mapping) 기술이다.

다른 ORM으로는 Sequelize, TypeORM, Prisma 등이 있다. 

 

JPA를 사용하는 이유는?

기존의 sql중심의 개발이 아닌 객체 중심의 개발이 가능하기 때문이다.

 

생산성

  • JPA 를 사용하면 생산성이 높아진다. 기존의 JDBC를 활용한다면 SQL 쿼리문을 모두 직접 작성해야 한다는 번거로움이 있다. 하지만! JPA는 퀴리를 사용할 수는 있지만 객체 중심으로 간단한 메서드만 작성하여 쿼리 조작이 가능하다.

유지보수

  • 기존에 JDBC와 같은 방식을 활용한다면 필드 정보가 일부 바뀌더라도 관련 모든 SQL문을 작업해줘야 했지만 JPA는 매핑만 잘 된다면 이러한 것들을 자동으로 처리해준다는 용이함이 있다.

패러다임 불일치 해결

  • 객체(object)는 속성(field), 기능(method)을 가진다. 데이터베이스에서는 추상화, 상속, 다형성같은 개념들이 없기 때문에 객체 지향과 지향하는 목적이 달라 둘의 기능과 표현 방법도 다르다. 이것을 객체와 관계형 데이터베이스의 패러다임 불일치 문제라 한다.  
  • JPA는 패러다임의 불일치 문제를 개발자 대신 해결해준다. 개발자는 그냥 자바 컬렉션에 객체를 저장하듯이 JPA에게 객체를 저장하면 된다.

보안성

사용성이 용이하고 sql 인젝션을 별도의 쿼리문을 만들어 사용하지 않는 이상 sql 인젝션을 Parameter Binding을 활용하여 자동으로 처리해주기 때문에 보안상에 간편한 점이 있다.