profile
๐ŸŒ DOM ์œ„์—์„œ ์‚ด์•„๋‚จ๊ธฐ
ํƒœ๊ทธ ๋ชฉ๋ก
์ „์ฒด๋ณด๊ธฐ (181)next.js(28)React(25)์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(18)JavaScript(13)redux(12)๋ฆฌ๋•์Šค(12)Spring(12)ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(11)typescript(11)์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ(11)๋ฆฌ์•กํŠธ(11)๋ฐฑ์ค€(9)ํŒŒ์ด์ฌ(8)python(8)SSR(7)React Hooks(6)Approuter(6)ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(5)nextjs(5)github(5)git(5)computer science(4)์ž๋ฃŒ๊ตฌ์กฐ(4)tech-interview(4)streaming(4)์•Œ๊ณ ๋ฆฌ์ฆ˜(4)frontend(4)ํ”„๋ก ํŠธ์—”๋“œ(4)์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ(4)CS(4)Java(3)middleware(3)error(3)network(3)MacOS(3)์ƒํƒœ ๊ด€๋ฆฌ(3)Vercel(3)zustand(3)webpack(3)lighthouse(3)Database(3)react native(2)Cache(2)optimization(2)์ž๋ฃŒ ๊ตฌ์กฐ(2)serveractions(2)Suspense(2)ํฌํŠธํด๋ฆฌ์˜ค(2)์Šคํ”„๋ง(2)cors(2)svg(2)์ปจํ…Œ์ด๋„ˆ(2)Metadata(2)datafetching(2)branch(2)rendering(2)EdgeRuntime(2)๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(2)์„ฑ๋Šฅ์ตœ์ ํ™”(2)CSS(2)useMemo(2)seo(2)revalidation(2)sql(2)useRef(2)CSR(2)JDBC(2)ssg(2)ES6(2)์›น ์„ฑ๋Šฅ(2)Hash Table(2)deployment(2)MSW(2)webdev(2)์ƒํƒœ๊ด€๋ฆฌ(2)๋ฒˆ๋“ค ์ตœ์ ํ™”(2)JSON WEB TOKEN(2)์„ฑ๋Šฅ ์ตœ์ ํ™”(2)๊ต์ฐจ ์ถœ์ฒ˜ ๋ฆฌ์†Œ์Šค ๊ณต์œ (2)mutation(2)redux saga(1)merge(1)๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง(1)Knapsack Algorithm(1)์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ(1)Type Aliases(1)cookies(1)Encrypted-Storage(1)stack(1)queue(1)๋ฐฐํฌ(1)servercomponents(1)Route Segment Options(1)git pull(1)process.env(1)REST(1)์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(1)lazyloading(1)๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ(1)์„ธ์…˜(1)์ฟ ํ‚ค(1)errorhandling(1)ํ”„๋กœ๋ฏธ์Šค(1)First-class Function(1)์ฝ”๋”ฉํ…Œ์ŠคํŠธ(1)junit(1)BOM(1)์›น๊ฐœ๋ฐœ(1)๊ฐ์ฒด(1)async-storage(1)๋„คํŠธ์›Œํฌ ์š”์ฒญ(1)Component Streaming(1)Web Development(1)Ducks pattern(1)Class Component(1)Performance(1)Zulu(1)errorBoundary(1)ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœํ™˜๊ฒฝ(1)DP(1)ํ•ด์‹œ ํ…Œ์ด๋ธ”(1)ํŠธ๋ฆฌ์‰์ดํ‚น(1)๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ(1)๋ผ์šฐํŒ…(1)useRouter(1)MVC(1)dynamic-import(1)webp(1)ํ”„๋กœํ† ํƒ€์ž…(1)2024 KAKAO INTERNSHIP(1)foit(1)์ฝœ๋ฐฑ ํ•จ์ˆ˜(1)๋ฐ์ดํ„ฐ ํŒจ์นญ(1)dequeue(1)react styling(1)git stash pop(1)await(1)์„œ๋ฒ„(1)useEffect(1)skeletonui(1)Client Router Cache(1)Xcode(1)๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(1)searchParams(1)antialiasing(1)๋ฑ(1)๊ธฐ๋ณธ ํƒ€์ž…(1)git conflict(1)React Server Component(1)Bubble Sort(1)Insertion Sort(1)Merge sort(1)Quick Sort(1)Selection Sort(1)Spread(1)async(1)๋น„๋™๊ธฐ(1)node.js(1)Fine Grained Reactivity(1)๊ฒ€์ƒ‰(1)class(1)SOLID(1)๋„คํŠธ์›Œํฌ(1)๋ฆฌ์•กํŠธ ํ›…(1)react hook(1)git stash(1)๋ฐ”๋ฒจ(1)์›น ์Šคํ† ๋ฆฌ์ง€(1)store(1)๋ฆฌ๋“€์„œ(1)ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ(1)๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(1)fsa(1)Deque(1)Suspense Streaming(1)dev-server(1)๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ(1)Diikstra Algorithm(1)Prettier(1)Debouncing(1)reducer(1)ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(1)layout(1)next/image(1)DFS BFS(1)ํ™˜๊ฒฝ ์„ค์ •(1)์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด(1)env(1)Generic(1)Redix Sort(1)action(1)CI/CD(1)react testing library(1)DBMS(1)useNavigation(1)REST API(1)json(1)tanstackQuery(1)moduleResolution(1)Intergration Test Code(1)LoadingUI(1)fout(1)baekjoon(1)ํด๋กœ์ €(1)Datagrid(1)์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„(1)array APIs(1)optimisticupdate(1)ํƒ€์ž… ์ถ”๋ก (1)x-robots-tag(1)์ผ๊ธ‰ ํ•จ์ˆ˜(1)์ผ๊ธ‰ ๊ฐ์ฒด(1)interface(1)์ธํ„ฐํŽ˜์ด์Šค(1)build(1)coding test(1)async/await(1)pnpm(1)๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ(1)zsh(1)first class object(1)react-query(1)ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ(1)local storage(1)์ œ๋„ค๋ฆญ(1)๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(1)์Šคํ† ์–ด(1)์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ(1)useContext(1)useReducer(1)๋ฆฌํŒฉํ† ๋ง(1)ํ•จ์ˆ˜(1)vite(1)this(1)FGR(1)Code Formatter(1)DOM(1)M:1(1)event bubbling(1)์›น ๊ฐœ๋ฐœ(1)ServerState(1)LIS(1)API Mocking(1)RouteHandlers(1)Parallel Routes(1)๋””์ž์ธ ์‹œ์Šคํ…œ(1)useCallback(1)Heap Sort(1)์ƒ๋ช…์ฃผ๊ธฐ ํ•จ์ˆ˜(1)Context API(1)๋ƒ…์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜(1)๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(1)font(1)Intercepting Routes(1)Big-O ํ‘œ๊ธฐ๋ฒ•(1)์ƒ์„ฑ์ž ํ•จ์ˆ˜(1)Operating System(1)template(1)Page Streaming(1)๊ธฐ๋ณธ ์„ค์ •(1)spring mvc(1)์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•(1)ํด๋ž˜์Šค(1)๋ชจ๋…ธ๋ ˆํฌ(1)๋ช…๋ น์–ด(1)params(1)๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€(1)์Šคํƒ(1)array(1)monorepo(1)ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ(1)webpack dev server(1)์‹คํ–‰ ์ปจํ…์ŠคํŠธ(1)servlet(1)์ž๋™ ๋กœ๊ทธ์ธ(1)jest(1)redux-actions(1)fsd(1)LCA(1)node_modules(1)useLocation(1)reactquery(1)Export data to Excel(1)IntersectionObserver(1)์•ก์…˜ ์ƒ์„ฑ์ž(1)db(1)Binary Search(1)persist(1)OpenJDK(1)๋•์Šค ํŒจํ„ด(1)์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง(1)babel(1)event delegation(1)BuildStrategy(1)@next/font(1)Map(1)ํƒ€์ž… ๋‹จ์–ธ(1)CRUD(1)Type Compatibility(1)svgr(1)webdevelopment(1)ํ(1)์ด๋ฒคํŠธ ์บก์ฒ˜๋ง(1)useMutation(1)Throttling(1)๊นƒํ—ˆ๋ธŒ(1)enums(1)์‹œ๊ฐ„ ๋ณต์žก๋„(1)์ปดํฌ๋„ŒํŠธ ์ตœ์ ํ™”(1)code_splitting(1)bitmask(1)์šด์˜์ฒด์ œ(1)ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ(1)devops(1)์•„์ด์ฝ˜ ์‹œ์Šคํ…œ(1).gitignore(1)boj(1)algorithm(1)rsc(1)data structure(1)closure(1)JPA(1)MyBatis(1)set(1)์ด๋„˜(1)stash(1)sass loader(1)๋„์ปค(1)session(1)container(1)์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€(1)event capturing(1)OS(1)์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋™์ž‘ ์›๋ฆฌ(1)ํ„ฐ๋ฏธ๋„(1)useSearchParams(1)routing(1)React.memo(1)server side rendering(1)์Šค๋กœํ‹€๋ง(1)Immer(1)type assertion(1)JSON Server(1)๋น„๊ตฌ์กฐํ™” ํ• ๋‹น(1)object(1)generateMetadata(1)ํŽ˜์ด์ง€ ์ด๋™(1)webfont(1)mui(1)app router(1)์ด๋ฒคํŠธ ์œ„์ž„(1)page router(1)hydration(1)hooks(1)union type(1)์›นํŒฉ(1)promise(1)๋””๋ฐ”์šด์‹ฑ(1)TROUBLESHOOTING(1)Build Tool(1)programmers(1)terminal(1)data fetching(1)Styling(1)API(1)link(1)frontendarchitecture(1)Mockoon(1)ํƒ€์ž… ํ˜ธํ™˜(1)์นด์นด์˜ค ์ธํ„ด(1)createRef(1)ํƒ€์ž… ๋ณ„์นญ(1)git rebase(1)Async Logic(1)๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(1)type inference(1)redux thunk(1)
post-thumbnail

