인프런 - 스프링부트 개념 정리(이론) - 정리

7강 - OOP 관점에서 모델링이란 무엇일까요?

달팽이포뇨 2023. 3. 22. 19:24

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다.

 

6. JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)

JPA는 클래스 구성을 토대로 DB 테이블을 자동생성하는 기법이므로 

만약

class Car{

   int id;

   String name;

   String color;

   Engine engine;

}

클래스가 이렇게 구성되어 있다면

Car 테이블과 Engine 테이블이 자동생성된다.

 

만약 Car 클래스와 Engine 클래스에 Timestamp createDate, Timestamp updateDate 이런식으로 중복된 속성을 만들고자한다면 extends (상속)을 이용하자.

Timestamp createDate, Timestamp updateDate을 속성으로 갖는 클래스를 선언하고 Car 클래스와 Engine 클래스가 해당 클래스를 상속받으면 된다.

 

7. 방언 처리가 용이하여 Migration하기 좋다. 유지보수에도 좋다.

Dialect를 사용한다. 즉, DB를 추상화 객체로 사용하기 때문에 필요에 따라 추상화 객체만 바꾸면 된다.

 

8. JPA는 쉽지만 어렵다.

기존 RDBMS를 사용하는 방식과 다르기 때문에 새로 익혀야한다.

최적화를 위해서는 많은 공부가 필요하다.