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