Next.js ํฌํŠธํด๋ฆฌ์˜ค ์„ฑ๋Šฅ ์ตœ์ ํ™” ํšŒ๊ณ  โ€” LCPยทTBTยทCLS ๊ฐœ์„ ๊ธฐ

๊ฐœ์ธ ํฌํŠธํด๋ฆฌ์˜ค ์‚ฌ์ดํŠธ(Next.js 15 / App Router)๋ฅผ ๋งŒ๋“ค๊ณ  Lighthouse๋ฅผ ๋Œ๋ ค๋ณด๋‹ˆ์ฒซ ํŽ˜์ธํŠธ ์‹œ์ , ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ ์œ  ์‹œ๊ฐ„, ํฐํŠธ ๋กœ๋”ฉ ์‹œ ๋ ˆ์ด์•„์›ƒ ์‹œํ”„ํŠธ ๋“ฑ์—์„œ๊ฐœ์„ ํ•  ๋งŒํ•œ ์ง€์ ๋“ค์ด ๋ณด์˜€๋‹ค.์ด๋ฒˆ ๊ธ€์—์„œ๋Š” LCP / TBT / CLS ์„ธ ๊ฐ€์ง€ ์ง€ํ‘œ

2026๋…„ 4์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์–ด๋ฉ”๋‹ˆํ‹ฐ ์•„์ด์ฝ˜ ์‹œ์Šคํ…œ ์„ค๊ณ„๋ถ€ํ„ฐ ๊ฐœ์„ ๊นŒ์ง€

