์ด๋ฒ ์ฅ์์๋State์ Props์ ๊ฐ๋
๊ณผ ์ฐจ์ด์ ์ ์์ธํ ๋ค๋ค๋ณผ ์์ ์
๋๋ค.์ฌ๋ฌ๋ถ์ React์ state์ ์ผ๋งํผ ์๊ณ ๊ณ์ ๊ฐ์ ? ๋์ ์ฐจ์ด๋ ๋ญ๊น์ ? ๊ฒฐ๋ก ๋ถํฐ ๋ณด์๋ฉด,state ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ฐ์ดํฐ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๊ด๋ฆฌ๋๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ก, ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ฉฐ ์ฃผ๋ก UI์ ๋์์ ์ ์ดํฉ๋๋ค.props ์ธ๋ถ๋ก๋ถํฐ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌ๋๋ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ๋ก, ์ฃผ๋ก ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ์๋ ์น ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ์ ๋ state๊ฐ ์์๋ค๋ฉด.์ด๋ฅผ ์ํด์ ํ์ด์ง์ ์๋ ๋ฐ์ดํฐ ๋ถ๋ถ์ด ๋ณ๊ฒฝ๋์์ ๋๋ง๋ค DOM์ ์ ๊ทผํ์ฌ ์ง์ ์์ ํด ์ฃผ์์ ๊ฒ์
๋๋ค.๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋งํผ ๋น์ฐํ ํ๋ฉด๋ ๋ณ๊ฒฝ๋์ด์ผ ํ๋๊น์ ์ฌ๊ธฐ์ ์ ..
๐
๋ฏธ๋ผํด ๋ชจ๋์๋ฒฝ 6์ ์ด์ ์ ๊ธฐ์ํด ์๊ธฐ๊ฐ๋ฐ ํ๋์ ํ๋ ๊ฒ์๋ฒฝ์ด ์๋๋๋ผ๋ ๋ณธ๊ฒฉ์ ์ธ ์ผ๊ณผ๊ฐ ์์๋๊ธฐ 2~3์๊ฐ ์ ์ ์ผ์ด๋ ์์ ์ ์ํ ์ต๊ด์ ํํ๋ฉด ๋๋ค.๋ํ, ๊ฑฐ์ฐฝํ ๊ณํ์ด ์์ด๋ ์์ํ ์ต๊ด์ ์ค์ฒํ๋ฉด ๋๋ค.์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ ๋ฏธ๋ผํด ๋ชจ๋์ ์ด๋ฐ์๋ฏธ๋ฅผ ๊ฐ๊ณ ์๋ค. 2022๋
์ ์ง์ด์ง ์ฑ
์ธ๋ฐ ์ด๋๋ถํฐ ์ ํ๋๊ธฐ ์์ํ๋ ๊ฒ ๊ฐ๋ค6์ ์ด์ ๊ธฐ์๋ง ๋ฏธ๋ผํด ๋ชจ๋์ผ๋ก ์ณ์ฃผ๋์ค ์์๋๋ฐ ๊ทธ๋ฐ์๋ฏธ๊ฐ ์๋๋ผ ํ์๋ฆ ๋๊ณ ๋ฏธ๋ผํด ๋ชจ๋์ ๋์ ํด๋ณด๋ ค๊ณ ํ๋ค ^^์์ฆ 6๊ฐ์์ ๋ถํธ์บ ํ๊ฐ ๋๋๊ณ ์ผ์ฃผ์ผ๋์ refresh ๊ธฐ๊ฐ ์ผ์ ํน ์ฌ์๋ค. ๋ฑ ์ผ์ฃผ์ผ๋ง ํน์ฌ๊ณ ๋ค์ ๊ณต๋ถ์ ์ทจ์
์ค๋น๋ฅผ ์ํด ์ด์ฌํ ์ด์์ผ๊ฒ ๋ค๋ ๋์ ๋ง์๋ค์ง :)2025๋
1์ 8์ผ๋ถํฐ ๊ฐ์์ด๊ธฐ์ ๋์ ํด๋ณด๊ฒ ๋ค ใ
,,ใ
ํ์ง๋ง .... ํผ์ํ๊ธฐ์๋ ์์นจ์..
๊ตฌ๊ธ ๊ฐํธ ๋ก๊ทธ์ธ ํ๋ ๋ฒ1. ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ์ฌ์ดํธ ์ ์- ๊ตฌ๊ธ ํด๋ผ์ฐ๋ํ๊ตญ์ด ์์ ๋ณด์ด๋ ์ฝ์๋งํฌ๋ก ์ด๋ํฉ๋๋ค. 2. ์ ํ๋ก์ ํธ ์์ฑ์ ํ๋ก์ ํธ๋ฅผ ์์ฑ ํฉ๋๋ค.ํ๋ก์ ํธ๊ฐ ๋ง๋ค๊ณ ํด๋น ํ๋ก์ ํธ๋ก ์ด๋ํฉ๋๋ค.์์ ๋ณด์ด๋ ๊ฒฝ๋ก๋ก OAuth ๋์ ํ๋ฉด์ ์ฐพ์๊ฐ๋๋ค. 3. OAuth ๋์์ธ๋ถ๋ฅผ ์ ํํ์ฌ ๋ง๋ค๊ธฐ.์ ์งํ๋จ๊ณ๋ก ์งํํฉ๋๋ค.์ฑ์ด๋ฆ, ์ฌ์ฉ์ ์ด๋ฉ์ผ, ์ฑ ๋๋ฉ์ธ์ ์
๋ ฅํฉ๋๋ค. ์ฑ ๋๋ฉ์ธ์ ๊ฐ๋ฐ ์ํ์์ http://localhost:3000/๋ก ์์ฑํ๋ฉด ๋ฉ๋๋ค. 4. ๋ฒ์์ฌ์ฉ์๊ฐ ๋์ํด์ผ ํ ๊ถํ๋ค์ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตฌ๊ธ ๊ณ์ ์ ๋ณด ์ ๊ทผ์ ์ํ๋ฉด email, profile ๋ฑ์ ๋ฒ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.๊ถํ์ ์ถ๊ฐํ๋ ค๋ฉด, ํ์ํ ๊ตฌ๊ธ API ๋ฒ์๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.์ฌ๊ธฐ์ ์ ํํ ๋ฒ์์ ๋ฐ๋ผ goog..
๋ด๊ฐ ํ๊ณ ์๋ ํ๋ก์ ํธ๋ Next.js + typeScript + app router๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ด๋ค.์นด์นด์ค ๊ฐํธ ๋ก๊ทธ์ธ์ ์ฒ์์ด๋ผ ์ข ํค๋ฉ์์ง๋ง ์ผ๋จ ์ฐจ๊ทผ์ฐจ๊ทผ ํด๋ณด์๋ค.1. ์นด์นด์ค ๊ฐ๋ฐ์ ์ฌ์ดํธ์์ ์ ํ๋ฆฌ์ผ์ด์
๋ฑ๋ก- ์นด์นด์ค ๊ฐ๋ฐ์ ์ฌ์ดํธ ์ ์ ์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฑ๋กํฉ๋๋ค.- REST API ํค์ Redirect URI๋ฅผ ํ์ธํฉ๋๋ค.์ฌ์ดํธ ๋๋ฉ์ธ ๋ฑ๋ก๋ฑ๋กํ๋ฌ ๊ฐ๊ธฐ ๋งํฌ ํด๋ฆญ โผ๏ธ Redirect URL ๋ฑ๋ก2. OAuth ์ธ์ฆ ํ๋ฆ / API ์๋ํฌ์ธํธ ๊ตฌํ- ์ฌ์ฉ์๊ฐ ์นด์นด์ค ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์นด์นด์ค ์ธ์ฆ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธํฉ๋๋ค.- ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์๋ฃํ๋ฉด ์นด์นด์ค๋ ์ค์ ํ Redirect URI๋ก `code`๋ฅผ ํฌํจํ์ฌ ๋ฆฌ๋ค์ด๋ ํธํฉ๋๋ค.- ์ด `code`๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ํ ํฐ์ ์..
์ฌํํ๋ก์ ํธ์ ๋ค์ด๊ฐ๋ฉฐ ํ๋ก์ ํธ ์ธํ
ํ๋ ๊ณผ์ ์ค์ ๋ด๊ฐ storybook ์ธํ
์ ํ๊ฒ๋์๋ค.๐จ storybook์ ์ฌ์ฉํ๋ฉด ์ข์ ์ด์ storybook์ ์ปดํฌ๋ํธ๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐํ๊ณ ํ
์คํธํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.โ๏ธ ์คํ ๋ฆฌ๋ถ ์ค์น1. ์ค์นnpm install --save-dev @storybook/react2. script ํ์ธpackage.json ํ์ผ์ scripts ์น์
์์ storybook ์คํฌ๋ฆฝํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์๋์ง ํ์ธํด์ผํ๋ค. storybook์ 6006ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค."scripts": { "storybook": "storybook dev -p 6006"}3. ๋ช
๋ น์ด ์คํnpm run storybook์ค์น๊ฐ ๋ ํ storybook ๊ด๋ จ ํด๋๊ฐ ์์ฑ๋์๋ค.๊ธฐ๋ณธ ํด๋ ๊ตฌ์กฐ..
์ฐ์ ,Taskify ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ฉด์, ์๋ฌ ์ฒ๋ฆฌ ๋ก์ง์ด ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ๋ถ์ฐ๋์ด ์์์ ์๊ฒ ๋์์ต๋๋ค. ๊ฐ ์ปดํฌ๋ํธ์์ ์ค๋ณต๋ ๋ฐฉ์์ผ๋ก ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์๋ฌ ๋ฉ์์ง๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ด ์ผ๊ด๋์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ด ์ ํ๋๋ ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ๐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, useErrorModal์ด๋ผ๋ ์ปค์คํ
ํ
์ ๋ง๋ค์ด ์ ์ญ์ ์ผ๋ก ์ผ๊ด๋ ์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ์์ ๊ตฌํํ์ต๋๋ค.์ด๋ฅผ ํตํด ์๋ฌ ์ฒ๋ฆฌ ๋ก์ง์ ํตํฉํ๊ณ , ์ฌ์ฉ์์๊ฒ ์๋ฒ์์ ๋ฐ์ํ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ช
ํํ๊ฒ ์ ๋ฌํ ์ ์๊ฒ ๋์์ต๋๋ค. โ๏ธ ๋ฌธ์ ์ํฉ - ์๋ฌ ์ฒ๋ฆฌ ๋ก์ง์ ์ค๋ณต๊ณผ ์ผ๊ด์ฑ ๋ถ์กฑํ๋ก์ ํธ ์ด๊ธฐ์๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์์ ์๋ฌ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์์์ต๋๋ค.์๋ฅผ ๋ค์ด, API ์์ฒญ ์คํจ ์ ๋ฐ์ํ๋ ์๋ฌ๋ ์ฌ์ฉ์ ์
๋ ฅ์์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ..