Next + React Query๋กœ SNS ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ

๋ฆฌ์•กํŠธ19 & ๋„ฅ์ŠคํŠธ15 & ๋ฆฌ์•กํŠธ์ฟผ๋ฆฌ5 & Next Auth5 & MSW2 & socket.io4 & zustand ์Šคํƒ์œผ๋กœ ํŠธ์œ„ํ„ฐ(X.com)์™€ ์œ ์‚ฌํ•œ SNS ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค. ๋์œผ๋กœ ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ SSR๊นŒ์ง€!

(4.4) ์ˆ˜๊ฐ•ํ‰ 127๊ฐœ

์ˆ˜๊ฐ•์ƒ 3,395๋ช…

๋‚œ์ด๋„ ์ค‘๊ธ‰์ด์ƒ

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
next.js
next.js
react
react
ํŠธ์œ„ํ„ฐ
ํŠธ์œ„ํ„ฐ
ํด๋ก ์ฝ”๋”ฉ
ํด๋ก ์ฝ”๋”ฉ
ssr
ssr
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
next.js
next.js
react
react
ํŠธ์œ„ํ„ฐ
ํŠธ์œ„ํ„ฐ
ํด๋ก ์ฝ”๋”ฉ
ํด๋ก ์ฝ”๋”ฉ
ssr
ssr

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.4

5.0

๋ถ€๋„

60% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

const ๋ช…์–ธ = ํ•œ๋ฒˆ ๋‹นํ–ˆ๋˜ ์—๋Ÿฌํ•œํ…Œ๋Š” ์•ˆ ๋‹นํ•˜์ง€~

5.0

Grit Grit

68% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๋ฏฟ๊ณ  ๋ณด๋Š” ์ œ๋กœ์ดˆ๋‹˜ ๊ฐ•์˜๋„ค์š”! Next๋ฅผ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ๊ณต์‹๋ฌธ์„œ๋„ ๋ณด๊ณ ํ–ˆ์ง€๋งŒ ์ž˜ ์•ˆ์ฝํ˜€์„œ ์ „ ๊ฐ•์˜๋ฅผ ์ญ‰ ๋ณธ๋‹ค์Œ์— ๊ณต์‹๋ฌธ์„œ ๋ณด๋Š”๊ฒŒ ๋” ์ดํ•ด๊ฐ€ ๋น ๋ฅธ๊ฑฐ๊ฐ™์•„์š”. ๋ณดํ†ต ์ „ ๊ฐ•์˜๋ฅผ ์ญ‰ ๋ณธ๋‹ค์Œ์— ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ๊ณต๋ถ€ํ•œ ๋’ค ๊ณต์‹๋ฌธ์„œ์—์„œ ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋‹ค ํ‚ค์›Œ๋“œ์ •๋„๋งŒ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค ์ž‘์—…์„ ํ•˜๋‹ค ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋ฉด ๊ณต์‹๋ฌธ์„œ์—์„œ ์ฐพ์•„์„œ ์ ์šฉํ•˜๋Š”ํŽธ์ž…๋‹ˆ๋‹ค ํŽธ๋‹น ๊ฐ•์˜์‹œ๊ฐ„๋„ ๊ธธ์ง€์•Š๊ณ  ์ž˜ ๋‚˜๋ˆ ๋†“์œผ์…”์„œ ์ง€ํ•˜์ฒ ์ด๋‚˜ ์งฌ ๋‚ ๋•Œ ๋ณด๊ธฐ๋„ ์ข‹๊ณ  ์ดํ•ด์•ˆ๋˜๋Š” ๋ถ€๋ถ„์—์„œ๋Š” ๋Œ๋ ค๋ณด๋Š”๊ฒƒ๋„ ๋„ˆ๋ฌด ํŽธํ•˜๋”๋ผ๊ตฌ์š” React-query๋„ ์ฐ๋จน๊ฐœ๋…์œผ๋กœ ์“ฐ๋˜๊ธฐ๋Šฅ๋งŒ ์“ฐ๊ณ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์„ค๋ช…๋“ค์œผ๋ฉด์„œ ๋” ์ž˜์“ฐ๊ฒŒ ๋œ๊ฑฐ๊ฐ™์•„์š”!! Zustand๋„ ์ด๋ฒˆ๊ธฐํšŒ์— ์ฒ˜์Œ์จ๋ณด๊ณ  msw๋‚˜ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ๋ค์œผ๋กœ ์•Œ์•„๊ฐ‘๋‹ˆ๋‹น ํ˜„์—…์—์„œ ์•Œ์•„๋‘๋ฉด ์ข‹์€ ๋ฐฐํฌ๋‚˜ ์›น์†Œ์ผ“ ๋“ฑ ๋ถ€๋ก๋‚ด์šฉ๋“ค๋„ ๊พธ์ค€ํžˆ ์ข‹์€ ํ€„๋ฆฌํ‹ฐ๋กœ ์˜ฌ๋ ค์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ณ  ์•ž์œผ๋กœ๋„ ํ™”์ดํŒ…ํ•˜๋ฉด์„œ ํ™œ๋™ํ•ด์ฃผ์„ธ์š”! ใ…Žใ…Ž

