Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜

๋‚˜๋Š” Habr์ด ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€, ์›Œํฌํ”Œ๋กœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€, ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€, ์–ด๋–ค ํ‘œ์ค€์ด ์‚ฌ์šฉ๋˜๋Š”์ง€, ์—ฌ๊ธฐ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑ๋˜๋Š”์ง€์— ํ•ญ์ƒ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์ตœ๊ทผ์— ํ•˜๋ธŒ๋ผ ํŒ€์— ํ•ฉ๋ฅ˜ํ•˜๊ฒŒ ๋˜์–ด์„œ ์ด๋Ÿฐ ๊ธฐํšŒ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์˜ ์ž‘์€ ๋ฆฌํŒฉํ† ๋ง ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ตœ์ „์„ ์—์„œ ์ผํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ค๊ฐ€์š”? ํ”„๋กœ๊ทธ๋žจ: Habr์—์„œ์˜ ๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜์— ๋Œ€ํ•œ ๋ฉ”๋ชจ์˜ ์†Œ์Šค๊ฐ€ ํฌํ•จ๋œ Node, Vue, Vuex ๋ฐ SSR.

๊ฐœ๋ฐœํŒ€์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„์•ผ ํ•  ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž‘๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์€ ๊ฒƒ์€ 3๊ฐœ์˜ ์ „์„ , 2๊ฐœ์˜ ํ›„๋ฐฉ ๋ฐ ๋ชจ๋“  Habr-Baxley์˜ ๊ธฐ์ˆ  ๋ฆฌ๋”์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ…Œ์Šคํ„ฐ, ๋””์ž์ด๋„ˆ, ์„ธ ๋ช…์˜ Vadim, ๊ธฐ์ ์˜ ๋น—์ž๋ฃจ, ๋งˆ์ผ€ํŒ… ๋‹ด๋‹น์ž ๋ฐ ๊ธฐํƒ€ Bumburum๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Habr ์‚ฌ์ดํŠธ์— ์ง์ ‘ ๊ธฐ์—ฌํ•œ ์‚ฌ๋žŒ์€ 6๋ช…๋ฟ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ๋“œ๋ฌธ ์ผ์ž…๋‹ˆ๋‹ค. ์ˆ˜๋ฐฑ๋งŒ ๋‹ฌ๋Ÿฌ ๊ทœ๋ชจ์˜ ์ฒญ์ค‘์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋Š” ๊ฒ‰์œผ๋กœ๋Š” ๊ฑฐ๋Œ€ ๊ธฐ์—…์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ฐ€์žฅ ์ˆ˜ํ‰์ ์ธ ์กฐ์ง ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ˜ ์•„๋Š‘ํ•œ ์Šคํƒ€ํŠธ์—…์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋งŽ์€ IT ํšŒ์‚ฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Habr์€ Agile ์•„์ด๋””์–ด, CI ๊ด€ํ–‰ ๋“ฑ์„ ๊ณต์–ธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ œ ์ƒ๊ฐ์—๋Š” Habr์€ ์ง€์†์ ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ์ œํ’ˆ์œผ๋กœ์„œ ๋ฐœ์ „์„ ๊ฑฐ๋“ญํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฐ์†ํ•ด์„œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์Šคํ”„๋ฆฐํŠธ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ๋ถ€์ง€๋Ÿฐํžˆ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ฝ”๋”ฉํ•˜๊ณ , ๋””์ž์ธํ•˜๊ณ  ์žฌ์„ค๊ณ„ํ•˜๊ณ , ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ถ€์ˆ˜๊ณ  ์ˆ˜์ •ํ•˜๊ณ , ํ‹ฐ์ผ“์„ ํ•ด๊ฒฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ํ‹ฐ์ผ“์„ ๋งŒ๋“ค๊ณ , ๋งˆ์นจ๋‚ด ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ•˜๊ธฐ ์œ„ํ•ด ๊ฐˆํ€ด๋ฅผ ๋ฐŸ๊ณ  ๋ฐœ์„ ์˜์•˜์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ž˜. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์žฌ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„, "์ค‘์š”-๊ธด๊ธ‰" ์‚ฌ๋ถ„๋ฉด์— ์žˆ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์‹œ๊ฐ„์ด ์˜ต๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ๋…ผ์˜ํ•  ๊ฒƒ์€ ๋ฐ”๋กœ ์ด "์˜คํ”„ ์‹œ์ฆŒ" ์Šคํ”„๋ฆฐํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” Habr ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์˜ ๋ฆฌํŒฉํ† ๋ง์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํšŒ์‚ฌ๋Š” ์ด์— ๋Œ€ํ•ด ๋†’์€ ๊ธฐ๋Œ€๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ์•ž์œผ๋กœ๋Š” Habr์˜ ์ „์ฒด ๋™๋ฌผ์›์„ ๋Œ€์ฒดํ•˜๊ณ  ๋ณดํŽธ์ ์ธ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์†”๋ฃจ์…˜์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€๋Š” ์ ์‘ํ˜• ๋ ˆ์ด์•„์›ƒ, PWA, ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ, ์‚ฌ์šฉ์ž ๋งž์ถคํ™” ๋“ฑ ๋งŽ์€ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ๋“ค์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž„๋ฌด๋ฅผ ์„ค์ •ํ•ด๋ณด์ž

