JPA

정민주·2024년 2월 10일

스프링 스터디

목록 보기
3/17

🤔ORM?

ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 사이의 호환되지 않는 데이터를 처리하는 프로그래밍 기법입니다.

객체 지향 프로그래밍은 데이터를 객체(object)라는 단위로 캡슐화하고, 이 객체들 간에 메시지를 주고받는 방식으로 동작합니다. 반면 관계형 데이터베이스는 데이터를 테이블 형태로 저장하고, SQL 쿼리를 사용해 데이터를 조작합니다. 이 두 시스템은 기본적으로 서로 다른 방식을 사용하기 때문에, 직접적인 연동이 어렵습니다.

ORM은 이 두 시스템 사이의 '다리' 역할을 해줍니다. ORM은 객체 지향 모델을 관계형 데이터베이스 모델로 매핑해주어, 객체 지향 프로그래밍 언어를 사용하면서도 관계형 데이터베이스의 기능을 쉽게 사용할 수 있게 해줍니다.

예를 들어, ORM을 사용하면 객체를 데이터베이스의 테이블에 대응시키고, 객체의 필드를 테이블의 컬럼에 대응시킬 수 있습니다. 또한, 객체의 메소드를 호출하는 것으로 데이터베이스의 레코드를 생성, 조회, 수정, 삭제하는 SQL 쿼리를 자동으로 생성하고 실행할 수 있습니다.

ORM의 장점으로는 개발 편의성과 생산성 향상, 데이터베이스 독립성, 객체 지향적인 코드로 인한 가독성과 유지보수성 향상 등이 있습니다. 하지만 ORM은 내부적으로 복잡한 동작을 수행하기 때문에, 성능 문제가 발생할 수 있고, 이를 해결하기 위해서는 ORM의 동작 원리를 이해하고 있어야 합니다.

🤔JPA?

JPA는 Java Persistence API의 약자로, 자바 언어를 이용한 애플리케이션에서 관계형 데이터베이스의 관리를 표준화한 API입니다. 이것은 자바 개발자가 데이터베이스에 대한 접근과 조작을 더 쉽고 효율적으로 할 수 있도록 도와줍니다.

JPA는 주로 다음의 기능을 제공합니다:

ORM (Object-Relational Mapping): 객체와 테이블 간의 매핑을 지원하여, 객체를 통해 데이터를 조작하면 이를 데이터베이스에 반영해줍니다. 이로 인해 개발자는 SQL 쿼리를 직접 작성하는 대신 객체 지향적인 방식으로 데이터를 다룰 수 있습니다.
JPQL (Java Persistence Query Language): 객체 지향 쿼리 언어를 제공하여, 객체에 대해 쿼리를 작성하고 실행할 수 있습니다.
캐시 기능: 데이터베이스 접근을 최소화하여 성능을 향상시키는 캐시 기능을 제공합니다.
트랜잭션 관리: 데이터의 일관성을 유지하도록 트랜잭션을 자동으로 관리해줍니다.
JPA는 이런 기능을 제공함으로써 개발자가 데이터베이스 액세스 코드를 더욱 효율적으로 작성할 수 있도록 도와줍니다. 그러나 JPA는 단지 인터페이스일 뿐이며, 실제 동작은 JPA를 구현한 구현체(예: Hibernate, EclipseLink 등)가 담당합니다. 이런 구현체들을 사용하면 JPA가 제공하는 기능을 실제로 사용할 수 있습니다.

0개의 댓글