블로그
cyh-lab.com 허브와 산하 서브도메인 사이트를 만들면서 겪은 삽질과 설정 기록입니다.
2026-08-22
재테크 계산기 사이트를 만들면서 겪은 것들 — calc.cyh-lab.com
취득세는 주택 수·조정대상지역·매매가 구간에 따라 세율이 완전히 달라졌다. 세법 기준을 코드로 옮기고 검증한 과정을 정리했다.
2026-08-20
Next.js Route Handler로 API 키를 클라이언트에서 숨기는 방법
브라우저 네트워크 탭에 API 키가 그대로 찍혀 있었다. NEXT_PUBLIC_ 환경변수의 함정과 Route Handler로 옮긴 과정을 정리했다.
2026-08-19
Claude Code 커맨드 파일로 작업을 위임하는 방법
대화로 매번 컨텍스트를 설명하는 대신, .md 파일에 작업 지시를 정리해두고 슬래시 커맨드로 호출하는 방식을 정리했다.
2026-08-17
애드센스 심사가 계속 떨어졌다. 그래서 사이트 자체를 바꿨다
링크 두 개짜리 허브 페이지는 메인 도메인에 콘텐츠가 없다는 게 문제였다. 콘텐츠를 억지로 붙이는 대신 사이트 방향 자체를 개발 블로그로 바꾼 이야기를 정리했다.
2026-08-16
charades.cyh-lab.com 사이트맵이 없었다는 걸 뒤늦게 알았다
새 사이트를 만들 때마다 sitemap.xml을 챙기는 걸 깜빡했다. charades에는 아예 없었고, www 쪽은 배열을 매핑하고 있어서 오히려 이미 다 되어 있었다.
2026-08-15
네이버 블로그 에디터에 맞춰 글 쓰는 도구를 만들며 겪은 것들
외부 CSS는 다 무시되고, line-height도 안 먹히고, 이미지는 필터링됐다. 글 내용보다 네이버 에디터에 맞춰 서식을 살리는 데 더 오래 걸렸다.
2026-08-14
파티게임 사이트 모바일 UX 설계하면서 고민한 것들
타이머가 돌아가는데 화면이 꺼지면 게임이 끊긴다. Wake Lock API로 화면 꺼짐을 막고, 역할 확인 화면을 다듬은 과정을 정리했다.
2026-08-13
새 서브도메인 소개 카드 추가할 때 형식이 자꾸 어긋나던 문제, Claude Skill로 고쳤다
설명 문장 톤이 사이트마다 미묘하게 달랐다. tagline·description 작성 기준을 SKILL.md에 고정해두고 나서야 카드 형식이 맞아떨어지기 시작했다.
2026-08-10
Next.js에서 서버 없이 게임 상태를 관리하는 방법
useState만으로는 상태가 흩어져서 관리가 어려워졌다. 게임별 useReducer로 모으고, 타이머는 useInterval 커스텀 훅으로 처리한 방식을 정리했다.
2026-08-05
파티게임 제시어 데이터를 Claude로 만든 방법
타입부터 정의하고 포맷을 명확히 지정해서 요청했더니 바로 쓸 수 있는 데이터가 나왔다. 난이도·중복 검수는 직접 한 이야기까지 정리했다.
2026-08-01
파티게임 사이트를 만든 이유 — charades.cyh-lab.com
몸으로 말해요, 이구동성, 스무고개, 라이어 게임, 사진 맞히기. 앱 설치 없이 브라우저에서 바로 쓰는 파티게임 사이트를 만들게 된 이유를 정리했다.
2026-07-29
Cursor와 Claude Code, 둘 다 써보고 느낀 차이
파일 하나 고칠 땐 Cursor, 여러 파일에 걸친 새 기능은 Claude Code. 두 도구를 나눠 쓰게 된 기준을 정리했다.
2026-07-23
Claude로 Next.js 컴포넌트 짤 때 쓰는 프롬프트 패턴
"이거 만들어줘" 식으로 던지면 수정을 몇 번씩 해야 했다. 컨텍스트를 먼저 주고, 타입부터 정의하는 식으로 프롬프트를 바꾸며 정리한 패턴을 기록했다.
2026-07-15
Vercel 무료 플랜으로 Next.js 사이트 세 개 운영하기
Serverless Function 10초 제한에 걸려 timeout이 나던 문제를, 클라이언트로 로직을 옮기고 AbortController로 직접 8초 타임아웃을 걸어 해결했다.
2026-07-13
next/image로 외부 이미지 도메인 설정하다 삽질한 경험
hostname이 설정 안 됐다는 에러 메시지만 보고 한참 헤맸다. domains(deprecated)를 거쳐 remotePatterns 와일드카드로 정리하기까지의 과정을 순서대로 기록했다.
2026-07-10
Next.js App Router fetch 캐싱이 예상대로 안 됐던 경험
새로고침해도 주식 시세가 안 바뀌었다. fetch 기본값이 force-cache라는 걸 뒤늦게 알고 revalidate로 고친 과정을 기록했다.
2026-07-05
Vercel에서 Next.js 서브도메인 실제 설정하는 법 — cyh-lab.com 구조 설계기 (2편)
DNS 전파를 못 기다리고 레코드를 지웠다 다시 만든 이야기부터, 서브도메인 링크는 <a> 태그를 써야 하는 이유까지 정리했다.
2026-07-01
경로 대신 서브도메인을 선택한 이유 — cyh-lab.com 구조 설계기 (1편)
의존성 충돌, 배포 단위 문제, 무서운 롤백. 경로 기반 구조에서 서브도메인 구조로 전환하게 된 이유를 정리했다.