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

서비스와 상호작용

주문이 들어오면 직원에게는 아이스크림을 만들 수 있도록 정보를 전달하고, 아이스크림이 만들어지면 손님에게 알리는 것이 필요합니다. 또, 손님이 아이스크림이 녹을 정도로 오랫동안 가져가지 않으면 다시 알림을 보내는 것이 필요합니다.
이를 위해 서빙된 주문이 완료처리되지 않을 경우에 주기적으로 경고를 보내는 작업을 추가해야 합니다. 또, 손님에게 주문을 수령하도록 촉구하는 알람 메세지를 보내는 작업을 추가해야 합니다.

어댑터 선언하기

먼저, 알람과 같은 외부 API 또는 모듈을 연결하는 것부터 시작해봅시다. 메세지나 이메일을 보내는 api를 연동할 수 있지만, 이번 튜토리얼에서는 단순히 콘솔을 출력하는 api를 만들어 연결해봅시다.
service, signal, document와 같은 모듈 기능은 바로 외부와 연동하지 않고, 별도로 어댑터를 만들어 이를 주입하는 방식이 바람직합니다. 먼저, /nest 폴더에서 다음과 같이 어댑터를 생성해봅시다.
apps/koyo/nest/alarmApi.ts
그런 다음, /nest/index.ts 파일에서 모듈을 내보냅니다.
apps/koyo/nest/index.ts

외부 API 사용하기

이제 알람을 위한 어댑터를 서버에 주입하기 위해서는 option.ts파일에서 주입할 어댑터를 선언하고 등록해야 합니다.
apps/koyo/lib/option.ts
이제 icecreamOrderService에서 alarmApi를 주입하여 사용할 수 있습니다.
apps/koyo/lib/icecreamOrder/icecreamOrder.service.ts

도큐먼트에서 쿼리 적용하기

이제, 서빙된 주문이 완료처리되지 않으면 경고 메세지를 보내는 서비스 기능을 추가해봅시다. 테스트가 용이하게 주문이 서빙된 후 15초가 지나면 경고 메세지를 보내도록 해봅시다.
apps/koyo/lib/icecreamOrder/icecreamOrder.service.ts
하지만, 어떻게 아이스크림 주문들 중 서빙된 주문들만 조회할 수 있을까요? 이를 위해서는 document 파일에서 주어진 조건에 맞게 쿼리를 생성하는 기능을 활용해서 리스트 조회 기능을 만들어봅시다.
이제 도큐먼트에서 쿼리를 적용해봅시다.
apps/koyo/lib/icecreamOrder/icecreamOrder.document.ts
IcecreamOrderFilter에서 byStatuses 쿼리를 선언하면, 주어진 조건의 쿼리에 맞게 list, find, count, sample 등의 기능을 사용할 수 있습니다. 예를 들면, listByStatuses, countByStatuses 등의 기능을 사용할 수 있습니다.

인터벌 사용하기

이제 15초마다 해당 서비스를 실행하도록 interval을 사용해봅시다. interval trigger는 내부에서 발생하는 트리거로 작동하는 구조로, IcecreamOrderInternal에서 선언할 수 있습니다.
apps/koyo/lib/icecreamOrder/icecreamOrder.signal.ts
served 상태의 주문이 15초 이상 지나면 콘솔에 경고 메세지가 출력되는 것을 확인할 수 있습니다.

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

내 AI에 이 문서 연결하기

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