์ˆ™๋ฐ• ํ”Œ๋žซํผ์—์„œ ์–ด๋ฉ”๋‹ˆํ‹ฐ ์•„์ด์ฝ˜ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์•„์ด์ฝ˜์„ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์—์„œ ๋๋‚˜์ง€ ์•Š๊ณ , ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋ฐœ๊ฒฌํ•œ ๋ฌธ์ œ๋“ค์„ ์ง์ ‘ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. SVG ๋ณ€ํ™˜ ์ž๋™ํ™”, id ์ถฉ๋Œ ๋ฐฉ์ง€, ๋ฒˆ๋“ค ์ตœ์ ํ™” ๋“ฑ ๊ทธ ๊ณผ์ •์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.์ž‘์—…ํ•œ ์„œ๋น„์Šค๋Š” ์„ธ

2026๋…„ 4์›” 21์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

๋‚ด ์‚ฌ์ดํŠธ๊ฐ€ ๊ฒ€์ƒ‰์— ์•ˆ ์žกํžˆ๋Š” ์ด์œ  โ€” X-Robots-Tag: noindex

Vercel๋กœ ๋ฐฐํฌํ•œ ํฌํŠธํด๋ฆฌ์˜ค ์‚ฌ์ดํŠธ์—์„œ Lighthouse SEO ์ ์ˆ˜๊ฐ€ 100์ ์—์„œ 63์ ์œผ๋กœ ๊ธ‰๋ฝํ–ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์•„๋ฌด๋ฆฌ ๋œฏ์–ด๋ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๋ฐ, ์›์ธ์€ ์˜์™ธ๋กœ ๋‹จ์ˆœํ–ˆ๋‹ค.ํฌํŠธํด๋ฆฌ์˜ค ์‚ฌ์ดํŠธ๋ฅผ Vercel์— ๋ฐฐํฌํ•œ ํ›„ Lighthouse๋กœ ์„ฑ๋Šฅ์„ ์ธก์ •

