1. JPA?

기존에는 MyBatis와 같은 SQL Mapper를 이용해서 데이터베이스의 쿼리를 작성했다.

이 방법은 객체지향 프로그래밍이 아닌 SQL을 작성해야한다.

관계형 데이터베이스를 이용하는 프로젝트에서 객체지향 프로그래밍을 할 수 있게 만들어 준게 JPA이다.

JPA는 자바 표준 ORM(Object Relational Mapping) 기술

ORM?

SQL Mapper

2. 그렇다면 왜 ORM 기술인 JPA를 사용할까?

현대의 웹 애플리케이션에서는 관계형 데이터베이스는 빠질 수 없는 요소이다.

그러다 보니 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요하다.

이렇게 관계형 데이터베이스가 계속해서 웹 서비스의 중심이 되면서 모든 코드는 SQL 중심이 되어가는데 관계형 데이터베이스는 SQL만 인식할 수 있기 때문이다.

결국 각 테이블 마다 CRUD SQL을 매번 생성해야하고 결국 SQL을 통해야만 데이터베이스에 저장하고 조회할 수 있다.

하지만 수십, 수백 개의 테이블을 유지보수 하는게 쉬운일은 아니다.

또한 패러다임 불일치의 문제가 존재한다.

데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고

객체지향 프로그래밍 언어는 기능과 속성을 한 곳에서 관리하는 기술이다.