사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
CLI 레퍼런스▾
AkanJS 레퍼런스▾
페이지 명령
create-crud-page는 이미 있는 모듈에 목록, 생성, 상세, 수정 페이지를 만들어, 바로 데이터를 보고 고칠 수 있게 합니다. create-module 다음에 실행하고, 만들어진 페이지는 여느 코드처럼 고쳐 씁니다.이 페이지에서 쓰는 말
용어설명
CRUD
생성, 조회, 수정, 삭제입니다. 모델의 데이터를 다루는 기본 동작입니다.
sys:module
CLI가 모듈을 가리키는 방식입니다.
shop:product는 shop 앱의 lib/product/입니다.(public)처럼 괄호로 감싼 폴더입니다. 파일을 묶기만 하고 URL에는 나타나지 않습니다.스캐폴드
명령이 만들어 주는 시작 코드로, 직접 고쳐 쓰는 것을 전제로 합니다.
만드는 페이지
파일
기본
--single
대상 폴더(기본값
page/(<app>)/(public)/<module>/)에 생기는 파일_index.tsx
✓
✓
/<module>: 카드 목록과 생성 버튼입니다. --single이면 버튼이 모달을 엽니다.new/_index.tsx
✓
/<module>/new: Template.General로 만든 생성 폼입니다.[<module>Id]/_index.tsx
✓
/<module>/<id>: Zone.View로 그린 상세 화면과 수정 페이지 링크입니다.[<module>Id]/edit/_index.tsx
✓
/<module>/<id>/edit: 저장된 데이터가 채워진 수정 폼입니다.✓만듦만들지 않음
모듈에 있어야 하는 것
페이지는 모듈의 다음 부분을 사용합니다. create-module로 만든 모듈에는 모두 있으며, 이름을 바꾸거나 지웠다면 생성된 페이지도 맞춰 고칩니다.
부분설명
inPublic
목록과 두 폼이 데이터를 불러오고 저장할 때 쓰는 slice입니다.
Zone.CardZone.View
카드 목록과 상세 화면입니다.
Template.General
생성 페이지와 수정 페이지가 함께 쓰는 폼 본문입니다.
실행한 뒤 확인할 것
- 링크는 URL이
/<module>이라고 가정합니다. 버튼, 저장 후 이동할 주소,Zone.Card의 카드가 모두/<module>로 시작하는 주소를 가리킵니다. 페이지를 다른 URL로 옮기면 이 링크도 함께 고칩니다. --single은 상세 페이지를 만들지 않습니다. 카드는 여전히/<module>/<id>로 연결되므로, 링크를 고치거나--single없이 네 페이지를 모두 만듭니다.- 페이지는 세션을 확인하지 않습니다. 쓰기는
create-module이 만든 slice를 따릅니다.libs/shared가 있으면cru: Admin, 없으면cru: None입니다. 배포 전에_layout.tsx에서 페이지를 막고, 화면에 맞는 guard를 정합니다.


--base-path는 URL 접두사가 아니라 앱 안의 폴더입니다. --base-path admin은 page/ 밖인 apps/shop/admin/에 파일을 쓰므로 라우트가 생기지 않습니다. page/(shop)/(admin)/product처럼 폴더 전체를 적습니다.관련 페이지
create-crud-page
기존 모듈의 목록, 생성, 상세, 수정 페이지를 만듭니다.
--base-path로 다른 폴더를 지정하지 않으면 page/(<app>)/(public)/<module>/에 만듭니다.형식
인자
appString
페이지를 받을 앱입니다. 생략하면 앱이 하나일 때는 그 앱을, 여럿이면 목록에서 고릅니다.
sys:moduleString
shop:product 같은 모듈입니다. 생략하면 앱이나 라이브러리를 고른 뒤 모듈을 고릅니다.옵션
--base-pathString기본값 page/(<app>)/(public)/<module>-b
파일을 쓸 폴더로, 앱 루트 기준 경로입니다. 예:
page/(shop)/(admin)/product--singleBoolean기본값 false-s
페이지 네 개 대신, 목록과 생성 모달이 든
_index.tsx 하나만 만듭니다.참고
이름설명
같은 앱
대상 앱의 모듈을 고릅니다. 페이지가
@apps/<sys>/client에서 import하기 때문입니다.데이터베이스 모듈만
lib/_<service>의 서비스 모듈과 lib/__scalar의 스칼라는 받지 않습니다.create-module과 함께
akan create-module <name> <app> --page는 기본 폴더로 이 명령까지 실행합니다.기존 파일
같은 경로에 파일이 있으면 스캐폴드로 덮어쓰므로, 실행 전에 커밋해 둡니다.
예시