5.0

๋ฏธ๋‹ˆ๋ฒ„๋“œ

53% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ด ๊ฐ•์˜ ๋•๋ถ„์— Next.js๊ฐ€ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ตœ๊ณ ์˜ ๊ธฐ์ˆ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!! ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๊ฐ•์˜๋ฅผ ๋“ค์–ด์™”๊ณ , ์ด๋ฒˆ์— ์ฒ˜์Œ์œผ๋กœ ์ธํ”„๋Ÿฐ์—์„œ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ๋Š”๋ฐ ์ด Next ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•œ ๋’ค, ๋„ˆ๋ฌด ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ์„œ ์ดํ›„ ๋‹ค๋ฅธ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋„ ์ˆ˜๊ฐ•ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์ด ๊ฐ•์˜๋Š” ๋‹จ์ˆœํžˆ ํด๋ก ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์นœ์ ˆํ•˜๊ฒŒ ์ž˜ ์•Œ๋ ค์ฃผ์‹œ๋‹ˆ ์ €์˜ ์‹ค๋ ฅ๋„ ๋งŽ์ด ์ƒ์Šนํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์ €์—๊ฒŒ ์ตœ๊ณ ์˜ Next ๊ธฐ์ˆ ์„ ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๊ณ , ์•ž์œผ๋กœ ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๋งŽ์€ ๋„์›€ ๋ฐ›๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ

  • ๋ฆฌ์•กํŠธ+ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ

  • React Query

  • Next.js App Router

  • SSR & SEO

  • MSW

  • Next Auth

  • ์‹ค์‹œ๊ฐ„ ์›น์†Œ์ผ“ ์ฑ„ํŒ…

  • zustand

  • AWS ๋ฐฐํฌ

์ผ๋ก ๋จธ์Šคํฌ์˜ x.com ๋ง๊ณ 
์ œ๋กœ์ดˆ์˜ z.com์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!

๋ˆ„์  4400๋ช…์ด ๋“ค์—ˆ๋˜ Next ๊ฐ•์ขŒ์˜ ์ตœ์‹  ๋ฒ„์ „!

Next 14 ๊ฐ•์ขŒ๊ฐ€ Next 15๋กœ ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

  • ํŠธ์œ„ํ„ฐ๊ฐ€ ์ด๋ฆ„์„ ์—‘์Šค๋‹ท์ปด์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์ €๋„ ๋…ธ๋“œ๋ฒ„๋“œ์—์„œ ์ œํŠธ๋‹ท์ปด์œผ๋กœ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค.

  • ๋„ฅ์ŠคํŠธ ๋ชจ๋ฅด์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜์—์„œ ๋‹ค ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Next.js App Router๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์ด์ „ ๋…ธ๋“œ๋ฒ„๋“œ ๊ฐ•์ขŒ๋Š” Next Page Router์˜€์Šต๋‹ˆ๋‹ค)

  • ์ด์™• ๋ฒ„์ „์„ ์˜ฌ๋ฆฐ ๊น€์— React Query 5, Next Auth 5, MSW 2๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „๋“ค๋„ ์ „๋ถ€ ์ตœ์‹ ํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • Server Action๊ณผ ๊ฐ™์€ Next 14 ๊ธฐ๋Šฅ์€ ๋‹น์—ฐํžˆ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

  • React Query๋กœ ์ธํ”ผ๋‹ˆํŠธ ์Šคํฌ๋กค๋ง, ๋ฐ์ดํ„ฐ ์บ์‹ฑ, ์˜ตํ‹ฐ๋ฏธ์Šคํ‹ฑ ์—…๋ฐ์ดํŠธ, ๋กค๋ฐฑ ๋“ฑ์„ ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค.

  • ์›น์†Œ์ผ“ + react-query๋กœ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • Zustand๋กœ Context API๋ฅผ ๋Œ€์ฒดํ•ด๋ด…๋‹ˆ๋‹ค.

  • ์‹ค๋ฌด์™€ ๋˜‘๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋กœ ๊ฐ•์˜๊ฐ€ ํ˜๋Ÿฌ๊ฐ‘๋‹ˆ๋‹ค(๊ธฐํš์ž๊ฐ€ ๊ธฐํš์„ ๋๋‚ธ ๋•Œ -> ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์•„์ง ์•ˆ ๋งŒ๋“  ๋•Œ -> ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์™„์„ฑํ•œ ๋•Œ)

