refactor: 문서 개선 중
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
---
|
||||
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 권한의 존재를 구분할 수 있다.
|
||||
+1
-1
@@ -37,7 +37,7 @@ source:
|
||||
|
||||
그리고 자식을 컴포넌트 스캔에서 빼는 것이 이 구조의 나머지 절반이다. 스캔이 자식 설정을 독립적으로 발견하면 루트를 우회하기 때문이다.
|
||||
|
||||
임포트 필터는 권한을 잃고 도구로 남는다. 프레임워크 자신의 자동설정을 후보 집합에서 빼는 일은 어떤 프로젝트 조건보다 먼저 일어나야 하므로 그 자리가 필요하지만, 능력이 켜졌는지 판정하는 것은 그 필터의 일이 아니다.
|
||||
임포트 필터는 마스터 스위치를 판정하지 않고 프레임워크 자동설정을 후보 집합에서 제거하는 역할만 맡는다. 이 제거는 프로젝트 조건을 평가하기 전에 실행되어야 하지만, 능력 활성 여부는 루트 자동설정이 판정한다.
|
||||
|
||||
## 영향
|
||||
|
||||
|
||||
Reference in New Issue
Block a user