[SpringDataJPA] JPA

해당 블로그 글은 백기선님의 스프링 데이터 JPA강의를 참고해 쓴 것입니다.

1. 환경설정

  • Spring Boot
  • PostgreSQL
    • \list : 데이터베이스 조회
    • \dt : 테이블 조회

2. ORM

  • Object-Releation Mapping
  • ORM은 애플리케이션의 클래스와 SQL 데이터베이스의 테이블 사이의 맵핑 정보를 기술한 메타 데이터를 사용해, 자바 애플리케이션의 객체를 SQL 데이터베이스의 테이블에 자동으로 영속화해주는 기술
  • 왜 ORM 인가?
    • 객체 지향 프로그래밍의 장점을 활용할 수 있음
    • 각종 디자인 패턴
    • 코드 재사용
    • 비즈니스 로직 구현 및 테스트 용이
장점단점
생산성학습비용
유지보수성 
성능 
벤더 독립성 

ORM : 패러다임 불일치

  • 객체와 릴레이션 매핑 시 문제 발생 |문제점|객체|릴레이션| |—|—|—|—| |밀도|다양한 크기 객체 생성 가능
    커스텀한 타입 만들기 쉬움|테이블
    기본 데이터 타입| |서브타입|상속 구조 만들기 쉬움
    다형성|테이블 상속 없음
    상속| |||| |||| |||| ||||