2026๋…„ 4์›” 16์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js์—์„œ SVG ์•„์ด์ฝ˜ ์ œ๋Œ€๋กœ ๋‹ค๋ฃจ๊ธฐ โ€” CDN ์ œ๊ฑฐ๋ถ€ํ„ฐ next/image ํ•จ์ •๊นŒ์ง€

์•„์ด์ฝ˜ 36๊ฐœ๋ฅผ ์–ด๋””์„œ ๋ถˆ๋Ÿฌ์˜ค๋А๋ƒ๋กœ Lighthouse ์ ์ˆ˜๊ฐ€ 87์ ์—์„œ 75์ ๊นŒ์ง€ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์›์ธ์€ loading="lazy" ํ•œ ์ค„์ด์—ˆ์Šต๋‹ˆ๋‹ค.ํฌํŠธํด๋ฆฌ์˜ค ์‚ฌ์ดํŠธ์˜ ๊ธฐ์ˆ  ์Šคํƒ ์„น์…˜์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์•„์ด์ฝ˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ์„ฑ๋Šฅ์— ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฑฐ๋ผ๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ

2026๋…„ 4์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์›นํฐํŠธ ๋กœ๋”ฉ ์ตœ์ ํ™”: FOUT ๋ฐฉ์ง€ ์ „๋žต (font-display, preload, fallback)

