사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
CLI 레퍼런스▾
AkanJS 레퍼런스▾
UI 레퍼런스▾

모듈 명령

앱이나 라이브러리 안의 모듈을 만들고, 지우고, 빠진 파일을 채우는 명령 여섯 가지입니다. 저장 모델이 중심인 기능에는 create-module을, 그렇지 않은 기능에는 create-service를 씁니다.
이 페이지에서 쓰는 말
데이터베이스 모듈
저장되는 모델 하나를 중심으로 한 모듈로, lib/<module>/에 있습니다.
서비스 모듈
알림처럼 저장 모델 하나에 묶이지 않는 동작을 담는 모듈로, lib/_<service>/에 있습니다.
sys
모듈이 들어가는 앱이나 라이브러리입니다. shop:story에서는 shop입니다.
스캐폴드
명령이 만들어 주는 시작 코드로, 직접 고쳐 쓰는 것을 전제로 합니다.
리포트
create 명령이 끝날 때 출력하는 결과로, 만든 파일과 다음에 실행할 명령이 담깁니다.
새 모듈에 생기는 파일
파일
create-module
create-service
모델과 로직
.abstract.md
✓
✓
모듈의 규칙과 흐름을 적은 글입니다.
.constant.ts
✓
필드와 Light 클래스입니다.
.document.ts
✓
저장된 레코드의 쿼리와 상태 변경입니다.
.dictionary.ts
✓
✓
영어·한국어 라벨입니다.
.service.ts
✓
✓
비즈니스 로직입니다.
.signal.ts
✓
✓
호출자가 부르는 엔드포인트입니다.
.store.ts
✓
✓
클라이언트 상태와 액션입니다.
UI
.View.tsx
✓
레코드 하나의 상세 화면입니다.
.Unit.tsx
✓
목록의 행이나 카드 하나입니다.
.Template.tsx
✓
생성·수정 폼입니다.
.Zone.tsx · .Util.tsx
✓
페이지 섹션, 그리고 삭제 버튼 같은 작은 도메인 도우미입니다.
✓생성생성 안 함
나머지 create 명령 셋은 이미 있는 모듈에 UI 파일을 하나씩 만듭니다. create-view는 View, create-unit은 Unit, create-template은 Template을 만듭니다.
여섯 명령의 공통 규칙
  • 대상을 적거나, 목록에서 고릅니다. create-module과 create-service는 두 번째 인자로 앱이나 라이브러리를 받고, 나머지 네 명령은 <sys>:<module>를 받습니다. 생략하면 CLI가 목록을 띄워 묻습니다.
  • 고를 수 있는 것은 데이터베이스 모듈뿐입니다. lib/_<service>, lib/__scalar처럼 밑줄이 있는 폴더는 sys:module 목록에 나오지 않습니다.
  • create 명령은 리포트로 끝납니다. 만든 파일과 다음 단계인 akan sync <sys>, akan lint <sys>가 적혀 있습니다. -o json을 붙이면 같은 리포트를 JSON 객체 하나로 받습니다.
  • remove-module은 리포트를 출력하지 않습니다. 끝나면 akan sync <sys>를 직접 실행합니다.
관련 페이지

create-module

앱이나 라이브러리에 데이터베이스 모듈을 만듭니다. 표준 모듈 파일을 lib/<module>/에 만들고, --page를 주면 라우트 파일도 함께 만듭니다.
형식
인자
module-nameString필수
모듈 이름입니다. 공백은 없애고 첫 글자는 소문자로 바꾸며, 생략하면 입력을 받습니다.
sysString
모듈을 만들 앱이나 라이브러리로, shop 같은 이름입니다. 생략하면 목록에서 고릅니다.
옵션
--pageBoolean기본값 false-p
모듈의 CRUD 라우트도 함께 만듭니다. 앱에서만 동작하고 라이브러리에서는 무시합니다.
--formatString기본값 markdownmarkdown | json · -o
markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력해 스크립트와 에이전트가 씁니다.
참고
파일
abstract, constant, dictionary, document, service, signal, store와 UI 파일 다섯 개로 모두 열두 개입니다.
--page
page/(<app>)/(public)/<module>/ 아래에 목록, 생성, 상세, 수정 라우트를 만듭니다.
가드
슬라이스는 Public으로 읽고, root와 cru는 @libs/shared/srvkit의 Admin입니다.
libs/shared가 없으면
root와 cru가 None이므로, 가드를 직접 정할 때까지 아무도 쓰지 못합니다.
같은 이름
같은 이름의 모듈이 이미 있으면 파일마다 덮어쓰므로, 실행 전에 커밋해 둡니다.
예시

create-service

