์ „์ฒด ๊ธ€ 7

web component API ์‚ฌ์šฉ๊ธฐ (1) _๊ทธ๊ฒŒ ๋ญ”๋ฐ?

์•„์ฃผ ๋ฐ”์œ ๋‚˜๋‚ ์„ ๋ณด๋‚ด๊ณ  ์žˆ๋‹ค. ์•„์ฃผ์•„์ฃผ ๋ฐ”์˜๊ณ  ๋นก์„ธ์ง€๋งŒ ๋˜ ๊ทธ๋งŒํผ ์—„์ฒญ๋‚œ ์„ฑ์ทจ๊ฐ๊ณผ ์žฌ๋ฏธ๋กœ ๊ฐ€๋“์ฐฌ ํ•˜๋ฃจ๋“ค์ด๋‹ค! ์šฐ์•„ํ•œํ…Œํฌ์บ ํ”„ 2์ฃผ์ฐจ ๋ฏธ์…˜์€ vanilla js ์œผ๋กœ 'ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ํ•˜๊ธฐ' ์˜€๋‹ค. ( ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€๋ณ๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๊ทธ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ(?)๊ฐ€ ์•„๋‹Œ ํŠธ๋ ๋กœ, ์ง€๋ผ ๋“ฑ ํ˜‘์—… ๋„๊ตฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์นธ๋ฐ˜ ๋ณด๋“œ ํ˜•ํƒœ์˜ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ ์˜€๋‹ค ใ…Žใ…Ž..๐Ÿ™„ ) ์šฐ๋ฆฌ ํŒ€์€ ํ”„๋กœ์ ํŠธ์— web component๋ฅผ ๋„์ž…ํ•˜์˜€๊ณ , ์ด ๊ฒฝํ—˜์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ƒˆ๋กœ์šด ๋„์ „์ด์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ณผ์ •์—์„œ ๊ฒช์—ˆ๋˜ ๋ฌธ์ œ๋“ค๊ณผ ๋ฐฐ์šด์ ๋“ค์„ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•œ๋‹ค. web component ๋ž€? ์›น ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ฝ”๋“œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ ์บก์Аํ™”๋œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ์›น ์•ฑ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๋ชจ์Œ - mdn mdn ..

dev/javascript 2022.07.17

[ ํ† ์ด ํ”„๋กœ์ ํŠธ ] ์ง€๋ขฐ์ฐพ๊ธฐ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ ( feat. typescript, react, mobx )

