์ ์ฒด ๊ธ(42)
-
[Next.js] (3) - Page Router (๊ทธ๋ฆฌ๊ณ Next ๊ธฐ๋ณธ๋์๊ตฌ์กฐ)
๐ Page Routerํ์ฌ ๋ง์ ๊ธฐ์ ์์ ์ฌ์ฉ๋๊ณ ์๋ ์์ ์ ์ธ ๋ผ์ฐํฐReact Router ์ฒ๋ผ ํ์ด์ง ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ ๊ณต ๐ ํ๋ฆฌํ์นญ(Pre-fetching) - ๋น ๋ฅธ ํ์ด์ง ์ด๋์ ์ํด ์ ๊ณต๋๋ ๊ธฐ๋ฅ!์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๋ ๊ธฐ๋ฅ๊ฒฝ๋ก๋ณ๋ก ์ปดํฌ๋ํธ๋ค์ Spliting ํด์ ์ ์ฅ์ ๋ฏธ๋ฆฌ ํด๋์ ํ์ฌ ํ์ด์ง์๋ง ํ์ํ JS Bundle๋ง ์ ๋ฌ ๋จ์์ฒญ๋ ํ์ด์ง์ JS Bundle ๋ง ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ Hydration ๋น ๋ฅด๊ฒ ๊ฐ๋ฅ (์ฉ๋ ๊ฒฝ๋ํ)Pre Feching ์ผ๋ก ์ฐ๊ฒฐ๋ ๋ชจ๋ ํ์ด์ง์ JS Bundle ํ์ผ์ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ด๊ฐ๋ฐ๋ชจ๋์ผ ๊ฒฝ์ฐ์๋ Pre Feching์ด ์ ์ฉ๋์ง ์์ Build ํ production ๋ชจ๋๋ก ์คํํด์ค์ผํจLink Component๋ก ์ด๋ค์ง์ง ์์ ..
2024.11.04 -
[Next.js] (4) - App Router
๐ Dynamic Routing์ฌ๋ฌ๊ฐ์ URL ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ ๋ [...id] Catch all segmentํ๋ผ๋ฏธํฐ๊ฐ ์์ ๊ฒฝ์ฐ์ [[...id]] Optional catch all segment๐ Layout ๋์ ๋ฐฉ์ Layout ์์ chlidren ์ผ๋ก page ๊ฐ ๋ค์ด์์ Layout ์ด ์ ์๋๋ก ์์ ๊ฒฝ์ฐ ์ค์ฒฉ๋จ๐ Route Group (์๊ดํธ๋ก ์์ฑ) ๊ฒฝ๋ก์์๋ ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์์๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฒฝ๋ก๋ค์ ํ๋์ ํ์ด์ง๋ก ๋ฌถ์ด๋ ์ ์์๊ฒฝ๋ก๊ฐ ๋ฌ๋ผ๋ ๊ณตํต์ ์ธ layout์ ์ ์ฉํ๊ณ ์ถ์ ๋๐ React Server Component (React 18v ๋ถํฐ, ์๋ก์ด ์ ํ์ ์๋ฒ์ธก ์ปดํฌ๋ํธ )Page Router ๋ฒ์ ์ Next.js ์๋ ์ด๋ค ๋ฌธ์ ๊ฐ ์์์๊น?์ ์ ํ์ด์ง..
2024.11.01 -
[Next.js] (2) - ์ฌ์ ๋ ๋๋ง
๐ ์ฌ์ ๋ ๋๋ง (Next.js ์ ๊ธฐ๋ณธ ๋์ ๋ฐฉ์)๋ธ๋ผ์ฐ์ ์์ฒญ์ ์ฌ์ ์ ๋ ๋๋ง์ด ์๋ฃ๋ HTML์ ์๋ตํ๋ ๋ ๋๋ง ๋ฐฉ์CIient Side Rendering์ ๋จ์ ์ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ๋ ๊ธฐ์ ๐ CIient Side Rendering(CSR)React.js ์ฑ์ ๊ธฐ๋ณธ์ ์ธ ๋ ๋๋ง ๋ฐฉ์ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์์ ์ง์ ํ๋ฉด์ ๋ ๋๋งํ๋ ๋ฐฉ์์ฅ์ : ์ด๊ธฐ์ ์ ์ดํ์ ํ์ด์ง ์ด๋์ด ๋งค์ฐ ๋น ๋ฅด๊ณ ์พ์ ๋จ์ : FCP(์ด๊ธฐ์ ์ ์๋)๊ฐ ๋๋ ค์ง๐ Next.js์์๋ CIient Side Rendering์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น? - ์ฌ์ ๋ ๋๋ง์๋ฒ์์ ์ง์ JS๋ฅผ ์คํ -> ๋ ๋๋ง์ด ์๋ฃ๋ HTML์ ์๋ตJS ์คํ (๋ ๋๋ง)JS์ฝ๋๋ฅผ HTML์ฝ๋๋ก ๋ณํํ๋ ๊ณผ์ ํ๋ฉด ๋ ๋๋งHTML์ฝ๋๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ ค๋ด๋..
2024.10.31 -
[Next.js] (1) - React.js ์ ์ฉ์ ์น ๊ฐ๋ฐ 'Framework'
๊ธฐ๋ฅ ๊ตฌํ์ ์ฃผ๋๊ถ์ด ๋๊ตฌ์๊ฒ ์๋๊ฐ?๐ Library - ๊ฐ๋ฐ์๊ธฐ๋ฅ ๊ตฌํ์ ์ฃผ๋๊ถ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ์งex) ํ์ด์ง ๋ผ์ฐํ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํจ -> React router, tanstack Router์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์ถ์ ๋๊ตฌ๋ฅผ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์์์์ ๋๊ฐ ๋๋ค. -> ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ธ ์ ๊ณต X๐ Framework - ๊ฐ๋ฐ์ X ์ฃผ๋๊ถ์ Framework ๊ฐ ๊ฐ์งFramework์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ฑฐ๋ ํ์ฉํ๋ ๋ฒ์ ๋ด์์๋ง ์ถ๊ฐ๊ธฐ๋ฅ ์ฌ์ฉ ๊ฐ๋ฅํฐํ, ๋ฐฉ๋ฒ์ ์ ํด์ ธ ์์์์ ๋๊ฐ ๋ฎ๋ค.๊ฑฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ๊ณตPage RoutingSever Pre RenderingReact.js ์ ํ์ฅํ ์ถ์ฒ: https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%E..
2024.10.31 -
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 5. JavaScript ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ JavaScript ์ ๋ ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌJavaScript์์๋ ๋ฐฐ์ด์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ sort() ํจ์๋ฅผ ์ ๊ณต์ต์ ์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋ O(NlogN)์ ๋ณด์ฅ์๊ณ ๋ฆฌ์ฆ ๋ฐ ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ์ ๋ ฌ ๊ธฐ๋ฅ์ด ํ์ํ๋ค๋ฉด, sort() ํจ์ ์ฌ์ฉ ๊ถ์ฅ๋ง์ฝ sort()ํจ์์ ์ฌ์ฉ์ด ์ ํ๋๋ค๋ฉด, ๋ณํฉ ์ ๋ ฌ๊ณผ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ๊ตฌํํ์ฌ ์ฌ์ฉ๐ sort() ์ค๋ฆ์ฐจ์ ์์ (๋ด๋ฆผ์ฐจ์์ b๊ฐ ๋ ์๊ฒ ํํ)arr.sort(compareFunction)//์ ๋ ฌ ๊ธฐ์ค ํจ์//์ค๋ฆ์ฐจ์function compareFunction(a, b){ if(a b) return 1; else return 0 // result 0 b๊ฐ ์ฐ์ ์์๊ฐ ๋์, ์์ ์์นํ๋ค. // 0 a์ b์ ์์๋ฅผ ..
2024.10.29 -
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 4. ๋ณํฉ ์ ๋ ฌ (๋ค๋ฅธ ์ ๋ ฌ๋ณด๋ค ์๋์ ์ผ๋ก ํจ์จ์ )
๐ ๋ถํ ์ ๋ณต(Divide and Conquer)๋ถํ (divide): ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ ๋ฌธ์ (์ฌ์ด ๋ฌธ์ )๋ก ๋ถํ ์ ๋ณต(conquer): ์์ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ๊ฐ๊ฐ ํด๊ฒฐ์กฐํฉ(combine): ํด๊ฒฐํ ๋ถ๋ถ ๋ฌธ์ ์ ๋ต์ ์ด์ฉํ์ฌ ๋ค์ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ์ด์ ? ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ฌธ์ ๋ก "๋ถํ ํ๋ ๋ฐฉ์์ด ๋์ผํ" ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ ๋๊น์ง ๊ณ์ํ์ฌ ๋ถํ ๋ถํ ์ ๋ณต์ ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์์ ํจ์ ํธ์ถ ํ์๊ฐ ๋ง์ด ๋ฐ์์ด๋ ์ค๋ฒํค๋(overhead)๋ก ์ด์ด์ง๋ค. ๐ ๋ณํฉ ์ ๋ ฌ(Merge Sort)๋ณํฉ ์ ๋ ฌ์ ์ ํ์ ์ธ ๋ถํ ์ ๋ณต(divide and conquer) ์๊ณ ๋ฆฌ์ฆ์ด๋ค.์๊ฐ ๋ณต์ก๋ O(NlogN)์ ๋ณด์ฅํ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ ์ค ..
2024.10.28 -
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 3. ์ฝ์ ์ ๋ ฌ
๐ ์ฝ์ ์ ๋ ฌ(Insertion Sort)์ฝ์ ์ ๋ ฌ์ด๋ ๊ฐ ์ซ์๋ฅผ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ ์ ๋ ฌ ๊ธฐ๋ฒ๊ฐ ๋จ๊ณ์์ ํ์ฌ ์์๊ฐ ์ฝ์ ๋ ์์น๋ฅผ ์ฐพ๋๋ค.์ ์ ํ ์์น์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต์ ์ผ๋ก ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ค.๋งค ๋จ๊ณ์์ ํ์ฌ ์ฒ๋ฆฌ ์ค์ธ ์์๊ฐ ์ฝ์ ๋ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฝ N๋ฒ์ ์ฐ์ฐ์ด ํ์๊ฒฐ๊ณผ์ ์ผ๋ก ์ฝ N๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ค๋ ์ ์์ ์ต์ ์ ๊ฒฝ์ฐ O(N²)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest JavaScript ์ฝ๋ฉํ ์คํธ 131๊ฐ ์์ & CS์ง์์ผ๋ก ๋๋ด๊ธฐ | ํจ์คํธ์บ ํผ์ค25์๊ฐ ๋๋น ๊ณผ์ / '์ฝํ ๋ ์ ๋' ์ ํ๋ฒ ๊ฐ์ฌ๋๊ป ํต์ฌ๋ง ๋ฐฐ์ฐ๊ณ ๋น ๋ฅด๊ฒ ํฉ๊ฒฉํ์ธ์.fastcampus.co.kr
2024.10.28 -
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ 2. ๋ฒ๋ธ ์ ๋ ฌ
๐ ๋ฒ๋ธ ์ ๋ ฌ์ ํ์ ๋ ฌ๋ณด๋ค ๋นํจ์จ์ฑ์ด ๋์๋จ์ํ ์ธ์ ํ ๋ ์์๋ฅผ ํ์ธํ์ฌ, ์ ๋ ฌ์ด ์ ๋์ด ์๋ค๋ฉด ์์น๋ฅผ ์๋ก ๋ณ๊ฒฝํ๋ค์๋ก ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ๋ ํํ๊ฐ ๊ฑฐํ๊ณผ ๊ฐ๋ค๊ณ ํ์ฌ ๋ถ์ฌ์ง ์ด๋ฆ์๊ฐ ๋ณต์ก๋ O(N²)๋ก ๋นํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ฒซ์งธ์ ๋์งธ๋ฅผ ๋น๊ต, ๋์งธ์ ์ ์งธ๋ฅผ ๋น๊ต, ์ ์งธ์ ๋ท์งธ๋ฅผ ๋น๊ตํ๋ ๋ฐฉ์~5๋จ๊ณ๊น์ง ๊ณ์ ๋ฐ๋ณตํ๋ค.์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ํด์ ๋ชจ๋ ๋น๊ต๊ฐ ํ์ํ๋ฏ๋ก, ๊ต์ฅํ ๋นํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋ ์ถ์ฒ: https://fastcampus.co.kr/dev_online_upjscodingtest JavaScript ์ฝ๋ฉํ ์คํธ 131๊ฐ ์์ & CS์ง์์ผ๋ก ๋๋ด๊ธฐ | ํจ์คํธ์บ ํผ์ค25์๊ฐ ๋๋น ๊ณผ์ / '์ฝํ ๋ ์ ๋' ์ ํ๋ฒ ๊ฐ์ฌ๋๊ป ํต์ฌ๋ง ๋ฐฐ์ฐ๊ณ ๋น ๋ฅด๊ฒ ํฉ๊ฒฉํ์ธ์.fas..
2024.10.28