ํ•œ๋ฒˆ์€ ์ผ๋ฐ˜ ์Šคํƒ ๋“œ์—…์—์„œ ํ”„๋ก ํŠธ ์ค‘ ํ•œ ๋ช…์ด ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์˜ ๋Œ“๊ธ€ ๊ตฌ์„ฑ ์š”์†Œ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œ์•ˆ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ง‘๋‹จ์‹ฌ๋ฆฌ์น˜๋ฃŒ ํ˜•์‹์˜ ์†Œ๊ทœ๋ชจ ํšŒ์˜๋ฅผ ๋งˆ๋ จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ์–ด๋””๊ฐ€ ์•„ํ”ˆ์ง€ ๋งํ•˜๊ณ , ์•„๋ฌด๋„ ๋ฐ•์ˆ˜๋ฅผ ์น˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ข…์ด์— ๊ธฐ๋กํ•˜๊ณ  ๊ณต๊ฐํ•˜๊ณ  ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ 20๊ฐ€์ง€ ๋ฌธ์ œ ๋ชฉ๋ก์ด ๋‚˜์™”๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ Habr์˜ ์„ฑ๊ณต์„ ํ–ฅํ•œ ๊ธธ๊ณ  ํ—˜๋‚œํ•œ ๊ธธ์ด ์—ฌ์ „ํžˆ ๋‚จ์•„ ์žˆ์Œ์ด ๋ถ„๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ฃผ๋กœ ๋ฆฌ์†Œ์Šค ํšจ์œจ์„ฑ๊ณผ ์†Œ์œ„ ๋งค๋„๋Ÿฌ์šด ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ '์ง‘-ํšŒ์‚ฌ-์ง‘' ๊ฒฝ๋กœ์—์„œ ๋‚˜๋Š” ๋‚ด ์˜ค๋ž˜๋œ ์ „ํ™”๊ธฐ๊ฐ€ ํ”ผ๋“œ์— ํ—ค๋“œ๋ผ์ธ 20๊ฐœ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๊ณ  ํ•„์‚ฌ์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค:

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜๋ฆฌํŒฉํ† ๋ง ์ „ ๋ชจ๋ฐ”์ผ Habr ์ธํ„ฐํŽ˜์ด์Šค

