사람함께에이전트▾
사람 — 직접 정하고 책임지는 비즈니스 규칙과 흐름. 직접 읽어보세요.
함께 — 개념은 알아두고, 세부 규칙은 에이전트가 따릅니다.
에이전트 — 에이전트가 따르는 규칙과 레퍼런스. 필요할 때 찾아보세요.
Constant 스키마 문서
데이터 모델 명세서를 손으로 쓸 필요가 없습니다.
Constant.Doc은 ConstantRegistry에 등록된 모델을 읽어 필드 표와 관계 다이어그램을 바로 그립니다.이 페이지에서 쓰는 말
용어설명
refName
코드에서 쓰는 모델 이름입니다.
user, bizContract 같은 것이고, 보여 줄 모델을 이 이름으로 고릅니다.variant
모델 하나가 선언하는 다섯 클래스 Input, Object, Light, Full, Insight 중 하나입니다.
scalar
다른 모델 안에 들어가는 값 객체입니다.
lib/__scalar/ 아래에 선언합니다.enum
허용되는 값을 정해 둔 목록입니다.
enumOf(...)로 선언합니다.구성 요소
컴포넌트설명
Constant.Doc.Zone
화면에서 둘러보는 탐색기입니다. 검색, 표와 다이어그램 전환, variant별 탭이 있습니다.
Constant.Doc.Print
모든 내용을 한 페이지에 펼쳐 둔 버전입니다. 그대로 인쇄하거나 PDF로 저장합니다.
Constant.Doc.ModelConstant.Doc.Scalar
모델이나 scalar 하나를 접이식 패널 하나로 그립니다.
refName으로 고릅니다.Constant.Doc.Enum
등록된 모든 enum을 표 하나에 담습니다. 값과, 그 enum을 쓰는 필드가 함께 나옵니다.
페이지에 띄우기
route에서 바로 그리며, route는 서버 페이지로 둡니다:
apps/myapp/page/(admin)/schema/_index.tsx
두 컴포넌트가 같은 목록을 받습니다:
modelsstring[]기본값 전체
보여 줄 데이터베이스 모델의
refName 목록입니다. 적은 순서대로 나옵니다.scalarsstring[]기본값 전체
보여 줄 scalar 모델의
refName 목록입니다.enumsstring[]기본값 전체
보여 줄 enum 목록입니다. 클래스 이름의 첫 글자만 소문자로 씁니다(
BizContractStatus → bizContractStatus).includestring[]기본값 전체
시작점이 될 모델과 scalar의
refName 목록입니다. 여기서 닿는 scalar와 enum이 함께 나옵니다.excludestring[]기본값 []
모든 목록에서 뺄 이름입니다. 이것을 거쳐야만 닿는 scalar와 enum도 함께 빠집니다.
libsstring[]기본값 전체
보여 줄 라이브러리입니다. 항목마다 그것을 가진 앱이나 lib로 판단하며, 앱이 확장한 모델은 앱 것입니다.
groupBy"lib"Doc.Zone
라이브러리마다 섹션과 다이어그램을 따로 그리며 앱이 먼저 옵니다. 다른 라이브러리로 가는 관계는 외부 노드입니다.
openAllboolean기본값 falseDoc.Zone
모든 모델과 scalar 패널을 펼칩니다.
Doc.Print는 항상 다 펼쳐져 있어 이 값을 쓰지 않습니다.- 빈 목록은 "없음"입니다.
models={[]}는 모델을 하나도 보여 주지 않고, prop을 빼야 등록된 전체가 나옵니다. - 한 목록을 좁히면 나머지도 따라 좁혀집니다.
models,include,exclude중 하나라도 주면, 뺀scalars는 보이는 모델이 품은 scalar로, 뺀enums는 그 필드가 쓰는 enum으로 정해집니다. - 이름을 잘못 쓰면 조용히 빠집니다. 모델이 안 보이면 요약 카드의 개수와
refName철자를 확인하세요. - 순서는 적은 대로입니다. 목록을 생략하면 이름순으로 정렬됩니다.
- URL.
(admin)은 route 그룹이라 경로에 들어가지 않습니다. 위 페이지는/schema에서 열립니다. - 출력용 버전.
schema/print.tsx를 같은 모양으로 만들고<Constant.Doc.Print />를 그리면/schema/print에서 열립니다.
생성된 스키마
Constant.Doc.Zone은 둘러보기용입니다. 모델마다 필드 표가 든 패널이 하나씩 있고, 도구 모음에서 표 대신 관계 다이어그램으로 볼 수 있습니다.화면 구성
| 부분 | 하는 일 |
|---|---|
| 요약 카드 | 데이터베이스 모델, scalar 모델, enum, 관계의 개수를 보여 줍니다. |
| 검색 | 모델과 scalar는 refName으로, enum은 이름으로 거릅니다. |
| Table · Diagram | 필드 표와, 모델끼리 서로 가리키는 관계를 그린 그래프를 오갑니다. |
| Input · Object · Full · Light · Insight | 모델의 variant를 하나씩 보여 줍니다. 처음에는 Full이 열립니다. |
| Detail | 필드 하나의 설정 전체를 JSON으로 엽니다. ref, example, meta도 여기서 봅니다. |
필드 표 읽는 법
열보여 주는 것
Type
필드 타입입니다.
!는 필수 필드이고, 모델이나 scalar 타입은 색으로 강조됩니다.Kind
property, hidden, secret, resolve 중 하나이며, select:false와 immutable 배지가 붙습니다.Default
선언한 기본값입니다. 함수로 준 기본값은
[function]으로 나옵니다.Constraints
min, max, minlength, maxlength, 검색용 text: 역할, custom validate, accumulate입니다.Values
enum 필드일 때 허용되는 값입니다.
- 레이블은 dictionary에서 옵니다. 모델 설명은
.of()에 적은 것이고, 필드마다 레이블과.desc()가 나옵니다. - 다이어그램 읽기. 화살표마다 그 관계를 만든 필드 이름이 붙습니다. 목록에 없는 모델은
External노드로 나옵니다. - 노드를 누르면 옆 패널에 그 모델의 필드와 타입이 나옵니다. 데이터베이스 모델은
Fullvariant 기준입니다.
이 사이트에서 실제로 그린 모습
Constant 스키마 문서
ConstantRegistry에 등록된 데이터베이스 모델, scalar 모델, enum과 관계입니다.
데이터베이스 모델
0
scalar 모델
5
enum
3
관계
1
데이터베이스 모델
일치하는 데이터베이스 모델이 없습니다.
scalar 모델
DocPagedocPageakanAkan.js 문서의 한 페이지로, 메뉴 항목이자 읽을 수 있는 문서다.
DocPagedocPageakan
Akan.js 문서의 한 페이지로, 메뉴 항목이자 읽을 수 있는 문서다.
| 필드 | 타입 | 종류 | 기본값 | 제약 조건 | 값 | 설명 | |
|---|---|---|---|---|---|---|---|
href 경로 | String! | property | — | — | — | 문서 경로이며, readDocPage 에 넘기는 식별자 | |
title 제목 | String | property | — | — | 페이지 제목 | ||
section 구획 | String! | property | docs | — | docsreferencesconventionscheatsheet | 네 문서 구획 중 어디에 속하는지 | |
category 분류 | String | property | — | — | 페이지가 속한 메뉴 그룹 | ||
priority 우선순위 | String! | property | P2 | — | P0P1P2 | 읽는 순서 — P0 가 프레임워크를 관통하는 경로 | |
summary 요약 | String | property | — | — | 페이지의 첫 산문 문단 |
AccessTokenaccessTokenutil인증을 위한 액세스 토큰
AccessTokenaccessTokenutil
인증을 위한 액세스 토큰
| 필드 | 타입 | 종류 | 기본값 | 제약 조건 | 값 | 설명 | |
|---|---|---|---|---|---|---|---|
jwt JWT | String! | property | — | — | — | JSON 웹 토큰 | |
refreshToken 리프레시 토큰 | String | property | — | — | — | 토큰 갱신용 리프레시 토큰 | |
expiresAt 만료 시각 | Date | property | — | — | — | 액세스 토큰 만료 시각 |
AccessLogaccessLogutil액세스 로그 정보
AccessLogaccessLogutil
액세스 로그 정보
| 필드 | 타입 | 종류 | 기본값 | 제약 조건 | 값 | 설명 | |
|---|---|---|---|---|---|---|---|
period 기간 | Int! | property | 0 | — | — | 시간 기간 | |
countryCode 국가 코드 | String | property | — | — | — | ISO 국가 코드 | |
countryName 국가 이름 | String | property | — | — | — | 국가 이름 | |
city 도시 | String | property | — | — | — | 도시 이름 | |
postal 우편번호 | Int | property | — | — | — | 우편번호 | |
location 위치 | Coordinate | property | — | — | — | 지리적 위치 | |
ipv4 아이피 | String | property | — | — | — | IPv4 주소 | |
state 주 | String | property | — | — | — | 주 또는 도 | |
osName OS 이름 | String | property | — | — | — | 운영체제 이름 | |
osVersion OS 버전 | String | property | — | — | — | 운영체제 버전 | |
browserName 브라우저 이름 | String | property | — | — | — | 웹 브라우저 이름 | |
browserVersion 브라우저 버전 | String | property | — | — | — | 웹 브라우저 버전 | |
mobileModel 모바일 모델 | String | property | — | — | — | 모바일 디바이스 모델 | |
mobileVendor 모바일 벤더 | String | property | — | — | — | 모바일 디바이스 제조사 | |
deviceType 디바이스 타입 | String | property | — | — | — | 디바이스 타입 | |
at 시간 | Date! | property | [function] | — | — | 액세스 시간 |
AccessStataccessStatutil액세스 통계 정보
AccessStataccessStatutil
액세스 통계 정보
| 필드 | 타입 | 종류 | 기본값 | 제약 조건 | 값 | 설명 | |
|---|---|---|---|---|---|---|---|
request 요청 | Int! | property | 0 | — | — | 요청 수 | |
device 디바이스 | Int! | property | 0 | — | — | 디바이스 수 | |
ip 아이피 | Int! | property | 0 | — | — | 고유 IP 수 | |
country 국가 | Int! | property | 0 | — | — | 국가 수 |
Coordinatecoordinateutil지리적 좌표 정보
Coordinatecoordinateutil
지리적 좌표 정보
| 필드 | 타입 | 종류 | 기본값 | 제약 조건 | 값 | 설명 | |
|---|---|---|---|---|---|---|---|
type 타입 | String! | property | Point | — | Point | 좌표 타입 | |
coordinates 좌표 | [Float]! | property | [0,0] | — | — | 경도와 위도 값 | |
altitude 고도 | Float! | property | 0 | — | — | 미터 단위 고도 |
enum
| enum | 타입 | 값 | 사용처 |
|---|---|---|---|
coordinateType coordinateType | String | Point | coordinate.type |
docPriority docPriority | String | P0P1P2 | docPage.priority |
docSection docSection | String | docsreferencesconventionscheatsheet | docPage.section |
출력용 정의서
Constant.Doc.Print는 고른 모델의 variant와 필드를 모두 펼쳐 그립니다. 탭, 접이식 패널, 모달, 다이어그램이 없어서 보이는 그대로 인쇄됩니다.기능
Doc.Zone
Doc.Print
화면에서 둘러보기
검색
✓
관계 다이어그램
✓
variant 탭
✓
variant를 하나씩 봅니다.
접이식 패널
✓
openAll로 한꺼번에 펼칩니다.필드 상세 모달
✓
인쇄하기
variant 다섯 개를 한꺼번에
✓
모델마다 차례로 모두 찍힙니다.
표 안의 필드 상세
✓
모달 대신
ref, refPath, example, meta를 표 안에 적습니다.enum 값 설명
✓
열 하나에 적어 둡니다.
Doc.Zone에서는 마우스를 올려야 보입니다.페이지 나눔
✓
데이터베이스 모델은 한 페이지씩 차지하고, scalar와 enum도 새 페이지에서 시작합니다.
인쇄용 색
✓
인쇄할 때는 다크 모드에서도 흰 바탕에 검은 글씨로 바뀝니다.
✓있음없음
PDF로 남기려면:
/schema/print같은 출력용 route를 엽니다.⌘P나Ctrl+P를 누르고, 브라우저 인쇄 창에서 PDF로 저장을 고릅니다.
이 사이트에서 실제로 그린 모습
Constant 스키마 정의서
ConstantRegistry에 등록된 데이터베이스 모델, scalar 모델, enum과 관계입니다.
데이터베이스 모델
0
scalar 모델
3
enum
2
관계
1
scalar 모델
DocPage
docPage
Akan.js 문서의 한 페이지로, 메뉴 항목이자 읽을 수 있는 문서다.
| 키 | 타입 | 필수 | 필드 타입 | 관계 | 기본값 | 제약 조건 | enum | 설명 | 상세 |
|---|---|---|---|---|---|---|---|---|---|
href 경로 | String | 필수 | property | - | null | - | - | 문서 경로이며, readDocPage 에 넘기는 식별자 | example: /references/akanjs/signal |
title 제목 | String | 선택 | property | - | - | - | 페이지 제목 | - | |
section 구획 | String | 필수 | property | - | docs | - | docSection: docs, references, conventions, cheatsheet | 네 문서 구획 중 어디에 속하는지 | - |
category 분류 | String | 선택 | property | - | - | - | 페이지가 속한 메뉴 그룹 | - | |
priority 우선순위 | String | 필수 | property | - | P2 | - | docPriority: P0, P1, P2 | 읽는 순서 — P0 가 프레임워크를 관통하는 경로 | - |
summary 요약 | String | 선택 | property | - | - | - | 페이지의 첫 산문 문단 | - |
AccessToken
accessToken
인증을 위한 액세스 토큰
| 키 | 타입 | 필수 | 필드 타입 | 관계 | 기본값 | 제약 조건 | enum | 설명 | 상세 |
|---|---|---|---|---|---|---|---|---|---|
jwt JWT | String | 필수 | property | - | null | - | - | JSON 웹 토큰 | - |
refreshToken 리프레시 토큰 | String | 선택 | property | - | null | - | - | 토큰 갱신용 리프레시 토큰 | - |
expiresAt 만료 시각 | Date | 선택 | property | - | null | - | - | 액세스 토큰 만료 시각 | - |
AccessLog
accessLog
액세스 로그 정보
| 키 | 타입 | 필수 | 필드 타입 | 관계 | 기본값 | 제약 조건 | enum | 설명 | 상세 |
|---|---|---|---|---|---|---|---|---|---|
period 기간 | Int | 필수 | property | - | 0 | - | - | 시간 기간 | - |
countryCode 국가 코드 | String | 선택 | property | - | null | - | - | ISO 국가 코드 | - |
countryName 국가 이름 | String | 선택 | property | - | null | - | - | 국가 이름 | - |
city 도시 | String | 선택 | property | - | null | - | - | 도시 이름 | - |
postal 우편번호 | Int | 선택 | property | - | null | - | - | 우편번호 | - |
location 위치 | Coordinate | 선택 | property | target: coordinate | null | - | - | 지리적 위치 | - |
ipv4 아이피 | String | 선택 | property | - | null | - | - | IPv4 주소 | - |
state 주 | String | 선택 | property | - | null | - | - | 주 또는 도 | - |
osName OS 이름 | String | 선택 | property | - | null | - | - | 운영체제 이름 | - |
osVersion OS 버전 | String | 선택 | property | - | null | - | - | 운영체제 버전 | - |
browserName 브라우저 이름 | String | 선택 | property | - | null | - | - | 웹 브라우저 이름 | - |
browserVersion 브라우저 버전 | String | 선택 | property | - | null | - | - | 웹 브라우저 버전 | - |
mobileModel 모바일 모델 | String | 선택 | property | - | null | - | - | 모바일 디바이스 모델 | - |
mobileVendor 모바일 벤더 | String | 선택 | property | - | null | - | - | 모바일 디바이스 제조사 | - |
deviceType 디바이스 타입 | String | 선택 | property | - | null | - | - | 디바이스 타입 | - |
at 시간 | Date | 필수 | property | - | [function] | - | - | 액세스 시간 | - |
enum
| 키 | 참조 이름 | 타입 | 값 | 설명 | 사용처 |
|---|---|---|---|---|---|
| docPriority | docPriority | String | P0, P1, P2 | P0: 필수 P1: 권장 P2: 상세 | docPage.priority (Scalar) |
| docSection | docSection | String | docs, references, conventions, cheatsheet | docs: 가이드 references: 레퍼런스 conventions: 규약 cheatsheet: 치트시트 | docPage.section (Scalar) |