ํ”„๋กœ์ ํŠธ ๋™๊ธฐ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง€๋ขฐ์ฐพ๊ธฐ์—ฌ์•ผ ํ•˜๋Š” ํฐ ์ด์œ ๋Š” ์—†๋‹ค. mobx๋ฅผ ์จ๋ณด๋Š” ๊ฒƒ์— ํฐ ์˜๋ฏธ๋ฅผ ๋‘” ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์€ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋˜์—ˆ๊ณ  ์•ž์œผ๋กœ๋Š” ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ, ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ด๋‹ค. stack๐Ÿ”— CRA-typescript eslint prettier styled-component mobx ์ง€๋ขฐ์ฐพ๊ธฐ๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค๋ฉด, ์ด๋Ÿฐ ๊ฒŒ์ž„ ๊ตฌํ˜„์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์„ ๋•Œ ๋ง‰๋ง‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋”ฐ๋ผ ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ ์ง์ ‘ ์ƒ๊ฐํ•ด๋ณด๋ฉฐ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์ƒ๊ฐํ•œ ์ˆœ์„œ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋‹ˆ ๊ฐ€์ด๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ฐธ๊ณ ํ•˜์‹œ๊ธธ!๐Ÿ™๐Ÿผ ์ง€๋ขฐ์ฐพ๊ธฐ ๊ตฌํ˜„ ๊ฐ€์ด๋“œ matrix ํ˜•ํƒœ์˜ ๊ฒŒ์ž„ ๋ณด๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค. ( ๋‚˜๋Š” 8x8 ๋กœ ์„ธํŒ…ํ–ˆ๋‹ค. Array์˜ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ์ธ from() ๊ณผ fill()์„ ์‚ฌ์šฉํ–ˆ๋‹ค...

dev 2022.05.09

[ Book๐Ÿ“š ] ํ•จ๊ป˜์ž๋ผ๊ธฐ (2)_์กฐ์ง์— ์žˆ๋Š” ๋ชจ๋‘์—๊ฒŒ ์ถ”์ฒœํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ ๋ฟ!

์ฑ…์„ ์ค‘๊ฐ„๊นŒ์ง€ ์ฝ๊ณ ์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๊ธฐ๋ก ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„๋“ค์€ ์ •๋ฆฌํ–ˆ์—ˆ๋‹ค. ๊ทธ ๋’ค๋กœ ๊ธˆ๋ฐฉ ๋‹ค ์ฝ์„ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ฐจ๋ถ„ํ•œ ์ƒํƒœ์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ์†Œํ™”ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋งˆ์Œ์ด๋ผ ์ข€ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค. (๋‚˜์˜ ์ƒํ™ฉ์ด ์•ˆ์ •๋  ๋•Œ๋งŒ์„ ๊ธฐ๋‹ค๋ ธ๋‹ค-!) TMI๐Ÿ‘ป +๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋™๋„ค ์ค‘ ํ•œ ๊ณณ์ธ ํ›„์•”๋™์˜ ์˜ค๋ฅด์†Œ ์—์Šคํ”„๋ ˆ์†Œ๋ฐ”์—์„œ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ์ฝ์—ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ข‹์•˜๋˜ ๋ถ€๋ถ„๋“ค๐Ÿ’ซ ์‹ ๋ขฐ ์ž์‚ฐ์ด ๋†’์€ ์กฐ์ง์€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํšจ์œจ์ด๋‚˜ ์ƒ์‚ฐ์„ฑ์ด ๋†’๋‹ค์‹ ๋ขฐ๋ฅผ ์Œ“๋Š” ๋ฐฉ๋ฒ•๋“ค -> ํˆฌ๋ช…์„ฑ๊ณผ ๊ณต์œ , ์ธํ„ฐ๋ž™์…˜ ์ž‘์—…๋ฌผ = ๋‚˜ ๊ฐ€ ๋˜๋Š” ์ˆœ๊ฐ„ ํ”ผ๋“œ๋ฐฑ์€ ๋‚˜์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. -> ๋ณต์ˆ˜ ์ž‘์—…๋ฌผ ๊ณต์œ  ๋ณต์ˆ˜ ๊ณต์œ ๋Š” ์‹ ๋ขฐ๋„ ๋†’์•„์ง€๊ณ  ์„ฑ๊ณผ๋„ ๋” ์ข‹์•˜๋‹ค. ์ž์‹ ์ด ํ•œ ์ž‘์—…๋ฌผ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์„œ๋กœ ๊ณต์œ ํ•˜๊ณ  ๊ทธ์— ๋Œ€ํ•ด ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ์ธํ„ฐ๋ž™์…˜ ํ•˜๋Š” ๊ฒƒ ์‹ ๋ขฐ์ž์‚ฐ์ด ๋†’๋‹ค๋Š”..

[ JS ] ๊ฐ์ฒด ์กฐํšŒ ๋ฐฉ๋ฒ• Dot notation vs Square-Bracket notation

๊ฐ์ฒด์—์„  key๋ฅผ ์ด์šฉํ•ด ํ”„๋กœํผํ‹ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. Dot notation ( ์  ํ‘œ๊ธฐ๋ฒ• )๊ณผ Square-Bracket notation( ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ• ) ์  ํ‘œ๊ธฐ๋ฒ• const user = { name : '๋นŒ๋ผ๊ฐฑ', gender: '๐Ÿšบ', 'favorite food' : '๐Ÿ•' //๋ณต์ˆ˜์˜ ๋‹จ์–ด๋Š” ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•จ } alert(user.name) // ๋นŒ๋ผ๊ฐฑ ์œ„์™€ ๊ฐ™์ด ์  ํ‘œ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด์„œ name์ด๋ผ๋Š” key๋กœ ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฝ์–ด์™”๋‹ค. ํ•˜์ง€๋งŒ 'favorite food'์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์กฐํ•ฉํ•ด ํ”„๋กœํผํ‹ฐ key๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๋‹ค. user.favorite food = '๐Ÿ—' //โŽ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค..

dev/javascript 2022.04.22

[ TS ] ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ฐ์ฒด์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†๋Š” ์ด์œ 

์ •๊ธฐ ๋ฐฐํฌ๊ฐ€ ๋‚˜๊ฐ€์•ผ ํ•˜๋Š”๋ฐ ๋นŒ๋“œ์ค‘์— eslint ์—๋Ÿฌ๋กœ ๋ฉˆ์ถ˜ ์ ์ด ์žˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์€ tsx ์ด๊ณ , ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋‚˜๋Š” ์—๋Ÿฌ์˜€๋‹ค. ํ•ด๋‹น ์—๋Ÿฌ๋ฅผ ์ˆ˜์ •ํ•œ PR์„ ์ฝ”๋“œ ๋ฆฌ๋ทฐํ•˜๋ฉฐ ์ฒ˜์Œ์—์„œ๋Š” ๊ฐ์ฒด ์กฐํšŒ ํ˜•์‹ ๊ฐ„์˜ ์ฐจ์ด ๋•Œ๋ฌธ์ธ๊ฐ€? ์‹ถ์—ˆ๋Š”๋ฐ ์ฐพ์•„๋ณด๋‹ˆ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•  ๋•Œ์˜ ๋ฌธ์ œ์˜€๋‹ค. ์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด target.childNodes๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•œ๋‹ค. ์ด๋•Œ ๊ฐ ๋ฐฐ์—ด์—๋Š” ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด์žˆ๋Š”๋ฐ ์ด ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”๊ฒŒ cur์ด๋‹ค. ํ•˜์ง€๋งŒ cur์— ๋Œ€ํ•œ ์–ด๋– ํ•œ ํƒ€์ž… ์ •์˜๋„ ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ํƒ€์ž… ์ •์˜๋ฅผ type ๋˜๋Š” interface๋ฅผ ํ†ตํ•ด์„œ ์ œ๊ณตํ•˜๋Š”๋ฐ ํƒ€์ž…์ด ๋ช…์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ์  ํ‘œ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฟœ๋Š”๋‹ค. ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝ..

dev/typescript 2022.04.22

[ Book๐Ÿ“š ] ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)_๋‚ด๊ฐ€ ๋ฐ”๋ผ๋Š” ์กฐ์ง๊ณผ '๋‚˜'์˜ ๊ณ ๋ฏผ

์ฃผ๋ง์— ์œ ํŠœ๋ธŒ ๊ฐœ๋ฐœ๋ฐ”๋‹ฅ์—์„œ ํ˜„์žฌ ์šฐ์•„ํ•œํ˜•์ œ๋“ค์—์„œ ๊ฐœ๋ฐœ ํŒ€์žฅ์„ ๋งก๊ณ  ๊ณ„์‹  ๊น€์˜ํ•œ๋‹˜์ด ๋‚˜์˜จ ์˜์ƒ์„ ๋ดค๋‹ค. ์ด 3ํŽธ๊นŒ์ง€? ์žˆ์—ˆ๋˜๊ฑฐ ๊ฐ™์€๋ฐ ์›Œ๋‚™ ์žฌ๋ฏธ์žˆ๋Š” ๋‚ด์šฉ์ด๋ผ ์‰ฌ์ง€ ์•Š๊ณ  ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ๋งˆ์ง€๋ง‰ ์ฆˆ์Œ์— ์ฑ…์„ ํ•˜๋‚˜ ์ถ”์ฒœํ•ด์ฃผ์…จ๋Š”๋ฐ 'ํ•จ๊ป˜ ์ž๋ผ๊ธฐ_์• ์ž์ผ๋กœ ๊ฐ€๋Š” ๊ธธ' ์ด๋ผ๋Š” ์ฑ…์ด๋‹ค. ์•„์ง ๋‹ค ์ฝ์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ ๊ทธ ์ „์— ๋А๋ผ๊ณ  ์ƒ๊ฐํ•œ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ข‹์•˜๋˜ ๋ถ€๋ถ„๋“ค๐Ÿ’ซ ํ”ผ๋“œ๋ฐฑ์€ ์งง์€ ์ฃผ๊ธฐ๋กœ ํ•™์Šต์—์„œ๋Š” ํ”ผ๋“œ๋ฐฑ์ด ์ค‘์š”ํ•˜๋‹ค. ์ž˜ํ–ˆ๋Š”์ง€ ๋ชป ํ–ˆ๋Š”์ง€๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋ฉด ์กฐ์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋งŒํผ ํ”ผ๋“œ๋ฐฑ์˜ ์‹œ์ ๋„ ์ค‘์š”ํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณจํ”„ ํผํŒ… ์—ฐ์Šต์„ ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. ๊ณต์„ ์น˜๊ธฐ๋งŒ ํ•˜๊ณ  ๊ณต์ด ํ™€์— ๋“ค์–ด๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ 1์ฃผ์ผ ๋’ค์— ์•Œ๋ ค์ค€๋‹ค๋ฉด? ๋‚˜์˜ ์Šค์œ™ ์ž์„ธ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ํ•œ ๋‹ฌ ๋’ค์— ์•Œ๋ ค์ค€๋‹ค๋ฉด? ๊ทน๋‹จ์ ์ธ ์˜ˆ๋ผ..

[ react ] react-router-dom v6_v5์™€์˜ ์ฐจ์ด์™€ routing

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

dev/react 2022.04.08