์ด๋Ÿฐ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š” ๐Ÿ™‹โ€โ™€

๋ชจ๋‹ฌ ๋„์šฐ๋ฉด์„œ ์ฃผ์†Œ ๋ฐ”๊พธ๋Š” ๊ฑฐ ์–ด๋–ป๊ฒŒ ํ•˜์ง€??

ํŒจ๋Ÿฌ๋ž  ๋ผ์šฐํŠธ, ์ธํ„ฐ์…‰ํŒ… ๋ผ์šฐํŠธ ๋“ฑ ์ตœ์‹  ๋ผ์šฐํ„ฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋ด…์‹œ๋‹ค.

ํ€„๋ฆฌํ‹ฐ ๋†’๊ฒŒ ๋”ฐ๋ผํ•ด๋ด…์‹œ๋‹ค!

x.com์˜ ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๋ผ์šฐํŠธ๋ฅผ ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ!

์Šคํฌ๋กค ๋†’์ด์— ์ฃผ๋ชฉ!!

๋ฐ์ดํ„ฐ๋ฅผ ๋ฌดํ•œํžˆ ๊ฐ€์ ธ์˜ค๋Š” ์ธํ”ผ๋‹ˆํŠธ ์Šคํฌ๋กค๋ง ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

ํ•˜ํŠธ ๋ฐ˜์‘ ์†๋„ ๋ณด์„ธ์š”!!!

์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด์„œ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์˜ตํ‹ฐ๋ฏธ์Šคํ‹ฑ ์—…๋ฐ์ดํŠธ!

  • ๊ธฐํš์„œ๋ฅผ ๋ณด๊ณ  ํด๋” ๊ตฌ์กฐ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—†์–ด๋„ API ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • API ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ์Šค์Šค๋กœ ํ”„๋ก ํŠธ ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ ๐Ÿ“š

์ €๋Ÿฐ ํด๋”๋“ค์˜ ์—ญํ• ์ด ๊ถ๊ธˆํ•˜์‹œ์ฃ ?

Next App Router ์ ๊ทน ํ™œ์šฉํ•˜๊ธฐ

Next App Router์—๋Š” ๋‹ค์–‘ํ•˜๊ณ  ์‹ ๊ธฐํ•œ ํด๋”๋“ค์ด ๋งŽ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค ()ํด๋” @ํด๋”, (.)ํด๋”, (..)ํด๋”, (...)ํด๋”, []ํด๋”, _ํด๋”...

ํด๋” ๊ตฌ์กฐ๋งŒ ์ž˜ ์งœ๋„ ๋ผ์šฐํŒ…์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์ด ๋ฐฐ์›Œ๋ด…์‹œ๋‹ค.

MSW๋กœ ๊ฐ€์งœ API ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„์ง API๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜๋‹ค๊ณ ์š”? ๊ทธ๋ž˜์„œ ์ž๊พธ ์ผ์ •์ด ๋’ค๋กœ ๋ฐ€๋ฆฐ๋‹ค๊ณ ์š”? ๊ทธ๋ž˜๋„ ์†๊ฐ€๋ฝ๋งŒ ๋นจ๊ณ  ์žˆ์œผ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค! MSW๋กœ ๊ฐ€์งœ API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ”„๋ก ํŠธ ๋จผ์ € ๊ฐœ๋ฐœํ•ฉ์‹œ๋‹ค. ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๋“ค๊ณผ ํ•จ๊ป˜์š”!

๊ท€์—ฌ์šด ๊ณ ์–‘์ด๐Ÿ˜บ ๋”๋ฏธ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๊ธฐ!

