--- 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 권한의 존재를 구분할 수 있다.