๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (33) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ Next.js Image ์์๋ณด๊ธฐ Next.js์์๋ ์ด๋ฏธ์ง์ ๋ํ ์ต์ ํ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ค Next.js๋ฅผ ์ฐ์ง ์์์ ๋๋ Lazy loading๋ฑ ์ฑ๋ฅ์ ์ํด ๊ณ ๋ คํด์ผํ ์ฌํญ์ด ๋ง์๋๋ฐ Next.js์์๋ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต์ ํด์ค๋ค๊ณ ํ๋ค. ํ๋ฒ ์ดํด๋ณด๋ฉด์ ๊ณต๋ถํด๋ณด์ Image ์ปดํฌ๋ํธ์ ๋ด์ฅ๋ ์ต์ ํ๋ ์๋์ ๊ฐ๋ค ํฅ์๋ ์ฑ๋ฅ - ์ต์ ์ด๋ฏธ์ง ํ์์ ์ฌ์ฉํ๋ฉฐ ๊ฐ ๋๋ฐ์ด์ค์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ค ์๊ฐ์ ์์ ์ฑ - ์๋์ผ๋ก CLS (Cumulative Layout Shift) ๋ฅผ ๋ฐฉ์งํด์ค๋ค ๋น ๋ฅธ ํ์ด์ง ๋ก๋ - ์ด๋ฏธ์ง๊ฐ ๋ทฐํฌํธ์ ๋ค์ด ์์ ๋๋ง ๋ก๋๋๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์๋๊ฐ ๋น ๋ฅด๋ค ์ ์ฐํ ์์ - ์ธ๋ถ์ ์ ์ฅ๋ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ์๋ ํฌ๊ธฐ ์กฐ์ ์ด ๊ฐ๋ฅ ํ์ props src ์ ์ ์ผ๋ก ๊ฐ์ ธ์จ ์ด๋ฏธ์ง ํ์ผ ์ธ๋ถ URL .. Next.js์ Pre-rendering Next.js๋ ๋ชจ๋ ํ์ด์ง๋ฅผ Pre-renderingํ๋ค ์ฆ, Next.js๋ ํด๋ผ์ด์ธํธ์ธก์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ก๋๋๊ธฐ ์ ์ ๋ฏธ๋ฆฌ HTML์ ์์ฑํ๋ค Pre-rendering์ ๋ ๋์ ์ฑ๋ฅ๊ณผ SEO์ ์ต์ ํ ๋์ด ์๋ค. Static Generation , Server-side Rendering Next.js์๋ Static Generation, Server-side Rendering ๋๊ฐ์ง ํํ์ Pre-rendering ๋ฐฉ์์ ์ ๊ณตํ๋ค ๋๊ฐ์ง Rendering ๋ฐฉ์์ ์ฐจ์ด์ ์ ํ์ด์ง์ ๋ํ HTML์ ์ธ์ ์์ฑ ํ๋๋์ ๋ฐ๋ฅธ ์ฐจ์ด์ด๋ค. Static Generation - HTML์ ๋น๋ ์ ์์ฑ๋๋ฉฐ ์ฌ์ฉ์ ์์ฒญ์ ๋ฐ๋ผ ์ฌ์ฌ์ฉ๋๋ค. Server-side Rendering - HTML์ ์ฌ์ฉ์ ์์ฒญ๋ง๋ค ์.. Next.js์ _app๊ณผ _document ์์๋ณด๊ธฐ Next.js์๋ _document, _app ๋๊ฐ์ ๊ธฐ๋ณธ ํ์ด์ง๊ฐ ์๋ค _app, _document๋ ํ๋ก์ ํธ์ ๊ณตํต์ ์ผ๋ก ์ ์ฉ ๋์ด์ผํ ๋ด์ฉ๋ค์ ์์ฑํด์ผํ๋ค. App App ์ปดํฌ๋ํธ๋ ์ฑ์ด ์์ํ ๋ ๊ฐ์ฅ ๋จผ์ ํธ์ถ๋๋ ์ปดํฌ๋ํธ์ด๋ค. ํ๋ก์ ํธ์ ๊ธ๋ก๋ฒ ์์ ๋ค์ ์ํํ๊ธฐ์ ์ ํฉํ ์ปดํฌ๋ํธ์ด๋ค ์์ ํ์ด์ง ๋ณ๊ฒฝ ์์๋ ๋ ์ด์์๊ณผ ์ํ๊ฐ์ ์ ์ง componentDidCatch๋ฅผ ํตํ ์๋ฌ ํธ๋ค๋ง ํ์ด์ง์ ์ถ๊ฐ ๋ฐ์ดํฐ ์ฝ์ Global CSS ์ถ๊ฐ Header, Footer์ ๊ฐ์ ๊ณตํต ๋ ์ด์์ ์ถ๊ฐ const App = ({ Component, pageProps }) => { return ( ); }; export default App; ๊ธฐ๋ณธ์ ์ธ _app ์ปดํฌ๋ํธ์ ๊ตฌ์กฐ์ด๋ฉฐ props๋ก Component์.. Next.js ์์๋ณด๊ธฐ Next.js์ ๊ฐ๋ ์ ๋ํด ์์๋ณด๋ ๊ธ ์ต๊ทผ์ ์๊ฒ ๋ ์ ๋ณด๋ค์ ์ ๋ฆฌํ๋ ๋๋์ผ๋ก ์์ฑํด๋ณด๋ ค ํ๋ค Next.js๋ vercel ํ์์ ๋ง๋ React Framework์ด๋ค. ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ํจ์ผ๋ก ์ป๋ ์ด๋ ? CSR์ ๋จ์ CSR์ ๊ฒฝ์ฐ ๋ชจ๋ JS ํ์ผ์ ๋ก๋ํ ์ดํ์ ์ฌ์ฉ์๊ฐ ์น์ ๋ณด๊ฒ ๋๋ค → ์ฆ JS ํ์ผ์ ๋ก๋ํ๊ธฐ ์ ๊น์ง ์ฌ์ฉ์๋ ๋ง์ ์๊ฐ์ ๋๊ธฐํด์ผ ํ๋ค ๐ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง ์ฆ ์๋ฒ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ฉํ๊ณ ์ ์ ๊ฐ ๋ณผ ์ ์๋ html (๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๊ฐ ๋ ๋๋ง๋ ํ์ด์ง)์ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ ๊ฐ ํ์ด์ง๋ฅผ ํ์ธํ๋ ์๊ฐ์ ๋จ์ถ ์ํฌ ์ ์๋ค. CSR์ ๋จ์ SEO - CSR์ ๊ฒฝ์ฐ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ก๋ ๋์ง ์์ ๊ฒฝ์ฐ ์นํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค -> ๋น์ด์๋ (index.html) ๊ตฌ๊ธ .. ๋ณ์์ ํธ์ด์คํ , TDZ์ ๊ฐ๋ ๋ฐ๋ก์๊ธฐ ํธ์ด์คํ (Hoisting) ์ด๋ ? JavaScript์์ ํธ์ด์คํ (hoisting)์ด๋, ์ธํฐํ๋ฆฌํฐ๊ฐ ๋ณ์์ ํจ์์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ธ ์ ์ ๋ฏธ๋ฆฌ ํ ๋นํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. -MDN- ํจ์ ์์ ์๋ ์ ์ธ๋ค์ ๋ชจ๋ ๋์ด์ฌ๋ ค์ ํด๋น ํจ์ ์ ํจ ๋ฒ์(์คํ ์ปจํ ์คํธ)์ ์ต์๋จ์ ์ ์ธํ๋ ๊ฒ. ํธ์ด์คํ ์ ๋์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ชจ๋ ์ ์ธ์ ํธ์ด์คํ ํ๋ค. ๋ณดํต ํธ์ด์คํ ์ var ํค์๋๋ก ์ ์ธ๋ ๋ณ์์์๋ง ์ผ์ด๋๋ค๊ณ ์๊ฐํ์ง๋ง let, const ์์๋ ํธ์ด์คํ ์ด ์ผ์ด๋๋ค. ๋ณ์์ ์์ฑ ๋จ๊ณ๋ฅผ ์์๋ณด๋ฉด์ ์ดํดํด๋ณด์ ๋ณ์๋ 3๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์์ฑ์ด ๋๋ค. 1. ์ ์ธ๋จ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์์ ์ ์ธ์ var, const, let ํค์๋๋ก ํ ์ ์์ผ๋ฉฐ, ES6์์ const์ let์ด ์ถ๊ฐ๋์๋ค. ์ ์ธ๋จ๊ณ์์๋ .. ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฑ๊ธ์ค๋ ๋์ง๋ง ๋น๋๊ธฐ๋ก ๋์ํ๋ ์ด์ ์ฐ์ ๊ธ์ ์์ํ๊ธฐ ์ ์ ์ค๋ ๋์ ๋ํ ๊ฐ๋จํ ๊ฐ๋ ๋ถํฐ ์ดํดํ๊ณ ๊ฐ๋ฉด ์ข์ ๋ฏํ๋ค. ํ๋ก์ธ์ค์ ์ค๋ ๋ ์ฐจ์ด ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ ์์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋งํ๋ฉฐ, ์ค๋ ๋๋ ์ด ํ๋ก์ธ์ค ์์์ ์คํ๋๋ ํ๋ฆ ๋จ์๋ฅผ ๋งํ๋ค. ํ๋ก์ธ์ค๋ง๋ค ์ต์ ํ๋์ ์ค๋ ๋๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ๊ฐ๊ฐ ๋ณ๋์ ์ฃผ์ ๊ณต๊ฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ํ ๋น๋ฐ๋๋ค. (code, data, heap, stack) ์ค๋ ๋๋ ์ด์ค์ stack๋ง ๋ฐ๋ก ํ ๋น๋ฐ๊ณ ๋๋จธ์ง ์์ญ์ ์ค๋ ๋๋ผ๋ฆฌ ์๋ก ๊ณต์ ํ๋ค. ํ๋ก์ธ์ค : ์์ ๋ง์ ๊ณ ์ ๊ณต๊ฐ๊ณผ ์์์ ํ ๋น๋ฐ์ ์ฌ์ฉ ์ค๋ ๋ : ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต๊ฐ๊ณผ ์์์ ๊ณต์ ํ๋ฉด์ ์ฌ์ฉ ์ฆ ์ค๋ ๋๋ ์คํ๋๋ ํ๋ฆ์ ๋จ์์ด๋ฉฐ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์๋ ์ด ์ค๋ ๋๊ฐ ๋ค์ค์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ ๋ง์ ์ผ๋ค์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ์ด๋ค. .. Couch Coding ( ์นด์ฐ์น ์ฝ๋ฉ ) - CampUs ํ๋ก์ ํธ ํ๊ณ ์นด์ฐ์น์ฝ๋ฉ์์ ์งํํ๋ 6์ฃผ๊ฐ์ ํ๋ก์ ํธ๊ฐ ๋์ด ๋ฌ๋ค. 6์ฃผ๊ฐ ํ์ ๋ชจ๋๊ฐ ์ด์ ์ ์ผ๋ก ์ํด์ฃผ์ด์ ๋ง๋ฌด๋ฆฌ๊ฐ ์ ๋ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค ์๋ฒฝ๊น์ง ๋จ์ ๊ฐ๋ฐํ๋ฉฐ ํ์ผ๋ก ์ผ ํ๋ค๋ ๊ฒ์ด ์ ๋ง ๋ฉ์ง ์ผ์ด๋ผ๋ ๊ฒ์ ๋๋ผ๊ฒ ๋ ๊ฒ ๊ฐ๋ค. ์ง๊ธ๊น์ง ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๋๋ผ๊ณ ๋ฐฐ์ ๋ ๊ฒ๋ค์ ๊ธฐ๋กํ์๊ณ , ์ด์ ๋ ํ๊ณ ๋ฅผ ์จ๋ณด์ ํ๋ค. CampUs ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ฒ ๋ ๊ณ๊ธฐ ์ฌ๋ฌ ์ฌ๋๋ค์ด ๋ค์ํ ์์ด๋์ด๋ฅผ ๋์๋๋ฐ, ์์งํ ๋ง ๋๋ฆฐ๋ค๊ฑฐ๋ ํ๋ ์์ด๋์ด๋ ์์๋ค. ๊ทธ ๋น์๋ง ํด๋ ๋ด ์์ ๊ฐ์ด ๋ฐ๋ฅ์ ๊ธฐ์ด ๋ค๋ ๋์ฌ์ ์ด๋ ๊ฐ๋ 1์ธ๋ถ๋ง ํ๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ ๊ฒ ๊ฐ๋ค ์ด๋ ํ, ์ด๋ค ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ํ์ ๋ถ๋ง ์ ๋ง๋๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋ ๊ฒ ์บ ํ์ฅ์ ์ถ์ฒ ์๋น์ค ํ์ ์ฐธ์ฌํ๊ฒ ๋์๊ณ ํ์๋ถ๋ค๊ณผ ์งง์ ๋ํ๋ฅผ ๋.. Couch Coding ( ์นด์ฐ์น ์ฝ๋ฉ ) - ReactKakaoMapSDK ์ด์ฉํ์ฌ ๋ง์ปค, ์ปค์คํ ์ค๋ฒ๋ ์ด ์์ฑํ๊ธฐ (์นด์นด์ค๋งต) ์ฐ๋ฆฌ ํ์ด ํ์ฌ ๊ฐ๋ฐํ๊ณ ์๋ CampUs ์๋น์ค๋ ์ง๋๋ฅผ ํตํด ์บ ํ์ฅ์ ์ขํ๋ฅผ ํ์ธํ๊ณ ์บ ํ์ฅ์ ์กฐํํ ์ ์๋ ์๋น์ค์ด๋ค ์ ์ฌ์ง์ฒ๋ผ ์บ ํ์ฅ์ ๊ฒ์ํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ์ขํ๊ฐ ์ง๋์ ๋ฑ๋ก๋๊ณ ๋ง์ปค๋ฅผ ํด๋ฆญํ์ ๋ ์ฌ์ง๊ณผ ๊ฐ์ '์ปค์คํ ์ค๋ฒ๋ ์ด'๋ผ๊ณ ๋ถ๋ฅด๋ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋ง ํ๋ค. ์ด์ ์ kakaoMap API๋ฅผ ํตํด ๋ฆฌ์กํธ์์ ๊ฐ๋ฐ์ ํ์ ๋ ๋ฆฌ์กํธ์์ ์ฌ์ฉํ๊ธฐ๊ฐ ์กฐ๊ธ ๋ถํธํ๋ค๊ณ ๋๋์ ์ด ์์ด์ ํธ๋ฆฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์๊น ์ฐพ์๋ณด๋ค๊ฐ https://github.com/JaeSeoKim/react-kakao-maps-sdk GitHub - JaeSeoKim/react-kakao-maps-sdk: React components for using kakao map api React components for .. ์ด์ 1 2 3 4 5 ๋ค์