콘텐츠로 이동

REF-004 영역 의존

영역(zonesDir 하위의 서브디렉터리)을 횡단하는 Markdown 링크가, 링크 출발지 영역의 overview.md의 의존 섹션에서 명시적으로 선언되어 있는지를 검증합니다. 선언되지 않은 영역 간 참조는 error 로 보고됩니다.

문서를 auth/ payment/ notification/ 같은 영역(책임 단위의 디렉터리)으로 나누어 관리하면, 영역 간의 의존 관계가 암묵적인 링크로 늘어나 갑니다. 본래는 「authpayment에는 의존하지 않는다」 는 설계 의도가 있어도, 링크는 자유롭게 쓸 수 있기 때문에 어느샌가 늘어나 갑니다. 이 규칙은 「영역 간의 의존은 overview.md의 의존 섹션에 반드시 선언한다」 는 규칙을 강제하여, 설계 의도와 문서 구조를 일치시킵니다.

필드타입필수설명
zonesDirstring영역이 배치되어 있는 디렉터리의 경로
dependencySectionstring의존을 선언할 섹션의 제목(기본값: Dependencies)

zonesDir 바로 아래의 각 서브디렉터리가 1개의 영역으로 취급됩니다. 각 영역에는 overview.md가 존재하고, 거기에 dependencySection으로 지정한 제목이 있을 것, 그 하위의 테이블에 의존 대상의 영역 이름이 나열되어 있을 것을 기대합니다.

docs/zones/auth/overview.md:
# Auth zone
## Dependencies
| Zone |
| ---- |
docs/zones/auth/login.md:
자세한 내용은 [결제 로직](../payment/charge.md)을 참조하세요.

auth/login.md에서 payment 영역으로의 링크가 있지만, auth/overview.mdDependencies 섹션에 payment가 선언되어 있지 않기 때문에 위반이 됩니다.

docs/zones/auth/login.md
line 1 error Cross-zone reference to "payment" zone, but "payment" is not listed in the "Dependencies" section of auth/overview.md REF-004

의존을 overview.md에 명시적으로 추가합니다.

docs/zones/auth/overview.md:
# Auth zone
## Dependencies
| Zone |
| ------- |
| payment |

불필요한 의존이었다면, 링크를 제거하거나 의존 출발지 영역을 재검토합니다.

{
"rule": "ref004",
"options": {
"zonesDir": "docs/zones",
"dependencySection": "Dependencies"
}
}