Files
llm-wiki/raw/daily-notes/2026-05-28.md
T

4.6 KiB

title, source_type, status, tags, date, branches
title source_type status tags date branches
2026-05-28 일일 노트 daily-note raw
daily
ca-tmpl
ca-skeleton
clean-architecture
archunit
2026-05-28
feature-architecture-enforcement-rules

2026-05-28

Layer: raw/daily-notes/ — 그날의 혼합 일일 기록. 그 자체는 wiki로 옮기지 않으며, /ingest가 promotable 항목만 추출해 다른 wiki 영역으로 보낸다. 원본은 raw에 영구 보관.

활성 브랜치

feature-skeleton-package-blueprint-contract 다음으로 이어서 개발할 브랜치는 feature-architecture-enforcement-rules다. 오늘은 Phase C2 전체 roadmap을 처리하지 않고, 방금 구현된 multi-module skeleton의 경계가 깨지지 않도록 architecture enforcement를 실제 코드와 테스트로 붙이는 데 집중한다.

오늘의 계획

브랜치별 항목은 [branch-name] 프리픽스. 오늘 개발 범위는 아래 3개로 제한한다.

  • [feature-architecture-enforcement-rules] ca-tmpl repo의 현재 module dependency graph를 확인하고, 허용/금지 dependency matrix를 domain-core, application-core, adapter-*, app-bootstrap, shared-contract, sample-ticket 기준으로 확정한다.
  • [feature-architecture-enforcement-rules] Gradle dependency guardrail을 구현해서 domain-core -> Spring/adapter, application-core -> adapter-*, production module -> sample-ticket 의존을 차단한다.
  • [feature-architecture-enforcement-rules] ArchUnit test를 추가해서 forbidden import/annotation 규칙을 검증하고, 최소한 architecture test와 관련 Gradle verification task를 로컬에서 실행한다.

한 일

  • ca-tmpl src/build.gradleverifyCleanArchitectureDependencies를 보강해 declared module coverage와 forbidden project dependency 메시지를 강화했다.
  • ca-tmpl CleanArchitectureTest에 application @Transactional 금지, controller direct domain response 금지, mapper boundary, shared-contract package allowlist 규칙을 추가했다.
  • 임시 위반 코드로 신규 ArchUnit 규칙 실패를 확인한 뒤 제거했다.
  • 임시 app-bootstrap -> sample-ticket 의존으로 Gradle dependency verifier 실패를 확인한 뒤 제거했다.
  • cd src && ./gradlew :app-bootstrap:test verifyCleanArchitectureDependencies, cd src && ./gradlew test를 실행해 로컬 검증을 마쳤다.

배운 점

wiki/concepts/로 promotable 후보

  • multi-module Clean Architecture에서는 package 위치보다 module dependency direction이 1차 경계다.
  • sample-ticket은 template fixture/reference module로 유지하되, production module이 sample에 의존하지 못하도록 enforcement rule이 필요하다.

트러블슈팅

raw/errors/ 또는 wiki/projects/ 또는 관련 branch-note의 "마주친 문제" 섹션으로 promotable 후보

면접·포트폴리오로 옮길 만한 것

후보 표기만. daily-note에서 wiki/interview/ 또는 wiki/portfolio/를 직접 만들지 않는다.

내일로 넘긴 것

  • [feature-application-port-usecase-contract] architecture enforcement가 통과한 뒤 application/port/in, application/port/out, transaction runner, repository port 위치를 정리한다.
  • [feature-sample-removal-adoption-contract] architecture enforcement에 production module -> sample-ticket 금지 rule이 반영된 뒤 sample-off runtime isolation 구현 범위를 구체화한다.

잡담 / 회의 / 기타

  • 오늘 daily-note는 feature-skeleton-package-blueprint-contract 다음 개발 착수 범위를 제한하기 위한 계획이다.