๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

https://www.toptal.com/database/database-design-bad-practices

 

๋Œ€๋ถ€๋ถ„ ์‚ฌ๋žŒ๋“ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS : DataBase Management System)์„ ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๊ณ  ํ”ํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํ†ตํ•ฉํ•ด์„œ ๋งํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •ํ™•ํžˆ ์ด ๋‘˜์˜ ๊ฐœ๋…์€ ์—„์—ฐํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. 

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์†Œ์œ„ ์•„๋Š” Mysql ๋‚˜ ์˜ค๋ผํด, ๋ชฝ๊ณ ๋น„๋”” ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ 1960๋…„๋Œ€์— ๊ฐœ๋ฐœ๋˜์–ด ํ˜„์žฌ๊นŒ์ง€๋„ ๊พธ์ค€ํžˆ ์ง„ํ™”๋ฅผ ๊ฑฐ๋“ญํ•˜๊ณ  ๋ฐœ์ „๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋”ฐ๋ผ 4์„ธ๋Œ€๋กœ ๋‚˜๋ˆŒ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • 1์„ธ๋Œ€์ธ ๋„คํŠธ์›Œํฌ DBMS
  • 2์„ธ๋Œ€์ธ ๊ด€๊ณ„ DBMS
  • 3์„ธ๋Œ€์ธ ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐ์ฒด๊ด€๊ณ„ DBMS
  • 4์„ธ๋Œ€์ธ NoSQL, NewSQL DBMS

(๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.)

 

1์„ธ๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ : ๋„คํŠธ์›Œํฌ DBMS

 

๋„คํŠธ์›Œํฌ ๊ณ„์ธต DBMS

 

๋„คํŠธ์›Œํฌ DBMS๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋…ธ๋“œ์™€ ๊ฐ„์„ ์„ ์ด์šฉํ•œ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ DBMS๋Š” ๊ฐ„์„ ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ณ  ๋ณ€๊ฒฝ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” IDS(Intergrated Data Store)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

IDS

 

 

2์„ธ๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ : ๊ด€๊ณ„ DBMS

 

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

 

๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹จ์ˆœํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด, ์ง€๊ธˆ๊นŒ์ง€๋„ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” MySQL, ์˜ค๋ผํด , MS SQL ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ๊ด€๊ณ„ ํ…Œ์ดํ„ฐ ๋ชจ๋ธ์˜ ์˜ˆ

 

 

3์„ธ๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ : ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐ์ฒด๊ด€๊ณ„ DBMS(RDS)

 

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

 

 

O2

 

 

๊ฐ์ฒด๊ด€๊ณ„ DBMS๋Š” ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์„ ๋„์ž…ํ•œ ๊ฐ์ฒด๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ฆ‰ 2์„ธ๋Œ€์˜ ๊ด€๊ณ„ DBMS๊ณผ 3์„ธ๋Œ€์˜ ๊ฐ์ฒด์ง€ํ–ฅ DBMS๋ฅผ ํ•ฉ์นœ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ด€๊ณ„ DBMS ์„ ํ˜ธ

 

๋ง์ด 3์„ธ๋Œ€์ง€ ์‚ฌ์‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ์ธ 2์„ธ๋Œ€ ๊ด€๊ณ„ DBMS๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ์ฒด ๊ด€๊ณ„ DBMS์˜ ์‚ฌ์šฉ์ž๋“ค๋„ ์ตœ๊ทผ ๋งŽ์ด ๋Š˜์–ด ๋‘˜์ด ์‚ฌ์‹ค ๊ณต์กดํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

4์„ธ๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ : NoSQL, NewSQL DBMS

 

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

 

NoSQL์ด ์ฃผ๋ชฉ์„ ๋ฐ›๋‹ค!

 