์›น ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ ํฐํŠธ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋ฐ”๋€Œ๋Š” ๊ฒฝํ—˜์„ ํ•œ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.์ด ํ˜„์ƒ์„ FOUT(Flash of Unstyled Text)๋ผ๊ณ  ํ•œ๋‹ค.์ด๋ฒˆ ๊ธ€์—์„œ๋Š” FOUT์ด ๋ฌด์—‡์ธ์ง€, ์™œ ๋ฐœ์ƒํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹ค๋ฌด์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐฉ์ง€ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.FOUT (F

2026๋…„ 4์›” 13์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js ํ™˜๊ฒฝ ๋ณ€์ˆ˜ & ์„ค์ •

Next.js์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(Environment Variables)๋Š”๋‹จ์ˆœ ์„ค์ •๊ฐ’์ด ์•„๋‹ˆ๋ผ ๋ณด์•ˆ, ๋ฐฐํฌ, ํ™˜๊ฒฝ ๋ถ„๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค.ํŠนํžˆ Next.js๋Š” Server์™€ Client๊ฐ€ ํ•จ๊ป˜ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ๋ฒ”์œ„๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค.Next.j

2026๋…„ 3์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js ๋ฐฐํฌ (Deployment): Vercel, ํ™˜๊ฒฝ๋ณ€์ˆ˜, ๋นŒ๋“œ๊นŒ์ง€ ํ•œ ๋ฒˆ์—

Next.js ๋ฐฐํฌ๋Š” ๋‹จ์ˆœํžˆ ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋Š” ๊ณผ์ •์ด ์•„๋‹ˆ๋ผ ๋นŒ๋“œ, ์ตœ์ ํ™”, ํ™˜๊ฒฝ ๋ถ„๋ฆฌ, ์‹คํ–‰๊นŒ์ง€ ํฌํ•จ๋œ ๊ณผ์ •์ด๋‹ค. 1. Vercel ๋ฐฐํฌ Next.js๋Š” Vercel์—์„œ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐํฌ ํ๋ฆ„ GitHub์— ์ฝ”๋“œ push Vercel์—์„œ ํ”„๋กœ์ ํŠธ import ์ž๋™ ๋นŒ๋“œ ๋ฐฐํฌ ์™„๋ฃŒ (URL ์ƒ์„ฑ) ํŠน์ง• Next.js์™€ ๋†’์€ ํ˜ธํ™˜์„ฑ S...

2026๋…„ 3์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ & SEO ์™„๋ฒฝ ์ •๋ฆฌ

์›น ์„œ๋น„์Šค์—์„œ SEO(Search Engine Optimization)๋Š”๊ฒ€์ƒ‰ ์—”์ง„ ๋…ธ์ถœ๊ณผ ์œ ์ž…์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ค€๋‹ค.Next.js(App Router ๊ธฐ์ค€)๋Š” Metadata API๋ฅผ ํ†ตํ•ดSEO ์„ค์ •์„ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ๋‹ค์Œ 3๊ฐ€์ง€๋ฅผ

2026๋…„ 3์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js ์ตœ์ ํ™” (next/image, next/font, ๋ฒˆ๋“ค ์ตœ์ ํ™”)

Next.js๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค.ํŠนํžˆ ์ด๋ฏธ์ง€, ํฐํŠธ, ๋ฒˆ๋“ค ํฌ๊ธฐ ์ตœ์ ํ™”๋Š” ์‹ค์ œ ์„œ๋น„์Šค์—์„œ ๋กœ๋”ฉ ์†๋„์™€ UX์— ํฐ ์˜ํ–ฅ์„ ์ค€๋‹ค.์ด ๊ธ€์—์„œ๋Š” ๋‹ค์Œ 3๊ฐ€์ง€๋ฅผ ํ•ต์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค:next/imagenext/font๋ฒˆ๋“ค ์ตœ์ ํ™” ๊ฐœ๋…์ผ๋ฐ˜ <

2026๋…„ 3์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js์—์„œ Edge Runtime์€ ์–ธ์ œ ์“ฐ๋Š” ๊ฑธ๊นŒ? (Node.js์™€ ๋น„๊ต ์ •๋ฆฌ)

Next.js App Router๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์„ ์ž์ฃผ ๋ณด๊ฒŒ ๋œ๋‹ค."Middleware๋Š” Edge Runtime์—์„œ ์‹คํ–‰๋œ๋‹ค"์—ฌ๊ธฐ์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด๋Ÿฐ ์˜๋ฌธ์ด ์ƒ๊ธด๋‹ค.๐Ÿ‘‰ Edge Runtime์€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ด๊ณ , ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?์ด ๊ธ€์—์„œ๋Š” Edg

2026๋…„ 3์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Middleware (Auth, Redirect, Edge Runtime)

Next.js App Router๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€์— ์ง„์ž…ํ•˜๊ธฐ ์ „์— ๊ณตํ†ต ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด:๋กœ๊ทธ์ธ ์—ฌ๋ถ€ ํ™•์ธ (์ธ์ฆ)ํŠน์ • ํŽ˜์ด์ง€ ์ ‘๊ทผ ์ œํ•œ์š”์ฒญ ๋กœ๊น…์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์ด๋Ÿฐ ๋กœ์ง์„ ํŽ˜์ด์ง€๋‚˜ API๋งˆ๋‹ค ๋ฐ˜๋ณต ๊ตฌํ˜„ํ•˜๋ฉด ์ฝ”๋“œ

2026๋…„ 3์›” 23์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Route Handlers ์ •๋ฆฌ: API vs Server Actions ์„ ํƒ ๊ธฐ์ค€

Next.js App Router๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„œ๋ฒ„ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.Route Handlers (API Routes)Server Actions๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ,๐Ÿ‘‰ ์‚ฌ์šฉ ๋ชฉ์ ๊ณผ ๊ตฌ์กฐ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๋ถ„ํ•ด์„œ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘

2026๋…„ 3์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Next.js ์บ์‹ฑ ์ „๋žต (Cache & Revalidation)

Next.js App Router๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ์ด๋Ÿฐ ์ƒํ™ฉ์„ ์ž์ฃผ ๊ฒช๊ฒŒ ๋œ๋‹ค."๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊ฟจ๋Š”๋ฐ ์™œ ํ™”๋ฉด์ด ๊ทธ๋Œ€๋กœ์ง€?""์™œ ์–ด๋–ค ์š”์ฒญ์€ ๋‹ค์‹œ ์•ˆ ๋‚˜๊ฐ€์ง€?""revalidate๋ฅผ ํ–ˆ๋Š”๋ฐ ์™œ ์•ˆ ๋ฐ”๋€Œ์ง€?"์ด๋Ÿฐ ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์€๐Ÿ‘‰ Next.js์˜ ์บ์‹ฑ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜

2026๋…„ 3์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•: Server Actions ์ •๋ฆฌ

๐Ÿ‘‰ Next.js 13+์—์„œ ์ถ”๊ฐ€๋œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์œผ๋กœ,๐Ÿ‘‰ ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ(Mutation)์„ ๋‹จ์ˆœํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.๊ธฐ์กด์—๋Š” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด API Route๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์ง€๋งŒ,Server Actions๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ์—์„œ ์ง์ ‘ ์„œ๋ฒ„ ๋กœ์ง

2026๋…„ 3์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

UX๋ฅผ ์™„์„ฑํ•˜๋Š” Loading / Error ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ํฌ๊ฒŒ ์ขŒ์šฐํ•˜๋Š” ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ๋กœ๋”ฉ ์ƒํƒœ์™€ ์—๋Ÿฌ ์ฒ˜๋ฆฌ UI์ด๋‹ค.ํŠนํžˆ Next.js(App Router)์—์„œ๋Š” ์ด๋ฅผ ํŒŒ์ผ ๋‹จ์œ„๋กœ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๋งค์šฐ ์ง๊ด€์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํ•œ ๋ณด์กฐ UI๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ์ง์ ‘ ์ ์šฉํ•ด๋ณด๋ฉด์„œStreaming๋งŒ

2026๋…„ 3์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Layout & Template ๊ตฌ์กฐ (App Router)

Next.js 13๋ถ€ํ„ฐ ๋„์ž…๋œ App Router์—์„œ๋Š” ๊ธฐ์กด Page Router์™€ ๋‹ฌ๋ฆฌ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ UI๋ฅผ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ Layout ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„ํ•œ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ๋‹ค์Œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ๋‹ค.layout.tsxtemplate.tsxNested Layout ๊ตฌ์กฐ๊ณตํ†ต UI ๊ด€

2026๋…„ 3์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Webpack Dev Server๋ž€?

Webpack Dev Server ์›นํŒฉ ๋ฐ๋ธŒ ์„œ๋ฒ„(Webpack Dev Server)๋Š” ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„๋กœ, ๋นŒ๋“œ ๋Œ€์ƒ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋งค๋ฒˆ ์›นํŒฉ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„๋„ ์ฝ”๋“œ ๋ณ€๊ฒฝ ํ›„ ์ €์žฅ ์‹œ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜์—ฌ ๋ณ€๊ฒฝ ๋‚ด

2026๋…„ 3์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Parallel Routes

Next.js App Router์—์„œ๋Š” Parallel Routes๋ผ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ดํ•˜๋‚˜์˜ ๋ ˆ์ด์•„์›ƒ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ผ์šฐํŠธ๋ฅผ ๋™์‹œ์— ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ UI ๊ตฌ์กฐ๋ฅผ ๋” ์œ ์—ฐํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋Œ€ํ‘œ์ ์ธ ์˜ˆ:Dashboard LayoutSidebar

2026๋…„ 3์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Intercepting Routes

Next.js App Router์—์„œ๋Š” Intercepting Routes๋ผ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํ˜„์žฌ ํŽ˜์ด์ง€๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ๋‹ค๋ฅธ ๋ผ์šฐํŠธ๋ฅผ ๊ฐ€๋กœ์ฑ„์„œ(intercept) UI๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ชจ๋‹ฌ ๋ผ์šฐํŒ…(modal routing) ๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค

2026๋…„ 3์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์ŠคํŠธ๋ฆฌ๋ฐ (Streaming)

Next.js๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ๋ถ€๋ถ„์€ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ํŽ˜์นญ๊ณผ Streaming ๊ตฌ์กฐ์˜€๋‹ค.๊ธฐ์กด SSR์˜ ํ•œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  React 18์˜ Suspense์™€ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.SSR(Server Side Rendering)

2026๋…„ 2์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท