image
Akan.js
English
Docs (V1)
image
Akan.js
You are viewing the Akan.js v1 docs.Go to the latest v2 docs
Docs (V1)
MIT 라이선스 하에 배포되었습니다.
Akan.js 공식 컨설팅 서비스Akansoft
Copyright © 2026 Akan.js 모든 권리 보유.
시스템 관리자bassman
소개
• 시작하기
• 작동원리
• 실습하기
튜토리얼
• 상세하게 보여주기
• 상태 변경하기
• 서비스 내에서 상호작용
• 슬라이스로 표시하기
• 페이지를 통한 UX
• 스칼라 사용하기
• 인사이트 사용하기
• 데이터 연결하기
시스템 아키텍처
• 개요
• 백엔드 시스템
• 프론트엔드 시스템
• 환경변수
• 기본 스칼라 타입
• 도메인 기반 모듈
• CSS
모듈 규칙
• 개요
• model.constant.ts
• model.dictionary.ts
• model.document.ts
• model.service.ts
• model.signal.ts
• model.store.ts
• Model.Template.tsx
• Model.Unit.tsx
• Model.Util.tsx
• Model.View.tsx
• Model.Zone.tsx
스칼라 규칙
• 개요
• scalar.constant.ts
• scalar.dictionary.ts
• scalar.document.ts
소개
• 시작하기
• 작동원리
• 실습하기
튜토리얼
• 상세하게 보여주기
• 상태 변경하기
• 서비스 내에서 상호작용
• 슬라이스로 표시하기
• 페이지를 통한 UX
• 스칼라 사용하기
• 인사이트 사용하기
• 데이터 연결하기
시스템 아키텍처
• 개요
• 백엔드 시스템
• 프론트엔드 시스템
• 환경변수
• 기본 스칼라 타입
• 도메인 기반 모듈
• CSS
모듈 규칙
• 개요
• model.constant.ts
• model.dictionary.ts
• model.document.ts
• model.service.ts
• model.signal.ts
• model.store.ts
• Model.Template.tsx
• Model.Unit.tsx
• Model.Util.tsx
• Model.View.tsx
• Model.Zone.tsx
스칼라 규칙
• 개요
• scalar.constant.ts
• scalar.dictionary.ts
• scalar.document.ts
Next
시작하기

아이스크림 비즈니스

당신은 이제부터 한국식 요거트 아이스크림 가게, "Ko-yo" 사장님입니다. 가게는 미국 샌프란시스코에 위치해있으며 20제곱미터 남짓한 공간을 가지고 있습니다. 이제 가게를 오픈해 장사를 시작해야 합니다.
한국식 요거트 아이스크림의 컨셉은 고객이 자유롭게 원하는 토핑을 요거트 베이스 아이스크림 위에 추가할 수 있게 하는 것입니다. 자유로운 고객의 선택과 경험을 위해 주문서 작성 기능을 구현해야 합니다.
start-business
먼저, koyo라는 프로젝트 코드로 akan app을 만들어봅시다. koyo 프로젝트는 당신의 회사가 해당 브랜드로 운영하는 모든 온라인 서비스를 해당 폴더에서 관리할 수 있게 해줍니다. 이제 터미널에서 다음 명령어를 입력해봅시다.
Terminal
이제, koyo 서비스를 로컬 환경에서 다음과 같이 실행할 수 있으며, 브라우저에서 http://localhost:4201 로 접속하면 됩니다.
Terminal

아이스크림 주문 모듈 만들기

자 이제 고객들이 주문을 전산화하고자 합니다. 요거트 아이스크림 주문은 단순합니다. 요거트 베이스 아이스크림 양을 소, 중, 대로 선택하고 원하는 토핑을 체크해서 주문을 할 수 있게 해야 합니다.
Akan.js에서는 기능을 "모듈"로 구성합니다. 모듈은 하나의 기능과 관련된 모든 것을 처리하는 완전한 패키지라고 생각하면 됩니다. 아이스크림 주문 모듈은 아이스크림 주문을 생성, 표시, 관리하는 데 필요한 모든 코드를 포함합니다.
모듈을 생성하면 Akan.js가 일관된 패턴에 따라 필요한 모든 파일을 자동으로 생성합니다. 이렇게 하면 코드가 체계적으로 정리되고 이해하기 쉬워집니다.
toppings
1후르트링
2오레오
3딸기
4망고
5치즈큐브
6옥수수
7그래놀라
8바나나
9무화과
이제 아이스크림 주문에 대한 도메인 모듈을 만들어봅시다. 도메인 이름은 icecreamOrder로, 아이스크림 개별 주문 건에 대한 정보를 저장하고 있는 객체입니다.
Terminal
이 명령어는 모듈을 어떤 애플리케이션에 추가할지 묻습니다 - 우리의 아이스크림 가게 앱이므로 "koyo"를 선택하세요. 모듈 이름 "icecreamOrder"는 이 모듈이 무엇을 처리하는지 설명합니다.
이 명령어를 실행하면 Akan.js가 필요한 모든 파일이 포함된 완전한 폴더 구조를 생성합니다. 무엇이 생성되는지 살펴봅시다:
각 파일은 아이스크림 주문 기능을 구성하는 데 특정한 목적을 가지고 있습니다:
📋
constant.ts: 아이스크림 주문이 어떻게 생겼는지 정의 (사이즈, 토핑 등)
🌍
dictionary.ts: 기술적 용어를 사용자 친화적인 언어로 번역
🗄️
document.ts: 데이터베이스 저장 및 검색 처리
⚙️
service.ts: 비즈니스 로직 포함 (주문 생성, 가격 계산)
🔗
signal.ts: API 호출로 프론트엔드와 백엔드 연결
📦
store.ts: 폼 상태 및 사용자 상호작용 관리
🎨
UI 파일들 (.tsx): 고객이 보고 상호작용하는 시각적 컴포넌트 생성
지금 당장 모든 파일을 이해할 필요는 없습니다! 단계별로 차근차근 진행해보겠습니다. 중요한 것은 Akan.js가 이런 체계적인 구조를 기반으로 작동한다는 것입니다.

Constant 정의하기

Constant 파일은 도메인의 객체가 어떻게 생겼는지 정의하는 파일입니다. 객체의 형태를 데이터베이스에 저장해 기억하고, 클라이언트에서 이 형태를 기반으로 데이터를 조회하고 표현할 수 있습니다.
apps/koyo/lib/icecreamOrder/icecreamOrder.constant.ts
아이스크림 주문은 위와 같은 객체로 표현할 수 있습니다. 주문을 생성하기 위한 정보인 IcecreamOrderInput은 아이스크림 사이즈와 토핑을 정하면 주문을 만들 수 있습니다.
좋습니다! 이제 아이스크림 주문이 어떻게 생겼는지 정의했습니다. 하지만 고객들이 "size"와 "toppings"를 자신의 언어로 어떻게 볼 수 있을까요? 바로 여기서 dictionary가 필요합니다.

Dictionary 채우기

객체의 각 데이터가 사용자에게 표기되고 설명되기 위해서는 dictionary 파일을 채워야 합니다. Dictionary에서 각 필드를 사용자에게 어떻게 표출할 지 설정할 수 있고, 다국어 표기도 기본으로 지원됩니다.
Dictionary는 전체 모듈을 설명하는 두 가지 중요한 항목으로 시작합니다:
🏷️modelName
사용자가 기능의 제목이나 이름으로 보게 될 내용입니다. 기술적인 "icecreamOrder" 대신 영어로는 "Ice cream Order", 한국어로는 "아이스크림 주문"을 보게 됩니다.
📝modelDesc
이 기능이 무엇을 하는지에 대한 더 긴 설명을 제공합니다. 사용자가 가게에서 아이스크림 주문의 목적과 맥락을 이해하는 데 도움이 됩니다.
apps/koyo/lib/icecreamOrder/icecreamOrder.dictionary.ts
이러한 번역은 앱을 사용자 친화적으로 만듭니다! 예를 들어, 고객이 아이스크림 가게 웹사이트를 방문하면 기술적인 "icecreamOrder"가 아닌 "아이스크림 주문"을 페이지 제목으로 보게 됩니다. 설명은 페이지가 무엇을 위한 것인지 설명하는 데 도움이 됩니다.
이제 고객들은 "size" 대신 "사이즈"를, "50/100/200" 대신 "소형/중형/대형"을 보게 됩니다. 다음으로, 고객이 실제로 주문할 수 있는 폼을 만들어봅시다.

Template 파일 만들기

이제 고객이 사용할 주문 폼을 만들어봅시다. Template 파일은 고객이 아이스크림 사이즈와 토핑을 선택할 수 있는 입력 폼을 생성합니다.
apps/koyo/lib/icecreamOrder/IcecreamOrder.Template.tsx
이 코드는 두 개의 입력 필드를 만듭니다: 아이스크림 사이즈 선택(소/중/대)과 다중 토핑 선택입니다. Field.ToggleSelect는 세 가지 크기 옵션을 버튼으로 보여주고, Field.MultiToggleSelect는 고객이 여러 토핑을 한 번에 선택할 수 있게 합니다.
"st.use.icecreamOrderForm()"은 현재 폼 데이터를 가져오고, "st.do.setSizeOnIcecreamOrder"와 "st.do.setToppingsOnIcecreamOrder"는 고객이 선택할 때 폼을 업데이트합니다.
🎉 이제 고객들이 폼을 사용해서 주문을 생성할 수 있습니다. 하지만 그 주문들을 멋지고 시각적인 방법으로 어떻게 보여줄까요? 각 주문을 아름답게 표시할 카드 디자인을 만들어봅시다.

Unit 파일 업데이트

Unit 파일은 각 주문이 목록이나 카드 형태로 어떻게 보이는지 보여줍니다. 주문 정보를 예쁘게 표시하는 "영수증"이나 "주문 요약"이라고 생각하면 됩니다.
apps/koyo/lib/icecreamOrder/IcecreamOrder.Unit.tsx
이것은 각 아이스크림 주문에 대한 카드 디자인을 만듭니다. 카드는 주문 ID와 상태를 다른 색상으로 보여줍니다 - "활성"은 녹색, "처리중"은 파란색, "완료"는 빨간색입니다.
clsx 함수는 주문 상태에 따라 카드의 모양을 바꾸고, l()은 사용자의 언어로 상태 텍스트를 표시합니다.
🚀 폼(Template)과 표시 카드(Unit)가 있습니다. 이제 고객들이 실제로 방문해서 아이스크림 주문 시스템을 사용할 수 있도록 웹페이지에 모든 것을 연결해봅시다!

페이지에 노출하기

마지막으로, 고객이 실제로 아이스크림 주문을 할 수 있는 페이지를 만들어봅시다. 이 페이지는 모든 것을 연결하고 웹 URL을 통해 접근 가능하게 만듭니다.
apps/koyo/app/[lang]/page.tsx
이 완전한 페이지 구현은 모든 조각들이 어떻게 함께 작동하는지 보여줍니다! 각 부분이 무엇을 하는지 분해해 봅시다:
🏷️l("icecreamOrder.modelName")
이것은 우리의 dictionary를 사용해 페이지 제목을 표시합니다! "아이스크림 주문"을 크고 굵은 제목으로 보여줍니다.
➕Model.New Button
클릭하면 폼(Template.General)을 여는 "새 주문" 버튼을 만듭니다. 고객들이 새로운 아이스크림 주문을 하는 데 사용할 수 있습니다.
📋Zone.Card
기존의 모든 아이스크림 주문을 카드로 표시하여 주문 세부사항과 상태를 보여줍니다.
이제 http://localhost:4201/icecreamOrder를 방문하면 아이스크림 주문 시스템을 볼 수 있습니다.
아이스크림 비즈니스
아이스크림 주문 모듈 만들기
Constant 정의하기
Dictionary 채우기
Template 파일 만들기
Unit 파일 업데이트
페이지에 노출하기