Razzle: ๋ˆ„๊ฐ€ Razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 08์›” 28์ผ  ยท  25์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jaredpalmer/razzle

๊ท€์‚ฌ๊ฐ€ ํ”„๋กœ๋•์…˜์—์„œ Razzle์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ README์—์„œ ์–ธ๊ธ‰ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ท€ํ•˜๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

pinned question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ทธ๋ƒฅ ๊ฐ€์ง€๊ณ  ๋†€์•„ ์ฃผ์ง€๋งŒ ์ดˆ๋ณด์ž ์šฉ create-react-app๊ณผ Next ๋“ฑ๊ณผ ๊ฐ™์€ ์™„์ „ํ•œ ํ”„๋ ˆ์ž„ ์›Œํฌ ์‚ฌ์ด์˜ ๊ฒฉ์ฐจ๋ฅผ ์ •ํ™•ํžˆ ์ฑ„์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ๋งŽ์€ ํ•ญ๋ชฉ์„ ๋„ฃ๊ณ  ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•˜๋ ค๋Š” ์œ ํ˜น์ด ํด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์œ ์ง€๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ชจ๋“  25 ๋Œ“๊ธ€

๊ทธ๋ƒฅ ๊ฐ€์ง€๊ณ  ๋†€์•„ ์ฃผ์ง€๋งŒ ์ดˆ๋ณด์ž ์šฉ create-react-app๊ณผ Next ๋“ฑ๊ณผ ๊ฐ™์€ ์™„์ „ํ•œ ํ”„๋ ˆ์ž„ ์›Œํฌ ์‚ฌ์ด์˜ ๊ฒฉ์ฐจ๋ฅผ ์ •ํ™•ํžˆ ์ฑ„์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ๋งŽ์€ ํ•ญ๋ชฉ์„ ๋„ฃ๊ณ  ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•˜๋ ค๋Š” ์œ ํ˜น์ด ํด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์œ ์ง€๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €๋Š” ๋Œ€ํ–‰์‚ฌ์—์„œ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ๋Œ€๊ทœ๋ชจ ๊ณต๊ฐœ ๋ฐ˜์‘ ์‚ฌ์ดํŠธ์˜ ํ”„๋กœ๋•์…˜์—์„œ Razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์ƒ์‚ฐ / ๋Œ€๊ทœ๋ชจ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•˜๊ณ  ์žˆ์Œ์„ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํšŒ์‚ฌ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์‚ฐ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์ผ๊ธ‰ ๋น„๋ฐ€์ด ์•„๋‹ˆ๋ฉฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋„ ์ž‘์Šต๋‹ˆ๋‹ค. ์•„์ง ์™„์ „ํžˆ ์™„๋ฃŒ๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๊ตฌํ˜„ ๋œ ๊ธฐ๋Šฅ์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Facebook Searcher ๋ผ๊ณ ํ•˜๋ฉฐ ํ˜„์žฌ ์–‘์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋งž์ถค ๊ฒ€์ƒ‰์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Search is Back์—์„œ ์˜๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค

@jaredpalmer ์›ํ•œ๋‹ค๋ฉด ์‡ผ์ผ€์ด์Šค ์„น์…˜์—์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ์ƒํƒœ์—์„œ๋Š” ์ •์  ์‚ฌ์ดํŠธ ์ผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ์„ฑ๋Šฅ๋ฉด์—์„œ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

์ €๋Š” ๊ทธ๊ฒƒ์„ ์ œ ํ•™์ƒ์˜ ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ฅผ์œ„ํ•œ ์ถœ๋ฐœ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฒญ์†Œ๋…„์„ ์–ด๋ ค์›€์— ์ฒ˜ํ•˜๊ฒŒํ•˜๊ณ  ๊ทธ๋“ค ์ค‘ 0 ๋ช…์œผ๋กœ๋ถ€ํ„ฐ ์ฃผ๋‹ˆ์–ด ํ’€ ์Šคํƒ ์›น ๊ฐœ๋ฐœ์ž๋ฅผ ๋งŒ๋“œ๋Š” NGO์—์„œ ๊ฐ€๋ฅด์นฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ชจ๋“  ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋„๊ตฌ์— ์ต์ˆ™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Razzle์€ ๋ชจ๋“  ๊ฒƒ์„ ์—ฐ๊ฒฐํ•ด์•ผํ•˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์ธ ์ฐจ์›์—์„œ ์ด๊ฒƒ์€ ์•„์ด๋””์–ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๋ฉฐ ํƒ€์ดํ”„ ์Šคํฌ๋ฆฝํŠธ์™€ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๋™ํ˜• ๋ Œ๋”๋ง์˜ ์‹ค์ œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์œ ์ผํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Google VM์— ์„ค์น˜๋œ razzle์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€๋‚œํ•œ ์‚ฌ๋žŒ์€ ์ตœ์‹  js ๊ฐœ๋ฐœ์„ ์ดํ•ดํ•˜๊ณ  ๋ฐฐ์šฐ๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด VOD Platform Facets Edge์— ๋Œ€ํ•ด Untitled Kingdom ์—์„œ Razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Facets Edge๋Š” NGO ํŒŒํŠธ๋„ˆ Facets๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
์ „ ์„ธ๊ณ„์˜ ์˜ˆ์ˆ ๊ณผ ๋…๋ฆฝ ์˜ํ™”์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ํด๋กœ์ฆˆ ๋ฒ ํƒ€ ๋‹จ๊ณ„์— ์žˆ์ง€๋งŒ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ €์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ๋ฌด๋ฃŒ ํ‰๊ฐ€ํŒ์— ์•ก์„ธ์Šคํ•˜์‹ญ์‹œ์˜ค.

Datnoid ๋Š” ์ตœ๊ณ ์˜ ์•”ํ˜ธ

Razzle ๋ฐ Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GKE์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. Google kubernetes ์—”์ง„.

Thorgate ๋Š” Razzle์„ ์‚ฌ์šฉํ•˜์—ฌ SPA ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ‹์ง„ ๊ฒƒ๋“ค. ๊ณ„์†ํ•ด.

razzle ๋ฐ afterjs ๋Š” ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค!, ์ €๋Š” razzle, afterjs, typescript, rematch, react-router๋กœ ๋นŒ๋“œ ๋œ HackerNews ํด๋ก ์„ ๋ฒ”์šฉ ๋ Œ๋”๋ง ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. razzle-hackernews

YOLO Technology๋Š” ํ˜„์žฌ SAAS ์ œํ’ˆ์— Razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ ํ•ด๋ด! https://bossjob.ph

https://www.totalmilk.com ์šฐ์‚ฐ์˜ ์ƒˆ๋กญ๊ณ  ์˜ˆ์ •๋œ ํ”„๋กœ์ ํŠธ๋Š” razzle (node, graphql, mongodb)๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์•ฑ
https://payme.totalmilk.com/
https://hauler.totalmilk.com/

๋ฒ ํƒ€ ์•ฑ
https://payroll-beta.totalmilk.com
https://principal-beta.totalmilk.com
https://docs.totalmilk.com/

๊ณง ๋ฉ”์ธ ์›น ์‚ฌ์ดํŠธ https://www.totalmilk.com ๋„ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.

Podchaser๋Š” ๋ช‡ ์ฃผ ์ „๋ถ€ํ„ฐ ํ”„๋กœ๋•์…˜์— razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://www.podchaser.com

์šฐ๋ฆฌ๋Š” ๋” ๋‚˜์€ ์ฝ”๋“œ ๋ถ„ํ•  ๋ฐ ํŠธ๋ฆฌ ์‰์ดํ‚น์„ ์œ„ํ•ด ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋กœ ์ „ํ™˜ํ•˜๋ฉด์„œ ๋ชจ๋“  ๊ฒƒ์„ ์„œ๋ฒ„ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŽ์ด ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์šฐ๋ฆฌ๋Š” Grain Discovery์—์„œ ๋ฐ˜์ง์ด๋Š” ์ƒˆ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•ด razzle์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค . ์ง€๋‚œ์ฃผ์— ์˜ฌ๋ผ ์™”์Šต๋‹ˆ๋‹ค :

์šฐ๋ฆฌ๋Š” : https://www.noritex.com/es/

FotonTech ๋Š” https://confy.app ์—์„œ ์‚ฌ์šฉํ•˜๊ณ 
๋‚ด๋ถ€์ ์œผ๋กœ ์ˆ˜ํ–‰ ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š” ์˜คํ”ˆ ์†Œ์Šค ์ €์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/FotonTech/golden-stack

Influence Grid์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://www.influencegrid.com/

CloudHospital์ด ๋ฐฉ๊ธˆ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
Https://icloudhospital.com
์šฐ๋ฆฌ๋Š” next.js๋กœ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์ตœ๊ทผ์— ์ด๊ฒƒ์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ, ๋Œ€๋ถ€๋ถ„ Docker์˜ ๋กœ์ปฌ ์†Œ๊ทœ๋ชจ ์›น ํŽ˜์ด์ง€์— razzle์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ์„ค์ • : https://github.com/fivethreeo/razzle-with-docker-nginx

https://teleport.us ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค, ์ƒˆ๋กœ์šด ์†Œ์…œ ๋ฏธ๋””์–ด ์•ฑ https://ecency.com

๋‚˜๋Š” razzle์„ nextjs (๋‚ด ์†์— ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‹ค)์™€ ๋น„๊ตํ•˜๋ฉด์„œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋™์•ˆ์ด ๋…ธํŠธ๋ฅผ ์ผ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œํ•˜๊ธฐ์— ์ ์ ˆํ•œ ์žฅ์†Œ๊ฐ€๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ €๋Š” 2 ๊ฐœ์˜ ๋ธŒ๋žœ์น˜์—์„œ ๋™์‹œ์— https://www.memory.com (์ค‘๊ฐ„ ํฌ๊ธฐ์˜ CRA SPA, SEO๊ฐ€ ์ข‹์ง€ ์•Š๊ณ  ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์Œ)๋ฅผ ๋ฆฌํŒฉํ† ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

1) react-router-6-beta (์ด์ „ ๋ฆฌํŒฉํ„ฐ๋ง ํ›„ ๊ณ ์ •๋จ)๋ฅผ ์‚ฌ์šฉํ•œ razzle,
2) nextjs

ํ˜„์žฌ ์ƒ์‚ฐ๋Ÿ‰๊ณผ ๋น„๊ตํ•˜๋ ค๋ฉด :
v.0) ์‚ฌ์šฉ์ž ์ •์˜ ์‚ฌ์ „ ๋ Œ๋”๋ง ์†”๋ฃจ์…˜ (ํ•ด์ปค : ์บ์‹œ ๋ˆ„๋ฝ์‹œ ์š”์ฒญ์‹œ chromedp ์ธ๋ผ์ธ ํšŒ์ „, html ์ œ๊ณต, ์ฐจ์ด๋กœ ์ธํ•ด ์ˆ˜ํ™”๋ฌผ ๋Œ€์‹  ๋ Œ๋”๋ง, UA = google / bing ๋“ฑ์˜ ๊ฒฝ์šฐ์—๋งŒ, ํฌ๋ก ์ด 0.5M ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์ „ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒฝ์šฐ) ์‹œ๊ณ„-๋†’์€ ์œ ์ง€ ๋ณด์ˆ˜)

์•ฑ ๊ฐœ์š” :

CRA ๋ฐ”๋‹๋ผ์˜ ์ด 9MB JS ๋นŒ๋“œ (์ฝ”๋“œ ๋ถ„ํ•  ํฌํ•จ-~ 7MB ์ œ์™ธ)
ํ”„๋ŸฐํŠธ ์—”๋“œ TSX LOC : 118k
1826 ๋ถ€ํ’ˆ
์ตœ๋Œ€ 500,000 ๊ฐœ์˜ ํ”„๋ŸฐํŠธ ์—”๋“œ ํ™œ์„ฑ ํŽ˜์ด์ง€ (๋Œ€๋ถ€๋ถ„ ์‚ฌ์šฉ์ž ์ƒ์„ฑ ์ฝ˜ํ…์ธ )
๋‹จ์ผ ์ง„์ž… ์ 

๋‚ด๊ฐ€ ์ฐพ์€ ๊ฒƒ์€ :

