이전 챕터에서는 데이터베이스와 테이블을 연결하고 더미 데이터를 입력했습니다. 이번 챕터에서는 스프링을 활용해 데이터베이스의 데이터를 조회·추가·수정·삭제하는 방법을 다뤄보겠습니다.

3.1 하이버네이트 기술

두 세계의 조우: 객체와 테이블의 간극을 해결하자!

image.png

3.1.1 근본적인 불일치: 철학의 차이

소프트웨어를 개발할 때 우리는 서로 다른 철학을 가진 두 개의 세상을 동시에 마주합니다. 바로 데이터의 정합성을 중시하는 관계형 데이터베이스(RDB)와 현실 세계의 복잡성을 표현하는 객체지향 언어(Java)입니다.

DB 세상 (관계형 모델): "값과 관계 중심"

데이터베이스는 데이터를 안전하게 보관하고 효율적으로 조회하는 것이 목표입니다.

자바 세상 (객체 모델): "상태와 행위 중심"

자바는 현실 세계의 사물을 객체로 추상화하여 관리합니다.


3.1.2 데이터의 평면 세계(DB) vs 입체 세계(Java)

우리가 개발을 할 때 마주하는 두 세계는 데이터를 다루는 방식이 근본적으로 다릅니다. 이 차이를 이해하는 것이 하이버네이트(Hibernate) 기술의 출발점입니다.

1. 구조의 차이: 테이블 vs 객체