chore: remove sample portfolio module

This commit is contained in:
DongHyeonka
2026-08-13 21:47:15 +09:00
parent e552e317d6
commit 697fc740e6
321 changed files with 190 additions and 18961 deletions
+4 -7
View File
@@ -17,15 +17,12 @@
### `ResourceId` — 모든 식별자가 구현하는 마커 인터페이스
시스템의 모든 리소스 식별자 값 객체(예: `WorkLogId`)가 구현하는 공통 인터페이스다.
시스템의 모든 리소스 식별자 값 객체(예: `ArticleId`)가 구현하는 공통 인터페이스다.
식별자의 실제 문자열 값은 `value()` 하나로 노출한다.
- **왜 `sealed` 로 닫지 않았나.** 원래 레퍼런스 설계는 `permits WorkLogId` 처럼 허용 구현을
못 박는 닫힌 집합(`sealed`)으로 만들려 했다. 그런데 `WorkLogId` 같은 실제 식별자는
`sample-portfolio`(샘플 코드)에 있고, 이 마커는 재사용 가능한 `domain-core`에 있다.
`permits` 절을 쓰는 순간 `domain-core``sample-portfolio`를 의존하게 되는데, 이건
모듈 의존성 규칙과 `production_code_does_not_depend_on_sample_portfolio` ArchUnit 규칙이
둘 다 금지하는 방향이다. 그래서 `sealed`을 포기했다.
- **왜 `sealed` 로 닫지 않았나.** 실제 식별자 구현은 각 제품 도메인이 소유하고, 이 마커는
재사용 가능한 `domain-core`에 있다. `permits` 절로 구체 구현을 못 박으면 `domain-core`
바깥 도메인 구현을 의존하게 되어 모듈 의존성 규칙을 거스른다. 그래서 `sealed`을 포기했다.
- **그럼 "닫힌 집합" 보장은 어디서 하나.** `sealed`이 줬을 보장(아무 타입이나 식별자로
쓰지 못하게 하는 것)은 대신 빌드 타임의 `no_long_id_pk` ArchUnit 규칙(D17)이 강제한다 —
도메인의 모든 `id` 필드는 반드시 `ResourceId` 구현이어야 하고, 날것의 `Long` PK 는 금지된다.