ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… Code Splitting & μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ Server Side Rendering
    πŸ’»κ°œλ°œ/React 2023. 7. 3. 14:19
    728x90

    μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…

    • μ»΄ν¬λ„ŒνŠΈλ₯Ό λΆ„λ¦¬λœ 파일둜 μ €μž₯ν•˜λŠ” 것
    • μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ X: React.lazy Suspense둜 κ΅¬ν˜„
    • μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ O: Loadable Components 라이브러리 μ‚¬μš© ꢌμž₯

    μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§

    • 단점: μ›Ή λΈŒλΌμš°μ € 일을 μ„œλ²„κ°€ λŒ€μ‹  μ‚¬μš©ν•˜λ‹ˆ μ„œλ²„ λ¦¬μ†ŒμŠ€ μ‚¬μš©λ¨ → λ™μ‹œμ— λ§Žμ€ μ‚¬μš©μž μ ‘μ†ν•˜λ©΄ μ„œλ²„ κ³ΌλΆ€ν•˜ λ°œμƒ κ°€λŠ₯μ„± 있음
    • 보완: μ‚¬μš©μžκ°€ λ§Žμ€ 경우 캐싱과 λ‘œλ“œ λ°ΈλŸ°μ‹±μ„ 톡해 μ„±λŠ₯ μ΅œμ ν™” ν•„μš”
    • μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§κ³Ό μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… ν•¨κ»˜ μ‚¬μš©μ‹œ 좩돌이 있음(μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… κΉœλΉ‘μž„ ν˜„μƒ)
      1. μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§λœ 결과물이 λΈŒλΌμš°μ €μ— λ‚˜νƒ€λ‚¨
      2. μžλ°”μŠ€ν¬λ¦½νŠΈ 파일 λ‘œλ”© μ‹œμž‘
      3. μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λ©΄μ„œ 아직 λΆˆλŸ¬μ˜€μ§€ μ•Šμ€ μ»΄ν¬λ„ŒνŠΈλ₯Ό null둜 λ Œλ”λ§ν•¨
      4. νŽ˜μ΄μ§€μ— μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…λœ μ»΄ν¬λ„ŒνŠΈλ“€ 사라짐
      5. μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…λœ μ»΄ν¬λ„ŒνŠΈλ“€μ΄ λ‘œλ”©λœ 이후 μ œλŒ€λ‘œ λ‚˜νƒ€λ‚¨
      ⇒ ν•΄κ²°: 라우트 κ²½λ‘œλ§ˆλ‹€ μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…λœ 파일 쀑 ν•„μš”ν•œ λͺ¨λ“  파일 λΈŒλΌμš°μ €μ—μ„œ λ Œλ”λ§ν•˜κΈ° 전에 미리 뢈러였기(Loadable Components λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯으둜 ν•„μš”ν•œ 파일 경둜 μΆ”μΆœν•΄ λ Œλ”λ§ 결과에 슀크립트/μŠ€νƒ€μΌ νƒœκ·Έ μ‚½μž… κ°€λŠ₯)
    • μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ ν”„λ ˆμž„μ›Œν¬ Next.js, λ¦¬μ•‘νŠΈ λΌμš°ν„°μ™€ ν˜Έν™˜ κ°€λŠ₯ν•œ Remix도 있음