Skip to main content
Subset์€ Entity์˜ ํŠน์ • ํ•„๋“œ ์กฐํ•ฉ์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•˜์—ฌ API ์‘๋‹ต์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Sonamu UI์˜ Entity ํƒญ์—์„œ Subset์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Subset์€ ๋ณ„๋„์˜ ํƒญ์ด ์•„๋‹ˆ๋ผ Entity ํƒญ ๋‚ด๋ถ€์˜ Subsets ์‹œํŠธ์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. Entity๋ฅผ ์„ ํƒํ•œ ํ›„ Properties, Indexes, Relations, Enums์™€ ํ•จ๊ป˜ Subsets ์‹œํŠธ์—์„œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.

Subset์ด๋ž€?

Subset์€ Entity์˜ ์ผ๋ถ€ ํ•„๋“œ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์‚ฌ์ „ ์ •์˜๋œ ํ•„๋“œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์ด์œ 

์˜ˆ์‹œ

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

Entity ํƒญ์—์„œ ์ ‘๊ทผํ•˜๊ธฐ

Sonamu UI์—์„œ Subset์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด:
  1. Entity ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค
  2. ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์›ํ•˜๋Š” Entity๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
  3. ์ƒ๋‹จ์˜ ์‹œํŠธ ํƒญ ์ค‘ Subsets๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค
Entity Relations ํ™”๋ฉด

Entity ํƒญ์˜ Subsets ์‹œํŠธ์—์„œ Subset ๊ด€๋ฆฌ

Entity Subsets ํ™”๋ฉด

ํ™”๋ฉด ๊ตฌ์„ฑ

Subsets ์‹œํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:
  • ์™ผ์ชฝ Sidebar: Entity ๋ชฉ๋ก (ํ˜„์žฌ ์„ ํƒ๋œ Entity ํ‘œ์‹œ)
  • ์ƒ๋‹จ ์‹œํŠธ ํƒญ: Properties, Indexes, Relations, Enums, Subsets
  • Subset ๋ชฉ๋ก: ํ˜„์žฌ Entity์˜ ๋ชจ๋“  Subset (A, B, C ๋“ฑ)
  • ํ•„๋“œ ์„ ํƒ ์˜์—ญ: ์„ ํƒํ•œ Subset์— ํฌํ•จํ•  ํ•„๋“œ ์ฒดํฌ๋ฐ•์Šค

Subset ์ƒ์„ฑ

1. Entity ํƒญ์œผ๋กœ ์ด๋™

Sonamu UI์—์„œ Entity ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2. Entity ์„ ํƒ

์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Subset์„ ์ถ”๊ฐ€ํ•  Entity๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

3. Subsets ์‹œํŠธ ์—ด๊ธฐ

์ƒ๋‹จ ์‹œํŠธ ํƒญ์—์„œ Subsets๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

4. Subset ์ถ”๊ฐ€

[Add Subset] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ Subset์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
Subset ID๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์•ŒํŒŒ๋ฒณ ํ•œ ๊ธ€์ž(A, B, Cโ€ฆ)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

5. ํ•„๋“œ ์„ ํƒ

์ƒ์„ฑ๋œ Subset์—์„œ ํฌํ•จํ•  ํ•„๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค: ๊ธฐ๋ณธ ํ•„๋“œ:
๊ด€๊ณ„ ํ•„๋“œ:

Subset ์ข…๋ฅ˜

Subset A (๊ธฐ๋ณธ ๋ชฉ๋ก)

์šฉ๋„: ๋ชฉ๋ก ์กฐํšŒ ์‹œ ์‚ฌ์šฉ ํฌํ•จ: ํ•„์ˆ˜ ์ •๋ณด + ์š”์•ฝ ์ •๋ณด
์‚ฌ์šฉ ์˜ˆ์‹œ:

Subset B (์ƒ์„ธ ์กฐํšŒ)

