본문 바로가기

spring/그 외 알게 된 것

JDBC들어가기전 용어 정리

 

 

 API란?

API(Application Programming Interface)는 프로그램들이 서로 상호작용할 수 있도록 도와주는 매개체다.

  • 예를 들어, 데이터베이스와 애플리케이션 간의 상호작용을 가능하게 하는 JDBC도 API의 한 예다.

 

도메인이란?

도메인은 현실 세계에서 접하는 업무의 한 영역을 의미한다.

  • 예: 쇼핑몰의 "주문", "결제" 등이 도메인이 될 수 있다.

 

애그리거트(Aggregate)

애그리거트는 비슷한 업무 도메인들의 묶음을 의미한다.

  • 예: "주문"과 "결제" 도메인을 포함한 "구매 관리" 애그리거트.

 

애그리거트 루트(Aggregate Root)

애그리거트 내에서 하나의 중심 도메인으로, 다른 도메인 객체들의 상태를 대표하고 관리한다.

  • DDD(Domain-Driven Design, 도메인 주도 설계)에서는 애그리거트 루트를 통해서만 상태를 변경할 수 있다.

 

 DDD(도메인 주도 설계)

DDD는 도메인의 로직과 구조를 설계의 중심에 둔 개발 방법론이다.

  • 복잡한 비즈니스 로직을 쉽게 이해하고 유지보수하기 위해 사용된다.

 

 

논리 모델과 물리 모델

데이터베이스 설계 시 사용되는 두 가지 모델이다.

  • 논리 모델: 엔티티, 속성, 관계 등을 개념적으로 표현한 모델.
    • 예: 엔티티(Entity), 속성(Attribute).
  • 물리 모델: 논리 모델을 실제 데이터베이스로 구현한 모델.
    • 예: 테이블(Table), 컬럼(Column).

 

 

주요 용어 매핑

논리 모델 물리 모델

엔티티(Entity) 테이블(Table)
속성(Attribute) 컬럼(Column)
관계(Relation) 관계(Relation)
키 그룹(Key Group) 인덱스(Index)

 

ORM(Object-Relational Mapping)

ORM은 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술이다.

  • 클래스 ↔ 테이블, 객체 참조 ↔ 외래키(Foreign Key).
  • 예: Hibernate, JPA.

 

애그리거트 루트 간의 참조

  • 객체 참조 대신 ID로 참조하는 것이 권장된다.
  • 이유: 객체 참조를 사용할 경우 의존성 사이클이 생기거나, 애그리거트가 불필요하게 커질 수 있기 때문이다.

 

@Query 애너테이션

  • SQL 쿼리문을 직접 작성할 수 있도록 제공되는 Spring Data JPA 애너테이션이다.
  • 예:
    @Query("SELECT u FROM User u WHERE u.email = :email")
    User findByEmail(@Param("email") String email);