[Next.js] Hydration Mismatch 에러
·
React, Next.js
1. 문제 상황페이지 렌더링 시 브라우저 콘솔에 다음과 같은 붉은 에러 메시지가 출력되었습니다.Uncaught Error: Hydration failed because the server rendered text didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used: 에러 로그를 자세히 살펴보니 서버와 클라이언트의 렌더링 결과가 단 1초 차이로 달랐습니다.* Server: 2026-02-19 15:11:23* Client: 2026-02-19 15:11:24 2. 원인 분석문제는 컴포넌트 본문에 선언된 new Date() 코..
API 명세서로 UI 만들기: Claude 단독 vs Gemini 협업 효율 비교 (feat. ccusage)
·
Dev
0. 시작하며프론트엔드 개발자에게 API 문서를 보고 Interface를 정의하고, Axios 함수를 짜고, UI 컴포넌트를 만드는 과정은 매우 반복적입니다.최근에는 AI를 활용해 이 과정을 자동화하지만, 수천 줄의 API 명세 파일을 통째로 넣다 보면 비싼 토큰 비용이라는 문제에 직면하게 됩니다. 그래서 실험해봤습니다. "비싼 모델에게 일을 시키기 전, 가성비 모델로 설계를 먼저 시키면 얼마나 이득일까?" 1. 실험 환경 및 도구이번 실험의 핵심은 실시간 비용 추적입니다.LLM: Claude 4.5 Opus (구현), Gemini CLI (전처리)측정 도구: ccusage (터미널에서 AI 사용량과 비용을 즉시 계산해 주는 오픈소스 도구)대상 데이터: 실제 호출 가능한 DummyJSON 기반의 Swag..
클로드 코드는 왜 가끔 산으로 갈까?
·
Dev
클로드 코드(Claude Code)를 쓰다 보면, 어느 순간 얘가 왜 이러나 싶은 순간이 옵니다.잘 짜인 코드를 엉망으로 만들거나, 방금 한 약속을 어겨버리기도 합니다.이 이유가 너무 궁금해 직접 공부하고 정리해 보았습니다. 부족할 수 있지만, 제가 공부한 클로드 코드가 '산'으로 가는 5가지 기술적 이유를 공유합니다. 1. 시점 편향 (Recency Bias)출처 Primacy Bias - EqualturePrimacy bias involves recalling initial information better than later details, serving as a mental shortcut, though not always accurate.www.equalture.com 클로드 코드와 대화하다 ..
Claude Code 클로드 코드로 10분만에 나만의 모닝 뉴스레터 봇 만들기
·
Dev
최근 핫한 Claude Code를 결제하고 가장 먼저 간단한 프로젝트를 만들어봤습니다.'나만의 뉴스레터 봇' 만들기입니다. 매일 아침 날씨와 주요 뉴스를 이메일로 쏴주는 시스템입니다. 놀라운 점은 제가 단 한 줄의 코드도 직접 타이핑하지 않았다는 것입니다. 1. 시작저는 간단한 명령과 디테일한 설정을 4가지 해주었습니다. (이것도 제미나이한테 뽑으라고 했습니다.)매일 아침 날씨와 주요 뉴스 5개를 내 이메일로 보내주는 파이썬 봇을 만들 거야. 다음 단계를 차례대로 실행해줘1. 이 폴더에 파이썬 가상환경(.venv)을 만들고 활성화해줘.2. requests, beautifulsoup4, python-dotenv 라이브러리를 설치해줘.3. main.py 파일을 만들고 아래 기능을 구현해줘.- OpenWeat..
클로드코드 설치 했는데 "Command Not Found"?
·
Dev
최근 화제인 터미널 기반 AI 에디터, Claude Code를 드디어 구독했습니다. 한 달 20달러라는 거금을 들여 Pro 플랜을 결제하고, 설레는 마음으로 공식 문서에 나온 설치 명령어를 입력했습니다.curl -fsSL https://claude.ai/install.sh | bash 그런데 여기서부터 예상치 못한 인내심 테스트가 시작되었습니다. 1. 첫 번째 고비: "왜 이렇게 안 끝나?"분명 간단한 설치 스크립트인데 생각보다 다운로드와 설정 시간이 꽤 걸리더군요. 보통 curl 명령어로 설치했을 때 이렇게 오래걸리지 않았는데, 성질 급한 한국인이라 무슨 문제라도 있는 줄 알았습니다. 네트워크 상태에 따라 다르겠지만, 터미널이 멈춘 건 아닌지 몇번이나 확인했습니다. (참고로 너무 오래 걸린다면 새 터미..
Vite와 Next.js에서 ENV/MODE/NODE_ENV 정리
·
React, Next.js
React(Vite)에서 Next.js로 마이그레이션하며 env 관리와 런타임 모드가 헷갈렸던 경험이 있어서 정리하고자 글을 작성하게 되었습니다. 1. Vite의 핵심 개념: modeVite는 mode라는 별도의 개념이 있습니다.mode는 어떤 .env 파일을 로드할지를 결정하는 환경 프로파일 이름입니다. ✔️ 기본 동작명령어기본 mode 값로드되는 파일vite devdevelopment.env.developmentvite buildproduction.env.production ✔️ mode는 자유롭게 지정 가능vite build --mode staging // -> .env.staging 로드vite dev --mode abc // -> .env.abc 로드즉 mode는 개발자가 원하는 이름으로 무한하..
React Query (Tanstack Query) + Suspense + Error Boundary
·
React, Next.js
지금까지 useEffect와 useState를 이용해 데이터를 가져오고, 그에 따라 로딩/에러 상태를 직접 관리하는 방식을 써왔습니다.하지만 이 방식은 앱 규모가 커지고 UI 로직이 복잡해질수록 비효율적이고 중복이 많아지는 문제를 드러냈습니다. 또 하나의 근본적인 한계는,서버에서 이미 관리되고 있는 데이터를 클라이언트에서 다시 들고 있어야 한다는 점입니다.즉, 서버 상태(Server State)를 로컬 상태처럼 관리하다 보니서버와 UI 간의 데이터 불일치중복된 상태 저장불필요한 재렌더링과 같은 문제들이 자주 발생하게 됩니다. 이 글에서는 as is → to be 의 전환 과정을 살펴보며, 이 조합이 어떻게 이러한 구조적 문제를 해결하는지를 이야기합니다.As-Is: 기존의 데이터 패칭 패턴 import {..
Git 에러: POST git-receive-pack (chunked), send-pack: unexpected disconnect while reading sideband packet, fatal: the remote end hung up unexpectedly, Everything up-to-date
·
Dev
문제 상황일반 코드만 푸시할 때는 아무 문제가 없었는데,용량이 큰 PNG 또는 SVG 파일을 함께 푸시하자 다음과 같은 에러가 발생하였습니다.POST git-receive-pack (chunked)send-pack: unexpected disconnect while reading sideband packetfatal: the remote end hung up unexpectedlyEverything up-to-date 원인Git은 기본적으로 전송 가능한 파일 크기 제한(기본 약 1MB)이 설정되어 있습니다.큰 이미지나 리소스 파일을 푸시할 경우, 이 제한을 초과하면서 전송이 중단됩니다. 해결 방법아래 명령어를 통해 전송 버퍼 크기(postBuffer)를 늘려주면 해결됩니다. ✅ 로컬 저장소에만 적용git..