์šฉ๋„: ๋‹จ์ผ ๋ ˆ์ฝ”๋“œ ์ƒ์„ธ ์กฐํšŒ ํฌํ•จ: ๋ชจ๋“  ์ผ๋ฐ˜ ์ •๋ณด (๋ฏผ๊ฐ ์ •๋ณด ์ œ์™ธ)
์‚ฌ์šฉ ์˜ˆ์‹œ:

Subset C (๊ด€๊ณ„ ํฌํ•จ)

์šฉ๋„: ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ ์กฐํšŒ ํฌํ•จ: ๊ธฐ๋ณธ ์ •๋ณด + ๊ด€๊ณ„ Entity
์‚ฌ์šฉ ์˜ˆ์‹œ:

๊ด€๊ณ„ ํ•„๋“œ ์„ค์ •

belongsTo ๊ด€๊ณ„

์˜ˆ์‹œ: Post โ†’ User (์ž‘์„ฑ์ž)
์„ ํƒํ•˜๋ฉด Post๋ฅผ ์กฐํšŒํ•  ๋•Œ ์ž‘์„ฑ์ž(User) ์ •๋ณด๋„ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค:

hasMany ๊ด€๊ณ„

์˜ˆ์‹œ: User โ†’ Post[] (์ž‘์„ฑํ•œ ๊ธ€ ๋ชฉ๋ก)
์„ ํƒํ•˜๋ฉด User๋ฅผ ์กฐํšŒํ•  ๋•Œ ์ž‘์„ฑํ•œ Post ๋ชฉ๋ก๋„ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค:
N+1 ๋ฌธ์ œ ์ฃผ์˜: hasMany ๊ด€๊ณ„๋ฅผ Subset์— ํฌํ•จํ•˜๋ฉด ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํฌํ•จํ•˜์„ธ์š”.

Subset ์ˆ˜์ •

ํ•„๋“œ ์ถ”๊ฐ€/์ œ๊ฑฐ

  1. Entity ํƒญ์—์„œ ํ•ด๋‹น Entity์˜ Subsets ์‹œํŠธ๋กœ ์ด๋™
  2. ์ˆ˜์ •ํ•  Subset ์„ ํƒ
  3. ํ•„๋“œ ์ฒดํฌ๋ฐ•์Šค ํด๋ฆญํ•˜์—ฌ ํฌํ•จ/์ œ์™ธ ๋ณ€๊ฒฝ
  4. [Save] ๋ฒ„ํŠผ ํด๋ฆญ
๋ณ€๊ฒฝ์‚ฌํ•ญ ์ฆ‰์‹œ ๋ฐ˜์˜:

Subset ์‚ญ์ œ

  1. Entity ํƒญ์—์„œ ํ•ด๋‹น Entity์˜ Subsets ์‹œํŠธ๋กœ ์ด๋™
  2. ์‚ญ์ œํ•  Subset ์„ ํƒ
  3. [Delete] ๋ฒ„ํŠผ ํด๋ฆญ
  4. ํ™•์ธ ๋ชจ๋‹ฌ์—์„œ [Confirm] ํด๋ฆญ
์‚ฌ์šฉ ์ค‘์ธ Subset ์‚ญ์ œ: ์‚ญ์ œํ•˜๋ ค๋Š” Subset์„ ์‚ฌ์šฉํ•˜๋Š” API๊ฐ€ ์žˆ๋‹ค๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ „ ์˜ˆ์ œ

์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

๋ธ”๋กœ๊ทธ ์‹œ์Šคํ…œ

Model์—์„œ ์‚ฌ์šฉ

Subset์„ ์ •์˜ํ•˜๋ฉด Model API์—์„œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

findMany์—์„œ ์‚ฌ์šฉ

findById์—์„œ ์‚ฌ์šฉ

์„ฑ๋Šฅ ์ตœ์ ํ™”

ํ•„์š”ํ•œ ํ•„๋“œ๋งŒ ์„ ํƒ

๊ด€๊ณ„ ๋กœ๋”ฉ ์ตœ์†Œํ™”

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

Model

Model์—์„œ Subset ์‚ฌ์šฉํ•˜๊ธฐ

API ๊ฐœ๋ฐœ

API์—์„œ Subset ํ™œ์šฉํ•˜๊ธฐ