1) Razzle
-ํ”Œ๋Ÿฌ๊ทธ ์•ค ํ”Œ๋ ˆ์ด, server.tsx ๋ฐ client.tsx๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ฝ”๋“œ ์žฌ ์ž‘์„ฑ ์—†์Œ
-์‰ฌ์šด ์„ค์ •; ํ•˜์ง€๋งŒ ์˜ฌ๋ฐ”๋ฅธ DOM ์กฐ์ •์œผ๋กœ ์ œ๋Œ€๋กœํ•˜๊ธฐ ์œ„ํ•ด : ๋งŽ์€ ์‹œํ–‰ ์ฐฉ์˜ค-์‚ฌ์šฉ์ž ์ •์˜ ์›นํŒฉ SPA๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ์–ด๋ ค์›€
-react-router๋กœ ๋‹ค์Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์กฐ์ • ๊ฐ€๋Šฅ
-ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค CRA ์ธ / ์•„์›ƒ์œผ๋กœ ์‰ฝ๊ฒŒ ๊ต์ฒด ๊ฐ€๋Šฅ, ๋™์ผํ•œ ์ €์žฅ์†Œ์—์„œ CRA ์‹คํ–‰ ๊ฐ€๋Šฅ
-@ loadable / server๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฆ‰์‹œ ์ฝ”๋“œ ๋ถ„ํ• 
-SSR ๋งˆํฌ ์—…์„ ์ˆ˜ํ™”์™€ ์‰ฝ๊ฒŒ ์กฐ์ •
-์ œ๋กœ ์ž ๊ธˆ
-๊ตฌ์„ฑ์ด ํ”๋“ค๋ฆฌ๊ณ  ๊นจ์ง€๊ธฐ ์‰ฌ์šฐ ๋ฉฐ ๊ณ ์น˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ๋Š๋‚๋‹ˆ๋‹ค.

2) NextJS
-i18n, Link ๋ฐ Trans ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.
-/ pages ๊ตฌ์กฐ๋Š” ๊ฝค ์šฐ์Šค๊ฝ์Šค๋Ÿฝ๊ณ , PHP MVC๋ฅผ ์ƒ๊ฐ ๋‚˜๊ฒŒํ•ฉ๋‹ˆ๋‹ค.-ํ˜„์žฌ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋งŽ์€ ํ•ด์ปค๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งŽ์€ ์ผ์„ํ–ˆ์ง€๋งŒ ์ง€์ ์„ ์ˆจ๊ธธ ๋ฐ”๋ž˜
-์•„๋งˆ๋„ ๊ดœ์ฐฎ์€ ๋ฌธ์„œ์ด์ง€๋งŒ ์–ด์จŒ๋“  ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
-๊ฒฝ๋กœ๊ฐ€ ๋งŽ์€ SPA ๋‹จ์ผ ํ•ญ๋ชฉ ์•ฑ์— ๋Œ€ํ•œ ์—ด์•…ํ•œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜, ์ฃผ๋ฌธํ˜• ํŽ˜์ด์ง€ ๊ตฌ์ถ•์€ ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. dev box์—์„œ์˜ e2e ํ…Œ์ŠคํŠธ๋„ ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.-์•„๋งˆ๋„ ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๋ฏธ๋ฆฌ ๊ตฌ์ถ•ํ•˜๋„๋ก ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค-๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋œปํ•˜๊ฒŒํ•˜๊ธฐ ์œ„ํ•ด bash๋กœ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์ปฌ๋งํ•˜์ง€ ์•Š๊ณ ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
-์ž˜๋ชป๋œ ์ฝ”๋“œ ๋ถ„ํ• ๋กœ ์ธํ•ด ๋ฒˆ๋“ค์ด ์ด 16MB๊ฐ€๋ฉ๋‹ˆ๋‹ค.
-SSR๊ณผ ํ•˜์ด๋“œ ๋ ˆ์ด์…˜์„ ์กฐํ™”์‹œํ‚ค๋Š” ์•…๋ชฝ (๋จธํ‹ฐ๋ฆฌ์–ผ UI)
-ํ•˜์ง€๋งŒ, ๋‹น์‹ ์ด ์‹ ๋ขฐํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค ์‹œ์ž‘์ด ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
-๋‹ค์Œ์—์„œ ๊บผ๋‚ด๊ธฐ์œ„ํ•œ Codemod๋Š” ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์–ด๋ ต๊ณ , Trans ๋ฐ Link ๋Š” ์ž๋™ํ™”ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜๋™ ์ฐพ๊ธฐ-๊ต์ฒด ์ธ ์œ ์ผํ•œ ์ถœ๊ตฌ์— ๋ฌถ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ "dynamic"์ด์žˆ๋Š” nextjs์™€ ์ตœ์„ ์˜ ๋…ธ๋ ฅ์€ @loadable์„ ์‚ฌ์šฉํ•˜๋Š” Razzle์— ๋น„ํ•ด ์ •๋ง ๋ฌด๊ฑฐ์šด ์•ฑ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” nextjs๊ฐ€ ํ™ˆํŽ˜์ด์ง€์—์„œ 77์˜ ํŽ˜์ด์ง€ ์†๋„๋ฅผ ์ด๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. JS ์ด ๋‹ค์šด๋กœ๋“œ 525kb, Razzle 98 ํŽ˜์ด์ง€ ์†๋„ 332kb (๋‘˜ ๋‹ค ๊ณต๊ฒฉ์ ์ธ ๋ถ„ํ•  ์‚ฌ์šฉ)

Razzle, ๋‚˜๋Š” ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  JS ์ด 332kb๋กœ 98 ํŽ˜์ด์ง€ ์†๋„๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ next๊ฐ€์žˆ๋Š” ๋‹ค๋ฅธ ํ™”๋ฉด์€ ํƒ์ƒ‰๊ณผ ๋‹ค์Œ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ํžˆํŠธ๋ฅผ ๋ชจ๋‘ ์ˆ˜ํ–‰ ํ•  ๋•Œ ํ›จ์”ฌ ๋” ํฐ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

Nextjs๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ ๊ณต์œ  ๋ฒˆ๋“ค์— ๋งŽ์€ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.

NextJS-์ž๋™ ํ”„๋ฆฌ ํŽ˜์น˜๋Š” ์œ„ํ—˜ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ์™ผ์ชฝ ํƒ์ƒ‰ ๋งํฌ๋ฅผ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์€ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ํ›„ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋ถ€์ ์ ˆํ•œ ํŽ˜์ด๋กœ๋“œ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ / pages ๋งŒ ํ”„๋ฆฌ ํŽ˜์น˜ํ•˜๋ฉฐ ํŠน์ • ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ”„๋ฆฌ ํŽ˜์น˜ํ•˜๋„๋ก ์ง€์‹œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Razzle +๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ + onMouseEnter = {component.preload} (RAF ์ฝœ๋ฐฑ ํฌํ•จ) = ์šฐ์ˆ˜ํ•˜์ง€๋งŒ ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€๋‹ด์ด ๋” ํฝ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ razzle์€ ์ด์•Œ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋Š” CRA์˜ ๋Œ€์ฒดํ’ˆ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

nextjs ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•˜๊ณ  Razzle์„ ํ”„๋กœ๋•์…˜์œผ๋กœ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘-๊ธฐ๋ณธ์ ์œผ๋กœ Next๋กœ ์œ ์šฉํ•œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์–ด์จŒ๋“  ์‚ฌ์šฉ์ž ์ •์˜ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ Razzle์„ ์‚ฌ์šฉํ•˜๋ฉด ์•„์ง nextjs์—์„œ ์š”์ ์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋…๋‹จ์  ์ธ API.

Razzle ์„ฑ๊ณต ์‚ฌ๋ก€๋ฅผ ๋“ค์–ด์„œ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. :) ๊ณ ๋„๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด Razzle์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋ฌธ์„œ๊ฐ€ ์žˆ์–ด์•ผํ•˜์ง€๋งŒ ๋” ๋งŽ์€ ๊ธฐ์—ฌ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹น๋ถ„๊ฐ„ ๋ชจ๋“  ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์Šค ํŒฉํ„ฐ๋Š” 1atm์ž…๋‹ˆ๋‹ค.

Razzle๊ณผ ํ•จ๊ป˜ ํฐ ์„ฑ๊ณต ์‚ฌ๋ก€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด์ œ Razzle์„ ์‚ฌ์šฉํ•˜์—ฌ App Store, Play Store, Web ๋ฐ Web Installable์— ์žˆ์Šต๋‹ˆ๋‹ค.

Cordova ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” razzle ๋‚ด๋ถ€์— ๋ณ„๋„์˜ ๋นŒ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
https://apps.apple.com/us/app/noritex/id1556098652

์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„ ๋‚ด์ง€ ๋ชปํ•œ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

razzle ๊ตฌ์„ฑ์—์„œ client.js๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ client.standalone.js๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์›น ๋ฐ iOS ์•ฑ์šฉ์œผ๋กœ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค : https://nesbtesh.medium.com/pwas-one-code-base-3-app-stores-30cecbee07b7

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