Skip to main content
Sonamu UI์˜ Entity ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค๋กœ Entity๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CLI๋กœ ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค.

Entity ํƒญ ๊ตฌ์กฐ

Entity ๊ด€๋ฆฌ ํ™”๋ฉด

Entity ๊ด€๋ฆฌ ํ™”๋ฉด

Entity ํƒญ์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์˜์—ญ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:
  • ์™ผ์ชฝ Sidebar: Entity ๋ชฉ๋ก๊ณผ ์ƒˆ Entity ์ถ”๊ฐ€ ๋ฒ„ํŠผ
  • ์˜ค๋ฅธ์ชฝ Content: ์„ ํƒํ•œ Entity์˜ ์ƒ์„ธ ์ •๋ณด (Properties, Indexes, Relations, Subsets, Enums)

Entity ์ƒ์„ฑํ•˜๊ธฐ

1. New Entity ๋ฒ„ํŠผ ํด๋ฆญ

์‚ฌ์ด๋“œ๋ฐ” ํ•˜๋‹จ์˜ [+ New Entity] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2. Entity ์ •๋ณด ์ž…๋ ฅ

๋ชจ๋‹ฌ์ด ์—ด๋ฆฌ๋ฉด ๋‹ค์Œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค:
Parent Entity๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ถ€๋ชจ Entity์˜ ํ•˜์œ„ Entity๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ: Order โ†’ OrderItem

3. ๊ธฐ๋ณธ Properties ์ถ”๊ฐ€

์ƒ์„ฑ๋œ Entity๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ ํ•„๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

Properties ํŽธ์ง‘

Property ์ถ”๊ฐ€

  1. [+ Add Property] ๋ฒ„ํŠผ ํด๋ฆญ
  2. Property ์ •๋ณด ์ž…๋ ฅ:
์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…:
  • ๋ฌธ์ž์—ด: string(๊ธธ์ด ๋ฏธ์ง€์ • ์‹œ text), uuid, searchText
  • ์ˆซ์ž: integer, bigInteger, number, numeric(precision/scale)
  • ๋‚ ์งœ: date
  • ๊ธฐํƒ€: boolean, enum, json, virtual, vector, tsvector, relation
๋Œ€๋ถ€๋ถ„์˜ ์Šค์นผ๋ผ ํƒ€์ž…์€ integer[], string[]์ฒ˜๋Ÿผ []๋ฅผ ๋ถ™์ธ ๋ฐฐ์—ด ํƒ€์ž…๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ชฉ๋ก์€ ํ•„๋“œ ํƒ€์ž… ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

Property ์ˆ˜์ •

  1. Property ํ–‰์„ ํด๋ฆญํ•˜์—ฌ ํŽธ์ง‘ ๋ชจ๋“œ๋กœ ์ „ํ™˜
  2. ๊ฐ’์„ ์ˆ˜์ •
  3. ๋‹ค๋ฅธ ๊ณณ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ Enter๋ฅผ ๋ˆŒ๋Ÿฌ ์ €์žฅ

Property ์‚ญ์ œ

Property ํ–‰์˜ [ร—] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์†์‹ค ์ฃผ์˜: Property๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜์„ธ์š”.

Indexes ๊ด€๋ฆฌ

Index ์ถ”๊ฐ€

  1. Indexes ์„น์…˜์œผ๋กœ ์Šคํฌ๋กค
  2. [+ Add Index] ๋ฒ„ํŠผ ํด๋ฆญ
  3. Index ์ •๋ณด ์ž…๋ ฅ:
Index ํƒ€์ž…:
  • index: ์ผ๋ฐ˜ ์ธ๋ฑ์Šค (๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ํ–ฅ์ƒ)
  • unique: ์œ ๋‹ˆํฌ ์ธ๋ฑ์Šค (์ค‘๋ณต ๋ฐฉ์ง€)
  • hnsw / ivfflat: pgvector ๋ฒกํ„ฐ ์ธ๋ฑ์Šค
