๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?

๐€๐ฅ๐ฅ ๐๐จ๐ฌ๐ญ277

์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊ธฐ : 4. sentry self-hosted (on-premise) ์„ธํŒ… with next.js 1. Sentry๋ž€?Sentry๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ๋ฐ ์˜ˆ์™ธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ์‹œ๊ฐํ™”ํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ธฐ๋ฐ˜์˜ ์˜ค๋ฅ˜ ์ถ”์  ์‹œ์Šคํ…œ์ด๋‹ค.์ฃผ๋กœ ์›น, ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํƒ‘ ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋‚˜ ์„ฑ๋Šฅ ์ €ํ•˜ ์ด์Šˆ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋œ๋‹ค.“Application Monitoring and Error Tracking that helps developers see what actually matters, solve quicker, and learn continuously in production.”2. Sentry๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“คโœ… ์—๋Ÿฌ ์ถ”์ ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๋ฅผ ํฌํ•จํ•œ ์ƒ์„ธ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•ด ์–ด๋””์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ .. 2025. 6. 18.
์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊ธฐ : 3. URL์„ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„ํ•œ ํ•„ํ„ฐ, ๊ฒ€์ƒ‰, ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ƒํƒœ ๊ด€๋ฆฌ ์ „๋žต ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ฒด์ปค ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ํ•„ํ„ฐ, ๊ฒ€์ƒ‰, ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ–ˆ๋Š”์ง€ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.ํŠนํžˆ Next.js ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ URL ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ƒํƒœ๋ฅผ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๊ณ ,์ด๋ฅผ React Query์™€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)๊นŒ์ง€ ์—ฐ๊ฒฐํ•ด ์ผ๊ด€๋œ UX์™€ ์ดˆ๊ธฐ ์„ฑ๋Šฅ์„ ํ™•๋ณดํ•˜๋Š” ์ „๋žต์„ ์„ค๊ณ„ํ–ˆ๋‹ค. ๐Ÿ” ๋ฌธ์ œ ์ •์˜์ฒ˜์Œ์—๋Š” ํ•„ํ„ฐ์™€ ๊ฒ€์ƒ‰ ์ƒํƒœ๋ฅผ ์ „์—ญ ์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ localStorage์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ–ˆ์—ˆ๋‹ค.ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์€ ์‹ค์งˆ์ ์ธ ํ•œ๊ณ„์ ์ด ์กด์žฌํ–ˆ๋‹ค.ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ์ƒํƒœ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์–ด ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์งํ•„ํ„ฐ๋ง๋œ ์ƒํƒœ๋ฅผ URL๋กœ ๊ณต์œ ํ•  ์ˆ˜ ์—†์–ด ํ˜‘์—… ์‹œ ๋ถˆํŽธํ•จ๋ธŒ๋ผ์šฐ์ € ๋’ค๋กœ๊ฐ€๊ธฐ/์•ž์œผ๋กœ๊ฐ€๊ธฐ ๋™์ž‘์ด ๊ธฐ๋Œ€์™€ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•จSSR์„ ํ™œ์šฉํ•œ ์ดˆ๊ธฐ ๋ Œ๋”๋ง๊ณผ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„ ๋กœ๋”ฉ ์‹œ UX๊ฐ€ ์ข‹์ง€ ์•Š์Œ์ด.. 2025. 6. 13.
์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊ธฐ : 2. ๊ณ„์ธตํ˜• ๋ ˆํผ๋Ÿฐ์Šค ํ•„ํ„ฐ UI ๊ฐœ์„ ๊ธฐ ๐Ÿงฑ ๋ณต์žกํ•œ ํŠธ๋ฆฌ๊ตฌ์กฐ ํ•„ํ„ฐ, ๊ณ„์ธตํ˜• ํ•„ํ„ฐ๋กœ ๊ฐœ์„ ํ•˜๊ธฐโŒ ๊ธฐ์กด UI์˜ ๋ฌธ์ œ์ ๊ธฐ์กด์˜ ์ฒด์ปค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํŠธ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ ๋ ˆํผ๋Ÿฐ์Šค ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋œ ํ•„ํ„ฐ๋Š” ์‹œ๊ฐ์ ์œผ๋กœ ๋ณต์žกํ•˜๋ฉฐ, ์ค‘์ฒฉ ๋ ˆ๋ฒจ์ด ๋งŽ์•„์ง€๋ฉด ๊ฐ€๋…์„ฑ๊ณผ ์‚ฌ์šฉ์„ฑ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง€๋Š” ๊ตฌ์กฐ๊ฐ ์ฑ•ํ„ฐ/๋ฃฐ ๋‹จ์œ„๋กœ ์„ ํƒํ•  ์ˆ˜๋Š” ์žˆ์—ˆ์ง€๋งŒ, ์ „์ฒด ์„ ํƒ/ํ•ด์ œ ๋กœ์ง์ด ์ง๊ด€์ ์ด์ง€ ์•Š์•˜๊ณ , ๋งˆ์šฐ์Šค ์—†์ด ์กฐ์ž‘ํ•˜๊ธฐ์—๋„ ๋ถˆํŽธ์Šคํฌ๋กค์ด ๋งŽ๊ณ  ๊ตฌ์กฐ๊ฐ€ ํ‰ํ‰ํ•˜์ง€ ์•Š์•„, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์„ ํƒํ• ์ง€ ํŒŒ์•…์ด ์–ด๋ ค์›Œ ๋ณด์ž„์ฒซ๋ฒˆ์งธ ์„ ํƒ ํ•ญ๋ชฉ์˜ ๊ฒฝ์šฐ ํ•„ํ„ฐ ๋ ˆ์ด์•„์›ƒ์„ ๋ฒ—์–ด๋‚œ UI๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ โœ… ๊ฐœ์„  ๋ฐฉํ–ฅ: 3๋‹จ๊ณ„ ๊ณ„์ธตํ˜• ํ•„ํ„ฐ UI๊ธฐ์กด์— ํ•œ๋ˆˆ์— ๋ณด๊ธฐ ์–ด๋ ค์šด UI๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด 3๋‹จ๊ณ„ ๊ณ„์ธต ๊ตฌ์กฐ์— ๊ธฐ๋ฐ˜ํ•œ ์ปค์Šคํ…€ ํ•„ํ„ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ํ–ˆ๋‹ค. ?.. 2025. 6. 13.
์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊ธฐ : 1. ๋ถˆํŽธํ•œ ํ•„ํ„ฐ UI, ๋ชจ๋‹ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ๋ณต์žกํ•œ ํ•„ํ„ฐ UI, ๋ชจ๋‹ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐโŒ ๊ธฐ์กด UI์˜ ๋ฌธ์ œ์  ๊ธฐ์กด SAST ์ฒด์ปค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ์œ„์™€ ๊ฐ™์€ ํ•„ํ„ฐ UI๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋กœ ์ธํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค.๋„ˆ๋ฌด ์ข์€ ๊ณต๊ฐ„์— ๋งŽ์€ ํ•„ํ„ฐ ํ•ญ๋ชฉ์ด ๋ฐฐ์น˜๋˜์–ด ์žˆ์–ด ์‹œ์ธ์„ฑ์ด ๋‚ฎ๊ณ  ์กฐ์ž‘์ด ์–ด๋ ค์›€ํ•„ํ„ฐ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋งŽ์•„์งˆ ๊ฒฝ์šฐ ์„ธ๋กœ ์Šคํฌ๋กค์ด ๊ธธ์–ด์ง€๊ณ , ์ผ๋ถ€ ํ•ญ๋ชฉ์€ ๊ฐ€๋กœ ์Šคํฌ๋กค ์—†์ด ๋ณผ ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋ ˆ์ด์•„์›ƒ์ด ๊นจ์ง€๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•„ํ„ฐ ํ•ญ๋ชฉ์— ๋”ฐ๋ผ ๋“œ๋กญ๋‹ค์šด์ด ํ•„ํ„ฐ ์˜์—ญ ๋ฐ–์œผ๋กœ ์‚์ ธ๋‚˜์˜ค๋Š” ๋ฌธ์ œ๋„ ์žˆ์—ˆ๊ณ , ์ผ๋ถ€ ๊ธด ํ…์ŠคํŠธ๋Š” ์ž˜๋ ค์„œ ํ‘œ์‹œ๋˜๊ธฐ๋„ ํ•จ โœ… ๊ฐœ์„  ๋ฐฉํ–ฅ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ UI ๊ฐœ์„ ์„ ์ ์šฉํ–ˆ๋‹ค. ํ•„ํ„ฐ๋ฅผ ๋ชจ๋‹ฌ๋กœ ๋ถ„๋ฆฌ ์ขŒ์ธก ์‚ฌ์ด๋“œ ์˜์—ญ์—์„œ ๋ฒ—์–ด๋‚˜ ์ „์ฒด ๋ชจ๋‹ฌ ์ฐฝ์œผ๋กœ ํ•„ํ„ฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์‹œ์•ผ ํ™•๋ณด ๋ฐ ์‚ฌ์šฉ์ž ์กฐ์ž‘์„ฑ์„ .. 2025. 6. 13.
์‚ฌ๋‚ด ๋ณด์•ˆ ๋ฆฌ์†Œ์Šค ํ†ตํ•ฉ ํ”Œ๋žซํผ ๊ตฌ์ถ•๊ธฐ : 0. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”์™€ ๊ธฐ์ˆ  ์„ ํƒ ์‚ฌ๋‚ด ๋ณด์•ˆ ๋ถ„์„ ์ฒด๊ณ„ ํ†ตํ•ฉ ์‹œ์Šคํ…œ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ์ •์  ๋ถ„์„(SAST), ๋™์  ๋ถ„์„(DAST), ์˜คํ”ˆ์†Œ์Šค ์ปดํฌ๋„ŒํŠธ ๋ถ„์„(SCA) ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๋ถ„์„ ์„œ๋น„์Šค๋ฅผ ์ž์ฒด์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค.๊ธฐ์กด์— SAST์™€ ๊ด€๋ จ๋œ ์ฒด์ปค(๋ถ„์„ ๊ทœ์น™ ๋ชจ๋“ˆ)๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ์‚ฌ๋‚ด ์‹œ์Šคํ…œ์ด ์กด์žฌํ–ˆ์œผ๋‚˜, ๊ทธ ์™ธ๋Š” ์ˆ˜๋™ ๊ด€๋ฆฌ์— ์˜์กดํ•˜๊ณ  ์žˆ์–ด ์ฒด๊ณ„์ ์ธ ํ†ตํ•ฉ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์ด ๋ถ€์žฌํ•œ ์ƒํ™ฉ์ด์—ˆ๋‹ค. ํŠนํžˆ ์‹ ๊ทœ ์ฒด์ปค๋‚˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์ค‘๋ณต๋œ ์ž‘์—…์ด๋‚˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น„์šฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค.์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด SAST, DAST, SCA ์ฒด์ปค ๋ฐ ๋ ˆํผ๋Ÿฐ์Šค ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์—์„œ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ ๊ทœ ํ†ตํ•ฉ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ธฐํšํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ํ”„๋กœ์ ํŠธ TF๊ฐ€ ๊พธ๋ ค์กŒ๋‹ค. ๋‚˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ.. 2025. 6. 13.
[Docker] next.js๋ฅผ Docker๋กœ ๋ฐฐํฌํ•˜๊ธฐ with multi-stage ๋นŒ๋“œ ๋”๋ณด๊ธฐ๐Ÿ“Œ ๋ชฉ์ฐจDockerfile ์ž‘์„ฑํ•˜๊ธฐ (Single-stage Dockerfile)Multi-stage ๋นŒ๋“œ๋ฅผ ํ†ตํ•œ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”.dockerignore๋กœ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ์ œ๊ฑฐ์ฃผ์š” Docker ๋ช…๋ น์–ดReference ์‚ฌ๋‚ด ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก์œผ๋ฉด์„œ CI๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋‹ค.ํ˜„์žฌ ๊ฐœ๋ฐœ์ค‘์ธ ์„œ๋น„์Šค๋Š” next.js ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๋งก์€ ์—ญํ• ์€ Dockerfile์„ ์ƒ์„ฑํ•˜์—ฌ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜์—ฌ Teamcity์— ์—ฐ๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๊ณผ์ •์—์„œ ํŠน์ • ๋ธŒ๋žœ์น˜์— ์—…๋ฐ์ดํŠธ ๋ฐœ์ƒ ์‹œ, ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ํ›„ ์‚ฌ๋‚ด ์ €์žฅ์†Œ์— push ํ•˜๋„๋ก ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€๋Š” ๋‚ด๊ฐ€ ๋งก์•˜๋‹ค. ์ตœ์‹  ์ด๋ฏธ์ง€ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์™€ ์„œ๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ์ž‘์—…์€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ์„ ๋ฐฐ๋‹˜์ด ์—ฐ๋™ํ•˜์‹œ๊ธฐ๋กœ ํ–ˆ๋‹ค. Doc.. 2025. 6. 5.
[Next.js] tailwind CSS ๋กœ์ปฌ ํฐํŠธ ์ ์šฉ (feat. Type '{ children: Element[]; className: string; }' is not assignable to type) next.js + tailwind CSSํ”„๋กœ์ ํŠธ์—์„œ ๊ธ€์”จ์ฒด๋ฅผ ์ ์šฉ ํ•˜๋Š” ๋ฐฉ๋ฒ•ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์€ ๋‹ค์Œ ๊ธฐ์ˆ  ์Šคํƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.- next.js v15 pages-router- react v19- typescript- tailwindCSS- shadcnUIํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” pretendard๋ฅผ ์˜ˆ์‹œ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.  Optimizing: Fonts | Next.jsOptimize your application's web fonts with the built-in `next/font` loaders.nextjs.org Pretendard ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.https://cactus.tistory.com/306ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํฐํŠธ ๊ฒฝ๋Ÿ‰ํ™”๋ฅผ ์œ„ํ•ด .woff2 ํ™•์žฅ์ž ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ํ–ˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ ๊ฒฝ๋กœ์—.. 2025. 3. 14.
[Next.js] node.js ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ๊ณผ heap ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ ์šฉํ•˜๊ธฐ node.js ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ๊ณผ heap ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ ์šฉํ•˜๊ธฐํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” next.js์—์„œ server๋ฅผ ์ปค์Šคํ…€ ํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์•Œ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์€ GPT์˜ ๋„์›€์„ ๋ฐ›์•„ process.memoryUsage()๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. 1. process.memoryUsage์˜ ์ค‘์š” ์š”์†ŒNode.js(Next.js) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ธ์‚ฌ์ดํŠธ / if(kakaoAI)2024ํ•ด๋‹น ์ปจํผ๋Ÿฐ์Šค ๋‚ด์šฉ์ด ๋‚ด๊ฐ€ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„์„ ๋‹ค๋ค„์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค. 1-1. ์ฝ”๋“œ ์ ์šฉ// server.jsconst { createServer } = require('http');const { parse } = require('url');.. 2024. 12. 23.
[Next.js] Next.js์˜ ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ตฌ์กฐ - node.js v8 Next.js์˜ ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ตฌ์กฐNext.js๋Š” Node.js ๊ธฐ๋ฐ˜์˜ V8 ์—”์ง„์—์„œ ์‹คํ–‰๋œ๋‹ค.JavaScript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์–ธ์–ด์ด๋‹ค. ๋”ฐ๋ผ์„œ V8 ์—ญ์‹œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Context ๋‹น ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹จ, ์„œ๋น„์Šค ์›Œ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์›Œ์ปค์˜ ๊ฐœ์ˆ˜๋งŒํผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฆ์‹ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์€ V8 ํ”„๋กœ์„ธ์Šค์—์„œ ํ• ๋‹น๋œ ์ผ์ •๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ, ์ด๋ฅผ Resident set์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™๋‹ค.์‚ฌ์ง„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํฌ๊ฒŒ ํž™ ๋ฉ”๋ชจ๋ฆฌ์™€ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ด€๋ฆฌ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.1๏ธโƒฃ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์Šคํƒ์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๊ณ  V8๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์Šคํƒ์„ ๊ฐ€์ง„๋‹ค. ์Šคํƒ์—๋Š” ์ •์ ๋ฐ์ดํ„ฐ(๋ฉ”์„œ๋“œ์™€ ํ•จ์ˆ˜ ํ”„๋ ˆ์ž„, ์›์‹œ ๊ฐ’, ๊ฐ์ฒด ํฌ์ธํ„ฐ)๊ฐ€ ์ €์žฅ๋œ๋‹ค.V8์˜ ์Šคํƒ ์˜์—ญ์˜ ๊ด€๋ฆฌ๋Š”.. 2024. 12. 22.
[Next.js] SWC ์˜ต์…˜์„ ํ™œ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„ ๋‹จ์ถ•ํ•˜๊ธฐ SWC๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„ ๋‹จ์ถ•ํ•˜๊ธฐ ์‚ฌ๋‚ด์—์„œ๋Š” CI/CD ๋„๊ตฌ๋กœ ๊นƒํ—™ ์•ก์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.๋ฐฑ์—”๋“œ์™€ ๋‹ค๋ฅด๊ฒŒ ํ”„๋ก ํŠธ๋Š” ์•ก์…˜์ด ์™„๋ฃŒ๋˜๋Š”๋ฐ ๊นŒ์ง€ ์ „์ฒด์ ์ธ ์‹œ๊ฐ„์ด ์ข€ ๋” ์†Œ์š”๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ํ”„๋ก ํŠธ ํ™˜๊ฒฝ์—์„œ CI/CD ๊ณผ์ • ์ค‘ ๊ฐ€์žฅ ์†Œ์š” ์‹œ๊ฐ„์ด ๊ธด ์Šคํƒญ์€ ๋นŒ๋“œ ํ›„ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ECR๋กœ ์˜ฎ๊ธฐ๋Š” ์‹œ์ ์ด๋‹ค. ๊ทธ ์ค‘ CI ๊ณผ์ • ์ค‘์—์„œ ํ”„๋ก ํŠธ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์‹œ๊ฐ„๊ณผ ECR PUSH ํƒ€์ž„์ด ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•จ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. โ“๊ทธ๋ ‡๋‹ค๋ฉด,ํ”„๋ก ํŠธ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ์–ด๋–ป๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ? Next.js ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ• ํ•˜๋Š” ๋ฐฉ๋ฒ•SWC ์ฝ”๋“œ ์••์ถ• ํ™œ์„ฑํ™”: swcMinify: true๋ฅผ ์„ค์ •ํ•ด ๋นŒ๋“œ ์‹œ SWC๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ์••์ถ•ํ•˜์—ฌ ์ตœ์ ํ™”.Webpack ์บ์‹ฑ ์‚ฌ์šฉ: W.. 2024. 11. 1.