์—ฌ๊ธฐ์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ์š”? ์ฆ‰, ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ HTML ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ JS๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์š”์ฒญํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ์ธ์ฆ์„ ์œ„ํ•ด ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ๋‘ ๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊นœ๋ฐ•์˜€๊ณ  ์‚ฌ์šฉ์ž๋Š” 100KB๋ฅผ ์ถ”๊ฐ€๋กœ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ธ๋ถ€์ ์œผ๋กœ ๋ณด๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋”์šฑ ์†Œ๋ฆ„๋ผ์ณ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜์˜ค๋ž˜๋œ SSR-CSR ๋ฐฉ์‹. ์Šน์ธ์€ Node JS๊ฐ€ HTML์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋ฐ”์˜์ง€ ์•Š๊ณ  ์š”์ฒญ์„ API์— ํ”„๋ก์‹œํ•  ์ˆ˜ ์žˆ๋Š” C3 ๋ฐ C4 ๋‹จ๊ณ„์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Habr ์‚ฌ์šฉ์ž ์ค‘ ํ•œ ๋ช…์ด ๋‹น์‹œ์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งค์šฐ ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ๋ฒ„์ „์€ ๋˜ฅ์ด๋„ค์š”. ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋งํ•˜๊ณ  ์žˆ๋‹ค. SSR๊ณผ CSR์˜ ๋”์ฐํ•œ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

์•„๋ฌด๋ฆฌ ์Šฌํ”„๋”๋ผ๋„ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ธ์ •ํ•  ์ˆ˜๋ฐ–์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์˜ต์…˜์„ ํ‰๊ฐ€ํ•˜๊ณ  Jira์—์„œ "์ง€๊ธˆ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ๊ฒŒ ๋งŒ๋“œ์„ธ์š”" ์ˆ˜์ค€์˜ ์„ค๋ช…์ด ํฌํ•จ๋œ ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ ์ž‘์—…์„ ํญ๋„“๊ฒŒ ๋ถ„ํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์žฌ์‚ฌ์šฉ,
  • ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ ,
  • ์ค‘๋ณต ์š”์ฒญ์„ ์ œ๊ฑฐํ•˜๊ณ ,
  • ๋กœ๋”ฉ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”์šฑ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜์ž

์ด๋ก ์ ์œผ๋กœ ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง์€ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SPA ์ธ๋ฑ์‹ฑ ์ธก์ •ํ•ญ๋ชฉ์„ ๊ฐœ์„ ํ•˜๊ณ  FMP (๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์•…ํ™” TTI). ๋งˆ์นจ๋‚ด ๊ณ ์ „์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ 2013๋…„ ์—์–ด๋น„์•ค๋น„์—์„œ ๊ณต์‹ํ™” (Backbone.js์—์„œ) SSR์€ Node ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ๋™์ผํ•œ ๋™ํ˜• JS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ƒ์„ฑ๋œ ๋ ˆ์ด์•„์›ƒ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์žฌ์ˆ˜ํ™” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๊ณ  ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ ๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๊ฐ€ ํฌํ•จ๋œ ๋‹ค๋ฅธ ๋งŽ์€ ๋ฆฌ์†Œ์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Habr์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„ ๋ Œ๋”๋ง์€ ๊ฒ€์ƒ‰ ์—”์ง„๊ณผ ์šฐํ˜ธ์ ์ธ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ด ๋“ฑ์žฅํ•œ ์ง€ 6๋…„ ์ด์ƒ์ด ์ง€๋‚ฌ๊ณ  ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ํ”„๋ŸฐํŠธ์—”๋“œ ์„ธ๊ณ„์˜ ๋‹ค๋ฆฌ ์•„๋ž˜๋กœ ๋งŽ์€ ๋ฌผ์ด ์ง€๋‚˜๊ฐ”์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ด ์•„์ด๋””์–ด๋Š” ์—ฌ์ „ํžˆ ๋น„๋ฐ€์— ์‹ธ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” SSR์„ ์ง€์›ํ•˜๋Š” Vue ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœ๋•์…˜์— ์ถœ์‹œํ•˜์ง€ ์•Š๊ณ  ํ•œ ๊ฐ€์ง€ ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์™œ? ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ๋‹ต์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์„œ๋ฒ„์˜ ์‘๋‹ต ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์‹ถ์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ƒํƒœ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์„œ๋ฒ„๊ฐ€ ์ˆ˜ํ–‰ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์ ์ ˆํ•˜๊ณ  ์œ ์šฉํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ์‹ค์ œ๋กœ ์‚ฌ์†Œํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒํƒœ๋Š” ๋‹จ์ˆœํžˆ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์— ์ถ”๊ฐ€ํ•˜๋ฉด Vue๋Š” ์ด๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๋ ˆ์ด์•„์›ƒ์— ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. window.__INITIAL_STATE__.

