현재 Akan.js v1 문서를 보고 있습니다.최신 v2 문서 보기
사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
소개▾
튜토리얼▾
시스템 아키텍처▾
모듈 규칙▾
스칼라 규칙▾

model.signal.ts

Signal은 모듈의 외부 인터페이스를 정의합니다. 다양한 프로토콜(HTTP, GQL, WebSocket)을 통해 Service 로직을 외부 세계와 연결합니다.
📡세 가지 Signal 유형
  • Internal: 백그라운드 작업, 크론 잡
  • Endpoint: 공개 API (REST/GQL, WebSocket)
  • Slice: 프론트엔드용 데이터 서브셋

내부 작업 정의하기

internal()을 사용하여 사용자 요청과 독립적으로 실행되는 크론 잡이나 프로세스 큐와 같은 백그라운드 작업을 정의합니다.
interval(ms)
'ms' 밀리초마다 실행되는 반복 작업을 정의합니다.
process(ReturnType)
워커가 처리하는 백그라운드 프로세스 큐를 정의합니다.
product.signal.ts

공개 API 정의하기

endpoint()를 사용하여 표준 API 메서드를 정의합니다. Query, Mutation, 실시간 구독을 혼합하여 사용할 수 있습니다.
Method Types
query(ReturnType, options?)
GraphQL Query 또는 HTTP GET 엔드포인트를 정의합니다.
mutation(ReturnType, options?)
GraphQL Mutation 또는 HTTP POST 엔드포인트를 정의합니다.
message(ReturnType, options?)
WebSocket 메시지 핸들러를 정의합니다.
pubsub(payloadType)
PubSub 토픽 핸들러를 정의합니다.
Parameter Builders
파라미터는 엄격하게 범위가 지정됩니다. 예를 들어, Query에서 .room()을 사용하거나 Subscription에서 .body()를 사용할 수 없습니다.
.param(name, Type, options?)
필수 경로 파라미터. (사용 가능: Query, Mutation, Process)
.search(name, Type, options?)
쿼리 스트링 또는 선택적 인자. (사용 가능: Query, Mutation)
.body(name, Type, options?)
요청 바디 파라미터. (사용 가능: Mutation)
.msg(name, Type, options?)
메시지 페이로드 필드. (사용 가능: Message)
.room(name, Type, options?)
PubSub 룸 식별자. (사용 가능: PubSub)
Chat Example
Client Usage (fetch)
fetch 객체를 사용하여 클라이언트에서 엔드포인트 메서드를 호출합니다.
Client Usage

표준 모델 API

다음 메서드들은 모든 모델에 대해 자동으로 생성되며 fetch 객체를 통해 사용할 수 있습니다.
view[Model](id: string): Promise<ViewReturn>
상세 보기 데이터를 가져옵니다. { [Model], [Model]View }를 반환합니다.
edit[Model](id: string): Promise<EditReturn>
편집을 위한 데이터를 가져옵니다. { [Model], [Model]Edit }를 반환합니다.
merge[Model](id: string | null, data: Partial<Model>): Promise<Model>
모델 데이터를 생성하거나 업데이트합니다. 업데이트된 Model을 반환합니다.

Slice 및 Store 정의하기

slice()를 사용하여 특정 컨텍스트(예: '내 티켓', '프로젝트 티켓')에 대한 API를 그룹화합니다. 클라이언트 측 Store와 페이지네이션 Action을 자동으로 생성합니다.
⚡자동화 기능
Slice를 정의하면 클라이언트에서 fetch.init[SliceName]이 자동으로 생성됩니다. 데이터 로딩, 페이지네이션, 상태 관리를 한 번에 처리합니다.
Server Definition
ticket.signal.ts
Slice Auto-Generated Methods
각 Slice 정의에 대해 특별히 생성되는 메서드들입니다.
[Model]List[Suffix](...args, skip, limit, sort): Promise<Model[]>
페이지네이션 인자가 포함된 데이터 목록을 가져옵니다. Model 배열을 반환합니다.
[Model]Insight[Suffix](...args): Promise<Insight>
집계 통계를 가져옵니다. Insight 객체를 반환합니다.
init[Model](query?, option?): Promise<InitReturn>
기본 옵션으로 목록을 초기화합니다. { [Model]Init, [Model]List, [Model]Insight }를 반환합니다.
init[SliceName](...args): Promise<InitReturn>
Slice 목록 데이터를 초기화합니다. { [Slice]Init, [Slice]List, [Slice]Insight }를 반환합니다.
Client Usage
Client Page (page.tsx)

Guard 사용 및 정의

Guard는 Signal을 보호합니다. 내장 가드를 사용하거나 Guard 인터페이스를 구현하여 직접 정의할 수 있습니다.
Creating a Custom Guard
canActivate(context)
요청이 허용되는지 여부를 나타내는 불리언 값을 반환합니다.
getRequest(context)
사용자 계정을 포함한 요청 객체를 추출하는 헬퍼입니다.
libs/shared/nest/authGuards.ts
Applying Guards

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

내 AI에 이 문서 연결하기

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