[Proof] @Transactional은 public 메서드에만 걸리는가 — 반증
Domain 영속화 표준은 트랜잭션 경계를 UseCase 구현 메서드에 두기로 하면서 이렇게 적었다.
Domain 영속화 표준은 트랜잭션 경계를 UseCase 구현 메서드에 두기로 하면서 이렇게 적었다.
예외 종류별 처리 표준은 Spring이 던지는 요청 오류까지 Advice에 등록하라고 정했고, 근거는 이랬다.
계층별 DTO 명명 표준은 PagingResult에 totalCount를 두는 대가를 이렇게 적었다.
예외 종류별 처리 표준은 외부 연동 실패를 5xx로 가르면서 이렇게 적었다.
패키지 구조 표준은 infra를 package-private으로 막으면서, 영속성 예외를 구현체에서 번역해야 하는 이유를 이렇게 적었다.
DTO 생성자 표준은 「생성자로만 만든다」는 규칙에 예외를 둘만 뒀고, 그중 하나가 MyBatis다.
DTO 생성자 표준은 금지 목록을 적은 뒤 그 목록이 저절로 지켜진다고 했다.
DTO 생성자 표준 원칙 3에서 「가장 위험한 것은 조용한 되돌아감이다」라는 절이 금지 목록의 근거다.
DTO 생성자 표준 원칙 3은 이렇게 적었다.
패키지 구조 표준 원칙 2는 모든 패키지가 common을 봐도 되는 이유에 조건을 하나 걸었다.
계층별 검증 표준은 검증 실패 응답을 한 자리에서 만들기로 했고, 근거는 이랬다.
예외 종류별 처리 표준은 벌크·배치 경로에서 예외를 번역하지 않기로 하면서, 대신 로그 자리를 이렇게 정했다.
예외 처리 표준과 예외 종류별 처리 표준은 Error 계열을 잡지 않기로 정했고, 그 근거로 이렇게 적었다.
Service 계층 assert 표준은 도달 불가 분기를 assert가 아니라 throw new AssertionError로 막기로 했고, 근거는 이 대비였다.
애그리거트 경계 표준은 자식 컬렉션을 이렇게 다루기로 했다.