JPA는 언제 필요하고 언제 필요하지 않을까?

yesrin·2024년 1월 3일

JPA

목록 보기
6/7

JPA를 사용해야 하는 경우

1. ORM(객체 관계형 매핑)이 필요할때:
관계형 데이터베이스로 작업하고 Java 객체를 데이터베이스 테이블에 원활하게 매핑하려는 경우 JPA는 ORM을 통해 이를 수행하는 편리한 방법을 제공합니다. 기본 CRUD 작업에 대한 SQL 쿼리 작성을 방지하는 데 도움이 됩니다.

2. 생산성 및 유지 관리성:
JPA는 데이터베이스 작업을 위한 더 높은 수준의 추상적인 API를 제공하여 생산성을 크게 향상시킬 수 있습니다. 작성해야 하는 상용구 코드의 양이 줄어들어 코드베이스를 더 쉽게 유지 관리할 수 있습니다.

3. 데이터베이스 간 이식성:
애플리케이션이 SQL 쿼리를 다시 작성하지 않고 여러 데이터베이스를 지원해야 하는 경우 JPA는 서로 다른 데이터베이스 공급업체 간에 더 쉽게 전환할 수 있도록 하는 추상화 수준을 제공할 수 있습니다.

4. Transaction 관리:
JPA는 트랜잭션 관리를 지원하므로 트랜잭션을 더 쉽게 처리하고 애플리케이션의 데이터 일관성을 보장할 수 있습니다.

5. 쿼리 언어(JPQL):

JPA는 데이터베이스에 구애받지 않는 방식으로 데이터베이스 쿼리를 표현할 수 있는 JPQL(Java Persistence Query Language)이라는 강력한 쿼리 언어를 제공합니다. 이는 복잡한 쿼리에 유용할 수 있습니다.

JPA를 사용하지 않는 경우

1. 간단한 데이터 액세스:
애플리케이션에 간단한 데이터 액세스 요구 사항이 있고 개체 간의 복잡한 관계나 정교한 쿼리가 포함되지 않은 경우 JPA를 사용하면 불필요한 복잡성이 발생할 수 있습니다.

2. 성능 고려 사항:
성능이 중요한 애플리케이션에서는 직접 JDBC(Java Database Connectivity)가 더 적합할 수 있습니다. JPA는 추상화 계층으로 인해 약간의 오버헤드를 발생시키며 모든 성능이 중요한 시나리오에서는 JDBC와 같은 하위 수준 접근 방식을 사용하는 것이 선호될 수 있습니다.

3. 비관계형 데이터베이스:
ORM 개념을 적용할 수 없는 비관계형 데이터베이스(예: MongoDB 또는 Cassandra)로 작업하는 경우 JPA가 최선의 선택이 아닐 수 있습니다. JPA는 관계형 데이터베이스를 염두에 두고 설계되었습니다.

4. 기존 데이터 액세스 프레임워크:
프로젝트에 이미 잘 확립된 데이터 액세스 프레임워크가 있고 JPA를 도입하면 불필요한 중단이 발생하는 경우 기존 솔루션을 고수할 수 있습니다.

요약하자면, 관계형 데이터베이스에서 데이터를 관리하고 유지하기 위해 더 높은 수준의 추상화가 필요한 경우, 특히 생산성, 유지 관리 가능성 및 데이터베이스 간 이식성이 중요한 시나리오에서 JPA를 사용.
BUT, 더 간단한 애플리케이션이나 특정 성능 고려사항이 있는 애플리케이션의 경우 JPA를 사용하지 않을수 있음.

profile
안녕하세요! 틀린 정보는 댓글 달아 주세요.

0개의 댓글