Loading...

[GP] Spring boot에서 DBMS를 연동하는 방법 - JPA 기본편

이 글은 N.K Dev Lab에서 작성된 글입니다.

지난 포스트에서 간단한 REST API 개발에 대해서 알 수 있었습니다. 아주 쉽게 GET 메소드에 대한 것만 정의하였고 나머지에 대한 메소드는 다루지 않았는데요. 오늘은 모든 REST API를 사용해보면서 테스트 또한 진행할 것입니다.

그러면 DBMS 연동에 대한 이야기 시작하도록 하겠습니다.

DBMS <–> Spring boot

PHP, Node.js 등에서 DBMS를 연동하기 위해서는 PDO를 사용하거나 mongoose 등의 라이브러리를 사용하는 방법이 존재합니다. 여기서 mongoose는 Node.js에서 MongoDB를 사용하기 위한 라이브러리이고, PDO는 PHP에서 MySQL 등의 DBMS를 연동하기 위한 객체입니다.

Spring boot에서는 Spring과 마찬가지로 DBMS를 연동하기 위해 존재하는 2가지 방법이 있습니다.

  • JPA
  • MyBatis / iBatis

아마 기존의 개발자 분들이시라면 Mybatis / ibatis가 좀 더 익숙할 것입니다. XML 파일을 이용해서 질의를 정의하고 이를 메소드로 호출하는 방법이지요.

JPA 또한 비슷합니다. 단, JPA는 XML를 사용하지 않고 인터페이스로 정의하여 질의를 정의하고 역시 이를 메소드로 호출하여 실행하는 방식입니다.

또 다른 점이 있다면 JPA는 CRUD 등을 종속할 수 있어 여러분들이 직접 CRUD를 만들지 않아도 자동으로 정의되어 있는 형태의 템플릿을 제공합니다. 예를 들어 DBMS에 어떠한 모델링에 해당되는 데이터를 추가하려 한다면 Mybatis에서는 insert 문을 직접 정의하여 메소드를 만들어야 합니다. 하지만 JPA에서는 CRUD가 이미 정의되어 있는 인터페이스가 존재하여 insert, update, delete 등 기본적인 질의문에 대해서는 여러분들이 직접 정의하지 않아도 정해진 메소드만 호출하면 바로 DBMS에 추가, 수정, 삭제가 가능합니다.

What is JPA ?

그럼 이 JPA는 무엇이고 어떤 배경으로 탄생한 것일까요?

JPA는 Java Persistence API의 약자로 Java 언어에서의 프로그래밍 인터페이스 명세사항입니다. 정확하는 Java라기 보단 JVM이라고 해야 맞겠지만 통상 Java 언어를 위해 만들어진 것이기 때문에 Java 언어라고 이야기 하겠습니다.

즉, Java 플랫폼을 사용하는 애플리케이션 내부 관계형 데이터의 관리를 위해 만들어진 인터페이스라고 볼 수 있죠.

How to use

그럼 이제 JPA를 사용하는 방법에 대해 알아봅시다.

buildscript {
    /*
    	...
    */
    
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion"
    }
}

apply plugin: 'kotlin-jpa'

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
}

기존 프로젝트에서 계속 진행하시고자 할 떄는 build.gradle에서 위의 내용만을 추가하시면 됩니다.


이어서 읽으시려면 아래의 버튼을 클릭해주세요.


... 계속 읽기


comments powered by Disqus

Tistory Comments 0