[JPA] 데이터베이스 방언
JPA뿐 아니라 ORM은 어느 특정 데이터베이스에 종속적이지 않다.
ORACLE , MySQL , MS-SQL 등 여러가지 RDB가 있을때 각각의 문법이 차이가 있기에 SQL 중심적 개발로 진행 시 RDB 변경이 정말 어려웠다.(정확하게는 그래본적이 없지만 변경한다 하면 정말 어마어마한 리소스가 투입되야 할 것이다.)
하지마 JPA는 SQL 중심적 개발방식이 아니라 객체 관점에서 개발하는 방식이기에 어느 특정 SQL에 종속적이면 안된다.
이걸 해결하기 위해 나온 "Dialect(방언)" 이다.
데이터베이스 방언
방언이란건 원래 어느지역의 언어체계를 뜻하는데 데이터베이스의 방언은 그 데이터베이스만의 특정문법을 뜻한다!!
예를들어 페이징만 생각해봐도 MySQL은 LIMIT , ORACLE ROWNUM 이다.
만약 MyBatis를 이용하여 MySQL 쿼리로 진행해 왔을때 갑자기 회사에서 "MySQL 이제 못쓰고 ORACLE로 바꿔야해"
라며 엄청난 일거리를 줬을때 개발기간이 대체 얼마나 될까 ??....
JPA를 사용했었다면 애초에 쿼리를 직접 작성할 일은 없었서 방언 설정만 바꿔주면 10초만에 끝났을것이다.
(복잡한 통계쿼리를 JPA로 한계가 있기때문에 직접 작성한 부분은 바꿔주긴 해야함 ,,,,)

하이버네이트는 40가지 이상 데이터베이스 방언을 지원한다.
위 사진을 보면 JPA는 여러가지 데이터베이스 방언을 사용할 수있다.
만약 아까 큰 과제를 해결한다면 아래 사진과 같이 JPA 설정으로 변경을 원하는 데이터베이스의 Dialect로
변경해주면 다른건 건들필요가 없어진다.

이번 시간에는 간단히 JPA가 특정 데이터베이스에 종속적이지 않다라는걸 보여준 시간인 것 같다
앞으로도 시간 틈틈히 JPA에 대해 글을 기록해봐야겠다!!
