구성 요소와 용어 ​

모듈은 독립적인 책임을, 번들은 선택한 모듈의 조합을 표현합니다. 각 패키지의 logic.json이 조립 방식을 선언합니다.

네 가지 kind ​

kind 역할 include 선언
db_module 데이터 스키마·업무 기능 불가
db_bundle DB 모듈·번들 조합 DB 계열만
ui_module UI 구현·실행 환경 제공 불가
ui_bundle UI와 DB를 조립하는 구성 네 kind 모두

DB 계열은 UI에 역방향 의존하지 않습니다. 패키지 의존 그래프는 비순환이어야 하지만, 테이블 관계/FK 그래프의 순환은 허용됩니다.

선언을 읽는 순서 ​

json
{
  "engine": "1.0.0",
  "kind": "ui_bundle",
  "family": "blog.cms",
  "depend": { "db": ["@ghost/db-blog-publishing"] },
  "include": ["@ghost/ui-blog-editor"],
  "expect": ["blog.editor.toolbar"]
}

위 예시는 블로그 DB에 강하게 의존하고 편집 UI를 선택 조합으로 포함하며, toolbar 계약을 요구합니다. 실제 사용에는 package.json의 패키지 정보와 의존 설치도 필요합니다.

자주 쓰는 용어 ​

용어 의미
Manifest logic.json에 담긴 조립 선언
kind DB/UI 모듈·번들의 종류
family 모듈 계열을 나타내는 논리 이름
namespace 분류와 선택에 쓰는 그룹 라벨
Context 런타임에서 모듈과 하위 조립에 접근하는 객체
expect 소비자가 요구하는 계약
provide UI 계열이 구현·재제공하는 계약
engine Manifest 형식·조립 규칙의 버전
alias / path 사용처 이름 / 하위 Context key를 이은 경로

의존과 포함에서 변경 가능한 조합과 강한 의존의 차이를 이어서 확인하세요.