์ „๋ฌธ ๊ฒ€์ƒ‰์€ ๋ณ„๋„์˜ ์ธ๋ฑ์Šค ํƒ€์ž…์ด ์•„๋‹ˆ๋ผ searchText/tsvector prop๊ณผ using: "gin" ์˜ต์…˜์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ณตํ•ฉ Index

์—ฌ๋Ÿฌ ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Relations ๊ด€๋ฆฌ

belongsTo (N:1 ๊ด€๊ณ„)

์˜๋ฏธ: โ€œ์ด Entity๋Š” ๋‹ค๋ฅธ Entity์— ์†ํ•œ๋‹คโ€ ์˜ˆ์‹œ: Post๋Š” User์— ์†ํ•จ
  1. belongsTo ์„น์…˜์˜ [+ Add] ๋ฒ„ํŠผ ํด๋ฆญ
  2. ์ •๋ณด ์ž…๋ ฅ:
์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ:

hasMany (1:N ๊ด€๊ณ„)

์˜๋ฏธ: โ€œ์ด Entity๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค๋ฅธ Entity๋ฅผ ๊ฐ€์ง„๋‹คโ€ ์˜ˆ์‹œ: User๋Š” ์—ฌ๋Ÿฌ Post๋ฅผ ๊ฐ€์ง
  1. hasMany ์„น์…˜์˜ [+ Add] ๋ฒ„ํŠผ ํด๋ฆญ
  2. ์ •๋ณด ์ž…๋ ฅ:
์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ:

Enums ๊ด€๋ฆฌ

ํŠน์ • ํ•„๋“œ๊ฐ€ ์ œํ•œ๋œ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„ ๋•Œ Enum์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Enum ์ถ”๊ฐ€

  1. Enums ์„น์…˜์˜ [+ Add Enum] ๋ฒ„ํŠผ ํด๋ฆญ
  2. Enum ์ •๋ณด ์ž…๋ ฅ:
์ƒ์„ฑ๋˜๋Š” ์ฝ”๋“œ:
Property์—์„œ ์‚ฌ์šฉ:

AI ์ง€์› Entity ์ƒ์„ฑ

์‚ฌ์ด๋“œ๋ฐ” ํ•˜๋‹จ์˜ [๐Ÿ’ฌ AI] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด AI ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

AI๋กœ Entity ์ƒ์„ฑ

์˜ˆ์‹œ ํ”„๋กฌํ”„ํŠธ:
AI๊ฐ€ Entity ์ •์˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

AI๋กœ Entity ์ˆ˜์ •

์˜ˆ์‹œ ํ”„๋กฌํ”„ํŠธ:
AI๊ฐ€ ๊ธฐ์กด Entity๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์ฒด์ ์œผ๋กœ ์š”์ฒญํ•˜์„ธ์š”: ํ•„๋“œ ํƒ€์ž…, ์ œ์•ฝ ์กฐ๊ฑด, ๊ด€๊ณ„ ๋“ฑ์„ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ• ์ˆ˜๋ก ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ „ ์˜ˆ์ œ

์ „์ž์ƒ๊ฑฐ๋ž˜ Product Entity

src/application/product/product.entity.json

๋ณ€๊ฒฝ์‚ฌํ•ญ ์ ์šฉ

Entity๋ฅผ ์ˆ˜์ •ํ•œ ํ›„์—๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ์šฐ

  1. Entity ํŽธ์ง‘: UI์—์„œ Entity ์ˆ˜์ •
  2. Migration ์ƒ์„ฑ: Migration ํƒญ์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ
  3. Migration ์‹คํ–‰: ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹คํ–‰ํ•˜์—ฌ DB ๋ฐ˜์˜
  4. Scaffolding: Model๊ณผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ƒ์„ฑ
Entity ํŒŒ์ผ(.entity.json)์€ UI์—์„œ ์ˆ˜์ • ์‹œ ์ž๋™์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

Migration ํƒญ

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

Scaffolding ํƒญ

Model ์ฝ”๋“œ ์ž๋™ ์ƒ์„ฑ