๋ฐœ์ƒํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ์ˆœํ™˜ ๊ตฌ์กฐ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ˆœํ™˜ ์ฐธ์กฐ); ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ ํ‰ํ‰ํ•œ ๊ตฌ์กฐ๋กœ ๊ฐ„๋‹จํžˆ ๊ต์ฒดํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ UGC ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ HTML์ด ๊นจ์ง€์ง€ ์•Š๋„๋ก ๋ฐ์ดํ„ฐ๋ฅผ HTML ์—”ํ„ฐํ‹ฐ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” he.

๋‹ค์‹œ ๊ทธ๋ฆฌ๊ธฐ ์ตœ์†Œํ™”

์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ Node JS ์ธ์Šคํ„ด์Šค๋Š” SSR๊ณผ ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ๋ฐœ์ƒํ•˜๋Š” API์˜ "ํ”„๋ก์‹œ"๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋…ธ๋“œ๊ฐ€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ์ด๊ณ  SSR ๊ธฐ๋Šฅ์ด ๋™๊ธฐ์‹์ด๋ฏ€๋กœ JS ์ฝ”๋“œ๊ฐ€ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ธ์ฆ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝœ์Šคํƒ์ด ๋‹ค๋ฅธ ์ž‘์—…์œผ๋กœ ๋ฐ”์œ ๋™์•ˆ์—๋Š” ์„œ๋ฒ„๊ฐ€ ์ž์‹ ์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์ง€๋งŒ ์‚ฌ์šฉ์ž ์„ธ์…˜์„ ๊ณ ๋ คํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ๋ จ์ด ๋ฉˆ์ถ”์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋กœ๊ทธ์ธ์„ ๊ณ ๋ คํ•˜์—ฌ ์ดˆ๊ธฐ ์ƒํƒœ์— ์˜ฌ๋ฐ”๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋„๋ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ต์œกํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋‘ ๊ฐ€์ง€๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„ ๊ฐ„ ์š”์ฒญ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  • Node JS ๋ ˆ์ด์–ด๋ฅผ ๋‘ ๊ฐœ์˜ ๋ณ„๋„ ์ธ์Šคํ„ด์Šค๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์†”๋ฃจ์…˜์€ ์„œ๋ฒ„์—์„œ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๊ณ , ๋‘ ๋ฒˆ์งธ ์†”๋ฃจ์…˜์€ ์ž‘์—… ์™„๋ฃŒ ์‹œ๊ฐ„์„ ์ตœ์†Œ ํ•œ ๋‹ฌ ์ด์ƒ ์—ฐ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•? Habr์€ ์ข…์ข… ์ €ํ•ญ์ด ๊ฐ€์žฅ ์ ์€ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ณต์‹์ ์œผ๋กœ๋Š” ์•„์ด๋””์–ด์—์„œ ํ”„๋กœํ† ํƒ€์ž…๊นŒ์ง€์˜ ์ฃผ๊ธฐ๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์ด๊ณ ์ž ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐ”๋žŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ’ˆ์— ๋Œ€ํ•œ ํƒœ๋„ ๋ชจ๋ธ์€ booking.com์˜ ๊ฐ€์ •์„ ๋‹ค์†Œ ์—ฐ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์ฐจ์ด์ ์€ Habr์ด ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ํ›จ์”ฌ ๋” ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด๊ณ  ๊ทธ๋Ÿฌํ•œ ๊ฒฐ์ •์„ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ท€ํ•˜์—๊ฒŒ ๋งก๊ธด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋…ผ๋ฆฌ์™€ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋‚ด ์š•๊ตฌ์— ๋”ฐ๋ผ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”ํžˆ ๊ทธ๋ ‡๋“ฏ์ด ์กฐ๋งŒ๊ฐ„ ๊ทธ์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฑฐ์˜ ์ฆ‰์‹œ ์ง€๋ถˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ง์— ์ผํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ธ€์„ ์ผ์Šต๋‹ˆ๋‹ค. ์‚ฌํ›„ ๋ถ€๊ฒ€ ์„œ๋ฒ„๋ฅผ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์˜ค๋ฅ˜๋Š” ๋งค์šฐ ์–ด๋ฆฌ์„์—ˆ๊ณ , ๊ทธ์— ๊ด€๋ จ๋œ ๋ฒ„๊ทธ๋„ ์žฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค, ๋ถ€๋„๋Ÿฌ์šด ์ผ์ด์ง€๋งŒ ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋น„ํ‹€๊ฑฐ๋ฆฌ๊ณ  ์‹ ์Œํ•˜๋Š” ๊ฐ€์šด๋ฐ ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ๋‚ด PoC๋Š” ์ƒ์‚ฐ์— ๋“ค์–ด๊ฐ”๊ณ  ์ƒˆ๋กœ์šด "2๋…ธ๋“œ" ์•„ํ‚คํ…์ฒ˜๋กœ์˜ ์ „ํ™˜์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ƒ๋‹นํžˆ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์œผ๋กœ ๋ชฉํ‘œ๊ฐ€ ๋‹ฌ์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ค‘์š”ํ•œ ๋‹จ๊ณ„์˜€์Šต๋‹ˆ๋‹ค. SSR์€ ์™„์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ๊ณ  UI๊ฐ€ ํ›จ์”ฌ ๋” ์ฐจ๋ถ„ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜๋ฆฌํŒฉํ† ๋ง์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์ดํ›„์˜ ๋ชจ๋ฐ”์ผ Habr ์ธํ„ฐํŽ˜์ด์Šค

