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);
'spring > 그 외 알게 된 것' 카테고리의 다른 글
| JDBC와 JPA (0) | 2024.06.25 |
|---|---|
| URI 와 URL은 뭐가 다를까 (0) | 2024.06.18 |
| 백엔드에서 API의 의미; 왜 API개발자라고 할까 (0) | 2024.06.17 |
| Spring MVC 용어 (0) | 2024.06.15 |
| 왜 수동 Bean 등록에서도 어노테이션을 사용하는가? (0) | 2024.06.05 |