ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด(Flyweight Pattern)์€ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋ฅผ ๋‹ค์ˆ˜ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ตฌ์กฐ์  ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค ์ €์žฅ๊ณผ ๊ด€๋ จ๋œ ์ค‘๋ณต์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์—์„œ ๊ณตํ†ต ๊ฐ์ฒด ํŠน์„ฑ์„ ๊ณต์œ ํ•จ์œผ๋กœ์จ ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ค„์—ฌ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋””์ž์ธ ํŒจํ„ด์˜ ๋งฅ๋ฝ์—์„œ ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์€ ๋งŽ์€ ๊ณตํ†ต ํŠน์„ฑ์„ ๊ณต์œ ํ•˜๋Š” ์ˆ˜๋งŽ์€ ๊ฐ์ฒด๋กœ ์ž‘์—…ํ•  ๋•Œ ํŠนํžˆ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์˜ˆ๋กœ๋Š” ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ(์˜ˆ: ์ , ์„ , ๋‹ค๊ฐํ˜•)๊ฐ€ ํฌํ•จ๋œ ๋Œ€๊ทœ๋ชจ ๋””์ง€ํ„ธ ์ง€๋„๋ฅผ ๋ Œ๋”๋งํ•˜๊ฑฐ๋‚˜ ์›Œ๋“œ ํ”„๋กœ์„ธ์‹ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์„œ ํ˜•์‹์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์˜ ๊ธฐ๋ณธ์€ ๋‚ด์žฌ์  ์ƒํƒœ์™€ ์™ธ์žฌ์  ์ƒํƒœ์˜ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์ƒํƒœ๋Š” ์œ ์‚ฌํ•œ ๊ฐ์ฒด ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ๋ถˆ๋ณ€ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์™ธ๋ถ€ ์ƒํƒœ๋Š” ๊ฐ ์ธ์Šคํ„ด์Šค์— ํŠน์ •ํ•œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์—์„œ ํ”Œ๋ผ์ด์›จ์ดํŠธ๋Š” ๋” ํฐ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ณ ์œ  ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•˜๋Š” ์ž‘๊ณ  ๊ณต์œ  ๊ฐ€๋Šฅํ•œ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค์˜ ์™ธ๋ถ€ ์ƒํƒœ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์™ธ๋ถ€์—์„œ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๋ฉฐ ํ•„์š”ํ•  ๋•Œ ํ”Œ๋ผ์ด์›จ์ดํŠธ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์ž์™€ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ณตํ†ต ๊ณ ์œ  ์ƒํƒœ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณต์œ ๋œ ๋‚ด์žฅ ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•˜๋Š” Flyweight ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. ํ”Œ๋ผ์ด๊ธ‰ ๊ฐœ์ฒด์˜ ์ƒ์„ฑ, ๊ฒ€์ƒ‰ ๋ฐ ๊ณต์œ ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”Œ๋ผ์ด๊ธ‰ ํŒฉํ† ๋ฆฌ์— ํ”Œ๋ผ์ด๊ธ‰ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ธฐ๋ณธ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค์˜ ๊ธฐ๋ณธ ์ƒํƒœ๋ฅผ ๊ด€๋ จ ํ”Œ๋ผ์ด๊ธ‰ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  5. ๊ธฐ๋ณธ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์™ธ๋ถ€ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๊ณ„์‚ฐ ๋ฐ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์œ„ํ•ด ๊ด€๋ จ ํ”Œ๋ผ์ด๊ธ‰ ๊ฐœ์ฒด์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋””์ง€ํ„ธ ์ง€๋„ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์˜ ๋งฅ๋ฝ์—์„œ ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์€ ๋™์ผํ•œ ๋‚ด๋ถ€ ์ƒํƒœ(์˜ˆ: ์ƒ‰์ƒ ๋ฐ ํฌ๊ธฐ)๋ฅผ ๊ณต์œ ํ•˜์ง€๋งŒ ๊ณ ์œ ํ•œ ์™ธ๋ถ€ ์ƒํƒœ(์˜ˆ: ์ขŒํ‘œ)๋ฅผ ๊ฐ–๋Š” ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ ์„ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํฌ์ธํŠธ์— ๊ณ ์œ  ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋Œ€์‹  ํ”Œ๋ผ์ด์›จ์ดํŠธ ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ณต์œ  ๊ณ ์œ  ์ƒํƒœ๋ฅผ ์บก์Аํ™”ํ•˜๊ณ  ํฌ์ธํŠธ์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ธํŠธ ์ž์ฒด๋Š” ๊ณ ์œ ํ•œ ์™ธ๋ถ€ ์ƒํƒœ(์ขŒํ‘œ)๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ง€๋„ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ์ ˆ์•ฝ๋˜๊ณ  ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ๋Š” Flyweight Pattern์„ ํ†ตํ•ฉํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ•๋ ฅํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค(BP) ๋””์ž์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ฑ์— ํ”Œ๋ผ์ด์›จ์ดํŠธ ํŒจํ„ด์„ ํ†ตํ•ฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ์˜ ๋†€๋ผ์šด ํ™•์žฅ์„ฑ๊ณผ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ ์ƒ์„ฑ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด Flyweight Pattern์„ ์ฑ„ํƒํ•œ ๊ณ ๊ฐ์€ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Flyweight ํŒจํ„ด์„ ์ฑ„ํƒํ•จ์œผ๋กœ์จ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์ž์™€ ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์ค„์–ด๋“ค๊ณ  ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜๋ฉฐ ํ™•์žฅ์„ฑ์ด ํ–ฅ์ƒ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ Œ๋”๋งํ•ด์•ผ ํ•˜๋Š” ์‹ค์ œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์—…ํ•  ๋•Œ Flyweight ํŒจํ„ด์„ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. AppMaster ์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ Flyweight Pattern์€ ์‹œ๊ฐ์  ๋””์ž์ธ ํ”„๋กœ์„ธ์Šค์— ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฑ„ํƒ ์šฉ์ด์„ฑ๊ณผ ์ž ์žฌ์  ์ด์ ์ด ๋”์šฑ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.