๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[ํจ๊ป์๋ผ๊ธฐ] action point
ํจ๊ป ์๋ผ๊ธฐ ์ ์์ผ๋ก ๊ฐ๋ ๊ธธ(๊น์ฐฝ์ค)1. ์๋ผ๊ธฐ๋ฉํ ํน์ ์ฌ์๊ฐ ์๋ก ์๋ฐ๋ ์๊ฒฌ์ ์ค๋ค๋ฉด ์ด๋ฌํ ์๋ฐ๋ ์๊ฒฌ๊ณผ ์ ๋ณด ์์์ ์ค์ค๋ก ์๊ฐํ๋ ํ๋ จ์ ํด์ผ ํ๋ค.1๋ง ์๊ฐ์ ๋ฒ์น์์ 1๋ง ์๊ฐ์ ‘์์ ์ ๊ธฐ๋์ ํฅ์์ํฌ ๋ชฉ์ ์ผ๋ก ๋ฐ๋ณต์ ์ผ๋ก ํ๋ ์๋ จ’์ ํ ์๊ฐ์ด๋ค.์ ์์ผ ์ฒ ํ์ ํ์ฉํ์ฌ ์ผํ๋ ๋์ค์๋ ์๋์ ์๋ จ์ ํ ์ ์๋ค.์๊ธฐ๊ฐ ์ต๋ํ ์ง์์ด๋ ๋ฅ๋ ฅ์ ๋ณต๋ฆฌ๋ก ์ด์๊ฐ ๋ถ๋๋ค -> ์๊ธฐ๊ณ๋ฐ์ด ์ค์ํ๋ค.์ด๋ป๊ฒํ๋ฉด ๋ํ๊ธฐ๋ณด๋ค ๊ณฑํ๊ธฐ๋ฅผ ๋ ๋ง์ด ํ ์ ์์๊น?(๊ฐ์ฉ์๊ฐ์ ๋๋ฆฌ๊ณ ์ธ๋ฐ์์ด ๋ญ๋น๋๋ ์๊ฐ์ ์ค์ด๊ณ , ์ ์๋ ์๊ฐ์ ์ค์ด๋ ๊ฒ์ ๋ํ๊ธฐ์ ์ฌ๊ณ ์ด๋ฉฐ, ์ง๋จ์ ์ง๋ฅ์ ๋์ด๋ ๊ฒ์ด ๊ณฑํ๊ธฐ์ ์ฌ๊ณ ์ด๋ค) (39-40p)1. ์์ ์ด ์ด๋ฏธ ๊ฐ๊ณ ์๋ ๊ฒ๋ค์ ์ ํ์ฉํด์ผ ํ๋ค. ์๋ก์ด ๊ฒ์ ์ ์ ์ํค๋ ๋ฐ์๋ง ์ง..
[๋ฆฌํฉํ ๋ง 2ํ] action point(ch3)
Ch3. ์ฝ๋์์ ๋๋ ์ ์ทจ๋ฆฌํฉํฐ๋ง์ด ํ์ํ, ๋๋ก๋ ์์ฃผ ์ ์คํ ์ฝ๋๋ค์ ์ผ์ ํ ํจํด์ด ์๋ค1. ๊ธฐ์ดํ ์ด๋ฆ(Mysterious Name)- ๋ง๋ ํ ์ด๋ฆ์ด ๋ ์ค๋ฅด์ง ์์ผ๋ฉด ์ค๊ณ์ ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์จ์ด์์ ์ ์๋ค2. ์ค๋ณต ์ฝ๋(Duplicated Code)3. ๊ธด ํจ์(Long Function)- ๊ฐ์ ํธ์ถ์ ํจ๊ณผ, ์ฝ๋๋ฅผ ์ดํดํ๊ณ , ๊ณต์ ํ๊ณ , ์ ํํ๊ธฐ ์ฌ์์ง๋ค๋ ์ฅ์ ์ ํจ์๋ฅผ ์งง๊ฒ ๊ตฌ์ฑํ ๋ ๋์จ๋ค- ์ฃผ์์ ๋ฌ์์ผ ํ ๋งํ ๋ถ๋ถ์ ๋ฌด์กฐ๊ฑด ํจ์๋ก ๋ง๋ ๋ค. ํจ์ ์ด๋ฆ์ ๋์ ๋ฐฉ์์ด ์๋ ์๋๊ฐ ๋๋ฌ๋๊ฒ ์ง๋๋ค- ์กฐ๊ฑด๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ๋ ์ถ์ถ ๋์์ ์ค๋ง๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค4. ๊ธด ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก(Long Parameter List)5. ์ ์ญ ๋ฐ์ดํฐ(Global Data)- ์ ์ญ ๋ฐ์ดํฐ๋ ์ฝ๋๋ฒ ์ด์ค ์ด๋์์๋ ๊ฑด๋๋ฆด..
[๋ฆฌํฉํฐ๋ง 2ํ] action point(ch2)
๋ฆฌํฉํฐ๋ง ์ ์๋ช ์ฌ : ์ํํธ์จ์ด์ ๊ฒ๋ณด๊ธฐ ๋์์ ๊ทธ๋๋ก ์ ์งํ ์ฑ, ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์์ ํ๊ธฐ ์ฝ๋๋ก ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฒ๋์ฌ : ์ํํธ์จ์ด์ ๊ฒ๋ณด๊ธฐ ๋์์ ๊ทธ๋๋ก ์ ์งํ ์ฑ, ์ฌ๋ฌ ๊ฐ์ง ๋ฆฌํฉํฐ๋ง ๊ธฐ๋ฒ์ ์ ์ฉํด์ ์ํํธ์จ์ด๋ฅผ ์ฌ๊ตฌ์ฑํ๋ค.1. ๋ฆฌํฉํฐ๋ง ํ๋ ๋์์๋ ์ฝ๋๊ฐ ํญ์ ์ ์ ์๋ํด์ผํ๋ค -> ์ ์ฒด ์์ ์ด ๋๋์ง ์์๋๋ผ๋ ์ธ์ ๋ ๋ฉ์ถ ์ ์๋ค์ด ๋ถ๋ถ์ ์ ์ํํ๊ธฐ ์ํด์ ๋ฆฌํฉํฐ๋ง ๋จ๊ณ๋ฅผ ์๊ฒ ์ชผ๊ฐ๊ณ ํญ์ ์ ์ ์๋ํ๋ค๋ ๊ฒ์ ๋งค๋ฒ ํ ์คํธ๋ฅผ ์ํํ๋ฉฐ ๋ณด์ฅํด์ผ ํ๋ค๋ ๋ง๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค. Ch1์์๋ ๊ฐ์กฐํ ๋ถ๋ถ์ด์ง๋ง ๊ทธ๋์ ์์ง์ฌ์ง ํ ์คํธ๊ฐ ๋๋จํ ์ค์ํ๋ค.2. ๊ธฐ๋ฅ ์ถ๊ฐ, ๋ฆฌํฉํฐ๋ง๋ฅผ ๋ช ํํ ๊ตฌ๋ถํ์ฌ ์์ฃผ ๋ฒ๊ฐ์ ์์ ํ๋๋ผ๋ ๋ ๊ฐ์ ๋ชจ์ ์ค ํ๋์ ๋ชจ์๋ฅผ ์จ์ผ ํ๋ค. ํญ์ ๋ด๊ฐ ์ฐ๊ณ ์๋ ๋ชจ..
[๋ฆฌํฉํฐ๋ง 2ํ] action point(ch1)
์กฐ๊ธ ๋ณ๊ฒฝํ refactoring์ด๋๋ผ๋ ๋งค๋ฒ ํ ์คํธ ํ ๊ฒ์์ฃผํ๋ ์ค์์ด๋ค. ์ค๋ฅ๋ฅผ ์์ ํ๊ฑฐ๋ ๋ฆฌํฉํฐ๋ง์ ํ ๋, ๊ธฐ์กด์ ์์ฑํ ํ ์คํธ๋ฅผ ์คํํ์ง ๋ชปํด์ ์ฝ๋์ ์ค๋ฅ๋ฅผ ๋์ค์ ๋ฐ๊ฒฌํ ๋๊ฐ ๋ง์ ๋๋ฒ๊น ์ด ์ด๋ ค์ ๋ค. ์์ ๋ณ๊ฒฝ์ด๋๋ผ๋ ๋งค๋ฒ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ์ง ํ์ธํ๋ ๊ณผ์ ์ ์ต๊ดํ ํด์ผ๊ฒ ๋ค.๋ฆฌํฉํฐ๋ง์ ํตํ ์ฑ๋ฅ๋ฌธ์ -> ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์ผ๋จ ๋ฌด์ํ๊ณ ์ดํ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ฉด, ๋ฆฌํฉํฐ๋ง์ ๋ง๋ฌด๋ฆฌํ๊ณ ์ฑ๋ฅ์ ๊ฐ์ ๋ชจ๋ํ๋ฅผ ํตํด ์ฝ๋๊ฐ ๊ธธ์ด์ง ์ ์์ง๋ง ์ ์ฒด ๋ก์ง์ ๊ตฌ์ฑํ๋ ์์ ๊ฐ๊ฐ์ด ๋ ๋๋ ท์ด ๋ถ๊ฐ๋๋ค. ์ด๋ ๊ฒ ๋ชจ๋ํ๋ฅผ ํ๋ฉด ๊ฐ ๋ถ๋ถ์ด ํ๋ ์ผ๊ณผ ๊ทธ ๋ถ๋ถ๋ค์ด ๋ง๋ฌผ๋ ค ๋์๊ฐ๋ ๊ณผ์ ์ ํ์ ํ๊ธฐ ์ฌ์์ง๋ค.'ํญ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์์ ํ๊ธฐ ์ ๋ณด๋ค ๋ ๊ฑด๊ฐํ๊ฒ ๊ณ ์น๋ค.'์กฐ๊ฑด๋ถ ๋ก์ง์ ๋ช ํํ ๊ตฌ์กฐ๋ก ๋ณด์ํ๋ ๋ฐฉ๋ฒ์๋ ..
[Next.js] reactStrictMode
https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictModeGood to know: Since Next.js 13.5.1, Strict Mode is true by default with app router, so the above configuration is only necessary for pages. You can still disable Strict Mode by setting reactStrictMode: false.์ถ์ฒ | https://nextjs.org/docs/app/api-reference/config/next-config-js/reactStrictModeNext.js์์๋ next.config.js์ ..
ํ๋ก ํธ์๋ ๋ฉด์ ๋ชจ์๋ณด๊ธฐ1
1. Sync, Async์ ์ฐจ์ด์ (๋๊ธฐ, ๋น๋๊ธฐ์ ์ฐจ์ด์ )์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.Sync๋ ์์ ์์ฒญ์ด ์ด๋ค์ง๊ณ , ์์ฒญ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Async๋ ํน์ ํ ์์ฒญ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ์ค๋ ๋์ด๊ธฐ ๋๋ฌธ์ ์์ฒญ๋ ์์ ์ ํ๋์ฉ ์ํํ์ง๋ง setTimeout์ด๋ fetch๊ณผ ๊ฐ์ Web API๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. 2. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง ์์์ ๋์ํ๋๋ฐ์, ๋ํ์ ์ผ๋ก ๊ตฌ๊ธ์ V8์์ง์ด ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ฉ๋ชจ๋ฆฌํ๊ณผ ์ฝ์คํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ์ ๋ณ์, ํจ์ ๋ฑ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ ๊ณต๊ฐ์ ๋๋ค. ์ฝ์คํ์๋ ์๋ฐ์คํฌ๋ฆฝ..
ํ๋ก ํธ์๋ ๋ฉด์ (๋ฐฐ์ด)
1. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ์์๊ฐ ์๋ ๋ฆฌ์คํธ ํํ์ ๋ฐฐ์ด์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ๊ฐ์ ํ๋์ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํด ๋์ง ์์๋ ๋๋ฉฐ, ์์๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์์๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค. ๋ํ ๋ฐฐ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌ๋ฉ๋๋ค. ํด์ ํ ์ด๋ธ๊ณผ ๊ฐ์ ํํ๋ก ๊ตฌํ๋์ด ์์ด, ๋ฐฐ์ด ์์๋ค์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ด์ง ์์๋ ๋๊ณ , ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํ์ง ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.๋ง์ง๋ง์ผ๋ก ๋ด์ฅ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ฝ๊ฒ ์กฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด reduce, map ๋ฑ์ ๋ฉ์๋๊ฐ ์กด์ฌํฉ๋๋ค.์ ๋ฆฌํ..
ํ๋ก ํธ์๋ ๋ฉด์ (์์กด์ฑ๋ฐฐ์ด)
1. useEffect ์ฌ์ฉ ์ ์์กด์ฑ ๋ฐฐ์ด์ ๋น ๋ฐฐ์ด์ ๋ฃ๋ ๊ฒ์ ์ง์ํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?useEffect๋ ์์กด์ฑ ๋ฐฐ์ด๋ก ์ ๋ฌํ ๊ฐ์ ๋ณ๊ฒฝ์ ์ํด ์คํ๋์ผ ํ๋ ํ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์กด์ฑ ๋ฐฐ์ด์ ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ ๋จ์ํ ์ต์ด ๋ ๋๋ง ๋ ํ ๋ฒ ์คํํ๋๋ก ํ๋ค๋ฉด ์ด ์ฝ๋ฐฑ ํจ์๋ก ์ธํด ๋ฐ์ํ๋ ๋ถ์ ํจ๊ณผ๊ฐ ์ค์ ๋ก ๊ด์ฐฐํด์ ์คํ๋ผ์ผ ํ๋ ๊ฐ๊ณผ๋ ๋ณ๊ฐ๋ก ์๋ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฐฐ์ด์ ๋ฃ๋ ๊ฒ์ useEffect ํ ์ ์ทจ์ง์ ๋ง์ง ์์ต๋๋ค.
ํ๋ก ํธ์๋ ๊ธฐ์ ๋ฉด์ (heap, CI/CD)
1. ํ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.ํ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉ๋๋ฉฐ, ํ๋ก๊ทธ๋จ ์คํ ์ค์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ํ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌํด์ผ ํ๋ฉฐ, ์ฌ์ฉ์ด ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋ช ์์ ์ผ๋ก ํด์ ํด์ผ ํฉ๋๋ค.2. CI/CD์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์."์ง์์ ์ธ ํตํฉ/์ง์์ ์ธ ์๋น์ค ์ ๊ณต ๋๋ ๋ฐฐํฌ CI(Continuous Integration)/CD(Continuous Delivery, Continuous Deployment)"์ ์ฝ์์ ๋๋ค.`์ง์์ ์ธ ํตํฉ(CI)`์ ์ฝ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๋ฅผ ๊ฑฐ์ณ ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ ์์ ๋ฐ์ํ ์ ์๋ conflict๋ฅผ ์์๋ก ํ์ธํ๊ณ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ฉฐ, ์๋ก์ด ์ ๋ฐ์ดํธ์ ํ ์คํธ์ ์ถ์ ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์์ต๋๋ค.`์ง์์ ์ธ ..