API๋Š” ๋ฌผ๋ก  ๋ฌธ์„œ๊นŒ์ง€ ๋‹ค ์ค€๋น„ํ•ด๋†จ์–ด์š”!

์ค€๋น„๋œ ๋ฐฑ์—”๋“œ๋กœ ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

MSW๋กœ ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์™„์„ฑํ–ˆ๋‹ค๋Š” ์†Œ์‹์ด ๋“ค๋ ค์˜ค๋„ค์š”! ์ด์ œ ์‹ค์ œ API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋ก ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•ด๋ด…์‹œ๋‹ค.

๋ฐฑ์—”๋“œ๋Š” ์ œ๊ฐ€ ๋‹ค ์ค€๋น„ํ•ด๋†จ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ํ”„๋ก ํŠธ์—์„œ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•˜์„ธ์š”! ๋ฐฑ์—”๋“œ์˜ ๋ฐ์ดํ„ฐ๋Š” React Query๋กœ ๊ฐ€์ ธ์™€์„œ ์บ์‹ฑ๋„ ํ•ด๋ณด๊ณ  ์ธํ”ผ๋‹ˆํŠธ์Šคํฌ๋กค๋ง, ์˜ตํ‹ฐ๋ฏธ์Šคํ‹ฑ ์—…๋ฐ์ดํŠธ๋„ ํ•ด๋ด…์‹œ๋‹ค.

SSR์„ ํ†ตํ•ด ๋ฐฐํฌ ์ค€๋น„ํ•˜๊ธฐ

z.nodebird.com์— ์ œ๊ฐ€ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋„ SSR์„ ํ†ตํ•ด SEO๋ฅผ ์ฑ™๊ฒจ ํ”„๋ก ํŠธ ํŽ˜์ด์ง€๋ฅผ SNS ๊ณต์œ ํ•ด๋„ ์ž˜ ๋‚˜์˜ค๋„๋ก ํ•ด๋ณด์„ธ์š”.

์นดํ†ก์—๋„ ์ž˜ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค

์ผ๋ก ๋จธ์Šคํฌ์™€ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„!!

๋ณด๋„ˆ์Šค: ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…๊นŒ์ง€

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์›น์†Œ์ผ“๊ณผ ๋ฆฌ๋ฒ„์Šค ์ธํ”ผ๋‹ˆํŠธ ์Šคํฌ๋กค๋ง์„ ํ•™์Šตํ•ด๋ด์š”~

์›น์†Œ์ผ“ ๊ธฐ์ˆ ์€ ํ•œ ๋ฒˆ ์ตํ˜€๋‘๋ฉด ์ฑ„ํŒ…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”(์‹ค์‹œ๊ฐ„ ์ƒˆ๋กœ๊ณ ์นจ์ด๋ผ๋“ ๊ฐ€... ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜์ด๋ผ๋“ ๊ฐ€...)

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ ๐Ÿ“ข

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 11

  • ์‚ฌ์šฉ ๋„๊ตฌ: Node.js 22, Next 15


์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • HTML/CSS/JS/React์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ•์˜์— ํ•„์š”ํ•œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ•์˜ ๋‚ด์—์„œ ์•Œ๋ ค๋“œ๋ ค์š”.


  • ์งˆ๋ฌธ์€ 24์‹œ๊ฐ„ ์ด๋‚ด์— ๋‹ต๋ณ€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ฐ•์˜ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•˜์‹œ๋Š” ๊ฑด ๊ดœ์ฐฎ์œผ๋‚˜ ๊ผญ ์ถœ์ฒ˜๋ฅผ ๋‚จ๊ฒจ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋ฆฌ์•กํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ์™„์„ฑํ•˜๊ณ  ์‹ถ์€ ๋ถ„

  • ํ”„๋ก ํŠธ์—”๋“œ ํ˜„์—… ๊ฐœ๋ฐœ์ž && ์ง€๋ง์ƒ && ์ทจ์ค€์ƒ

  • Next App Router๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ React Query๋กœ ๊ด€๋ฆฌํ•ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„

  • SSR, SEO๊นŒ์ง€ ๋‹ค ์ฑ™๊ธฐ๊ณ  ์‹ถ์€ ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • HTML, CSS ์ง€์‹

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ES2022๊นŒ์ง€์˜ ์ง€์‹

  • React ๊ธฐ์ดˆ ์ง€์‹(์ œ๋กœ์ดˆ์˜ ๋ฆฌ์•กํŠธ ๋ฌด๋ฃŒ ๊ฐ•์ขŒ ์‹œ์ฒญํ•˜์„ธ์š”)

  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(๊ฐ•์˜ ๋‚ด์—์„œ ์•Œ๋ ค๋“œ๋ ค์š”)