๊ถ๊ทน์ ์œผ๋กœ ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์˜ SSR-CSR ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทธ๋ฆผ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

๏ฟผHabr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜"3๋…ธ๋“œ" SSR-CSR ํšŒ๋กœ. Node JS API๋Š” ํ•ญ์ƒ ๋น„๋™๊ธฐ I/O๋ฅผ ์œ„ํ•ด ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ SSR ๊ธฐ๋Šฅ์€ ๋ณ„๋„์˜ ์ธ์Šคํ„ด์Šค์— ์œ„์น˜ํ•˜๋ฏ€๋กœ SSR ๊ธฐ๋Šฅ์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ ์ฒด์ธ #XNUMX์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ค‘๋ณต ์š”์ฒญ ์ œ๊ฑฐ

์กฐ์ž‘์ด ์ˆ˜ํ–‰๋œ ํ›„ ํŽ˜์ด์ง€์˜ ์ดˆ๊ธฐ ๋ Œ๋”๋ง์€ ๋” ์ด์ƒ ๊ฐ„์งˆ์„ ์œ ๋ฐœํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ SPA ๋ชจ๋“œ์—์„œ Habr์„ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ์ „ํžˆ ํ˜ผ๋ž€์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํ๋ฆ„์˜ ๊ธฐ๋ณธ์€ ํ˜•ํƒœ์˜ ์ „ํ™˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์‚ฌ ๋ชฉ๋ก โ†’ ๊ธฐ์‚ฌ โ†’ ๋Œ“๊ธ€ ๋ฐ˜๋Œ€๋กœ, ์šฐ์„  ์ด ์ฒด์ธ์˜ ์ž์› ์†Œ๋น„๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜๊ฒŒ์‹œ๋ฌผ ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์š”์ฒญ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“ค ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์Šคํฌ๋ฆฐ์บ์ŠคํŠธ์—์„œ ๋’ค๋กœ ์Šค์™€์ดํ”„ํ•  ๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ธฐ์‚ฌ ๋ชฉ๋ก์„ ๋‹ค์‹œ ์š”์ฒญํ•˜๊ณ  ์š”์ฒญํ•˜๋Š” ๋™์•ˆ ๊ธฐ์‚ฌ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋”˜๊ฐ€์—์„œ ์‚ฌ๋ผ์ง์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ๋ชฉ๋ก ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋กœ์ปฌ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŒŒ๊ธฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ „์—ญ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ Vuex ์•„ํ‚คํ…์ฒ˜๋Š” ์ •๋ฉด์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ํŽ˜์ด์ง€์— ์—ฐ๊ฒฐ๋˜๊ณ , ํŽ˜์ด์ง€๋Š” ๋‹ค์‹œ ๊ฒฝ๋กœ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋ชจ๋“ˆ์€ "์ผํšŒ์„ฑ"์ž…๋‹ˆ๋‹ค. ์ดํ›„ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ๋ชจ๋“ˆ์ด ๋‹ค์‹œ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ArticlesList: [
  { Article1 },
  ...
],
PageArticle: { ArticleFull1 },

