์ „์ฒด ๊ธ€

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Frontend Developer
์บ๋‚˜๋‹ค ํ† ๋ก ํ† ๋กœ ๋„˜์–ด์™”๋‹ค. ํ† ๋ก ํ† ๋กœ ์ด๋™์„ ๊ฒฐ์ •ํ•˜๊ธฐ๊นŒ์ง€ ๋งŽ์€ ์ผ๋“ค์ด ์žˆ์—ˆ๊ณ  ๊ฐœ์ธ์ ์ธ ์‚ฌ์ •์ด ์ œ์ผ ํฐ ๋ชซ์„ ์ฐจ์ง€ํ•˜๊ธด ํ–ˆ๋‹ค. ์—ฌ๊ธด ๋‚ด ๊ฐœ์ธ ์‚ฌ์ •์„ ๋‹ด๋Š” ๋ธ”๋กœ๊ทธ๋Š” ์•„๋‹ˆ๋‹ˆ๊น ์—…๋ฌด์ ์ธ ๋ถ€๋ถ„๋งŒ ์ด์•ผ๊ธฐํ•ด ๋ณด์ž๋ฉด, 2024๋…„ ํ•œ๊ตญ์—์„œ ๊ตฌ์ง์€ ๊ฑฐ์˜ ํฌ๊ธฐ์— ๊ฐ€๊นŒ์› ๋‹ค.  ๊ณ„์†ํ•ด์„œ ์ด๋ ฅ์„œ๋ฅผ ๋ฟŒ๋ฆฌ๊ณ  ๋ช‡ ๋ฒˆ์˜ ๋ฉด์ ‘์—์„œ ๋ง› ๋ณธ ํƒˆ๋ฝ์€ ๋‚ด๊ฐ€ ์ง€๋‚œ ๋ช‡ ๋…„๊ฐ„ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด์˜จ ์ž์ทจ๋ฅผ ๋’ค๋Œ์•„๋ณด๊ฒŒ ํ–ˆ๋‹ค. ๋Š์ž„์—†์ด ๋‚˜์˜ ๋ถ€์กฑํ•จ์— ๋Œ€ํ•ด์„œ ๊นจ๋‹ซ๊ฒŒ ํ–ˆ๊ณ  ์†Œ์œ„ ๋งํ•˜๋Š” ๋ฌผ๊ฒฝ๋ ฅ์ด ๋‚˜๋ฅผ ๋งํ•˜๋Š” ๊ฑด๊ฐ€ ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๊ณ  ์ด๋ž˜์ €๋ž˜ ๋‚˜์˜ ์‚ถ์„ ๋ฌด๋„ˆ์ง€๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค. ์•Œ๊ณ  ์žˆ๋‹ค ์ทจ์—…์ด ์•ˆ ๋˜๋Š” ๊ฑธ๋กœ ๋‚ด ์‚ถ์ด ๋งํ–ˆ๋‹ค๊ฑฐ๋‚˜ ๋ฌด๋„ˆ์ง„๋‹ค๊ฑฐ๋‚˜ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑฐ ๊ทธ๋Ÿฐ๋ฐ ๋‚˜๋Š” ์–ด๋”˜๊ฐ€ ์†Œ์†๋˜์–ด ์“ฐ์ž„์„ ๋‹คํ•˜๋Š” ๊ฒƒ์— ๋ณด๋žŒ์„ ๋งŽ์ด ๋Š๋ผ๋Š” ํƒ€์ž…์ธ ์‚ฌ๋žŒ์ด์—ˆ๊ธฐ์— ์ทจ์—…์ด ์•ˆ ๋˜๋Š” ์ƒํ™ฉ์€ ๋‚˜ ์Šค์Šค..
๋ฌธ์ œios ์•ฑ์„ ํ•˜๋‚˜ ์ถœ์‹œํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ๋””๋ฒจ๋กญํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ‘์ž๊ธฐ expo๋ฅผ ์‹คํ–‰ํ•ด๋„ index.tsx๋ฅผ ์ œ๋Œ€๋กœ ์ฐพ์ง€ ๋ชป ํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ํŠน๋ณ„ํžˆ layout.tsx๋ฅผ ๊ฑด๋“  ์ผ์ด ์—†๋Š”๋ฐ ๋ฌด์Šจ์ผ์ธ์ง€ expo-router๊ฐ€ ๊ฒฝ๋กœ๋ฅผ ๋ชป ์ฐพ๊ณ  ์žˆ์—ˆ๋‹ค.  ์ฐธ๊ณ ํ•ด ๋ณผ ํฌ์ธํŠธโœ… expo-router ๊ฐ€ ์ž˜ ์„ค์น˜๋˜์–ด์žˆ๋Š”๊ฐ€โœ… ํด๋” ๊ฒฝ๋กœ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์–ด์žˆ๋Š”๊ฐ€โœ… package.json์— {"main" : "expo-router/entry",} ๊ฐ€ ๋˜์–ด์žˆ๋Š”๊ฐ€  ์ •๋„๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์ €๊ธฐ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ,  ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฑฐ ๊ฐ™๊ธดํ•œ๋ฐ,   ํ•ด๊ฒฐ๋ฐฉ์•ˆ์ฒซ๋ฒˆ์งธ. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธํ•˜๊ธฐ api key ๊ฐ™์€๊ฑธ ์‚ฌ์šฉํ•˜๋ฉด์„œ .env ํŒŒ์ผ์„ ์“ด๋‹ค๋ฉด ๊ทธ ๋ถ€๋ถ„์„ ํ™•์ธํ•ด๋ณด๋ผ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์ฐพ์•˜๋‹ค. https://www.reddit.com/r..
๋งˆ์นจ๋‚ด ์•ฑ ์Šคํ† ์–ด์— ์•ฑ 'T.o.T'๊ฐ€ ์ถœ์‹œ๋˜์—ˆ๋‹ค.  expo๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋นŒ๋“œํ•œ app์ด ์•ฑ์Šคํ† ์–ด์— ๋ฆด๋ฆฌ์ฆˆ ๋œ ๊ณผ์ •์„ ์ƒ์„ธํžˆ ๊ธฐ๋กํ•ด๋‘๊ณ  ์‹ถ๋‹ค๋Š” ์š•์‹ฌ์ด ๋“ค์—ˆ์ง€๋งŒ ํ•œ ๋‹จ๊ณ„์”ฉ ๋ฐŸ์•„๊ฐˆ์ˆ˜๋ก ํ„ฐ์ง€๋Š” ๋ถ„๋…ธ์— ๋จธ๋ฆฌ๊ฐ€ ํ•˜์–—๊ฒŒ ๋ณ€ํ•ด์„œ ๊ธฐ๋ก์„ ๋งŽ์ด ๋ชป ๋‚จ๊ธด ๊ฒƒ ๊ฐ™๋‹ค. ์šฐ์„  ์•ฑ์„ ์ œ์ž‘ํ•˜๊ณ  ์ถœ์‹œํ•˜๋ฉด์„œ ๋Š๋‚€ ๊ฒƒ๋“ค์„ ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.  ์•ฑ ์ œ์ž‘ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐT.o.T์˜ ์‹œ์ž‘์€ ๋‹จ์ˆœํ•˜๊ฒŒ 'ํ•˜๋ฃจ์— 30๋ถ„์€ ์ง‘์ค‘ํ•ด์„œ ์ฑ…์„ ์ฝ์–ด์•ผ๊ฒ ๋‹ค' ๋ผ๋Š” ๋‹ค์ง์ด์—ˆ๋‹ค. ์Šคํ†ฑ์›Œ์น˜๋กœ ํ•˜๋ฃจ ๋™์•ˆํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ™œ๋™์— ๋Œ€ํ•œ ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•ด ๋ณด์ž๋Š” ์ทจ์ง€์˜€๊ณ  ๊ทธ ์ฒซ ์Šคํ…์€ nextjs๋กœ ์ œ์ž‘ํ•œ ์›น ํ”Œ๋žซํผ์ด์—ˆ๋‹ค. ์–ด์ฐจํ”ผ ๋‚ด๊ฐ€ ์“ธ ๊ฑฐ๋‹ˆ๊น ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋”ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์ œ์ž‘ํ–ˆ๊ณ  ๊ณ„์† ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ์„ ํ•˜๋ฉด์„œ ๋ชฉํ‘œ๋ฅผ ์žก์•„๊ฐ”๋‹ค. ์–ด๋Š ์ •๋„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋”ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์™”๊ณ  ์ฒ˜์Œ..
๋‚ด๊ฐ€ ์“ฐ๊ณ  ์‹ถ์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๋งˆ์Œ์— ์‹œ์ž‘ํ•œ ๊ฑฐ์˜€๋Š”๋ฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.   1. ํ•„์š”ํ•œ ๊ฒƒ๋“ค - Apple Developer ๋ฉค๋ฒ„์‹ญ ๊ฐ€์ž… - Expo ๊ณ„์ • ๋ฐ ํ”„๋กœ์ ํŠธ   2. Expo๋กœ ๋นŒ๋“œํ•˜๊ธฐApple developer์— identifiers๋ฅผ ๋“ฑ๋กํ•˜๊ณ  App Store Connect์—๋„ ์•ฑ ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bundler ID ๊ฐ€ ํ•„์šฏ๋‹ค ๋ฒˆ๋“คID๋ฅผ ์–ด๋””์„œ ์ฐพ๋Š”๊ฑด์ง€ ๋ชฐ๋ผ์„œ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ทธ๋ƒฅ ๋ฐ”๋กœ EAS ๋กœ ๋ฐฐํฌ๋ฅผ ์‹œ๋„ํ•˜๋‹ˆ ๋ฐฐํฌ๋ฅผ ํ•˜๋ฉด์„œ ์ƒ์„ฑํ•  ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค.  EAS๋ผ๋Š” ํด๋ผ์šฐ๋“œ ๋นŒ๋“œ ์„œ๋น„์Šค์ธ๋ฐ, Expo Application Service์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. EAS build๋Š” ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•˜๋Š” ์•ฑ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋กœ ์ง์ ‘ ๋ณต์žกํ•œ ์ž‘์—…์„ ๊ฑฐ์น˜์ง€ ์•Š์•„๋„ ์•ฑ..
Next.js๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น์•ฑ์œผ๋กœ ์ œ์ž‘ํ–ˆ๋˜ ์•ฑ์„ React-native๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ๋””์ž์ธ์„ ์ ์šฉํ•ด์„œ ๋นŒ๋“œํ–ˆ๋‹ค. ์ •์‹์œผ๋กœ ์•ฑ์Šคํ† ์–ด์— ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์–ด์„œ apple developer ์‚ฌ์ดํŠธ์— ๋“ฑ๋ก์„ ํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ ์  ์žฅ, ๋‚ด๊ฐ€ ์“ฐ๋Š” ๊ณ„์ •์ด ๋ฏธ๊ตญ๊ณ„์ •์ด๋ผ์„œ 1์ฐจ์ ์œผ๋กœ ์‹คํŒจ, ํ•œ๊ตญ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์„œ ์ง„ํ–‰ํ•˜๋ ค๋Š”๋ฐ ์ด๋ฒˆ์—” ์นด๋“œ๊ฐ€ ์•ˆ๋˜๋„ค,๊ทธ๋ž˜์„œ ์“ฐ์ง€๋„ ์•Š๋Š” ์นด์นด์˜คํŽ˜์ด๋ฅผ ๋“ฑ๋กํ•ด์„œ ์—ฐ๊ฒฐํ–ˆ๋Š”๋ฐ ์ด๊ฒƒ๋„ ์•ˆ๋œ๋‹ค. ๋ฐ˜๋‚˜์ ˆ ์ด์ƒ์„ ๋ถ™์žก๊ณ  ์žˆ๋Š”๋ฐ ์•„๋ฌด๊ฒƒ๋„ ์ง„์ „๋œ๊ฒŒ ์—†๋‹ค. ์ง„์งœ ํ™˜์žฅํ•  ๋…ธ๋ฆ‡... apple developer ๋“ฑ๋ก์ด ์ด๋ ‡๊ฒŒ ์–ด๋ ค์šธ ์ผ์ธ๊ฐ€...   ์ดํ›„์˜ ์ผ์„ ์จ๋ณด์ž๋ฉด ... ์ด์ „์—๋Š” ๊ณ„์† ๋ชจ๋ฐ”์ผ์—์„œ ์‹œ๋„๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—๋Š” ๋งฅ๋ถ์—์„œ ๊ฒฐ์ œ๋ฅผ ์‹œ๋„ํ–ˆ๋”๋‹ˆ ์„ฑ๊ณตํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 24-48์‹œ๊ฐ„๋‚ด์— ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ์•Œ๋ฆผ ์ด๋ฉ”์ผ์ด ..
์›น์œผ๋กœ ์“ฐ๊ณ  ์žˆ๋˜ ToT๋ฅผ app์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด์„œ UI๋ถ€๋ถ„๋„ ๋งŽ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ home์— weekly ์บ˜๋ฆฐ๋”๋ฅผ ๋„ฃ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ React-Native๋Š” ์ฒ˜์Œ์ด๊ธฐ๋„ํ•˜๊ณ  ๊ฐ์ด ์ž˜ ์•ˆ ์žกํ˜€์„œ ์บ˜๋ฆฐ๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ calendar-strip  ๊ตฌํ˜„์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅweekly๋กœ ๋ณด์—ฌ์•ผํ•จ์š”์ผ๋ณ„๋กœ ํด๋ฆญ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•จ์š”์ผ์ด ํด๋ฆญ๋˜๋ฉด ํ•ด๋‹น ์š”์ผ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ๋ณด์—ฌ์•ผํ•จํ™”์‚ดํ‘œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ฃผ๋ณ„๋กœ ์ด๋™์ด ๋˜์–ด์•ผํ•จ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์š”์ผ์€ ์š”์ผ์— ํ‘œ์‹œ๊ฐ€ ๋˜์–ด์žˆ์–ด์•ผํ•จ   ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด๊ฐ€ ํ•„์š”ํ–ˆ๋˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹ค์–‘ํ•œ demo ๋ฒ„์ ผ์ด ๋งŒ๋“ค์–ด์ ธ์žˆ์–ด์„œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด ์ƒ์„ธํžˆ ์„ค๋ช…๋˜์–ด์žˆ๋‹ต๋‹ˆ๋‹ค  https://www.npmjs.com/package/react-native-calendar..
์ž‘์—…ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹น์—ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ˜•์„ ์ง€ํ–ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…ํ•˜๋Š” ํ‹ˆํ‹ˆํžˆ chrome์—์„œ ๊ฐœ๋ฐœ์ž๋ชจ๋“œ ๋ชจ๋ฐ”์ผ ์‚ฌ์ด์ฆˆ๋กœ ์ฒดํ‚นํ•˜๋ฉด์„œ ์ž‘์—…ํ•˜๋Š”๋ฐ dropdown์ด ์•ˆ ๋œ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„์„œ ์ž‘์—…์„ ์ง„ํ–‰์ค‘์ธ ์„œ๋ฒ„๋ฅผ ๋ชจ๋ฐ”์ผ์—์„œ ์—ด์–ด์„œ ์ฒดํ‚นํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค.localhost๋ฅผ ์‚ฌํŒŒ๋ฆฌ์—์„œ ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘๊ฐ€์ง€ ์ •๋„๊ฐ€ ์žˆ๋Š”๋ฐ,  ๋„คํŠธ์›Œํฌ IP ์ฃผ์†Œ๋กœ ๋ชจ๋ฐ”์ผ์—์„œ ๋„์šฐ๊ธฐํ„ฐ๋ฏธ๋„์—์„œ ๋งฅ์€ ifconfig, ์œˆ๋„์šฐ๋Š” ipconfig๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ip ์ฃผ์†Œ ์ฐพ์•„์„œ port์™€ ๋ถ™์—ฌ์„œ ๋ชจ๋ฐ”์ผ ์‚ฌํŒŒ๋ฆฌ์—์„œ ๋„์šฐ๊ธฐ ์˜ˆ๋ฅผ ๋“ค์–ด xxx.xx.x.xx:3000(port)  ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์„ค์ •์—์„œ IP ์ฃผ์†Œ ํ™•์ธํ•˜๊ธฐmac ๊ธฐ์ค€ ์‹œ์Šคํ…œ์„ค์ • > wifi > ์„ธ๋ถ€์‚ฌํ•ญ ์„ ํด๋ฆญํ•ด๋ณด๋ฉด ip์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.  ๊ฐ„๋‹จํ•˜์ฅฌ? ํ‹ˆํ‹ˆํžˆ ์ˆ˜์ •์ž‘์—…ํ•˜๋ฉด์„œ ..
์˜ˆ์ „์— ์–ธ์  ๊ฐ€ ๋ฉด์ ‘์„ ๋ณด๋ฉด์„œ ๋“ค์—ˆ๋˜ ์งˆ๋ฌธ ์ค‘์— ํ•˜๋‚˜์ด๋‹ค.  "typescript์—์„œ type๊ณผ interface์˜ ์ฐจ์ด์ ์„ ์•„์‹œ๋‚˜์š”?" ๊ณตํ†ต์ typeํƒ€์ž…์— ๋Œ€ํ•œ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. type Home { living : string; bed : string;} interfacetype๊ณผ ๋™์ผํ•˜๊ฒŒ ํƒ€์ž…์— ๋Œ€ํ•œ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. interface Home{ living: string; bed: string;}  ๋‘˜ ๋‹ค ํƒ€์ž…์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์— ํ•˜๋‚˜๋กœ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•˜๋‹ค. ๋‘˜ ์ค‘์— ํ•˜๋‚˜๋งŒ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ์ฐจ์ด์ ๋„ ์กด์žฌํ•œ๋‹ค.    ์ฐจ์ด์  1. ํ™•์žฅ ๋ฐฉ์‹ ๋น„๊ต  interface ๋Š” extends๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์„œ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด์˜ interface์— ์ถ”๊ฐ€ํ•ด์„œ ํ™•์žฅ๋œ๋‹ค. i..
๊ตฌ์ง์˜ ๊ธฐ๊ฐ„์ด ์ ์  ๊ธธ์–ด์ง€๋ฉด์„œ ์ด๋Ÿฌ์ €๋Ÿฌํ•œ ์ด์œ ๋กœ upwork๋ผ๋Š” ํ”„๋ฆฌ๋žœ์„œ ํ”Œ๋žซํผ์„ ํ†ตํ•ด์„œ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ด์ „์— upwork๋ผ๋Š” ํ”Œ๋žซํผ์„ ์•Œ๊ฒŒ ๋˜๋ฉด์„œ 'ํ•œ๊ตญ์–ด'๊ฐ€ ํ•„์š”ํ•œ ๊ฐ„๋‹จํ•œ ์˜ค๋””์˜ค ๋…น์Œ๊ณผ ๊ฐ™์€ ํŒŒํŠธํƒ€์ž„ ์ผ์„ ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์— ๋„์ „ํ•ด ๋ณด๋Š” ๊ฑด ์ฒ˜์Œ์ด์—ˆ๋‹ค.  ์ž‘์—… ํ›„๊ธฐ react ํ˜น์€ Next.js๋ฅผ ์“ฐ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์•˜๊ณ  ํ”„๋กœ์ ํŠธ ์•ก์ˆ˜๊ฐ€ ์ข€ ํฐ ๊ฒƒ ์œ„์ฃผ๋กœ ๋ณด์•˜๋‹ค. ์™œ๋ƒ๋ฉด ์ด์ „์— ํ–ˆ๋˜ ํŒŒํŠธํƒ€์ž„ ์ผ์ด ์ผ์ • ๊ธˆ์•ก์ด ๋˜์ง€ ์•Š์•„์„œ ์ถœ๊ธˆ์„ ํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๊ทธ ์ผ์ •๊ธˆ์•ก์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ์กฐ๊ธˆ ํฐ ๊ธˆ์•ก์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. (upwork๋Š” ์ผ์ • ๊ธˆ์•ก์ด ๋„˜์–ด์•ผ ์ˆ˜์ž…์„ ์ถœ๊ธˆํ•  ์ˆ˜ ์žˆ๋‹ค). ์šด์ด ์ข‹๊ฒŒ ์ธ๋„๋„ค์‹œ์•„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ณ ์šฉ์ด ๋˜์–ด์„œ ๊ฐ„๋‹จํ•œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ํ”„๋กœํŠธ์—”๋“œ ํŒŒํŠธ ์ž‘์—…์„ ..
ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ›์€ ์ฝ”๋“œ ํ”ผ๋“œ๋ฐฑ์„ ์ •๋ฆฌํ•˜๋‹ค๊ฐ€ useMemo๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ๋กœ ์ผํ•˜๋ฉด์„œ ๋ฉด์ ‘๋•Œ๋‚˜ ๋งˆ์ฃผํ•˜๋˜ useMemo๋ผ๋Š” ๋ฆฌ์•กํŠธ ํ›…. useMemo ? ๋ฆฌ์•กํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™” ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ์•กํŠธ ํ›…์ด๋‹ค. ์–ด๋–ป๊ฒŒ ์ปดํฌ๋„ŒํŠธ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ด์ฃผ๋Š”๋ƒํ•˜๋ฉด์€ ๋ณดํ†ต ์˜ˆ์‹œ๋กœ ์—ฐ์‚ฐ์ž‘์—…์„ ๋งŽ์ด ๋“ ๋‹ค. ๊ณ„์†ํ•ด์„œ ๋™์ผํ•œ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚˜๋Š” ์ž‘์—…์—๋Š” ์ƒˆ๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์—ฐ์‚ฐํ•  ํ•„์š”์—†์ด ๋””ํŽœ๋˜์‹œ๊ฐ€ ์žˆ์œผ๋ฉด ๋จผ์ € ํ˜„์žฌ ์˜์กด๊ฐ’๊ณผ ์ด์ „์˜ ์™ธ์กด๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋™์ž‘์ด ์ผ์–ด๋‚ฌ์„ ๋•Œ ๊ธฐ์กด์˜ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ฑฐ๊ธฐ์„œ ๋ถ€ํ„ฐ ์—ฐ์‚ฐ์„ ์‹œ์ž‘ํ•œ๋‹ค. ๋ฉ”๋ชจ๋œ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.์บ์‹œ๋Š” ๋ฉ”๋ชจ๋œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค์™€ ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’..
๋ฒŒ์จ 2024๋…„์˜ ๋ฐ˜๋…„์ด ์ง€๋‚˜๊ฐ”๋‹ค. ์—ฐ์ดˆ๋ถ€ํ„ฐ ์ด๋Ÿฐ์ €๋Ÿฐ ํ•œ ์ผ๋“ค์ด ๋งŽ์•˜๊ณ  ๊ทธ๊ฒŒ ๊ณ„๊ธฐ๊ฐ€ ๋ผ์„œ ์Šค์Šค๋กœ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ์ปค๋ฆฌ์–ด์™€ ์ž์•„์„ฑ์ฐฐ์„ ๋งŽ์ด ํ–ˆ๋‹ค.   ์ทจ์ค€ ๋ผ์ดํ”„ 1์›”์— ์‹ค์ง์„ ํ•˜๊ณ  ํ˜„์žฌ 7์›”๊นŒ์ง€ 6๊ฐœ์›”์งธ ๊ณ„์† ๋˜๊ณ  ์žˆ๋Š” ์ทจ์ค€์ƒํ™œ์€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ˜„์‹ค์„ ์‚ด์•„๊ฐ€๋Š” ํ˜„๋Œ€์ธ์œผ๋กœ์จ ์ž์‹ ๊ฐ, ์ž์กด๊ฐ ๋ชจ๋‘ ๋ฐ•์‚ด์ด ๋‚˜๊ณ  ์žˆ๋‹ค. ์ด๋ ฅ์„œ๋ฅผ ์ œ์ถœํ•œ ๊ฑด ์…€ ์ˆ˜ ์—†์„ ์ •๋„์ธ ๊ฒƒ ๊ฐ™๊ณ  ๊ทธ๋ž˜๋„ ๋งค๋‹ฌ ๋ฉด์ ‘์„ ์ตœ์†Œ ํ•œ ๋ฒˆ์€  ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ๋‚ด์ •์ž๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋˜ ๊ฑด์ง€ ๋‚˜์—๊ฒŒ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋ฌผ์–ด๋ณด๋˜ ๋ฉด์ ‘๋ถ€ํ„ฐ ๋ฉด์ ‘๊ด€๋ถ„๋“ค์ด ์—„์ฒญ ์ฒ ์ €ํ•˜๊ฒŒ ์ค€๋น„ํ•ด ์˜ค์‹  ํž˜๋“  ๋ฉด์ ‘๊นŒ์ง€ ์ •๋ง ๋‹ค์–‘ํ•œ ๋ฉด์ ‘์„ ๊ฒฝํ—˜ํ–ˆ๊ณ , ๋ฉด์ ‘ ์ „์˜ ์ปคํ”ผ์ฑ—๋„ ๋ช‡ ์ฐจ๋ก€ ์ง„ํ–‰ํ–ˆ์—ˆ๋‹ค. ๋ฉด์ ‘์€ ์ž˜ ๋ด๋„ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๊ณ , ๋ชป ํ•ด๋„ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‚˜๋Š” ๊ทธ๋ƒฅ ์ž˜ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ..
shadcn ui ์—์„œ ์ œ๊ณตํ•˜๋Š” Drawer  DrawerA drawer component for React.ui.shadcn.com  shadcn ui ์—์„œ ์ œ๊ณตํ•˜๋Š” Drawer ์˜ ๋ฐฉํ–ฅ์€ ์•„๋ž˜์—์„œ ์œ„๋กœ ์˜ฌ๋ผ์˜จ๋‹ค.  ํŒ์—… ํ˜•ํƒœ๋กœ ๋„์šฐ๋Š” ๊ฒƒ๋„ ์˜ˆ์‹œ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋‚˜๋Š” ์ปค์Šคํ…€ํ•ด์„œ ์˜ค๋ฅธ์ชฝ์— ์Šค๋ฌด์Šค~ ํ•˜๊ฒŒ ๋‚˜์˜ค๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ์ƒํ™ฉ์—์„œ๋Š” ์˜ค๋ฅธ์ชฝ์—์„œ ๋‚˜์˜ค๋Š”๊ฑฐ์ง€๋งŒ ๋””์ž์ธ์ด ๋ฐ”๋€Œ๋ฉด ๋˜ ์–ด๋–ป๊ฒŒ ๋ ์ง€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— direction์„ ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์„œ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์„ ์ฐพ์•˜๋‹ค.   shadcn/ui๋Š” ๋ฒˆ๋“ค๋˜์ง€ ์•Š์€ ์ปดํฌ๋„ŒํŠธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์˜์กด์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ , ๋ง ๊ทธ๋Œ€๋กœ ๋ณต๋ถ™ํ•ด์„œ ์ปดํฌ๋„ŒํŠธ ์ฝ”๋“œ๋ฅผ ์˜จ์ „ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํฌ์ธํŠธ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. ๋””ํŽœ๋˜์‹œ์— ๋“ค์–ด๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ..
๋ฐ(Ming) ๐Ÿฐ
Ming devlog