๐Ÿฅฅ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ

Dayยท2022๋…„ 4์›” 1์ผ
0
post-thumbnail
post-custom-banner

css ์ˆ˜์ • ๊ฐ™์€ ๋ฐ ๋งŽ์ด ์“ธ ๋“ฏ

์ž๋ฐ”์—์„œ ์ œ์ผ ๋งŽ์ด ์“ฐ๋Š” ๊ณณ. ์ฝ”๋“œ ์‹ค์ œ๋กœ ์“ฐ๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์ „์— ์‹คํ—˜ํ•ด๋ณด๋Š” ๋Š๋‚Œ

ํ†ต์‹  ์†๋„, ์„ฑ๋Šฅ ๊ฐ™์€ ๊ฑฐ ๋ณผ ๋•Œ!

4. application panel

์–ด๋–ค ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ์–ด๋”” ์ €์žฅ๋˜์–ด ์žˆ๋Š”๊ฐ€?

๋ณด์•ˆ ์ทจ์•ฝ

Storage : ๋ธŒ๋ผ์šฐ์ €์˜ ์ €์žฅ์†Œ

Local Storage : ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์šฐ์ง€ ์•Š๋Š” ์ด์ƒ ๊ณ„์† ๋ธŒ๋ผ์šฐ์ €์— ๋‚จ์•„ ์žˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ์˜ ์˜๊ตฌ์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค. Key-Value ํŽ˜์–ด์˜ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ.

Session Storage : ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฐ์ดํ„ฐ๋Š” ์œˆ๋„์šฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ๋‹ซ์„ ๊ฒฝ์šฐ ์ œ๊ฑฐ๋œ๋‹ค. Key-Value ํŽ˜์–ด์˜ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ.

Cookie : ์‹œ๊ฐ„ ์ œํ•œ ์„ค์ • ๊ฐ€๋Šฅ. ์ฟ ํ‚ค๋Š” ํ”„๋ก ํŠธ-๋ฐฑ์—”๋“œ ํ†ต์‹ ๊ณผ ๊ด€๋ จ์ด ์žˆ์Œ >> ์šฉ๋Ÿ‰์ด ์ž‘์„ ์ˆ˜ ๋ฐ–์— ์—†์Œ. Key-Value ํŽ˜์–ด์˜ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ(์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„). ํ…์ŠคํŠธ ํƒ€์ž…์ด๋ผ ๋ฌธ์ž์—ด๋งŒ ์ €์žฅ.

์ฟ ํ‚ค

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ(์ ‘์†์ž pc) ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ

document.cookie ํ•˜๋ฉด ํ˜„์žฌ ์ฟ ํ‚ค ์ •๋ณด๊ฐ€ ๋‚˜์˜ด

์‚ฌ์šฉ์ž ์ธ์ฆ์ด ์œ ํšจํ•œ ์‹œ๊ฐ„์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์ •ํ•ด์ง€๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์ธ์ฆ์ด ์œ ์ง€๋จ.

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋กœ์ปฌ์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ฐธ์กฐํ•œ๋‹ค.

์ฟ ํ‚ค ๊ตฌ์„ฑ

์ด๋ฆ„(Name) : ๊ฐ๊ฐ์˜ ์ฟ ํ‚ค๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„
๊ฐ’(Value) : ์ฟ ํ‚ค์˜ ์ด๋ฆ„๊ณผ ๊ด€๋ จ๋œ ๊ฐ’
์œ ํšจ์‹œ๊ฐ„(Expires) : ์ฟ ํ‚ค์˜ ์œ ์ง€์‹œ๊ฐ„
๋„๋ฉ”์ธ(Domain): ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ๋„๋ฉ”์ธ
๊ฒฝ๋กœ(Path): ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์š”์ฒญ ๊ฒฝ๋กœ

์ฟ ํ‚ค์˜ ๋™์ž‘ ๋ฐฉ์‹

  1. ํด๋ผ์ด์–ธํŠธ(์ ‘์†์ž pc) ๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญ
  2. ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑ
  3. HTTP ํ—ค๋”์— ์ฟ ํ‚ค๋ฅผ ํฌํ•จ ์‹œ์ผœ ์‘๋‹ต
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ์ฟ ํ‚ค ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ์žˆ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Œ
  5. ๊ฐ™์€ ์š”์ฒญ์„ ํ•  ๊ฒฝ์šฐ HTTP ํ—ค๋”์— ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ๋ณด๋ƒ„
  6. ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ์ฝ์–ด ์ด์ „ ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ฟ ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ์ฟ ํ‚ค๋ฅผ HTTP ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ ์‘๋‹ต