์ „์ฒด์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“ˆ์„ ๊ฐ€์ง€๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค ๊ธฐ์‚ฌ๋ชฉ๋ก, ์—ฌ๊ธฐ์—๋Š” ์œ ํ˜•์˜ ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ๋ฐ ๋ชจ๋“ˆ ํŽ˜์ด์ง€๊ธฐ์‚ฌ, ์ด๋Š” ๊ฐ์ฒด์˜ ํ™•์žฅ ๋ฒ„์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ, ์ผ์ข…์˜ ๊ธฐ์‚ฌ์ „์ฒด. ์ „๋ฐ˜์ ์œผ๋กœ ์ด ๊ตฌํ˜„ ์ž์ฒด์—๋Š” ๋”์ฐํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์ˆœ์ง„ํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋งค์šฐ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“ˆ์„ ์žฌ์„ค์ •ํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์‚ฌ ํ”ผ๋“œ ๊ฐ„ ์ „ํ™˜์€ /ํ”ผ๋“œ โ†’ /๋ชจ๋‘, ๊ฐœ์ธ ํ”ผ๋“œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฒƒ์„ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ๋ชฉ๋ก, ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์‹œ ์š”์ฒญ์ด ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค.

์ฃผ์ œ์— ๋Œ€ํ•ด ํŒŒํ—ค์นœ ๋ชจ๋“  ๊ฒƒ์„ ์ˆ˜์ง‘ํ•œ ํ›„ ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ตฌ์กฐ๋ฅผ ๊ณต์‹ํ™”ํ•˜์—ฌ ๋™๋ฃŒ๋“ค์—๊ฒŒ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ผ์˜๋Š” ๊ธธ์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์ฐฌ์„ฑ๋ก ์ด ์˜๊ตฌ์‹ฌ์„ ๋Šฅ๊ฐ€ํ–ˆ๊ณ  ์ €๋Š” ์‹คํ–‰์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ์ •์˜ ๋…ผ๋ฆฌ๋Š” ๋‘ ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ์ž˜ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ๋จผ์ € ํŽ˜์ด์ง€์—์„œ Vuex ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ฒฝ๋กœ์— ์ง์ ‘ ๋ฐ”์ธ๋”ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ์Šคํ† ์–ด์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐ๊ธˆ ๋” ๋งŽ์•„์ง€๊ณ  getter๋„ ์ข€ ๋” ๋ณต์žกํ•ด์ง€์ง€๋งŒ ๊ธฐ์‚ฌ๋ฅผ ๋‘ ๋ฒˆ ๋กœ๋“œํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์ด๋Š” ์•„๋งˆ๋„ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ์ฃผ์žฅ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

ArticlesList: {
  ROUTE_FEED: [ 
    { Article1 },
    ...
  ],
  ROUTE_ALL: [ 
    { Article2 },
    ...
  ],
}

ํ•˜์ง€๋งŒ ๊ธฐ์‚ฌ ๋ชฉ๋ก์ด ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ ๊ฐ„์— ๊ฒน์น  ์ˆ˜ ์žˆ๊ณ  ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ๊ธฐ์‚ฌ ๊ฒŒ์‹œ๋ฌผ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ ๊ธฐ์‚ฌ์ „์ฒด? ์ด ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