์ด๋Ÿฌํ•œ ์‹œ๋Œ€์  ํ๋ฆ„์— ๋”ฐ๋ผ NoSQL DBMS๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. NoSQL DBMS๋Š” ๊ด€๊ณ„ DBMS์˜ ์•ˆ์ •์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ํฌ๊ธฐํ•œ ๋Œ€์‹ , ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ๊ตฌ๊ธ€, ํŽ˜์ด์Šค๋ถ, ํŠธ์œ„ํ„ฐ ๊ฐ™์€ SNS ํšŒ์‚ฌ๋“ค์ด NoSQL์˜ ํ•„์š”์„ฑ์„ ๊ฐ•์กฐํ•˜๋ฉด์„œ ๋”์šฑ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ๋ชฝ๊ณ ๋น„๋””, HBase, Redis, Orient DB๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋ชฝ๊ณ ๋””๋น„์™€ redis

 

RDS์˜ ์žฅ์  + NoSQL์˜ ์žฅ์  = NewSQL

 

NoSQL์ด ์ฃผ๋ชฉ ๋ฐ›๊ณ  ์žˆ๋‹ค ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ฐ ๊ธฐ์—…์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ •ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ๊ด€๊ณ„ DBMS๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์—…๋“ค์€ ๊ด€๊ณ„ DBMS๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ NoSQL๋„ ์ถ”๊ฐ€๋กœ ๋„์ž…ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ถˆํŽธํ•จ์ด NewSQL DBMS์˜ ๋“ฑ์žฅ์„ ์ด๋Œ์—ˆ์Šต๋‹ˆ๋‹ค. 2011๋…„์— ์ฒ˜์Œ ์–ธ๊ธ‰๋œ NewSQL DBMS๋Š” ์•ˆ์ •์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ SQL์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•˜๊ณ  ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ๊ด€๊ณ„ DBMS์˜ ์žฅ์ ๊ณผ NoSQL์˜ ํ™•์žฅ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ ๋ชจ๋‘ ์ง€์›ํ•˜๊ฒŒ ๋œ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ๊ตฌ๊ธ€์˜ Spanner, VoltDB, NuoDB ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฐจ๋ก€๋Œ€๋กœ ๊ตฌ๊ธ€์˜ spanner, VoltDB, NuoDB

NewSQL์˜ ์ด๋Ÿฌํ•œ ์—„์ฒญ๋‚œ ์žฅ์  ๋•๋ถ„์— ๊ด€๊ณ„ DBMS์™€ NoSQL๋ฅผ ์™„์ „ํžˆ ๋Œ€์‹ ํ•  ๊ฑฐ๋ž€ ์ƒ๊ฐ์€ ์ ˆ๋Œ€ ๊ธˆ๋ฌผ์ž…๋‹ˆ๋‹ค. NewSQL๋Š” 2011๋…„์— ์ฒ˜์Œ ์–ธ๊ธ‰๋œ ๋งŒํผ ๋‚˜์˜จ์ง€ ์–ผ๋งˆ ์•ˆ๋œ DBMS์ด๋ฏ€๋กœ ๋งŽ์€ ์—ฐ๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„์ง๊นŒ์ง€๋Š” ๊ด€๊ณ„ DBMS์™€ NoSQL, NewSQL์ด ์ƒํ˜ธ ๋ณด์™„ํ•˜๋ฉด์„œ ๊ณต์กดํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

 

์‚ฌ์šฉ์ž๋Š” ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ, ์—…๋ฌด ์ฒ˜๋ฆฌ ์„ฑ๊ฒฉ ๋“ฑ์„ ๊ณ ๋ คํ•ด์„œ ์ ํ•ฉํ•œ DBMS๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ •ํ˜•, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?

 

[DB] ์ •ํ˜•, ๋ฐ˜์ •ํ˜•, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ์›์ดˆ์ ์ธ ๋ชฉ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋จผ์ € ์ˆ˜์ง‘ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ด

kingofbackend.tistory.com

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

 

"๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"

๋ฐ˜์‘ํ˜•
profile on loading

Loading...