post-thumbnail

[Main-project] ์ง€์‹ ์ •๋ฆฌ_Kakao OAuth

Rest api ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ• ์‚ฌ์šฉFE : ์นด์นด์˜ค๋กœ๋ถ€ํ„ฐ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ๋ฐ›๊ณ  ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋ฐฑ์—”๋“œ๊ฐ€ ์š”์ฒญํ•œ api๋กœ ์ „๋‹ฌํ•ด์ฃผ๋ฉด ๋! ๋ฐฑ์—”๋“œ์— ์ธ๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ „๋‹ฌ์ด ๋˜์—ˆ๋‹ค๋ฉด ๋ฐฑ์—”๋“œ์—์„œ๋Š” ์‘๋‹ต๊ฐ’์œผ๋กœ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด์คŒํ•ด๋‹น ํ† ํฐ์„ ๋ฐ›์•„์™€์„œ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €

2023๋…„ 9์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Main-project] ์ง€์‹ ์ •๋ฆฌ_Homepage.js

: ๋ฌดํ•œ ์Šคํฌ๋กค์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ, ๋‚˜๋Š” react-infinite-scroll-component๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค: React์˜ ๋ฌดํ•œ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ : npm install react-infinite-scroll-c

2023๋…„ 9์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Main-project] ์—๋Ÿฌ ๊ด€๋ จ ์ •๋ฆฌ

'text' is missing in props validation react/prop-types ์›์ธ : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” prop์˜ ํƒ€์ž…์ด ๋ฌธ์ž์—ด ํƒ€์ž…์ด ์™€์•ผํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ํ•ด๊ฒฐ : ์ปดํฌ๋„ŒํŠธ์— text์˜ ํƒ€์ž…์„ ์ •ํ•ด์ฃผ๋ฉด์€ ํ•ด๊ฒฐ'prop-

2023๋…„ 9์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Main-project] Git ๊ด€๋ จ ์—๋Ÿฌ

๋ฐœ์ƒ : ๋กœ์ปฌ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒˆ๋กœ๋”ฐ์„œ ์ž‘์—… ํ›„ push๋ฅผ ํ•ด์ฃผ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์—๋Ÿฌ ๋ฐœ์ƒ์›์ธ : ์›๊ฒฉ์— ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ์ œ๋Œ€๋กœ pull์ด ๋˜์ง€ ์•Š์•„์„œ ๊ทธ๋ ‡๋‹คํ•ด๊ฒฐ : main ๋ธŒ๋žœ์น˜์™€ ํ˜„์žฌ ๋‚ด ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ pull์„ ํ•œ ํ›„ push ํ•˜๋ฉด ๋จ!

2023๋…„ 8์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Main-project] ์ง€์‹ ์ •๋ฆฌ_Signup page.js

'text' is missing in props validation react/prop-types ์›์ธ : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” prop์˜ ํƒ€์ž…์ด ๋ฌธ์ž์—ด ํƒ€์ž…์ด ์™€์•ผํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค ํ•ด๊ฒฐ : ์ปดํฌ๋„ŒํŠธ์— text์˜ ํƒ€์ž…์„ ์ •ํ•ด์ฃผ๋ฉด์€ ํ•ด๊ฒฐ'prop-

2023๋…„ 8์›” 30์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Pre-project] ์—๋Ÿฌ ์ •๋ฆฌ

