Skip to content

Latest commit

ย 

History

History
50 lines (29 loc) ยท 2.04 KB

SPA.md

File metadata and controls

50 lines (29 loc) ยท 2.04 KB

SPA(Single Page Application)

1. SPA๋ž€?

์ „ํ†ต์ ์ธ ์›น์‚ฌ์ดํŠธ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ ๋‚ด ๋‹ค๋ฅธ ํŽ˜์ด์ง€ ์ด๋™ ์‹œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๋งค๋ฒˆ HTML ํŒŒ์ผ๋กœ ๋œ 'ํŽ˜์ด์ง€ ์ „์ฒด'๋ฅผ ๋ถˆ๋Ÿฌ์™€์•ผ ํ–ˆ์Œ

SPA

  • SPA๋Š”ํŽ˜์ด์ง€ ์ „ํ™˜ ์ „ํ›„์— ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์€ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์˜ค์ง€ ์•Š๊ณ , ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ƒˆ๋กœ ๋ถˆ๋Ÿฌ์˜ด
  • JavaScript๊ฐ€ ์—…๋ฐ์ดํŠธ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ, HTML ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜น์€ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋งํ•จ.

SPA์˜ ์žฅ์ 

  • ํ•„์š”ํ•œ ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ›์•„์„œ ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ๋˜๊ธฐ์— ์‚ฌ์šฉ์ž์™€์˜ interaction์— ๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘
  • ์„œ๋ฒ„์—์„œ๋Š” ์š”์ฒญ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋งŒ ๋„˜๊ฒจ์ฃผ๋ฉด ๋˜๊ธฐ์— ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ๋ฌธ์ œ๊ฐ€ ๊ฐ์†Œ
  • ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋ง ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ์— ๋” ๋‚˜์€ ์œ ์ € ๊ฒฝํ—˜ ์ œ๊ณต

SPA์˜ ๋‹จ์ 

  • JavaScript ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ์—, ์ด ํŒŒ์ผ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์œผ๋กœ ์ฒซ ํ™”๋ฉด ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง
  • SEO์— ์ข‹์ง€ ์•Š์Œ. ๊ฒ€์ƒ‰์—”์ง„์€ HTML ํŒŒ์ผ์— ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌ๋™ํ•˜๋Š”๋ฐ, SPA์˜ ๊ฒฝ์šฐ HTML์— ๋ณ„๋‹ค๋ฅธ ์ž๋ฃŒ๊ฐ€ ์—†๊ธฐ์— ๊ฒ€์ƒ‰์—”์ง„์ด ์ ์ ˆํžˆ ๋™์ž‘ํ•˜์ง€ ๋ชปํ•จ.

2. Wireframe๊ณผ Mockup์˜ ์ฐจ์ด

Wireframe

  • ์›น ํŽ˜์ด์ง€์˜ ๋ ˆ์ด์•„์›ƒ๊ณผ UI ์š”์†Œ ๋“ฑ์— ๋Œ€ํ•œ ๋ผˆ๋Œ€๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””์ž์ธ ์ปจ์…‰๊ณผ ์‚ฌ์ดํŠธ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ดํ•ด ๊ฐ€๋Šฅ

Mockup

  • ๋ฐ๋ชจ ์‹œ์—ฐ, ํ‰๊ฐ€๋ฅผ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ๋งŒ ๋‹ด์€ ๋ชจํ˜•์œผ๋กœ, ์Šค๋งˆํŠธํฐ์ด๋‚˜ ๋ฐ์Šคํฌํƒ‘์˜ ํ”„๋ ˆ์ž„์„ ๋ง์”Œ์›Œ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋””์ž์ธํ•œ ๊ฒƒ

3. Router

Routing

  • ๋‹ค๋ฅธ ์ฃผ์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •, ์ฆ‰ "๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝํ•œ๋‹ค"๋Š” ์˜๋ฏธ
  • React์—์„œ๋Š” ์ด ๋ผ์šฐํŒ…์„ ์œ„ํ•ด React Router ๋ผ๋Š” '๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ'๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ

์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  • router: <BrowserRouter>
  • route matchers: <Routes>, <Route>
  • route changers: <Link>