Nest.js

[NestJS] AWS Parameter Store ํ”„๋กœ์ ํŠธ 1ํƒ„

martinooo 2024. 9. 4. 14:40
728x170

AWS

 

 

 

 

 

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œ


ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋ฉด ๋”์šฑ๋” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๋ฒ ํƒ€์„œ๋น„์Šค๊นŒ์ง€ ๊ฐœ๋ฐœ์„ ์™„๋ฃŒํ•˜๊ณ  AWS Systems Manger ๊ธฐ๋Šฅ์ธ Parameter Store๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ด๊ด€ํ•˜๊ณ  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ฆฌ๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์ •๋ฆฌํ•œ ์‹œ๋ฆฌ์ฆˆ๋กœ ๊ธ€์„ ์ž‘์„ฑํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

 

 

๐Ÿคท‍โ™‚๏ธ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ค‘์•™ ์ง‘์ค‘ํ™” ํ•˜๋Š” ์ด์œ 


AWS Parameter Store ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์™œ? ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ค‘์•™ ๊ด€๋ฆฌํ•˜๊ณ  ์ง‘์ค‘ํ™”๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉด ์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ๋Š” ํŽธ๋ฆฌํ•จ๊ณผ ํšจ์œจ์„ฑ์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ธฐ์กด ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ž‘์—…๋ฐฉ์‹

๊ธฐ์กด ํ™˜๊ฒฝ๋ณ€์ˆ˜

 

Nest.js ํ”„๋กœ์ ํŠธ์—์„œ. env ํŒŒ์ผ์„ ํ†ตํ•ด์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด .env ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋‹ˆ ํŒŒ์ผ์„ ์ถ”๊ฐ€/์‚ญ์ œ/์ˆ˜์ •ํ–ˆ์„ ๋•Œ ๊ณ„์†ํ•ด์„œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ๊ณต์œ ํ•˜๊ณ  ์ตœ์‹ ํ™” ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งค๋ฒˆ ๊ณต์œ  ์ž˜ํ•˜๊ณ  .env ํŒŒ์ผ์„ ์ˆ˜์ •๋˜๋ฉด ์ตœ์‹ ํ™”ํ•ด ์ฃผ๋ฉด ๋˜๋Š” ๊ฑฐ ์•„๋‹ˆ์•ผ?

๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Parameter Store ํ™œ์šฉํ•ด์„œ ์ž๋™ํ™”๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด . env ํŒŒ์ผ์„ ์ตœ์‹ ํ™”ํ•˜๋Š” ์ž‘์—…์„ ์•ˆ ํ•ด์„œ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Parameter Store ์ž‘์—…๋ฐฉ์‹

์ค‘์•™ ์ง‘์ค‘ํ™”

 

ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ค‘์•™์ง‘์ค‘ํ™”๋ฅผ ํ†ตํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 

 

AWS Parameter Store ๊ณต์‹๋ฌธ์„œ

https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html

 

AWS Systems Manager Parameter Store - AWS Systems Manager

AWS Systems Manager Parameter Store Parameter Store, a capability of AWS Systems Manager, provides secure, hierarchical storage for configuration data management and secrets management. You can store data such as passwords, database strings, Amazon Machin

docs.aws.amazon.com

 

๐Ÿคท‍โ™‚๏ธ AWS Parameter Store ๊ฐœ๋…


 

AWS Parameter Store๋Š” AWS Systems Manager์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”๋กœ ํ•˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’, ์„ค์ • ๊ฐ’, ๋น„๋ฐ€ ์ •๋ณด(์˜ˆ: API ํ‚ค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๋ฐ€๋ฒˆํ˜ธ) ๋“ฑ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์•™ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

 

๋งค๊ฐœ ๋ณ€์ˆ˜(Parameter)๋ผ๋Š” ํ˜•์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์—์„œ ์ด ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Parameter Store ์ฃผ์š” ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์™€ ํ†ตํ•ฉ๋˜์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EC2, ECS, Lambda, Elastic Beanstalk ์„œ๋น„์Šค์™€ ํ†ตํ•ฉ๋˜์–ด์„œ Parameter Store ์ €์žฅ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๋“ค์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Parameter Store ์žฅ์ 

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

 

์ฃผ์š” ๊ธฐ๋Šฅ

  1. ๋ณด์•ˆ: Parameter Store๋Š” AWS KMS(Key Management Service)์™€ ํ†ตํ•ฉ๋˜์–ด ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์œ ์ถœ์— ๋Œ€ํ•œ ์œ„ํ—˜์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฒ„์ „ ๊ด€๋ฆฌ: ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•˜๋ฉฐ ํ•„์š”์‹œ ํŠน์ • ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋ณต๊ตฌํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ณ„์ธต ๊ตฌ์กฐ: ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํด๋” ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์—์„œ๋„ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /my-app/dev/db-password, /my-app/prod/db-password์™€ ๊ฐ™์ด ํ™˜๊ฒฝ๋ณ„๋กœ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์กฐ์งํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. IAM ๊ถŒํ•œ ์ œ์–ด: Parameter Store์— ์ €์žฅ๋œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” AWS Identity and Access Management(IAM) ์ •์ฑ…์„ ํ†ตํ•ด ์ ‘๊ทผ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์‚ฌ์šฉ์ž๋‚˜ ์„œ๋น„์Šค๋งŒ ํŠน์ • ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

 