syntaxerror: unexpected end of json input์›์ธ : ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์‘๋‹ต์ด JSON ํ˜•์‹์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ (๋ฐฑ์—”๋“œ์˜ ์ž˜๋ชป์ด ํผ)ํ•ด๊ฒฐ : http ์ƒํƒœ๋กœ ๋ณด๋‚ด๋Š” ๊ฑฐ๋ฅผ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋‹ˆ ํ•ด๊ฒฐ๋จ(๋ฐฑ์—”๋“œ์—์„œ ํ•ด๊ฒฐํ•ด์„œ ์ž์„ธํ•œ๊ฑด ๋ชจ๋ฅด์ง€๋งŒ ์„ฑ๊ณต

2023๋…„ 8์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[Pre-Project] ์ง€์‹ ์ •๋ฆฌ

๊ธ€ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์™€์„œ ํ•œ ํŽ˜์ด์ง€๋‹น 15๊ฐœ์”ฉ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ฃผ๊ณ  ๋‹ค์ŒํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ๋” ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ตฌํ˜„Array.from () : ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์—์„œ ์–•์€ ๋ณต์‚ฌ๋กœ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ฌ ์˜ˆ์‹œ

2023๋…„ 8์›” 20์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.31] Amazon Web Service

์ •์  ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…์ด ๊ฐ€๋Šฅ๐Ÿ“ ์ •์  ํŒŒ์ผ : ์„œ๋ฒ„์˜ ๊ฐœ์ž…์—†์ด ์ƒ์„ฑ๋œ ํŒŒ์ผ ๐Ÿ“ ๋™์  ํŒŒ์ผ : ํด๋ผ์ด์–ธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋งž์ถ”์–ด ๊ทธ ์ž๋ฆฌ์—์„œ ์ƒ์„ฑํ•œ ํŒŒ์ผ์›น ํ˜ธ์ŠคํŒ… : ์„œ๋ฒ„์˜ ํ•œ๊ณต๊ฐ„์„ ์ž„๋Œ€ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค\-> ๊ฐœ์ธ ๋˜๋Š” ๋‹จ์ฒด๊ฐ€ ์›น ํ˜ธ์ŠคํŒ… ์—…์ฒด๊ฐ€ ์ œ๊ณตํ•˜

2023๋…„ 8์›” 1์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์–ธ์–ด ๋ฒˆ์—ญ๊ธฐ ๋น„๊ต

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

2023๋…„ 7์›” 28์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜

์ด ์˜ค๋ฅ˜๋Š”, ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ .ts ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, TypeScript์—์„œ๋Š” ์ด ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, TypeScript ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ • ํŒŒ์ผ (tsconfig.json)์—์„œ allowImportingTsExten

2023๋…„ 7์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.26] Typescript

=> ํ•ด๊ฒฐ

2023๋…„ 7์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.19] ์ฝ”๋“œ ๋ถ„ํ• 

React.lazy์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์šด๋˜์ง€ ์•Š์•˜์œผ๋ฉด suspense์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๊ณ  ๋‹ค ๋‹ค์šด์ด๋˜๋ฉด ๊ทธ๋•Œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  suspense๋‚ด์šฉ์€ ์‚ฌ๋ผ์ง (๋น„๋™๊ธฐ์ฒ˜๋ฆฌ)

2023๋…„ 7์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.18] Virtual DOM, React Hooks

DOMReact Hoks: Document Object Model์˜ ์•ฝ์ž๋กœ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ์„ ์˜๋ฏธ๋ฌธ์„œ ๊ฐ์ฒด๋ž€ : ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Javascript์™€ ๊ฐ™์€ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๊ฐ€ < html >, < head >, < body >์™€ ๊ฐ™์€ ํƒœ๊ทธ๋“ค์— ์ ‘๊ทผํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜

2023๋…„ 7์›” 18์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.10] Tree์™€ Graph

ํŠธ๋ฆฌ๋Š” ๊ณ„์ธต์  ํŠธ๋ฆฌ๊ตฌ์กฐ ํ•˜๋‚˜์ด์ƒ์˜ ๋ฐ์ดํ„ฐ์— ํ•œ๊ฐœ์˜ ๊ฒฝ๋กœ์™€ ํ•˜๋‚˜์˜ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์—ฐ๊ฒฐ๋œ ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ด์‹œํ‚จ ์„ ํ˜•๊ตฌ์กฐ๊ฐ€ ์•„๋‹Œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์•„๋ž˜์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•  ์ˆ˜์žˆ๋Š” ๋น„์„ ํ˜•๊ตฌ์กฐ ๊ณ„์ธต์ ์œผ๋กœ ํ‘œํ˜„์ด ๋˜๊ณ  ์•„๋ž˜๋กœ๋งŒ ๋ป—์–ด๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํด(์ˆœํ™˜

2023๋…„ 7์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.04] OAuth

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

