Spring MVC JDBC

김병수·2022년 11월 5일
0
post-thumbnail

JDBC

Java 기반 애플리케이션의 데이터를 DB에 저장 및 업데이트하거나 DB의 데이터를 사용할 수 있게 해주는 API이다. 스프링을 배우는 지점에서 JDBC의 사용법을 알 필요는 없지만 어떻게 데이터를 엑세스 하는지는 알면 도움이 된다.

Spring Data JDBC

Spring Data JDBC는 JPA, Spring Data JPA같은 복잡한 기술들을 배우기 위한 선행지식으로 접근하면 된다. Spring Data JDBC는 애플리케이션의 규모가 상대적으로 크지 않고, 복잡하지 않을 경우에는 더 뛰어난 생산성을 보여준다.

Spring Data JDBC 기반의 도메인 엔티티 및 테이블 설계

Spring Data JDBC 기반의 데이터 액세스 계층을 연동하기 위해 제일 먼저 해야 할 일은 데이터베이스의 테이블과 도메인 엔티티 클래스의 설계이다.

DDD(Domain Driven Design)

도메인 주도 설계라는 뜻으로 의미 그대로 도메인 위주의 설계 기법을 의미한다.

Domain

우리가 실제로 현실 세계에서 접하는 업무의 한 영역이다. 예를 들어 배달 어플에서 고객이 음식을 주문하는 과정, 조리된 음식을 배달하는 과정 등의 도메인 지식들을 서비스 계층에서 비즈니스 로직으로 구현해햐 하는 것이라고 할 수 있다.

Aggregate

비슷한 업무 도메인들의 묶음이다.

위 사진에서 회원, 주문, 음식, 결제가 애그리거트라고 할 수 있다. 여기서 회원 정보, 주문 정보, 음식 정보, 결제 정보와 같은 하나의 애그리거트를 대표하는 도메인을 애그리거트 루트라고 한다.

테이블 설계

애그리거트 간의 관계

  • 회원 정보와 주문 정보의 관계(1 대 N)
  • 주문 정보와 커피 정보의 관계(N 대 N)
    N 대 N의 경우 이를 매핑하는 엔터티를 생성하여 1대 N, N 대 1로 관계를 설정한다.

엔터티 클래스 간의 관계

각 애그리거트에 속성을 객체의 맴버로 설정하고 엔터티간의 관계를 가지는 List를 맴버로 추가한다.

DB 테이블 설계

각 테이블 간의 관계는 외래키 참조로 이뤄진다.

profile
BE 개발자를 꿈꾸는 대학생

0개의 댓글