Development64 [Next.js] ์ฑ๋ฅ ์ต์ ํ - ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ค์ด๋ ๋ฐฐ๋ด ํ์ผ ๊ด๋ฆฌ ์ ๋ต ํ๋ก ํธ์๋ ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ์ฐ๋ฆฌ๋ ์์ฐ์ค๋ฝ๊ฒ '๊น๋ํ ์ฝ๋'๋ฅผ ๊ณ ๋ฏผํ๊ฒ ๋ฉ๋๋ค. ๊ทธ ๊ณผ์ ์์ ์์ญ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ํ๊ณณ์ ๋ชจ์ ๋ด๋ณด๋ด๋ ๋ฐฐ๋ด ํ์ผ(Barrel File) ํจํด์ ํํ ์ฌ์ฉํ๊ณค ํ์ฃ . ํ์ง๋ง ์ด ํธ๋ฆฌํจ ๋ค์๋ ๋ฒ๋ค ์ฌ์ด์ฆ์ ์ฑ๋ฅ์ ๊ฐ์๋จน๋ ์น๋ช ์ ์ธ ํจ์ ์ด ์จ์ด ์์ต๋๋ค.์ค๋์ ๋ฐฐ๋ด ํ์ผ์ด ์ ์ฑ๋ฅ์ ์ ์ด ๋๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ์ปค์ ธ๋ฒ๋ฆฐ ํ๋ก์ ํธ์์ Next.js์ optimizePackageImports๋ฅผ ํตํด ์ด๋ป๊ฒ ์ฐ์ํ๊ฒ ํ์ถํ ์ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. 1. ๋ฐฐ๋ด ํ์ผ(Barrel File)์ด๋?๋ฐฐ๋ด ํ์ผ์ ์ฌ๋ฌ ๋ชจ๋์ ํ๋์ index.ts ํ์ผ๋ก ๋ชจ์์ ๋ค์ ๋ด๋ณด๋ด๋(Re-export) ๋ฐฉ์์ ๋๋ค.// components/index.ts (๋ฐฐ๋ด ํ์ผ)export { d.. 2026. 2. 13. [next.js] ๋น๋ ์ต์ ํ - ํ๋ก๋์ ๋ฒ๋ค์์ ๊ฐ๋ฐ ์ ์ฉ ์ฝ๋ ์ ์ธํ๊ธฐ ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก Next.js ํ๋ก๋์ ๋น๋ ์๊ฐ์ด ์ ์ ๋์ด๋๋ ๋ฌธ์ ๋ฅผ ์ฒด๊ฐํ๊ฒ ๋๋ค.“์ฝ๋๊ฐ ๋๋ฉด ๋น๋๊ฐ ๋๋ ค์ง๋ ๊ฑด ๋น์ฐํ ๊ฑฐ ์๋๊ฐ?” ์ถ์ง๋ง,์์ธํ ๋ณด๋ฉด ํ๋ก๋์ ์์ ์ฌ์ฉํ์ง ์๋ ์ฝ๋๊น์ง ๋น๋ ํ์ดํ๋ผ์ธ์ด ์ฒ๋ฆฌํ๋ฉด์ ์๊ฐ์ ์ก์๋จน๋ ๊ตฌ๊ฐ๋ค์ด ์๋ค. ์ด๋ฒ ๊ธ์ ๊ทธ์ค ํ๋์๋ React Query / Jotai DevTools๋ฅผ _app์ ์ ์ import๋ก ๋ฃ์ด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํด์,๋น๋ ์๊ฐ์ ์ค์ธ ๊ณผ์ ์ ์ ๋ฆฌํ ๊ฒ์ด๋ค. 1. ๋ฌธ์ : DevTools๋ฅผ ๊ทธ๋ฅ ๋ฃ์ผ๋ฉด?๊ฐ๋ฐ ํธ์๋ฅผ ์ํด @tanstack/react-query-devtools, jotai-devtools๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ,๋ณดํต์ ์๋จ์์ ์ ์ import ํ ๋ค _app ์์์ ์ปดํฌ๋ํธ๋ก ๋ ๋๋งํ๊ฒ ๋๋ค.import { ReactQu.. 2026. 2. 4. [Next.js] ์ฑ๋ฅ ์ต์ ํ - ๋ฒ๋ค ์ฌ์ด์ฆ ๊ฐ์ (feat. bundle-analyzer) ์ด๋ ๋ ๋ฌธ๋ ์ฐ๋ฆฌ ์๋น์ค์ ์ด๊ธฐ ๋ก๋ฉ์ด ๋๋ฆฌ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. Bundle Analyzer๋ฅผ ๋๋ ค๋ณด๋... _app.js๊ฐ 4.2MB์๋ค. ์ด๋ป๊ฒ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ๊ณต์ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ค๋น: Bundle Analyzer ์ค์น๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ๋ถ์ํ๋ ค๋ฉด ๋จผ์ @next/bundle-analyzer๋ฅผ ์ค์นํด์ผ ํ๋ค.yarn add -D @next/bundle-analyzernext.config.js์ ์ค์ ์ ์ถ๊ฐํ๋ค:const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true',});module.exports = withBundleAnalyzer({ // ๊ธฐ์กด ์ค์ ...});ํธ์๋ฅผ ์.. 2026. 2. 3. [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. [API] graphql-request | GraphQLClient, request graphql-request GraphQL์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ํต์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ๋จํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ GraphQL API๋ฅผ ํธ์ถํ๊ธฐ ์ํด ์ฌ์ฉ โ ํ์ํ ๊ฒ headers - token, Content-Type query variables endpoint ⇒API URI GraphQLClient GraphQL ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ . GraphQLClient๋ฅผ ์ฌ์ฉํ์ฌ GraphQL API ์๋ํฌ์ธํธ์ HTTP ์์ฒญ์ ๋ณด๋ผ์ ์์ ์ด ํด๋์ค๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ ๊ณต. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฉ์๋๋ request๋ฉ์๋ request request๋ฉ์๋๋ GraphQL ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ , ์๋ฒ๋ก๋ถํฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ๋ฐ ์ฌ์ฉ GraphQL API ์๋ํฌ์ธํธ URL๊ณผ G.. 2023. 6. 29. [Electron] electron์ฑ ํ๋ฉด์ด ๋๋๋ง์ด ๋์ง ์๋ ๋ฌธ์ ๋ฌธ์ ์ 2023.06.17 - [Development/Electron] - [Electron] SyntaxError: Cannot use import statement outside a module ์์ ์ค๋ฅ๋ฅผ ํด๊ฒฐ ํ electron์ฑ์ ์คํํ์ ๋, electron ์ฑ์ ์ผ์ง์ง๋ง ํ๋ฉด์ด ๋๋๋ง ๋์ง ์๋ ์ํ๊ฐ ๋ฐ์. ํด๊ฒฐ๊ณผ์ Failed to compile. Module not found: Error: Can't resolve './App' in 'D:\\2023\\march\\realPractice\\login\\src' Did you mean 'App.js'? BREAKING CHANGE: The request './App' failed to resolve only because it was r.. 2023. 6. 18. [Electron] SyntaxError: Cannot use import statement outside a module ์ค๋ฅ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ค์ด ๋จ๋ฉด์(๊ฒฝ๊ณ ์ฐฝ) electron ์ฑ์ด ์คํ๋์ง ์์. (node:29788) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use `electron --trace-warnings ...` to show where the warning was created) App threw an error during load D:\\2023\\march\\realPractice\\login\\public\\electron.js:1 import * as operator from './script/operator.js' ^^^^^^ SyntaxError: Canno.. 2023. 6. 17. ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์