스터디를 통해 스프링부트와 AWS로 혼자 구현하는 웹 서비스(저자 이동욱) 서적을 공부하는 중입니다.
공부/실습한 내용을 정리한 포스팅입니다.
책에 모르는 부분이 있으면 구글링하거나 챗gpt에 물어봐서 보충하였습니다.
(아직 초보라 모르는 부분이 많아 이것저것 다 적었습니다.)
참고한 사이트 출처는 포스팅 맨 하단에 적었습니다.
Java ORM 기술 Interface 표준. 이를 구현한 가장 대표적 기술은 Hibernate.
이때, persistence는 '영속성'이며 데이터가 프로그램이 종료되어도 사라지지 않고 저장됨을 의미.
Java에서는 데이터 영속성을 위한 JDBC(Java DataBase Connectivity, Java 프로그램이 DB와 연결되어 데이터를 주고 받을 수 있게 해주는 자바 API이자 인터페이스) 지원.
하지만, JDBC에서 DB에 접근하여 SQL 수행하고 결과값을 다시 data type에 맞게 매핑해주는 작업을 개발자가 일일이 수행해야 하는 번거로움 존재.
그래서 개발자가 직접 JDBC Programmin을 하지 않도록 하는 Persistence Framework인 SQL Mapper와 ORM 등장
※ 비즈니스 로직 : 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분
대부분의 웹 애플리케이션 RDB 사용. 객체를 RDB에서 관리하는데, RDB가 SQL만 인식할 수 있어서 객체지향프로그래밍에서 SQL을 쓰는 건 피할 수 없음.
이때, 패러다임 불일치 문제가 발생.
※ 메세지 : 객체가 특정 작업을 수행하도록 요청하는 것
서로 패러다임이 다르므로, 객체를 DB에 저장하려면 문제 발생.
이때, 이 둘의 패러다임을 중간에서 일치 시켜주는 기술이 나오는데 그게 바로 ORM이며, Spring Boot에서 ORM인 JPA 이용.
JPA는 표준명세서이므로 구현체를 사용해야하는데 대표적으로 Hibernate, Eclipse Link 등이 있음.
Spring에서는 구현체들을 좀 더 쉽게 사용하고자 추상화시킨 Spring Data JPA라는 모듈을 이용하여 JPA 기술을 다룸.
dependencies {
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('com.h2database:h2')
}
spring-boot-starter-data-jpa
h2
JDBC란 무엇일까?
SQL Mapper와 ORM 차이
위키백과 - 비즈니스 로직
[OOP]메시지와 메소드의 개념과 관계
[JPA] JPA와 Hibernate 그리고 Spring Data JPA