data boundary
TypeORM을 사용한 데이터베이스 연동 데이터 경계
컨트롤러는 HTTP 요청을 받고, 서비스는 업무 규칙을 적용하며, 리포지토리는 DB 작업을 담당한다. 이 경계를 지켜야 데이터 코드가 흩어지지 않는다.
경계: Controller ≠ SQL 작성 위치DB 세부사항은 repository 뒤에 둔다.
요청에서 테이블까지
1Controller
DTO를 받아 서비스에 의도를 전달한다.
2Service
검증된 입력으로 업무 규칙과 트랜잭션 경계를 정한다.
3Repository
엔티티 단위 CRUD와 조건 조회를 수행한다.
4Table
TypeORM이 SQL로 바꿔 관계형 DB와 통신한다.
다음에 이어질 확장 지점
01relations
엔티티 사이 관계를 어떻게 가져올지 결정한다.
02transactions
여러 변경을 하나의 성공/실패 단위로 묶는다.
03query builder
복잡한 조건과 조인이 필요할 때 사용한다.