2023๋…„ 7์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[07.03] Token

TokenJWT: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†์„ ํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์ด๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ† ํฐ์„ ๋ถ€์—ฌํ•จ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋†€์ด๊ณต์› ์ž…์žฅ์‹œ ๊ฐœ์ธ๋งˆ๋‹ค ์ฃผ๋Š” ์ž…์žฅ๊ถŒ์„ ์†๋‹˜์—๊ฒŒ ์ฃผ๊ณ  ๊ฐœ์ธ(ํด๋ผ์ด์–ธํŠธ)์ด ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•จํ† ํฐ์€ ์„ธ์…˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ

2023๋…„ 7์›” 3์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[06.30] Cookie/Session

๐Ÿ“Œ Cookie : ๋ฐ์ดํ„ฐ์ด๋ฉด์„œ, ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ์— ์ž‘์€ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ฒƒ ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์ดํŠธ ์ ‘์†์‹œ 'ํ•˜๋ฃจ๋™์•ˆ ์ด์ฐฝ์„ ๋ณด์ง€ ์•Š๊ธฐ' ๋ฌธ๊ตฌ๊ฐ€ ๋œฌ๋‹ค๊ฑฐ๋‚˜, ๋กœ๊ทธ์ธ์„ ์œ„ํ•ด ๋กœ๊ทธ์ธ ์ •๋ณด ์ €์žฅ, ์ž๋™ ๋กœ๊ทธ์ธ ๊ฐ™์€ ๊ฒฝ์šฐ โžก๏ธ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•  ๊ณต๊ฐ„

2023๋…„ 7์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Programmers

Q : ์ •์ˆ˜ย num1๊ณผย num2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ,ย num1์„ย num2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์— 1,000์„ ๊ณฑํ•œ ํ›„ ์ •์ˆ˜ ๋ถ€๋ถ„์„ return ํ•˜๋„๋ก soltuion ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.num1์ด 3,ย num2๊ฐ€ 2์ด๋ฏ€๋กœ 3 / 2 = 1.5์— 1,000์„ ๊ณฑํ•˜๋ฉด 1500์ด

2023๋…„ 6์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[06.26] ์›น ํ‘œ์ค€ ๋ฐ ์ ‘๊ทผ์„ฑ

์›น ํ‘œ์ค€์€ ์–ด๋– ํ•œ ์šด์˜์ฒด์ œ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋™์ผํ•œ ์ปจํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์›น์—์„œ ํ‘œ์ค€์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ด๋‚˜ ๊ทœ์น™๐Ÿ“ ๋™์ผํ•œ ์ปจํ…์ธ  : ์™„๋ฒฝํžˆ ๋˜‘๊ฐ™์€ ํ™”๋ฉด์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ๋™๋“ฑํ•œ ์ˆ˜์ค€์˜ ์ •๋ณด์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธ์žฅ์ : ๋ธŒ๋ผ์šฐ์ €์™€ os์— ๊ด€

2023๋…„ 6์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[06.23] ๊ณผ์ œ_Cmarket redux Review

๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ Action, Dispatch, Reducer, Store๊ฐ€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์–ด๋–ค ๊ณผ์ •์œผ๋กœ ๊ตฌํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐAction, Reducer๋ฅด ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ์ง€๋‚œ๋ฒˆ react hooks๋กœ ์ž‘์„ฑํ•œ ํŽ˜์ด์ง€๋ฅผ redux๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฆฌํŒฉํ† ๋ง์ƒํƒœ ๋ณ€

2023๋…„ 6์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท