집돌이 공대남 IT

JPA 프로그래밍 마스터하기. 초급부터 전문가까지 실습을 통한 학습(2) 본문

IT/웹개발

JPA 프로그래밍 마스터하기. 초급부터 전문가까지 실습을 통한 학습(2)

집공이 2023. 8. 15. 12:00

JPA: 객체 지향 프로그래밍을 위한 첫 걸음

프로그래밍은 다양한 기술과 도구들로 무장한 퍼즐 같은 것입니다. 그 중에서도, 데이터 관리는 우리가 얼마나 효율적으로 코드를 작성할 수 있는지를 결정하는 중요한 부분입니다. 오늘 우리는 JPA(Java Persistence API)에 대해 배울 것입니다. JPA는 우리가 SQL을 직접 작성하는 대신, 객체 지향적인 방법으로 데이터를 관리할 수 있게 도와주는 ORM(Object-Relational Mapping) 기술입니다. 이 글에서는 JPA를 설정하는 방법을 배우고, JPA를 이용해 데이터를 다루는 기본적인 방법에 대해 알아보겠습니다.

1. JPA 소개

일반적으로, 데이터베이스와의 작업을 위해서는 SQL(Structured Query Language)을 사용해야 합니다. 이는 데이터를 생성, 읽기, 업데이트, 삭제하는 등의 작업을 하기 위한 언어입니다. 하지만, 객체 지향 프로그래밍과 SQL은 기본적으로 다른 패러다임을 가지고 있습니다. 이로 인해 발생하는 문제를 객체-관계 격차(Object-Relational Impedance Mismatch)라고 부르는데, 이는 개발자가 비효율적인 코드를 작성하거나 복잡한 SQL 쿼리를 다루게 만듭니다.

여기에서 JPA가 등장합니다. JPA는 ORM 기술을 제공해 객체-관계 격차를 극복하고, 데이터를 객체 지향적인 방법으로 다룰 수 있게 해줍니다. 즉, 개발자는 SQL 쿼리를 작성하는 대신, 객체를 사용해 데이터를 조작하고 JPA가 이를 SQL로 변환하여 데이터베이스에 전달하는 방식입니다.

 

2. JPA 설정

그렇다면 이제 JPA를 프로젝트에 어떻게 추가하는지 알아보겠습니다. 이 과정은 크게 두 가지로 나눌 수 있습니다: 의존성 추가와 설정 파일 생성입니다.

의존성 추가

먼저, JPA 라이브러리를 프로젝트에 추가해야 합니다. 이를 위해 Maven이나 Gradle 같은 빌드 도구를 사용합니다. 이 글에서는 Maven을 예로 들겠습니다. 프로젝트의 pom.xml 파일에 아래의 의존성을 추가해주면 됩니다.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.27.Final</version>
</dependency>

설정 파일 생성

다음으로, JPA를 위한 설정 파일을 생성해야 합니다. 이 파일에서는 데이터베이스 연결 정보와 관리할 엔티티 클래스 등을 정의합니다. 이 파일은 일반적으로 persistence.xml이라는 이름으로 src/main/resources/META-INF 디렉터리 아래에 위치합니다.

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
    <persistence-unit name="myJPA">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.H2D

ialect"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
        </properties>
    </persistence-unit>
</persistence>

JPA 설정은 여기서 끝이 아닙니다. 엔티티 클래스를 생성하고, EntityManager를 이용해 데이터베이스 작업을 수행하는 등의 작업이 필요하며, 이에 대해서는 다음 글에서 자세히 다루도록 하겠습니다. 이제 우리는 JPA가 우리에게 어떤 편리함을 제공하는지 체험할 준비가 되었습니다.