์•ˆ๋…•ํ•˜์„ธ์š”
์ œ๋กœ์ดˆ(์กฐํ˜„์˜)์ž…๋‹ˆ๋‹ค.

67,608

๋ช…

์ˆ˜๊ฐ•์ƒ

1,738

๊ฐœ

์ˆ˜๊ฐ•ํ‰

9,765

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

25

๊ฐœ

๊ฐ•์˜

์ œ ๊ฐ•์˜์˜ ์žฅ์ ์€ Q&A์ž…๋‹ˆ๋‹ค(์ธํ”„๋Ÿฐ ๋‹ต๋ณ€์™• 2ํšŒ ์ˆ˜์ƒ). 24์‹œ๊ฐ„ ์ด๋‚ด์— ์ตœ๋Œ€ํ•œ ๋‹ต๋ณ€๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๊ฐ™์ด ๊ณ ๋ฏผํ•œ๋‹ค๋Š” ๋А๋‚Œ์œผ๋กœ ๋‹ต๋ณ€ ๋“œ๋ฆด๊ฒŒ์š”!

One of the key strengths of my courses is the Q&A support. (Winner of the Inflearn Q&A King award twice) I respond to your questions within 24 hours, doing my best to help you out! Youโ€™ll feel like weโ€™re solving the problems together.

๐Ÿ‘‰ZeroCho Lectures
์ œ๋กœ์ดˆ ๊ฐ•์˜ ์ „์ฒด ๋กœ๋“œ๋งต. A complete roadmap of all my courses is available here.

โ€“ Node.js๊ต๊ณผ์„œ, ์ฝ”๋”ฉ์ž์œจํ•™์Šต ์ œ๋กœ์ดˆ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, Let's Get IT ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ต๊ณผ์„œ ์ €์ž 
โ€“ ZeroCho.com ์šด์˜์ž
โ€“ ํ˜„) ์œ ํŠœ๋ธŒ์—์„œ ZeroCho TV๋กœ ๊ฐœ๋ฐœ ๊ด€๋ จ ๋ฐฉ์†ก์ค‘ 
โ€“ ์ „) ์Šค๋ชจ์–ดํ†ก CTO 
โ€“ ์ „) ์˜ค๋Š˜์˜ํ”ฝ์—… CTO(์นด์นด์˜ค๋ชจ๋นŒ๋ฆฌํ‹ฐ์— ์—‘์‹ฏ ํ›„ ์นด์นด์˜ค๋ชจ๋นŒ๋ฆฌํ‹ฐ ์ตœ์—ฐ์†Œ ๊ฐœ๋ฐœํŒŒํŠธ์žฅ)

  • Author of Node.js Textbook, Self-Guided JavaScript by ZeroCho, Let's Get IT JavaScript, and TypeScript Textbook

  • Operator of ZeroCho.com

  • Currently running a YouTube channel ZeroCho TV, covering development topics

  • Former CTO at SmoreTalk

  • Former CTO at Today Pickup (acquired by Kakao Mobility, where I became the youngest lead developer)

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

81๊ฐœ โˆ™ (14์‹œ๊ฐ„ 28๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

127๊ฐœ

4.4

127๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ๋ถ€๋„๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋ถ€๋„

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    60% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    const ๋ช…์–ธ = ํ•œ๋ฒˆ ๋‹นํ–ˆ๋˜ ์—๋Ÿฌํ•œํ…Œ๋Š” ์•ˆ ๋‹นํ•˜์ง€~

    • ๋ฏธ๋‹ˆ๋ฒ„๋“œ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      ๋ฏธ๋‹ˆ๋ฒ„๋“œ

      ์ˆ˜๊ฐ•ํ‰ 2

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      53% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ด ๊ฐ•์˜ ๋•๋ถ„์— Next.js๊ฐ€ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์ตœ๊ณ ์˜ ๊ธฐ์ˆ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!!! ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๊ฐ•์˜๋ฅผ ๋“ค์–ด์™”๊ณ , ์ด๋ฒˆ์— ์ฒ˜์Œ์œผ๋กœ ์ธํ”„๋Ÿฐ์—์„œ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ–ˆ๋Š”๋ฐ ์ด Next ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•œ ๋’ค, ๋„ˆ๋ฌด ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ์„œ ์ดํ›„ ๋‹ค๋ฅธ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋„ ์ˆ˜๊ฐ•ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ์ด ๊ฐ•์˜๋Š” ๋‹จ์ˆœํžˆ ํด๋ก ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์นœ์ ˆํ•˜๊ฒŒ ์ž˜ ์•Œ๋ ค์ฃผ์‹œ๋‹ˆ ์ €์˜ ์‹ค๋ ฅ๋„ ๋งŽ์ด ์ƒ์Šนํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์ €์—๊ฒŒ ์ตœ๊ณ ์˜ Next ๊ธฐ์ˆ ์„ ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๊ณ , ์•ž์œผ๋กœ ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๋งŽ์€ ๋„์›€ ๋ฐ›๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

      • KarTech๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        KarTech

        ์ˆ˜๊ฐ•ํ‰ 10

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        31% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ €๋Š” 1๋…„์ฐจ ๊ฐœ๋ฐœ์ž๋กœ์จ ํŠธ๋ Œ๋“œ์— ๋งž์ถฐ nextjs๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 13๋ฒ„์ „์ด ๋‚˜์˜ค๊ณ ๋‚˜์„œ ๊ธฐ์กด์˜ 12๋ฒ„์ „ ๊ฐ•์˜๋“ค๋กœ๋Š” ๋ถ€์กฑํ•ด์„œ ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด์„œ ํ˜ผ์ž์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ฒฝํ—˜๋„ ์‹ค๋ ฅ๋„ ๋ถ€์กฑํ•ด์„œ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ์— ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ํŠธ๋ Œ๋“œ์— ๋งž๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ ์ด๊ฒƒ์ €๊ฒƒ ์ ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ๋‚ด๊ฐ€ ์ž˜ ๋ชจ๋ฅด๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์žฅ์ ๋“ค์„ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜์‹ฌ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋”ฑ ์ œ๋กœ์ดˆ๋‹˜์˜ nextjs14๋ฒ„์ „ ๊ฐ•์˜์™€ ๊ทธ๋™์•ˆ ์ œ๋Œ€๋กœ ์จ๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•œ ๊ฐ•์˜๊ฐ€ ๋‚˜์˜จ๋‹ค๋Š” ์†Œ์‹์— ๋ชฉ๋น ์ง€๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ•œ ์ ˆ๋ฐ˜์ •๋„ ๋“ฃ๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ ์„น์…˜์— ๋Œ€ํ•ด ์ œ๊ฐ€ ๊ถ๊ธˆํ–ˆ๋˜ ๋ถ€๋ถ„ ๋Œ€๋ถ€๋ถ„์ด ํ•ด์†Œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ใ…Žใ…Ž

        • ์ œ๋กœ์ดˆ(์กฐํ˜„์˜)
          ์ง€์‹๊ณต์œ ์ž

          ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•˜์‹  ์  ์–ธ์ œ๋“ ์ง€ ์งˆ๋ฌธ์ฃผ์„ธ์š”~

      • Grit Grit๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        Grit Grit

        ์ˆ˜๊ฐ•ํ‰ 1

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        5

        68% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ๋ฏฟ๊ณ  ๋ณด๋Š” ์ œ๋กœ์ดˆ๋‹˜ ๊ฐ•์˜๋„ค์š”! Next๋ฅผ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ๊ณต์‹๋ฌธ์„œ๋„ ๋ณด๊ณ ํ–ˆ์ง€๋งŒ ์ž˜ ์•ˆ์ฝํ˜€์„œ ์ „ ๊ฐ•์˜๋ฅผ ์ญ‰ ๋ณธ๋‹ค์Œ์— ๊ณต์‹๋ฌธ์„œ ๋ณด๋Š”๊ฒŒ ๋” ์ดํ•ด๊ฐ€ ๋น ๋ฅธ๊ฑฐ๊ฐ™์•„์š”. ๋ณดํ†ต ์ „ ๊ฐ•์˜๋ฅผ ์ญ‰ ๋ณธ๋‹ค์Œ์— ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ๊ณต๋ถ€ํ•œ ๋’ค ๊ณต์‹๋ฌธ์„œ์—์„œ ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋‹ค ํ‚ค์›Œ๋“œ์ •๋„๋งŒ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค ์ž‘์—…์„ ํ•˜๋‹ค ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋ฉด ๊ณต์‹๋ฌธ์„œ์—์„œ ์ฐพ์•„์„œ ์ ์šฉํ•˜๋Š”ํŽธ์ž…๋‹ˆ๋‹ค ํŽธ๋‹น ๊ฐ•์˜์‹œ๊ฐ„๋„ ๊ธธ์ง€์•Š๊ณ  ์ž˜ ๋‚˜๋ˆ ๋†“์œผ์…”์„œ ์ง€ํ•˜์ฒ ์ด๋‚˜ ์งฌ ๋‚ ๋•Œ ๋ณด๊ธฐ๋„ ์ข‹๊ณ  ์ดํ•ด์•ˆ๋˜๋Š” ๋ถ€๋ถ„์—์„œ๋Š” ๋Œ๋ ค๋ณด๋Š”๊ฒƒ๋„ ๋„ˆ๋ฌด ํŽธํ•˜๋”๋ผ๊ตฌ์š” React-query๋„ ์ฐ๋จน๊ฐœ๋…์œผ๋กœ ์“ฐ๋˜๊ธฐ๋Šฅ๋งŒ ์“ฐ๊ณ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์„ค๋ช…๋“ค์œผ๋ฉด์„œ ๋” ์ž˜์“ฐ๊ฒŒ ๋œ๊ฑฐ๊ฐ™์•„์š”!! Zustand๋„ ์ด๋ฒˆ๊ธฐํšŒ์— ์ฒ˜์Œ์จ๋ณด๊ณ  msw๋‚˜ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ๋ค์œผ๋กœ ์•Œ์•„๊ฐ‘๋‹ˆ๋‹น ํ˜„์—…์—์„œ ์•Œ์•„๋‘๋ฉด ์ข‹์€ ๋ฐฐํฌ๋‚˜ ์›น์†Œ์ผ“ ๋“ฑ ๋ถ€๋ก๋‚ด์šฉ๋“ค๋„ ๊พธ์ค€ํžˆ ์ข‹์€ ํ€„๋ฆฌํ‹ฐ๋กœ ์˜ฌ๋ ค์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ณ  ์•ž์œผ๋กœ๋„ ํ™”์ดํŒ…ํ•˜๋ฉด์„œ ํ™œ๋™ํ•ด์ฃผ์„ธ์š”! ใ…Žใ…Ž

        • ์˜ฌ๋นฝ๋จธ๋ฆฌ๋‹ค๋žŒ์ฅ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          ์˜ฌ๋นฝ๋จธ๋ฆฌ๋‹ค๋žŒ์ฅ

          ์ˆ˜๊ฐ•ํ‰ 38

          โˆ™

          ํ‰๊ท  ํ‰์  5.0

          ์ˆ˜์ •๋จ

          4

          100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          ๊ฐ•์˜๊ฐ€ ์ข€ ๋งŽ์ด ์–ด๋ ต๊ณ  ์†๋„๊ฐ€ ๋นจ๋ผ์„œ ๋“ค์œผ๋ฉด์„œ ์Šค์Šค๋กœ ์ฐพ์•„๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์นœ์ ˆํ•œ ๊ฐ•์˜์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‹ค๋ฌด์— ๋„์›€์€ ๊ต‰์žฅํžˆ ๋งŽ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. +)์ถ”๊ฐ€ ์•„๋ฌด๋ฆฌ์ƒ๊ฐํ•ด๋„ 5์  ์ค„ ์ˆ˜๋Š” ์—†๋Š” ๊ฐ•์˜์ด๊ธด ํ•œ๊ฒŒ ๊ฐ•์˜์˜ ๋ณธ์งˆ์ด "์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ๊ฑด๋ฐ" ๊ทธ ๋ถ€๋ถ„์„ ๋„ˆ๋ฌด ์•Œ์•„์„œ ํ•˜๋ผ๊ณ  ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.

          ์ œ๋กœ์ดˆ(์กฐํ˜„์˜)๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

          ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

          ๋น„์Šทํ•œ ๊ฐ•์˜

          ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

          ์—ฐ๊ด€ ๋กœ๋“œ๋งต

          ๊ฐ•์˜๊ฐ€ ํฌํ•จ๋œ ๋กœ๋“œ๋งต์œผ๋กœ ํ•™์Šตํ•ด ๋ณด์„ธ์š”!

          โ‚ฉ69,300