gaonjs
v1.41.0
Published
Gaon (가온) — AI가 개발을 가장 잘하는 Node.js 풀스택 웹 프레임웍. 개발자는 이 패키지 하나만 설치합니다 (설치명 gaonjs · CLI 명령 gaon).
Maintainers
Readme
gaonjs (가온)
AI가 개발을 가장 잘하는 Node.js 풀스택 웹 프레임웍.
Gaon은 "정답이 하나(The One Way)"를 지향합니다 — 흔한 작업마다 관례가 하나로 정해져 있어, 사람도 AI도 헤매지 않고 첫 시도에 동작하는 코드를 씁니다. 타입은 스키마 → 모델 → 컨트롤러 → 페이지까지 자동으로 흐르고, 인증·실시간·잡·메일 등 배터리가 기본 포함됩니다.
ℹ️ 설치명은
gaonjs, CLI 명령은gaon입니다. (npm 패키지명gaon은 유사도 정책으로 점유 불가 → 파사드 패키지명을gaonjs로 확정.)
설치 → 첫 화면까지 (약 60초)
gaon new my-app # 새 프로젝트 스캐폴드 (파일 → 설치 → git init)
# 설치 없이: npx gaonjs new my-app
cd my-app
gaon dev # 개발 스택 통합 기동 (Docker · .gaon 생성 · serve · 워처)gaon dev 는 Docker Compose(DB·Redis·NATS 등)를 띄우고, 타입 브리지(.gaon/)를
생성하고, 웹 서버를 부팅하고, 코드 변경을 감시해 재시작까지 합니다. 브라우저에서
개발 랜딩이 뜨면 준비 완료입니다. (운영은 감시 없는 gaon serve.)
핵심 개념
- 배터리 포함 — 인증(세션·JWT), 실시간(채널·프레즌스·
gaon hub), 비동기 잡 (NATS JetStream·아웃박스·크론), 메일, 파일 스토리지, i18n 이 코어에 들어 있습니다.gaon g auth한 번이면 회원가입·로그인·세션·보호 라우트가 스캐폴드됩니다. - 타입이 끝까지 흐른다 —
domain/schema의 컬럼을 지우면, 그 컬럼을 쓰는.vue페이지에서vue-tsc가 컴파일 에러를 냅니다. 스키마 →model()→ 컨트롤러 render props → 페이지pageProps<'app:ctrl#action'>()까지 타입 브리지(.gaon/)로 자동 연결됩니다. - 프론트는 Inertia SPA — 별도 REST 엔드포인트도, 클라이언트 라우터도 없습니다.
컨트롤러가
this.render('Posts/Index', props)로 Vue 페이지에 props 를 넘기고, 폼은useForm(...), 페이지 이동은Link/router.visit를 씁니다. - 보안 기본 켬 — CORS·rate limit·CSRF 가 기본 활성화됩니다(끄는 것만 명시 설정).
- The One Way — 선택지가 생기면 정답이 하나가 되는 쪽을 고릅니다. 탈출구는 남기되 기본 경로에서는 아무것도 고르지 않게 합니다.
프로젝트 구조
my-app/
├─ domain/ # schema · models · services · jobs · events · mails · seed
├─ apps/<이름>/ # app.config.ts · routes.ts · controllers · pages · components
├─ shared/ # 앱 간 공유 (라우트를 모르는 순수 UI/유틸)
├─ gaon.config.ts # DB 등 공통 설정
└─ compose.yaml # 개발 인프라 (Docker)개발자는 gaonjs 하나만 설치합니다 — 내부는 @gaonjs/* 로 모듈화돼 있고,
파사드 서브패스로 가져옵니다: gaonjs/web · gaonjs/data · gaonjs/vue ·
gaonjs/async · gaonjs/mail · gaonjs/storage · gaonjs/i18n · gaonjs/service.
주요 CLI
gaon new <name> # 새 프로젝트 스캐폴드
gaon dev # 개발 스택 통합 (Docker · .gaon · serve · 워처)
gaon g auth # 인증 배터리 스캐폴드
gaon g <타입> … # controller · model · page · job · app · ui-kit 생성
gaon db migrate # 마이그레이션 (diff · migrate · status · seed · reset)
gaon check # typecheck · vue-tsc · build 통합 검사
gaon doctor # 정적 검사 (관례 위반·안티패턴 · --fix)
gaon serve # 운영 웹 서버 부팅 (감시 없음)
gaon work / gaon hub # 비동기 워커 · 실시간 허브모든 명령은 --json 출력을 지원합니다(자동화·CI).
AI 네이티브
Gaon 은 AI 에이전트가 첫 시도에 정답을 쓰도록 설계됐습니다. gaon new 는
프로젝트에 AGENTS.md + agents/*.md(관례 정본 · doctor 검사 목록 포함)를
함께 스캐폴드하므로, Claude Code 같은 에이전트가 그 규칙을 그대로 따릅니다.
gaon mcp(MCP 도구)로 에이전트에 프레임웍 능력을 노출할 수도 있습니다.
- 홈페이지 / 문서: https://gaonjs.dev
- 라이선스: MIT