ArticlesIds: {
  ROUTE_FEED: [ '1', ... ],
  ROUTE_ALL: [ '1', '2', ... ],
},
ArticlesList: {
  '1': { Article1 }, 
  '2': { Article2 },
  ...
}

๊ธฐ์‚ฌ๋ชฉ๋ก ์—ฌ๊ธฐ์—๋Š” ์ผ์ข…์˜ ๊ธฐ์‚ฌ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ค‘์— ๋‹ค์šด๋กœ๋“œ๋œ ๋ชจ๋“  ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ์ฃผ์˜ ๊นŠ๊ฒŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋Š” ์—ญ ์‚ฌ์ด์˜ ์ง€ํ•˜์ฒ  ์–ด๋”˜๊ฐ€์—์„œ ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ์„ ์ˆ˜ ์žˆ๋Š” ํŠธ๋ž˜ํ”ฝ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ, ์ด๋ฏธ ๋‹ค์šด๋กœ๋“œํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋„๋ก ๊ฐ•์š”ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์‹œ๋Š” ์ด๋Ÿฌํ•œ ๊ณ ํ†ต์„ ๋ผ์น˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. . ๊ฐ์ฒด ๊ธฐ์‚ฌ ID ๋‹จ์ˆœํžˆ ๊ฐ์ฒด์— ๋Œ€ํ•œ ID(์˜ˆ: "๋งํฌ")์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ. ์ด ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฝ๋กœ์— ๊ณตํ†ต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ํ™•์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ.

๊ธฐ์‚ฌ ๋ชฉ๋ก์˜ ์ถœ๋ ฅ๋„ ๋”์šฑ ํˆฌ๋ช…ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์ž ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ธฐ์‚ฌ ID๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•˜๊ณ  ๊ธฐ์‚ฌ ํ‹ฐ์ € ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ทธ๋ ค ID๋ฅผ ์†Œํ’ˆ์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ํ•˜์œ„ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์ฐจ๋ก€๋กœ ๋‹ค์Œ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ๋ชฉ๋ก. ์ถœํŒ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ฉด ๋‹ค์Œ์—์„œ ๊ธฐ์กด ๋‚ ์งœ๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ๋ชฉ๋ก, ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋„๋ก ์š”์ฒญํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ์กด ๊ฐ์ฒด์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋” ๋‚˜์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์œ„์—์„œ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์šด๋กœ๋“œํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋” ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด๊ณ  ์ด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์™ธ์—๋„ ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜์— ์™„๋ฒฝํ•˜๊ฒŒ ๋“ค์–ด๋งž๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๊ฐ€๋Šฅ์„ฑ์˜ ๊ธธ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์‚ฌ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋Œ€๋กœ ํ”ผ๋“œ์— ๊ธฐ์‚ฌ๋ฅผ ํด๋งํ•˜๊ณ  ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ„๋‹จํžˆ "์ €์žฅ์†Œ"์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ๋ชฉ๋ก, ์ƒˆ ID์˜ ๋ณ„๋„ ๋ชฉ๋ก์„ ๊ธฐ์‚ฌ ID ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. "์ƒˆ ์ถœํŒ๋ฌผ ํ‘œ์‹œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ๊ธฐ์‚ฌ ๋ชฉ๋ก ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ƒˆ ID๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๊ฑฐ์˜ ๋งˆ์ˆ ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ๋ฅผ ๋”์šฑ ์ฆ๊ฒ๊ฒŒ ๋งŒ๋“ค๊ธฐ

