사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
모듈 규칙▾
model.dictionary.ts
dictionary 파일은 모듈의 국제화(i18n)를 제공합니다. 모델 이름, 필드 레이블, enum 값, API 엔드포인트, 에러 메시지, 커스텀 UI 텍스트에 대한 번역을 정의합니다.
🌐프론트엔드 사용
다국어 UI - 필드 레이블, 버튼 텍스트, 상태 배지, 토스트 메시지 모두 dictionary 번역을 사용합니다.
⚙️백엔드 사용
API 문서(Swagger/OpenAPI), 적절한 번역이 포함된 에러 메시지, 데이터베이스 스키마 설명.
Dictionary Builder Structure
핵심 번역
모델 자체와 필드에 대한 기본 번역입니다.
method설명
.of((t) => ...)
모델 이름과 설명을 정의합니다.
.model<T>((t) => ...)
필드 번역을 정의합니다.
2. 기능 번역
Insight, 쿼리, Enum, Slice, Endpoint 등 다양한 기능에 대한 번역입니다.
method설명
.insight<T>((t) => ...)
Insight 필드 번역을 정의합니다.
.query<T>((fn) => ...)
쿼리/필터 번역을 정의합니다.
.enum<T>(name, (t) => ...)
Enum 값 번역을 정의합니다.
.slice<T>((fn) => ...)
Slice 번역을 정의합니다.
.endpoint<T>((fn) => ...)
Endpoint 번역을 정의합니다.
3. 유틸리티 번역
에러 메시지와 커스텀 UI 텍스트에 대한 번역입니다.
method설명
.error({ ... })
에러 메시지를 정의합니다.
.translate({ ... })
커스텀 UI 번역을 정의합니다.
번역 사용
Dictionary에 정의된 번역은 프레임워크에서 자동으로 사용되지만, 수동으로 접근할 수도 있습니다.
Manual Access
Dictionary 모범 사례
1️⃣일관된 명명
필드 키는 constant.ts의 필드 이름과 정확히 일치해야 합니다. TypeScript가 불일치에 대해 경고합니다.
2️⃣설명적인 레이블
명확하고 사용자 친화적인 레이블을 사용합니다. 'progressBy'보다 '담당자'가 낫습니다. 'due'보다 '기한'이 낫습니다.
3️⃣설명 추가
툴팁이나 추가 컨텍스트가 필요할 수 있는 필드에는 항상 .desc()를 추가합니다. 새로운 개발자와 사용자에게 도움이 됩니다.
4️⃣토스트 메시지 규칙
[action]Loading, [action]Success, [action]Error 패턴을 사용합니다. 예: sellLoading, sellSuccess.