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
시작하기

한 번 작성하고 어디든 배포

왜 우리는 하나의 비즈니스를 구현하기 위해 쪼개진 여러 프로젝트를 만들어야 하는 걸까요?
백엔드, 프론트엔드, 안드로이드, iOS등을 나누어서 개발하는 것은 혼란스럽고 비효율적인 것 아닐까요? 한 번에 모든 것을 할 수 없을까요?.
Akan.js는 풀스택 프레임워크로, 한번의 코드 작성으로 백엔드, 프론트엔드 웹, 안드로이드, iOS에 모두 배포할 수 있는 구조를 가지고 있습니다.
image
타입 안전한 방식의 한 번의 코드 작성으로 백엔드, 프론트엔드 웹, 안드로이드, iOS에 모두 배포할 수 있습니다.
이를 통해, 다양한 플랫폼과의 씨름은 더 이상 필요없습니다. 서비스의 개발과 사용자의 편의를 위한 노력에 집중할 수 있습니다.
Akan.js는 다음의 배경 기술들을 매끄럽게 통합하여 확장가능한 시스템을 만들도록 도와줍니다.
웹/모바일:
서버:
테스팅:
배포:

개발자를 비즈니스맨으로

Akan.js는 기술적인 코드를 최소화하고, 비즈니스 로직을 구현하는 데 집중할 수 있도록 도와줍니다.
또한, 애플리케이션을 구축하기 위한 여러 편의기능을 내장하고 있고, 설치가능한 라이브러리들을 제공함으로써 비즈니스 개발의 모범 사례를 제공합니다.
워크스페이스 (모노레포)
Akan.js에서는 하나의 조직(팀)이 하나의 레포지토리(workspace) 위에서 여러 앱을 개발하는 구조로 이루어져 있습니다. 하나의 workspace는 여러 앱(app)과 공통 라이브러리(lib)를 가지고 있습니다.
image
앱(apps): 앱은 독립적으로 배포될 수 있는 하나의 애플리케이션입니다. 웹 앱, 모바일 앱, 서버를 모두 포함하여 모든 플랫폼에 배포될 수 있습니다.
공통 라이브러리(libs): 여러 앱들이 사용할 수 있는 공통의 기능들을 제공합니다. 예를 들면, 로그인, 결제, 알림, 채팅 등은 일반적으로 다양한 앱에서 사용되는 기능들입니다. 이러한 기능들을 공통 라이브러리로 제공하면, 개발자들은 이러한 기능들을 재사용하여 개발 시간을 줄일 수 있습니다.
처음 `akan create-workspace`를 진행하면, 기본적으로 shared, util 라이브러리가 설치되고, 이는 공통 라이브러리로서 모든 앱에서 사용할 수 있습니다.
생성한 내 애플리케이션(e.g. myapp)에서 서버 로직, 도메인 모듈, 클라이언트 로직, 컴포넌트 등의 공통 라이브러리를 사용할 수 있습니다. 예를 들면, shared 라이브러리에서는 관리자페이지와 파일 업로드 도구 등을 제공합니다.
80:20 규칙
건강하게 유지되는 워크스페이스는 약 80%의 코드가 공통 라이브러리로 공유되고, 20%의 코드가 각 앱에 특화되어 운영되는 구조를 권장합니다.
하지만 규칙을 지키려고 노력하지 않아도 됩니다. 당신이 마음을 담아 워크스페이스를 유지보수 하는 과정에서 자연스럽게 비율이 맞추어질 것입니다.
워크스페이스 파일 구조
서버, 클라이언트, 그리고 공통의 코드들을 효율적으로 배치하기 위해 apps와 libs 구조는 다음과 같은 동일한 구조를 가집니다.
서버는 도메인 기반으로 묶여 최종적으로 main.ts 파일에서 실행되는 Node.js 어플리케이션으로 구현되며, 클라이언트는 Next.js app router 방식의 파일 기반 라우팅으로 구현됩니다.
서버와 클라이언트를 구동하기 위해서 각각 server.ts와 client.ts 파일에 모듈화된 코드들을 모아 하나의 파일(barrel file)로 구현합니다.
이를 위해 서버 파일, 클라이언트 파일, 공통 파일을 구분하여 파일 규칙을 가져가며, 이를 개략적으로 표현하면 다음과 같습니다.
image
위 그림과 같이 파일 규칙에 맞추어 서버, 클라이언트, 공통파일을 잘 배치하여 확장가능하고 재사용가능한 구조를 구현할 수 있습니다. 지금 모든 규칙을 이해할 필요는 없습니다. 앞으로 나올 실습에 맞추어 코드를 작성하면서 하나씩 이해해보도록 합시다. 가장 중요한 것은 내가 구현하고자 하는 코드가 서버, 클라이언트, 공통파일 중 어디에 위치하는지를 파악하는 것입니다.
예를 들면, 패스워드 기반 로그인 기능을 구현한다고 가정합시다. 아이디와 패스워드를 입력받는 컴포넌트는 클라이언트 기능입니다. 이를 암호화해서 저장하는 기능은 서버 기능이며, 비밀번호가 8자가 넘는지 체크하는 것은 양쪽 모두 필요한 공통 기능입니다.

