💡객체를 관계형 데이터베이스에서 관리하는 것이 중요하다
스프링과 관계형 데이터 베이스를 사용할 때 SQL을 사용해야 하는 이유는 그 둘간의 패러다임 불일치 문제 때문에 사용한다.
관계형 데이터 베이스는 어떻게 데이터를 저장할지에 초점이 맞춰진 반면 객체지향 프로그래밍 언어는 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술이다
💡객체 지향 프로그래밍에서 부모가 되는 객체를 가져오려면
User user = findUser();
Group group = user.getGroup();
💡관계형 데이터베이스에서 부모가 되는 객체를 가져오려면
User user =userDao.findUser();
Group group = groupDao.findGroup(user.getGroupId());
이렇게 하게 되면 User따로, Group따로 조회하게 된다.
이렇게 되면 User와 Group이 어떤 관계인지 알 수 없게된다.
💡서로 지향하는 바가 다른 객체지향 프로그래밍 언어와 DBMS를 연결해주기 위해 JPA가 등장하게 되었다.
Spring data JPA라는 모듈을 이용하여 JPA기술을 다룬다
JPA <- Hibernate <- Spring data JPA
장점