devdong

Welcome to devdong โ€” a cozy corner where developers share stories over a cup of coffee. โ˜•๐Ÿ’ป

Next.js์—์„œ class-validator๋กœ ํƒ€์ž… ์•ˆ์ „์„ฑ ๋†’์ด๊ธฐ
Next.js๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ API ๋ผ์šฐํŠธ๋‚˜ ํผ์—์„œ ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ์„ ์–ด๋–ป๊ฒŒ ๊ฒ€์ฆํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? Express๋‚˜ NestJS์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋‹ฌ๋ฆฌ, Next.js์—๋Š” ๋‚ด์žฅ๋œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๊ณ„์ธต์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ฃ . ์ด ๊ธ€์—์„œ๋Š” NestJS ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ต์ˆ™ํ•œ class-validator ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Next.js ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ๊ธฐ๋ฐ˜์˜ ๊น”๋”ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋กœ์ง์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋” ์•ˆ์ •์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜ ์ƒ class-validator ๋„์ž… ํ›„ ์ œํ’ˆ ์•ˆ์ •์„ฑ๊ณผ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์ด ํ›จ์”ฌ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. Nextjs๋Š” API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ์— ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์•„ํ‚คํ…์ณ๋ฅผ ์ž˜ ์„ค๊ณ„ํ•˜๋ฉด Next.js์—์„œ๋„ ๊ฝค ์“ธ๋งŒํ•œ API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์•„ํ‹ฐํด์€ Next.js 15๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ๐Ÿ˜‰
Page Router vs App Router vs React Server Components
React ์ƒํƒœ๊ณ„๊ฐ€ ์ง„ํ™”ํ•จ์— ๋”ฐ๋ผ Next.js๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋‹ค์–‘ํ•œ ๋ Œ๋”๋ง ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ NextJS์˜ Page Router SSR(Server Side Rendering)๊ณผ React Server Components(RSC)๊ฐ€ ์žˆ์ฃ . ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ „ํ†ต์ ์ธ Next.js Page Router ๊ธฐ๋ฐ˜์˜ SSR๊ณผ Next.js App Router ๊ธฐ๋ฐ˜์˜ SSR, ๊ทธ๋ฆฌ๊ณ  React Server Components์˜ ์ฐจ์ด์ ์„ ์‚ดํŽด๋ด…์‹œ๋‹ค. ---