SPA & Router 🐾

Bonnie RyuΒ·2020λ…„ 11μ›” 10일
0

차근차근 React 🐾

λͺ©λ‘ 보기
6/10
post-custom-banner

SPA

: Single Page Application
: 말 κ·ΈλŒ€λ‘œ ν•œ 개의 νŽ˜μ΄μ§€λ‘œ 이루어진 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 의미

κΈ°μ‘΄μ—λŠ” μ‚¬μš©μžκ°€ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ 이동할 λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ html을 λ°›μ•„ 였고, νŽ˜μ΄μ§€λ₯Ό λ‘œλ”©ν•  λ•Œ λ§ˆλ‹€ μ„œλ²„μ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό 전달받아 ν•΄μ„ν•œ λ’€ 화면에 λ³΄μ—¬μ£Όμ—ˆλ‹€. μ΄λ ‡κ²Œ μ‚¬μš©μžμ—κ²Œ λ³΄μ΄λŠ” 화면은 μ„œλ²„ μΈ‘μ—μ„œ μ€€λΉ„ν–ˆλ‹€.

ν˜„μž¬ μ›Ήμ—μ„œ μ œκ³΅λ˜λŠ” 정보가 무수히 많이 λ•Œλ¬Έμ— μƒˆλ‘œμš΄ ν™”λ©΄λ§ˆλ‹€ μ„œλ²„ μΈ‘μ—μ„œ λͺ¨λ“  λ·°λ₯Όμ€€λΉ„ν•œλ‹€λ©΄ μ„±λŠ₯상 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€.νŠΈλž˜ν”½μ΄ λ„ˆλ¬΄ 많이 λ‚˜μ˜€κ±°λ‚˜ λΆˆν•„μš”ν•œ λ‘œλ”©μ΄ 많이 생기거 λ“±λ“±

κ·Έλž˜μ„œ λ¦¬μ•‘νŠΈ 같은 라이브러리 ν˜Ήμ€ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ λ·° λ Œλ”λ§μ„ μ‚¬μš©μžμ˜ λΈŒλΌμš°μ €κ°€ λ‹΄λ‹Ήν•˜λ„λ‘ ν•˜κ³ , μš°μ„  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λΈŒλΌμš°μ €μ— λΆˆλŸ¬μ™€μ„œ μ‹€ν–‰μ‹œν‚¨ 후에 μ‚¬μš©μžμ™€μ˜ μΈν„°λ ‰μ…˜μ΄ λ°œμƒν•˜λ©΄ ν•„μš”ν•œ λΆ€λΆ„λ§Œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ μ—…λ°μ΄νŠΈν•΄μ€€λ‹€. μƒˆλ‘œμš΄ 데이터가 ν•„μš”ν•˜λ‹€λ©΄ μ„œλ²„ APIλ₯Ό ν˜ΈμΆœν•˜μ—¬ ν•„μš”ν•œ λ°μ΄ν„°λ§Œ μƒˆλ‘œ λΆˆλŸ¬μ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.

SPA의 단점

μ•±μ˜ 규λͺ¨κ°€ 컀지면 μžλ°”μŠ€ν¬λ¦½νŠΈ 파일이 λ„ˆλ¬΄ μ»€μ§„λ‹€λŠ” 것 (νŽ˜μ΄μ§€ λ‘œλ”© μ‹œ μ‚¬μš©μžκ°€ μ‹€μ œλ‘œ λ°©λ¬Έν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλŠ” μŠ€ν¬λ¦½νŠΈλ„ 뢈러였기 λ•Œλ¬Έ) but μ•žμœΌλ‘œ 배울 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…(code spliting)을 μ‚¬μš©ν•˜λ©΄ λΌμš°νŠΈλ³„λ‘œ νŒŒμΌλ“€μ„ λ‚˜λˆ„μ–΄ νŠΈλž˜ν”½κ³Ό λ‘œλ”© 속도λ₯Ό κ°œμ„ ν•  수 μžˆλ‹€!

  • ~~blabla μ΄ν•΄ν•΄μ•Όν•˜λŠ” λΆ€λΆ„. μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(server-side-rendering)λ₯Ό 톡해 λͺ¨λ‘ ν•΄κ²°ν•  수 μžˆλ‹€.

Router

: λ‹€λ₯Έ μ£Όμ†Œμ— λ‹€λ₯Έ 화면을 보여 μ£ΌλŠ” 것을 λΌμš°νŒ…μ΄λΌκ³  ν•œλ‹€.
: μ–΄λ–€ μ£Όμ†Œμ— μ–΄λ–€ UIλ₯Ό 보여쀄지 κ·œμΉ™μ„ μ •ν•˜λŠ” μž‘μ—…
: κ³Όκ±°μ—λŠ” μ„œλ²„μ—μ„œ κ΄€λ¦¬ν•˜λŠ” λ‘œμ§μ΄μ˜€μ§€λ§Œ μ΄μ œλŠ” ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œμ—μ„œ μ•„μ£Ό κ°„λ‹¨ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.
: ν•œκ°œμ˜ μ›ΉνŽ˜μ΄μ§€(html)μ•ˆμ—μ„œ μ—¬λŸ¬ 개의 νŽ˜μ΄μ§€λ₯Ό λ³΄μ—¬μ£ΌλŠ” 방법이 Routing

λ¦¬μ•‘νŠΈ 라이브러리 μžμ²΄μ—λŠ” 이 κΈ°λŠ₯이 λ‚΄μž₯λ˜μ–΄ μžˆμ§€λŠ” μ•Šλ‹€. κ·Έ λŒ€μ‹  λΈŒλΌμš°μ €μ˜ APIλ₯Ό 직접 μ‚¬μš©ν•˜μ—¬ 이λ₯Ό κ΄€λ¦¬ν•˜κ±°λ‚˜, 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ 이 μž‘μ—…μ„ λ”μš± μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.

λ¦¬μ•‘νŠΈ λΌμš°νŒ… λΌμ΄λΈŒλŸ¬λ¦¬λŠ” λ¦¬μ•‘νŠΈ λΌμš°ν„°(react-router), 리치 λΌμš°ν„°(reach-router), Next.js등이 μžˆλ‹€.

profile
Ryuwisdom
post-custom-banner

0개의 λŒ“κΈ€