Apache Superset: EP2 - ๐Ÿ›๏ธ Superset ๋‚ด๋ถ€ ๊ตฌ์กฐ - ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ?

admin | | ์กฐํšŒ 25


[์ฃผ์š” ๋ชฉ์ฐจ]

Apache Superset์˜ ๊ตฌ์กฐ

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ์—ญํ• 

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ฟผ๋ฆฌ ์‹คํ–‰


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


Apache Superset: EP2 -  ๐Ÿ›๏ธ Superset ๋‚ด๋ถ€ ๊ตฌ์กฐ - ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ? - ์ฃผ์š” ์žฅ๋ฉด 1

Apache Superset์˜ ๊ตฌ์กฐ

์•„ํŒŒ์น˜ ์ˆ˜ํผ์…‹์€ ๋„ค ๊ฐœ์˜ ์ฃผ์š” ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์š”. ์ฒซ ๋ฒˆ์งธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋กœ, ๋ฆฌ์•กํŠธ์™€ RESTful API๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์‹œ๋ณด๋“œ์™€ ์ฐจํŠธ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š”๋ฐ์š”, ํŠนํžˆ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ฐฉ์‹์œผ๋กœ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์„ธ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด๊ณณ์—์„œ๋Š” ๋Œ€์‹œ๋ณด๋“œ, ์ฐจํŠธ, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ PostgreSQL์ด๋‚˜ MySQL๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ์—ฐ๊ฒฐ์ž…๋‹ˆ๋‹ค. ์ˆ˜ํผ์…‹์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‹ค์–‘ํ•œ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ฑ์„ ์ค„์ด๊ณ , ํ•ญ์ƒ ์ตœ์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Apache Superset: EP2 -  ๐Ÿ›๏ธ Superset ๋‚ด๋ถ€ ๊ตฌ์กฐ - ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ? - ์ฃผ์š” ์žฅ๋ฉด 2

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ์—ญํ• 

์ˆ˜ํผ์…‹์˜ ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋ฆฌ์•กํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ๋ฐ˜์‘ํ˜• UI๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” SQL ๋žฉ์„ ํ†ตํ•ด SQL์„ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ณผ์ •์—์„œ SQL ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, ๋ฐฑ์—”๋“œ๋Š” ํ”Œ๋ผ์Šคํฌ๋กœ ์ž‘์„ฑ๋˜์–ด ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฟผ๋ฆฌ ์‹คํ–‰์€ SQLAlchemy๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ฟผ๋ฆฌ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ UI๊ฐ€ ๋ธ”๋กœํ‚น๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, SQL ์ฟผ๋ฆฌ๊ฐ€ ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒฝ์šฐ, ์…€๋Ÿฌ๋ฆฌ ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋Œ€๋Ÿ‰์˜ ์ฟผ๋ฆฌ๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์Šค์ผ€์ผ ์•„์›ƒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ๋Š” ๋ณด์•ˆ ์ธก๋ฉด์—์„œ๋„ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, ๋‹ค์–‘ํ•œ ์ธ์ฆ ๋ฐฉ์‹์„ ์ง€์›ํ•˜์—ฌ ๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์…‹๊ณผ ๋Œ€์‹œ๋ณด๋“œ์— ๋Œ€ํ•ด ๋กค ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด, ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.

Apache Superset: EP2 -  ๐Ÿ›๏ธ Superset ๋‚ด๋ถ€ ๊ตฌ์กฐ - ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ? - ์ฃผ์š” ์žฅ๋ฉด 3

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ฟผ๋ฆฌ ์‹คํ–‰

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

์ฟผ๋ฆฌ ์‹คํ–‰ ๊ณผ์ •์—์„œ๋Š” SQLAlchemy๊ฐ€ ์ฃผ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ SQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ์ด ์ฟผ๋ฆฌ๋Š” ๋ฐฑ์—”๋“œ์—์„œ ์‹คํ–‰๋˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์…€๋Ÿฌ๋ฆฌ ์›Œ์ปค๋Š” ์ฟผ๋ฆฌ ์‹คํ–‰์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฐ˜์‘์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ๋Œ€๋Ÿ‰์˜ ์ฟผ๋ฆฌ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋”๋ผ๋„ UI๋Š” ํ•ญ์ƒ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, Redis๋Š” ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์บ์‹ฑ๊ณผ ๋ฉ”์‹œ์ง€ ํ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๊ฐ€ ์ž์ฃผ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ, Redis๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ฟผ๋ฆฌ ์‹คํ–‰์€ ์•„ํŒŒ์น˜ ์ˆ˜ํผ์…‹์˜ ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.


[์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ]

Apache Superset์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Apache Superset์€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์™€ ๋Œ€์‹œ๋ณด๋“œ ์ƒ์„ฑ์— ์ตœ์ ํ™”๋œ ์˜คํ”ˆ์†Œ์Šค ๋„๊ตฌ๋กœ, ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ฐฉ์‹์œผ๋กœ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, SQL ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” SQL ๋žฉ ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Superset์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‚˜์š”?

Superset์€ ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์˜ ๋„ค ๊ฐœ ์ฃผ์š” ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๋Š” ๋ฆฌ์•กํŠธ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๊ณ , ๋ฐฑ์—”๋“œ๋Š” ํ”Œ๋ผ์Šคํฌ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” PostgreSQL์ด๋‚˜ MySQL์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Superset์„ ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Superset์€ Docker๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, GitHub์—์„œ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„, ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ์˜์กด์„ฑ์ด๋‚˜ ์„ค์ •์„ ๋ฏธ๋ฆฌ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ๋ก
๊ธ€์“ฐ๊ธฐ
ํ•œ๊ตญ ์„œ๋ฒ„ํ˜ธ์ŠคํŒ…
์ „์ฒด๋ณด๊ธฐ →

๋Œ“๊ธ€ 0