๋ฆฌํŒฉํ† ๋ง ์ผ€์ดํฌ์˜ ์žฅ์‹์€ ๋Š๋ฆฐ ์ธํ„ฐ๋„ท์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์„ ์กฐ๊ธˆ ๋œ ์ขŒ์ ˆํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ผˆ๋Œ€ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ์—†์—ˆ์œผ๋ฉฐ ์•„์ด๋””์–ด์—์„œ ํ”„๋กœํ† ํƒ€์ž…๊นŒ์ง€์˜ ๊ณผ์ •์€ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ 2์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋””์ž์ธ์€ ์‹ค์ œ๋กœ ๊ทธ ์ž์ฒด๋กœ ๊ทธ๋ ค์กŒ์œผ๋ฉฐ, ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๊ฐ„๋‹จํ•˜๊ณ  ๊ฑฐ์˜ ๊นœ๋ฐ•์ด๋Š” div ๋ธ”๋ก์„ ๋ Œ๋”๋งํ•˜๋„๋ก ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค. ์ฃผ๊ด€์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋กœ๋”ฉ ๋ฐฉ์‹์€ ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž ์‹ ์ฒด์˜ ์ŠคํŠธ๋ ˆ์Šค ํ˜ธ๋ฅด๋ชฌ ์–‘์„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. ๋ผˆ๋Œ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Habr ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๊ทธ: ๋ฆฌํŒฉํ„ฐ๋ง ๋ฐ ๋ฐ˜์˜
ํ•˜๋ธŒ๋ผ๋กœ๋”ฉ

๋ฐ˜์˜

์ €๋Š” Habr์—์„œ 6๊ฐœ์›” ๋™์•ˆ ์ผํ–ˆ๋Š”๋ฐ ์นœ๊ตฌ๋“ค์ด ์•„์ง๋„ ๋ฌป์Šต๋‹ˆ๋‹ค. ์Œ, ๊ทธ๊ณณ์ด ๋งˆ์Œ์— ๋“œ๋‚˜์š”? ์•Œ์•˜์–ด, ํŽธ์•ˆํ•ด - ์‘. ํ•˜์ง€๋งŒ ์ด ์ง์—…์ด ๋‹ค๋ฅธ ์ง์—…๊ณผ ๋‹ค๋ฅธ ์ ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ œํ’ˆ์— ์™„์ „ํžˆ ๋ฌด๊ด€์‹ฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋ชจ๋ฅด๊ฑฐ๋‚˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ํŒ€์—์„œ ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹น์‹ ์€ ์ž์‹ ์ด ํ•˜๋Š” ์ผ์— ๋Œ€ํ•ด ์ฑ…์ž„๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ท€ํ•˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์†Œ์œ ์ž๊ฐ€ ๋˜๊ณ , ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ œํ’ˆ ํšŒ์˜์— ์ฐธ์—ฌํ•˜๊ณ , ์ œ์•ˆํ•˜๊ณ  ์Šค์Šค๋กœ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ์ œํ’ˆ์„ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋ฉ‹์ง„ ์ผ์ด๋ฉฐ, ์ž์‹ ๋ณด๋‹ค ์ด๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ •๋ง ๋†€๋ผ์šด ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค(๋น„๊ผฌ๋Š” ๋ง์ด ์•„๋‹™๋‹ˆ๋‹ค).

์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถœ์‹œ๋œ ํ›„ ์šฐ๋ฆฌ๋Š” ๊ธ์ •์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜์œผ๋ฉฐ ๋งค์šฐ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ณ ๋ฌด์ ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋” ๋งŽ์ด ์“ฐ์„ธ์š”.

์ „์—ญ ๋ณ€์ˆ˜ ์ดํ›„์— ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ํ”„๋ก์‹œ ๋ ˆ์ด์–ด๋ฅผ ๋ณ„๋„์˜ ์ธ์Šคํ„ด์Šค์— ํ• ๋‹นํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Œ์„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. "2๋…ธ๋“œ" ์•„ํ‚คํ…์ฒ˜๋Š” ์ด๋ฏธ ๊ณต๊ฐœ ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ˆ„๊ตฌ๋‚˜ ์ด๋ฅผ ์ „ํ™˜ํ•˜์—ฌ ๋ชจ๋ฐ”์ผ Habr์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ๊ฒŒ ๋‹ค์•ผ. ๋Œ“๊ธ€์„ ํ†ตํ•ด ๊ท€ํ•˜์˜ ๋ชจ๋“  ์งˆ๋ฌธ์— ๊ธฐ๊บผ์ด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€