์ฟ ํ‚ค๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

Cookie
์„œ๋น„์Šค ์ง์ ‘์ ์ด์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ
์˜ค๋Š˜๋งŒ ํ•˜๋Š” ์ด๋ฒคํŠธ ํŒ์—…, ์„œ๋น„์Šค ์•ฝ๊ด€์— ๋™์˜ํ–ˆ๋Š”์ง€ ๋“ฑ.
์„œ๋น„์Šค ์ง์ ‘์ ์ด์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ

์˜ค๋Š˜๋งŒ ํ•˜๋Š” ์ด๋ฒคํŠธ ํŒ์—…, ์„œ๋น„์Šค ์•ฝ๊ด€์— ๋™์˜ํ–ˆ๋Š”์ง€ ๋“ฑ.

  • ๋ฐฉ๋ฌธ ์‚ฌ์ดํŠธ์—์„œ ๋กœ๊ทธ์ธ ์‹œ, "์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?"
  • ์‡ผํ•‘๋ชฐ์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ
  • ์ž๋™๋กœ๊ทธ์ธ, ํŒ์—…์—์„œ "์˜ค๋Š˜ ๋” ์ด์ƒ ์ด ์ฐฝ์„ ๋ณด์ง€ ์•Š์Œ" ์ฒดํฌ

์ฟ ํ‚ค๋Š” ๋งŒ๋ฃŒ ๊ธฐํ•œ์ด ์žˆ๋Š” ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” ์š”์ฒญ ์ž์ฒด๋งŒ์œผ๋กœ๋Š” ๊ทธ ์š”์ฒญ์ด ๋ˆ„๊ตฌ์—๊ฒŒ์„œ ์˜ค๋Š” ์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ์—, ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์—†์Œ. ์ด ๋•Œ ์ฟ ํ‚ค์— ๋‚˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค๋ฅผ ์ฝ์–ด์„œ ๋‚ด๊ฐ€ ๋ˆ„๊ตฐ์ง€ ํŒŒ์•….
์ฟ ํ‚ค๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ง€์†์ ์ธ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋กœ ๊ณ„์† ์ „์†ก๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ 4kb ์šฉ๋Ÿ‰ ์ œํ•œ์„ ๊ฑฐ์˜ ๋‹ค ์ฑ„์šด ์ฟ ํ‚ค๊ฐ€ ์žˆ๋‹ค๋ฉด, ์š”์ฒญ์„ ํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธ 4kb์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ. 4kb ์ค‘์—๋Š” ์„œ๋ฒ„์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋“ค๋„ ์žˆ์Œ -> ๋ฐ์ดํ„ฐ ๋‚ญ๋น„

์•”ํ˜ธํ™” ์กด์žฌ x -> ์‚ฌ์šฉ์ž ์ •๋ณด ๋„๋‚œ ์œ„ํ—˜

๋งค HTTP์š”์ฒญ๋งˆ๋‹ค ํฌํ•จ๋˜์–ด apiํ˜ธ์ถœ๋กœ ์„œ๋ฒ„์— ๋ถ€๋‹ด.

๋ฐ”๋กœ ๊ทธ๋Ÿฐ ๋ฐ์ดํ„ฐ๋“ค์„ ์ด์ œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•œ๋‹ค.

๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€

์ฟ ํ‚ค์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•ด HTML5์—์„œ '์›น์Šคํ† ๋ฆฌ์ง€'๋ผ๋Š” ๊ธฐ์ˆ  ํƒ„์ƒ

์›น ์Šคํ† ๋ฆฌ์ง€ (web storage)๋Š” ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ, ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” HTML5์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๋‹ค.

์›น์Šคํ† ๋ฆฌ์ง€๋Š” ๋กœ์ปฌ์—๋งŒ ์ •๋ณด๋ฅผ ์ €์žฅ, ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์™€ ๋กœ์ปฌ์— ์ •๋ณด๋ฅผ ์ €์žฅ.