๊ผญ ์ปจ๋ฒค์…˜๊ณผ ๊ทœ์น™์„ ๋”ฐ๋ผ์„œ Parameter Store๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค!

 

๐Ÿคท‍โ™‚๏ธ ๋งˆ์ง€๋ง‰์œผ๋กœ


์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ค‘์•™์ง‘์ค‘ํ™” ํ•˜๋Š” ์ด์œ ์™€ AWS Parameter Store ๊ฐœ๋…๊ณผ ์ฃผ์š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ธ€์—๋Š” ์‹ค์ œ AWS Parameter Store ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๋“ค์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 


 

์žฌ๋ฐŒ๋Š” ์˜ค๋Š˜์˜ ๋ ๋ณ„ ์šด์„ธ ๋ณด๊ณ  ๊ฐ€์„ธ์š”! 

 

 

https://cometruedream.tistory.com/247

 

[React] Tailwind ํ•œ์ค„, ๋‘์ค„, ์„ธ์ค„ ํšจ๊ณผ className ์ปค์Šคํ…€

๐Ÿคท‍โ™‚๏ธ Tailwind ํ•œ์ค„, ๋‘์ค„, ์„ธ์ค„ ํšจ๊ณผํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ค‘ ๋ฐฐ๋„ˆ ๋งํฌ์— URL ๊ธธ์ด๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ 3์ค„ ํšจ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. React + Tailwind CSS ์…‹ํŒ…๋œ ํ”„๋กœ์ ํŠธ ์—ฌ์„œ CSS ํŒŒ์ผ & style ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/243

 

NestJS Lifecycle (์ƒ๋ช…์ฃผ๊ธฐ) ๊ฐœ๋…

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œ Nest JS ๊ฐœ๋…?Nest JS๋Š” Node JS ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ƒ๋‹นํžˆ ์˜ค๋žซ๋™์•ˆ Express ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ์••๋„์ ์ธ ์ 

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/242

 

๋ฆฌ์•กํŠธ Vite Proxy ํ™œ์šฉํ•œ CORS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œํ”„๋ก ํŠธ์—”๋“œ ๋ฒˆ๋“ค๋Ÿฌ ๊ฐœ๋…๊ณผ webpack vs vite ๋น„๊ต์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๊ธ€์„ ๋ณด์‹œ๋ฉด ๋” ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค^^ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ฒˆ๋“ค๋Ÿฌ ๊ฐœ๋…๊ณผ webpack vs vite ๋น„๊ตhttps://comet

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/241

 

React ํด๋”๊ตฌ์กฐ FSD ๊ธฐ๋Šฅ ๋ถ„ํ™œ ์„ค๊ณ„ ์•„ํ‚คํ…์ฒ˜

๐Ÿคท‍โ™‚๏ธ ๋ณธ๋ก ์— ์•ž์„œํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ํด๋” ๊ตฌ์กฐ, ์„ค๊ณ„์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์–ด๋ ต๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์— React FSD ํด๋”๊ตฌ์กฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•  ์˜ˆ์ •์ด๋ผ์„œ FSD ์•„ํ‚คํ…

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/244

 

์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” Prisma ๋ช…๋ น์–ด ์ •๋ฆฌ

๐Ÿคท‍โ™‚๏ธ Prisma ๋ช…๋ น์–ด ๋ณธ๋ก ์— ์•ž์„œ Prisma๋ž€?Nest JS ํ”„๋ ˆ์ž„์›Œํฌ์™€ Prisma ORM์„ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Prisma๋Š” Node JS ๊ธฐ๋ฐ˜์— ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ž˜๋˜๋ฉฐ Prisma + DB ์—ฐ๋™์œผ

cometruedream.tistory.com

 

 

https://itibiza.tistory.com/entry/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8-%EC%8B%9C%EB%A6%AC%EC%A6%88-Dockerfile-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95

 

[๋„์ปค ์ž…๋ฌธ ์‹œ๋ฆฌ์ฆˆ] Dockerfile ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•

์ด ๊ธ€์—์„œ๋Š” ์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•œ ๋„์ปค ์‹œ๋ฆฌ์ฆˆ๋กœ ๋„์ปค ์ž…๋ฌธ ์‹œ๋ฆฌ์ฆˆ - Dockerfile ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”! ITibiza ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๊ธ€์—์„œ ๋„์ปค ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐœ๋…๊ณผ ๋„์ปค

itibiza.tistory.com

 

 

 

๊ทธ๋ฆฌ๋“œํ˜•