Files
document-haness/docs/clean-architecture-backend-template/tech-log-studio/assembly-ownership/decision/decision-destructive-admin-operations-are-not-autoconfigured.md
T

46 lines
2.1 KiB
Markdown

---
kind: PROJECT_DECISION
slug: destructive-admin-operations-are-not-autoconfigured
title: 파괴적 admin 작업은 자동설정하지 않는다
topic: assembly-ownership
topicName: 조립 소유권 — 통제와 그 의존을 같은 곳이 소유하기
project: clean-architecture-backend-template
status: 게시 전
decisionStatus: ADOPTED
source:
- final/document.md#a19
- final/document.md#10-3
- final/document.md#5-4
- final/document.md#a19 §8.1
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
---
# 파괴적 admin 작업은 자동설정하지 않는다
플랫폼은 파괴적 admin 작업의 보호 장치와 계약을 제공할 수 있지만, 실제 실행 서비스까지 기본 빈으로 만들지는 않는다.
## 근거
- **가드와 journal 과 durability 검증기는 켜지고, 부를 서비스가 없었다**
보호 장치와 실행 주체가 분리된 현재 조립 결과를 보여 준다.
- **꺼짐은 조건의 반복이 아니라 구조여야 한다**
능력 활성 여부를 조립 구조로 제한하는 기준이다.
## 결정문
파괴적 admin operation의 실제 실행 서비스는 자동설정하지 않는다. 애플리케이션이 사용 의도를 명시하고 필요한 의존성을 제공한 경우에만 별도 조립 경로에서 만든다.
## 판단 이유
파괴 작업은 잘못 노출됐을 때 복구 비용이 크다. 플랫폼이 클래스패스와 설정만 보고 실행 서비스를 자동 생성하면, 사용자가 기능을 선택하지 않았는데도 파괴 권한이 생길 수 있다.
가드와 journal을 자동설정하는 것은 실행 서비스 자동설정과 다르다. 보호 장치는 실행 서비스가 제공되는 경우 적용할 공통 규칙이고, 서비스 생성은 채택 애플리케이션의 책임으로 둔다.
## 영향
감수하는 것 : 기능을 쓰는 애플리케이션이 명시적인 wiring을 추가해야 한다.
얻는 것 : 라이브러리를 추가했다는 이유만으로 파괴적 operation이 실행 가능한 상태가 되지 않는다.
얻는 것 : 자동설정의 존재와 admin 권한의 존재를 구분할 수 있다.