동료들과 한몸처럼

Akan.js는 엄격한 파일 규칙을 제공하여, 누가 구현하든 같은 방식으로 구현할 수 있도록 도와줍니다.
이를 통해 개발자들은 한몸처럼 협업할 수 있고, 내가 휴가를 떠난 동안 동료가 러닝커브 없이 내 작업을 대신 할 수 있습니다.
워크스페이스에서 작업하면서 가장 많이 작업하는 것은 두 가지로, 1)사용자에게 전달되는 페이지를 작성하는 것과, 2)비즈니스 개념을 구현하는 도메인 모듈을 작성하는 것입니다. 두 작업에 대한 파일 규칙에 대해 알아봅시다.
페이지 파일 규칙 - 파일 기반 라우팅
페이지는 url 경로에 맞추어 구현되는 페이지와 레이아웃 등을 구현하는 파일입니다. 페이지 파일은 폴더 구조로 구현되며, Next.js app router와 동일한 방식으로 구현됩니다.
도메인 모듈 파일 규칙
도메인 모듈은 비즈니스 상에서 차지하는 하나의 도메인에 대한 표현입니다. 예를 들면, 회원 관리, 주문 관리, 결제 관리 등이 있으며 이를 표현하기 위해서는 데이터 구조, 서비스 로직, 사용자 UI 등 시스템 전체에 걸쳐 정렬된 형태로 구현해야 합니다.
하나의 도메인은 복합적인 유기체처럼 활동합니다. constant 파일의 스키마 정의에서부터 Zone의 통합 컴포넌트까지 하나의 폴더에서 관리할 수 있으며, 이를 통해 백엔드-프론트엔드 간의 버전 격차, 비즈니스 로직 변경 시 발생하는 문제 등을 최소화할 수 있습니다.

누구에게 적합한가요?

고객에게 빠르게 제품 수준의 가치를 전달하고 싶은 개발자에게 적합합니다.
살아있는 제품은 지속적으로 관리되고 운영되어야 합니다. Akan.js는 한 명의 개발자가 여러 프로젝트를 동시에 운영하고, 여러 개발자가 하나의 프로젝트를 한 몸처럼 협업할 수 있는 환경을 제공합니다.
프레임워크는 언제나 trade-off를 가집니다. 단순하게 사용할 수 있다면 고도화가 어려울 수 있고, 다양성을 포용하면 협업이 어려울 수 있습니다. 우리는 이러한 문제에 대해 다음과 같은 부분에 집중합니다.
우리가 집중하는 부분
✅ 비즈니스를 표현하기 위한 추상화된 인터페이스
✅ 제품 수준의 퀄리티를 위한 최신 트렌드 기술의 검토, 안정화된 형태의 지속적 반영
✅ 엄격하고 단일화된 규칙을 통한 일관된 작업방식과 모범 사례 제공
우리가 집중하지 않는 부분
❌ 비즈니스와 관련없는 불필요한 기술적 세부사항 표현
❌ 불안정한 기술 반영과 불필요한 최적화
❌ 다양한 작업 방식에 대한 복수 허용
역순으로 작업하기
프로그래밍은 우리와 고객의 삶을 효율화하고 긴밀하게 연결해 비즈니스 가치를 창출하는 것입니다. 문제를 정의하고, 빠르게 Akan.js를 통해 제품 수준의 해결책을 만들어내어 손쉽게 고객에게 전달하세요!
언제든 Akan.js는 여러분의 프로젝트를 지원하고, 목소리를 듣는 중입니다. 만약 궁금한 점이 있다면, GitHub에 이슈를 남겨주세요. 당신은 고객을 위해 일할 때, 우리는 당신을 위해 일합니다.
한 번 작성하고 어디든 배포
개발자를 비즈니스맨으로
동료들과 한몸처럼
누구에게 적합한가요?