๊ฐ„๋‹จํ•œ ํ‚ค์™€ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. key-value storage์˜ ํ˜•ํƒœ

์ด ๋‘ ์ €์žฅ์†Œ์˜ ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„๋กœ ์ž๋™ ์ „์†ก๋˜์ง€ ์•Š์Œ.

๋‘ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ชจ๋‘ window ๊ฐ์ฒด ์•ˆ์— ๋“ค์–ด ์žˆ์Œ. Storage๊ฐ์ฒด๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ์กด์žฌ.
๋„๋ฉ”์ธ ๋ณ„ ์šฉ๋Ÿ‰ ์ œํ•œ๋„ ์žˆ์Œ(ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ, ํฌํŠธ๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณต์œ )
๋ชจ๋ฐ”์ผ์€ 2.5mb, ๋ฐ์Šคํฌํƒ‘์€ 5mb~10mb๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋จ.
์ด๊ฒŒ ๋ถ€์กฑํ•˜๋‹ค๋ฉด 50mb๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”IndexedDB๋ฅผ ์”€.

์žฅ์  : ์šฉ๋Ÿ‰์ด ํฌ๋‹ค. (์•ฝ 5Mb, ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฐจ์ด ์กด์žฌ)
๋‹จ์  : HTML5๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ ๋ถˆ๊ฐ€

์–ธ์ œ ์“ฐ๋Š”๊ฐ€?
Local Storage
์ง€์†์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ(data persistant)(ex. ID ์ €์žฅ, ๋น„ํšŒ์› ์นดํŠธ)
UI ์ •๋ณด๋“ค(ex. ์—์–ด๋น„์•ค๋น„, ์Šค์นด์ด์Šค์บ๋„ˆ ์ธ์ฒœ๊ณตํ•ญ - ๋ฒ ๋„ค์น˜์•„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ์œ ์ง€)

Session Storage :
์ž ๊น ๋™์•ˆ ํ•„์š”ํ•œ ์ •๋ณด
ex. ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ์ •๋ณด (ex. ์€ํ–‰ ์‚ฌ์ดํŠธ), specificํ•œ ์œ ์ € ์ •๋ณด, ์–ธ์–ด ์„ ํƒ

Local Storage ์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

๋ฐ์ดํ„ฐ ์ €์žฅ
localStorage.setItem("key", "value")
sessionStorage.setItem("key", "value")
setcookie("key", "value", "์ง€์†์‹œ๊ฐ„ (์ดˆ๋‹จ์œ„)")
๋ฐ์ดํ„ฐ ํ˜ธ์ถœ
localStorage.getItem("key")
sessionStorage.getItem("key")
document.cookie
๊ธฐํƒ€ ๋ฉ”์†Œ๋“œ
์™ธ์—๋„ removeItem, clear ๋“ฑ๋“ฑ์˜ ๊ณตํ†ต ๋ฉ”์†Œ๋“œ ์กด์žฌ

๊ธฐํƒ€) ์„ธ์…˜ ( Session )

์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋ž‘ ์•„์˜ˆ ๋‹ค๋ฅธ ๊ฑฐ ๊ฐ™์Œ ์ด๋ฆ„๋งŒ ๋น„์Šทํ•œ ๊ฑฐ

์„ธ์…˜์ด๋ž€?

์œ ์ €๊ฐ€ ์ธ์ฆ์„ ํ•  ๋•Œ, ์„œ๋ฒ„๋Š” ์ด ๊ธฐ๋ก์„ ์„œ๋ฒ„์— ์ €์žฅ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ธ์…˜ ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค

์„ธ์…˜์€ ์ฟ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ •๋ณด ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

์„œ๋ฒ„์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ID๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ธ์ฆ์ƒํƒœ๋ฅผ ์œ ์ง€

์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์— ์ข‹์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋จ.

๋™์ ‘์ž ์ˆ˜๊ฐ€ ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์ธ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์š”์ธ์ด ๋จ.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ Request๋ฅผ ๋ณด๋‚ด๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์˜ ์—”์ง„์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์œ ์ผํ•œ ID๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐ ์ด๊ฒƒ์ด ์„ธ์…˜ID.

์„ธ์…˜์˜ ๋™์ž‘ ๋ฐฉ์‹

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

โ€‹

post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€