๐๐ฅ๐ฅ ๐๐จ๐ฌ๐ญ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. ์ด์ 1 2 3 4 ยทยทยท 28 ๋ค์