서비스 모듈을 만듭니다. 저장 모델 하나를 중심으로 하지 않는 동작을 담는 모듈입니다. lib/_<service>/에 만들어지며 constant, document, UI 파일은 없습니다.
형식
인자
service-nameString필수
서비스 이름입니다. 공백과 앞의 밑줄은 없애고 첫 글자는 소문자로 바꿉니다.
sysString
모듈을 만들 앱이나 라이브러리로, shop 같은 이름입니다. 생략하면 목록에서 고릅니다.
옵션
--formatString기본값 markdownmarkdown | json · -o
markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력해 스크립트와 에이전트가 씁니다.
참고
파일
abstract, dictionary, service, signal, store 다섯 개입니다.
파일 이름
밑줄은 폴더에만 붙습니다. lib/_noti/noti.service.ts, lib/_noti/noti.abstract.md처럼 됩니다.
UI
서비스 모듈에는 Zone과 Util 파일만 둘 수 있으며, 직접 작성합니다.
예시

remove-module

앱이나 라이브러리에서 데이터베이스 모듈을 지웁니다. lib/<module>/ 폴더 전체를 확인 없이 한 번에 지웁니다.
형식
참고
sys:module
모듈은 shop:story처럼 <sys>:<module>로 적습니다. 생략하면 앱이나 라이브러리를 고른 뒤 모듈을 고릅니다.
데이터베이스 모듈만
lib/_<service>의 서비스 모듈과 lib/__scalar의 스칼라는 목록에 나오지 않습니다.
남는 것
--page로 만든 라우트와 다른 모듈의 import는 남으므로, 직접 지웁니다.
그다음
akan sync <sys>를 실행해 생성 파일에서도 모듈을 뺍니다.
예시

create-view

기존 모듈에 View 파일을 만듭니다. 레코드 하나의 상세 화면입니다. 언제나 서버 컴포넌트라서 "use client"를 붙이지 않습니다.
형식
옵션
--formatString기본값 markdownmarkdown | json · -o
markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력해 스크립트와 에이전트가 씁니다.
참고
sys:module
모듈은 shop:story처럼 <sys>:<module>로 적습니다. 생략하면 앱이나 라이브러리를 고른 뒤 모듈을 고릅니다.
데이터베이스 모듈만
lib/_<service>의 서비스 모듈과 lib/__scalar의 스칼라는 목록에 나오지 않습니다.
만드는 파일
General을 내보내는 lib/<module>/<Module>.View.tsx입니다.
name 필드
스캐폴드는 모듈의 name 필드만 그리므로, 필요한 필드로 바꿔 씁니다.
기존 파일
같은 경로에 파일이 있으면 스캐폴드로 덮어쓰므로, 실행 전에 커밋해 둡니다.
예시

create-unit

기존 모듈에 Unit 파일을 만듭니다. 목록의 행이나 카드 하나입니다. 모듈의 Light 데이터를 받으며, View처럼 언제나 서버 컴포넌트입니다.
형식
옵션
--formatString기본값 markdownmarkdown | json · -o
markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력해 스크립트와 에이전트가 씁니다.
참고
sys:module
모듈은 shop:story처럼 <sys>:<module>로 적습니다. 생략하면 앱이나 라이브러리를 고른 뒤 모듈을 고릅니다.
데이터베이스 모듈만
lib/_<service>의 서비스 모듈과 lib/__scalar의 스칼라는 목록에 나오지 않습니다.
만드는 파일
Card를 내보내는 lib/<module>/<Module>.Unit.tsx입니다.
name 필드
스캐폴드는 모듈의 name 필드만 그리므로, 필요한 필드로 바꿔 씁니다.
기존 파일
같은 경로에 파일이 있으면 스캐폴드로 덮어쓰므로, 실행 전에 커밋해 둡니다.
예시

create-template

기존 모듈에 Template 파일을 만듭니다. 모듈의 생성·수정 폼입니다. 스토어의 폼 상태에 묶여 있어 언제나 클라이언트 컴포넌트이고, 첫 줄이 "use client"입니다.
형식
옵션
--formatString기본값 markdownmarkdown | json · -o
markdown은 사람이 읽는 형식이고, json은 같은 리포트를 객체 하나로 출력해 스크립트와 에이전트가 씁니다.
참고
sys:module
모듈은 shop:story처럼 <sys>:<module>로 적습니다. 생략하면 앱이나 라이브러리를 고른 뒤 모듈을 고릅니다.
데이터베이스 모듈만
lib/_<service>의 서비스 모듈과 lib/__scalar의 스칼라는 목록에 나오지 않습니다.
만드는 파일
폼 General을 내보내는 lib/<module>/<Module>.Template.tsx입니다.
name 필드
스캐폴드는 모듈의 name 필드만 그리므로, 필요한 필드로 바꿔 씁니다.
기존 파일
같은 경로에 파일이 있으면 스캐폴드로 덮어쓰므로, 실행 전에 커밋해 둡니다.
예시

MIT 라이선스 하에 배포되었습니다.

내 AI에 이 문서 연결하기

MCPhttps://akanjs.com/mcp
Copyright © 2026 Akan.js 모든 권리 보유.시스템 관리자bassman