생성 파일 개요
타입 & 스키마
TypeScript 타입과 Zod 스키마 *.types.ts, sonamu.generated.ts
API 클라이언트
HTTP 클라이언트 함수 services.generated.ts
쿼리 헬퍼
Subset 쿼리 함수들 sonamu.generated.sso.ts
React 컴포넌트
Form, List, Select 컴포넌트 view_*.tsx
핵심 생성 파일
1. Entity Types ({entity}.types.ts)
Entity별 TypeScript 타입과 Zod 스키마가 생성됩니다.
api/src/application/user/user.types.ts (자동 생성)
pnpm sonamu sync
수정 가능 여부: ❌ 자동 재생성됨 (커스텀 타입은 별도 파일에)
2. Generated Base (sonamu.generated.ts)
프로젝트 전체의 기본 타입과 Enum이 생성됩니다.
api/src/application/sonamu.generated.ts (자동 생성)
pnpm sonamu sync
수정 가능 여부: ❌ 자동 재생성됨
3. Subset Queries (sonamu.generated.sso.ts)
Subset별 쿼리 함수가 생성됩니다.
api/src/application/sonamu.generated.sso.ts (자동 생성)
4. API Services (services.generated.ts)
API 클라이언트 함수가 생성됩니다.
web/src/services/services.generated.ts (자동 생성)
@api 데코레이터 변경 시
수정 가능 여부: ❌ 자동 재생성됨
타겟별 생성:
sonamu.config.ts의 sync.targets에 지정된 각 타겟(web, app 등)에
복사됩니다.5. HTTP Test File (sonamu.generated.http)
REST Client용 HTTP 테스트 파일이 생성됩니다.
api/sonamu.generated.http (자동 생성)
React 컴포넌트
Scaffold로 React UI 컴포넌트를 생성할 수 있습니다.6. List Component
pnpm sonamu generate view_list --entity User
수정 가능 여부: ✅ 한번 생성 후 수정 가능
7. Form Component
web/src/pages/user/UserForm.tsx
pnpm sonamu generate view_form --entity User
수정 가능 여부: ✅ 한번 생성 후 수정 가능
8. Select Components
SSR 관련 파일
Server-Side Rendering을 위한 파일들이 자동 생성됩니다.9. Queries (queries.generated.ts)
tanstack-query 클라이언트가 활성화된 API에 대해, SSR이 미리 실행할 디스크립터(SSRQuery)를 모델별 네임스페이스로 export합니다. api 측 ssr/routes.ts의 registerSSR(...)이 이 디스크립터를 preload 설정에 사용합니다.
api/src/application/queries.generated.ts (자동 생성)
10. Entry Server (entry-server.generated.tsx)
TanStack Router 기반 SSR 진입점입니다. 라우트별 loader가 아니라, web 측에서 호출되는 render(url, preloadedData) 함수를 export합니다. SSR 단계에서 미리 가져온 데이터(preloadedData)는 queryClient.setQueryData(queryKey, data)로 주입한 뒤 dehydrate되어 client로 hydrate됩니다.
web/src/entry-server.generated.tsx (자동 생성)
다국어 지원 파일
i18n 설정이 있을 때 생성됩니다.11. Sonamu Dictionary (sd.generated.ts)
api/src/sd.generated.ts (자동 생성)
api, web, app 각각 생성
생성 파일 요약표
다음 단계
Syncer
자동 생성의 핵심 Syncer 이해하기
When Files Regenerate
파일이 언제 재생성되는지 알아보기
Customizing Generated Code
생성된 코드 커스터마이징 방법
Creating Entities
Entity 정의하고 파일 생성하기