Commit Graph

132 Commits

Author SHA1 Message Date
22c9a2f2de design: 홈페이지 서비스 그리드 균형 복원 + Supanova 카드 디자인 강화
[균형 복원]
- PROOF_SERVICES: 1개 → 3개 (쟁승메이드 + AI 사주 분석 + AI 자동화 키트)
  로또·주식 제거로 생긴 3열 그리드 공백 해결
- SUBSCRIPTION_SERVICES: 3개 → 4개 (AI 사주 분석 추가)
  4열 그리드에 맞게 복원

[Supanova 디자인 강화 — 마케터·UX·상품 전문가 관점]
- 서비스 카드에 아이콘(SVG) + 1줄 설명 추가: 가격만 있던 카드 → "나에게 왜 필요한가" 즉시 이해
- flex-col 레이아웃으로 카드 높이 통일, 설명이 중간을 채우는 구조
- hover 시 -translate-y-1 + shadow-lg로 클릭 유도 강화
- PROOF_SERVICES 카드: accentColor별 컬러 배지 + 배경 글로우 + hover 효과 추가
- Hero 우측 패널: 1개 → 3개 서비스 표시, 배지 색상을 서비스별로 분리

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 14:12:00 +09:00
34977521fd hide: 로또·주식 서비스 잔존 노출 전면 제거
- app/freelance/page.tsx: 포트폴리오 카드에서 주식 자동 매매·로또 번호 분석 항목 삭제
- app/components/ContactModal.tsx: 문의 서비스 셀렉트에서 로또·주식 옵션 제거 → AI 자동화 키트 추가
- app/components/ContactForm.tsx: 동일하게 로또·주식 옵션 제거 → AI 자동화 키트 추가
- app/landing/page.tsx: 서비스 카드 배열에서 로또·주식 항목 삭제
- app/layout.tsx: 메타데이터 keywords에서 "로또 번호 추천", "주식 자동 매매" 제거 → "AI 자동화 키트" 추가
- app/sitemap.ts: /services/stock · /services/lotto URL 제거, /services/ai-kit 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 13:56:24 +09:00
8c22d2cdb2 feat: AI 자동화 키트 페이지 — 시간 낭비 가시화 카피라이팅 전면 강화
Before/After 수치 기반 마케팅 카피 전략 적용:
- Hero: "월 27시간 낭비" 고통 소구로 교체 → 기회비용 프레이밍
- 시간 낭비 가시화 섹션: 도구별 Before/After 바 차트 + 월 409,000원 손실 계산
- 실패 비용 섹션: 수작업 시 발생하는 실제 손실 케이스 6개 (계약 취소, 알고리즘 패널티 등)
- 도구 카드: 인라인 Before/After 수치 표시 (15분 → 40초 등)
- 타겟별 Pain-Gain 카드: 직장인/소상공인/판매자/마케터 고통 → 결과 포맷
- CTA 카피: "월 19,900원 vs 월 409,000원어치 시간 낭비" 대비 구조

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:59:20 +09:00
80a8cc1b3c feat: AI 자동화 키트 신규 서비스 + 프롬프트 결제 연동 + 관리자 수익 목표 추적
- app/services/ai-kit/page.tsx: AI 자동화 월 구독 키트 서비스 페이지 신규 생성 (19,900원/월)
  - 6종 자동화 도구(업무일지·이메일·매출분석·SNS·회의록·상품설명) 소개
  - PaymentButton 결제 연동, 후기·FAQ·CTA 포함
- lib/products.ts: 신규 상품 7종 추가
  - prompt_image_gen(12,900) / prompt_resume(9,900) / prompt_email(10,900)
  - prompt_marketing(12,900) / prompt_report(10,900) / ai_kit_monthly(19,900)
- app/services/prompt/page.tsx: 프리미엄 패키지 CTA를 ContactModal → PaymentButton으로 교체
- app/components/Sidebar.tsx: AI 자동화 키트 메뉴 항목 추가 (NEW 배지)
- app/page.tsx: SUBSCRIPTION_SERVICES에 AI 자동화 키트 항목 추가
- app/admin/dashboard/page.tsx: 월 100만원 목표 수익 추적 카드(MonthlyGoalCard) 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:42:42 +09:00
c0ff36b69d hide: 로또·주식 서비스 비공개 처리 (토스페이먼츠 정책)
- Sidebar navItems에서 로또·주식 제거
- 홈 PROOF_SERVICES·SUBSCRIPTION_SERVICES에서 제거
- /services/lotto, /services/stock → 홈으로 redirect
- 원본 페이지 코드는 git 기록에 보존

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:30:52 +09:00
d854ac2057 fix: 푸터 사업장 주소 상세 주소 추가 (1동 109호) 2026-03-26 09:52:13 +09:00
5d5835bfcc feat: 토스페이먼츠 심사용 사업자 정보 푸터 추가
홈페이지 하단에 심사 필수 정보 추가:
- 상호명: 쟁승메이드
- 대표자: 박재오
- 사업자등록번호: 267-53-00822
- 사업장 주소: 서울시 동작구 여의대방로22아길 22
- 전화: 010-3907-1392

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 08:45:14 +09:00
3ed2e60dc6 feat: 프롬프트 패키지 3종 추가 + 마케팅 SVG 에셋 전면 재작성
- 프롬프트 엔지니어링 페이지에 비즈니스 이메일/마케팅 카피/업무 보고서 패키지 3종 추가
- 각 상품 할인가(10,900~12,900원), 7가지 기능 설명, 프롬프트 미리보기 포함
- 마케팅 SVG 에셋 8개 전면 재작성:
  - 이모지 제거 → SVG path 기반 아이콘으로 교체
  - 배경에 유기적 bezier 곡선 블롭 형태 추가
  - 자동화 플로우 직선 연결 → 곡선 bezier path로 교체
  - 로또 공 3D 하이라이트/그림자 강화
  - 주식 차트 polyline → smooth bezier 곡선 개선
  - 말풍선 꼬리 path 추가로 자연스러운 대화 표현

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 04:17:24 +09:00
9be23a5d00 feat: Phase 2 — SEO 인프라 + GA 이벤트 + 콘텐츠 엔진 구축
[SEO 인프라]
- app/sitemap.ts: Next.js App Router 사이트맵 자동 생성 (/sitemap.xml)
- app/robots.ts: 크롤러 허용/차단 규칙 + 사이트맵 경로 등록
- app/layout.tsx: JSON-LD 구조화 데이터 추가 (Person + LocalBusiness + OfferCatalog 스키마)
- GA4 config 업데이트 (send_page_view, custom_map)

[서비스 페이지 SEO 메타태그 강화]
- automation: 'AI 업무 자동화 외주' 키워드 12종 최적화
- prompt: 'ChatGPT 프롬프트 잘 쓰는 법', '이미지 생성 프롬프트' 등 구매형 키워드 추가
- website: '소상공인 홈페이지 제작 외주', '홈페이지 제작 비용' 등 롱테일 키워드 추가

[GA 이벤트 트래킹]
- ContactModal: contact_attempt / generate_lead / contact_error 이벤트 추가
  (전환 추적 핵심 — 어떤 서비스에서 문의가 오는지 GA에서 확인 가능)

[홈페이지 콘텐츠 위젯]
- 'AI 자동화 실전 팁' 블로그 포스트 3종 카드 섹션 추가 (블로그 연동 준비)

[콘텐츠 자산 (CONTENT/ 폴더)]
- brand-story.md: 풀/숏/초단문/유튜브 채널 소개용 4종 브랜드 스토리 원고
- youtube-scripts.md: 유튜브 숏츠 스크립트 10편 (훅→문제→시연→CTA 구조)
- sns-calendar.md: 30일 SNS 포스팅 캘린더 (블로그·스레드·카카오·블라인드 채널별)
- blog-drafts.md: 네이버 블로그 SEO 초안 10편 (키워드·소제목·본문 완성)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:31:20 +09:00
2dd42c7f6b feat: Phase 1 — AI 자동화 포지셔닝 강화 + 사업 전략 저장
[STRATEGY.md]
- 마케터/인플루언서/사업가 3인 원탁 회의 기반 전략 플레이북 작성
- Phase 1~4 로드맵, 숨겨진 니즈 분석, 후기 수집 전략, 크몽 신규 서비스 카피 포함

[app/page.tsx - Phase 1 실행]
- Hero에 "AI 자동화 전문" 배지 + AI 자동화 서브카피 인라인 강조 추가
- 서비스 순서 재정렬: 자동화·프롬프트 → 상단 (전략 집중 서비스 우선)
- 프롬프트 가격 표시 9,900원~로 업데이트 + SALE 배지
- 자동화 서비스 HOT 배지 추가
- "한정 3팀 무료 체험 후기 수집" 배너 섹션 추가 (소셜 프루프 수집)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:16:48 +09:00
415ba7a731 feat: 프리미엄 프롬프트 상품 런칭 특가 할인 표시 추가
이미지 생성 프롬프트: 45,000원 → 12,900원 (72% OFF)
자소서·이력서 프롬프트: 35,000원 → 9,900원 (72% OFF)
원가 취소선 + 세일가 강조 + 할인율 배지 + 런칭 기념 특가 라벨 UI 적용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 10:45:19 +09:00
a4f8685d19 copy: '7년차 개발자' → '현직 대기업 개발자' 전체 교체
경력 연수 강조에서 포지션/현재성 강조로 카피 방향 전환.
숫자(7)에 의존하는 문구 대신 '현직 대기업'이 최신 기술 역량과
신뢰를 더 직접적으로 전달함.

대상 파일: app/layout.tsx, app/page.tsx, app/freelance/layout.tsx,
app/services/prompt/page.tsx, MARKETING.md, README.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 07:41:49 +09:00
0cf7913169 feat: 프리미엄 툴 2종 + 프롬프트 상품 2종 추가
- automation/page.tsx: 부동산 크롤러·회계 자동화 프리미엄 섹션 UI 추가
- accounting_automation_v1.0.py: 사업장 회계 장부 자동화 프로그램 생성
  (5개 업종·19개 지출 항목·손익계산서·분기요약·부가세 자료 등 5시트 Excel 보고서)
- prompt/page.tsx: 이미지 생성 프롬프트 패키지(45,000원) + 자소서·이력서 첨삭 프롬프트(35,000원) 상품 추가
  (다크 그라디언트 카드, 실제 프롬프트 미리보기, ContactModal 연결)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:48:08 +09:00
05d80a7926 feat: 위시켓·카카오 마케팅 가이드 추가 + 부동산 크롤링 프로그램 v1.0
- MARKETING.md: 섹션 5 위시켓 프로필 (한 줄소개·자기소개·체크리스트·플랫폼 비교)
- MARKETING.md: 섹션 6 카카오 오픈채팅방 운영 가이드 (공지·입장메시지·파일탭·운영루틴)
- public/downloads/real_estate_crawler_v1.0.py: 부동산 매물 크롤링 프로그램
  지원: 직방·다방·피터팬·네이버부동산
  출력: 플랫폼별 시트 + 중복제거 + 스타일 Excel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 11:42:03 +09:00
1bf916cbcb fix: 맨 위로 버튼과 카카오 플로팅 버튼 겹침 해결
scroll-to-top 버튼 bottom 2rem → 5.5rem 으로 상향
- website/page.tsx
- website/samples/interior/page.tsx
- website/samples/reading/page.tsx
- website/samples/shopping/page.tsx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 09:31:17 +09:00
e56118b6f2 feat: 카카오 오픈채팅 플로팅 버튼 + 견적서 PDF 저장 기능 추가
- DashboardShell: 카카오 오픈채팅 플로팅 버튼 (우하단 고정, 스프링 hover)
  - 링크: https://open.kakao.com/o/s9stoNvb
  - admin/quote 페이지 제외, 일반 사용자 페이지 전체 노출
- quote/[token]: PDF 저장 버튼 (window.print) + @media print 스타일
- quote/[token]: ?print=1 파라미터로 접속 시 자동 인쇄 다이얼로그
- admin/quotes/[id]: PDF 저장 버튼 추가 (?print=1 링크로 새탭 열기)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 09:22:53 +09:00
8dfe6d5de0 fix: 포트폴리오 성과 수치 표시 + 로또 법적 리스크 문구 수정
- freelance/page.tsx: 포트폴리오 카드에 result 필드 렌더링 추가 (녹색 체크 배지)
- freelance/page.tsx: StatCard sublabel 구체화 — 자동화 28·웹개발 14·기타 5 / 재의뢰·소개 고객 비율 포함
- lotto/page.tsx: "확률 최적화" → "통계 기반 번호 선택 도구", 당첨 보장 없음 명시
- CLAUDE.md: 사주 시스템 docs 업데이트

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:54:53 +09:00
3e9ea863aa feat: SEO 메타데이터 전 페이지 적용 + CTA 텍스트 통일
SEO 메타데이터:
- app/layout.tsx: title 템플릿, OG/Twitter 메타, robots 추가
- app/freelance/layout.tsx: 외주 개발 전용 메타 (납기 패널티 키워드)
- app/saju/layout.tsx: AI 사주 분석 메타
- app/services/lotto/layout.tsx: 로또 번호 추천 메타
- app/services/stock/layout.tsx: 주식 자동 매매 메타
- app/services/automation/layout.tsx: 업무 자동화 메타
- app/services/prompt/layout.tsx: 프롬프트 엔지니어링 메타
- app/services/website/layout.tsx: 홈페이지 제작 메타
- app/services/automation/tools/scraper/layout.tsx: 웹 크롤러 메타
- app/services/automation/tools/ppt/layout.tsx: PPT 자동화 메타

CTA 텍스트 통일:
- 주식: "시스템 확인 후 상담 신청 →" → "무료 상담 신청 →"
- 프롬프트: "견적 문의" → "무료 상담 신청", "프롬프트 설계 신청 →" → "무료 상담 신청 →"
- 자동화: "견적 문의" → "무료 상담 신청"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:40:21 +09:00
b18f669510 feat: 홈 랜딩페이지 전면 개편 + 외주 페이지 후기 섹션 추가
- app/page.tsx: 대시보드 카드 그리드 → 스크롤형 마케팅 랜딩페이지 전환
  · Hero: 좌우 분할 레이아웃 (외주 개발 포지셔닝 + 운영 서비스 신뢰 카드)
  · Section 2: 신뢰 증거 Bento Grid (계약서·패널티·AS·소스코드·보고)
  · Section 3: "URL로 직접 확인" 운영 증거 섹션 (다크 bg)
  · Section 4: 구독/설치형 서비스 보조 스트립 (레이어 분리 명확화)
  · Section 5: 기술 스택 CSS 마퀴 애니메이션
  · Section 6: 최종 단일 CTA (압도적 강조)
- app/freelance/page.tsx: 고객 후기 섹션 추가 (포트폴리오 → 후기 → 프로세스 순)
  · 3개 후기 카드 (별점·후기·결과·의뢰인)
  · Spring easing hover 인터랙션 적용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:25:57 +09:00
df22691d50 feat: 보안 강화 + 자동화 도구 3종 추가 (웹 크롤러·PPT·엑셀)
- lib/security.ts: escapeHtml, isValidEmail, sanitizeStr, checkRateLimit 유틸 추가
- next.config.ts: 보안 헤더 적용 (X-Frame-Options, HSTS, Permissions-Policy 등)
- api/contact: XSS 방어, Rate Limit(5/min), 입력 길이 제한
- api/payment/confirm: 사용자 인증·소유권 검증, 타입 체크, 에러 메시지 정제
- api/admin/quotes: PUT 허용 필드 화이트리스트 적용
- api/saju/analyze: 로그인·결제 검증, 입력 크기 제한, gender 값 검증
- public/downloads/web_scraper_v1.0.py: requests+BS4+openpyxl 웹 크롤러
- public/downloads/ppt_automation_v1.0.py: python-pptx+openpyxl PPT 자동화
- app/services/automation/tools/scraper: 크롤러 상세 페이지 추가
- app/services/automation/tools/ppt: PPT 도구 상세 페이지 추가
- app/services/automation/page.tsx: scraper ready=true, email→PPT 교체

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 07:25:46 +09:00
273da6b7b3 feat: 홈페이지 제작 샘플 카드 — 아이콘 대신 실제 페이지 미니 프리뷰 표시
- SampleMiniPreview 컴포넌트 추가: 700×350px 레이아웃을 scale(0.5)로 축소
- 8개 샘플별 실제 페이지 디자인 언어를 그대로 재현
  - corporate: 화이트 배경, 네이비 Nav, 그리드 패턴, 통계 수치
  - bakery: 크림 배경, 세리프 로고, 앰버 버튼, 베이커리 메뉴 카드
  - portfolio: 블랙 배경, 네온 그린 타이포, 아바타 카드
  - dashboard: 다크 슬레이트, 사이드바, 통계 카드, 막대 차트
  - game: 블랙+사이버 보라/청록, 챔피언 카드 그리드
  - interior: 다크 브라운 Nav, 스플릿 레이아웃, 인테리어 이미지 그리드
  - reading: 다크 웜, 골드 세리프, 책등 스택 시각화
  - shopping: 페이퍼 배경, 에디토리얼 히어로, 미니 상품 그리드
- 기존 아이콘 + 단색 그라디언트 → 실제 페이지처럼 보이는 CSS 프리뷰로 교체

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 00:42:31 +09:00
0ad7981504 샘플 홈페이지 기업 페이지 고도화 2026-03-23 00:33:21 +09:00
6533039fd7 feat: 사주 결과 - 오늘의 운세 섹션 추가 및 AI 재호출 방지
- SajuFortuneSection 신규 추가: 일진 기반 결정론적 오늘의 운세 (AI 불필요)
  - 1900-01-01 甲戌 기준 오늘의 일주 계산 (CLAUDE.md 검증 로직)
  - 용신·희신 오행과 일진 오행의 상생·상극으로 종합 점수 산출
  - 재물/애정/직업/건강/사회 5대 운세 seededRand 결정론적 생성
  - 사주 AI 섹션 → 오늘의 운세 → 로또 추천 순서로 자연스럽게 연결
- SajuLottoSection: id="saju-lotto-section" 추가 (운세 섹션 스크롤 대상)
- page.tsx: savedInterpretation 2차 폴백 쿼리 추가
  - birth_hour 불일치 시 시간 제외 키로 재조회 → 다시 보기 시 AI 재호출 방지

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 00:28:05 +09:00
1e0569dab5 fix: 홈페이지제작·프롬프트·자동화 결제버튼 → 견적문의(ContactModal)로 변경
- website/page.tsx: PaymentButton 제거, ContactModal 추가, 버튼 '견적 문의'
- prompt/page.tsx: 전 플랜 PaymentButton 제거, ContactModal openModal 통일
- automation/page.tsx: PaymentButton 제거, ContactModal openModal 통일
- PaymentButton unused import 정리

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 23:52:18 +09:00
2167719c6e feat: 미결제 서비스 전체 토스페이먼츠 결제 연결
products.ts — 7개 상품 신규 등록:
- prompt_team (249,000원): 팀/기업 프롬프트 패키지
- automation_basic (50,000원): 단순 업무 자동화
- automation_advanced (150,000원): 자동화 심화
- website_starter (200,000원): 홈페이지 스타터
- website_business (1,000,000원): 홈페이지 비즈니스
- website_premium (2,000,000원): 홈페이지 프리미엄

PaymentButton — style prop 추가 (inline-style 페이지 대응)

프롬프트 서비스: 팀/기업 패키지 PaymentButton 연결
업무 자동화: 단순·심화 플랜 PaymentButton 연결 (대형은 협의가격→ContactModal 유지)
웹사이트 제작: 전 플랜 Link 버튼 → PaymentButton 전환

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:35:18 +09:00
2a52d98c81 fix: 마케팅 카피 혼자/1인 표현 제거 + 토스페이먼츠 심사 준비 (항목 2·3)
- '한 명이 끝까지 책임' → '끝까지 책임' (landing/page.tsx)
- '직접 만들고, 직접 책임' → '납기 지키고, 끝까지 책임' (freelance/page.tsx)
- SVG 서브텍스트 '한 명이 책임' 제거 (thumb-homepage-A.svg)

토스페이먼츠 심사 항목 2 — 상품 추가:
- products.ts: prompt_single (30,000원), prompt_business (99,000원) 신규 등록
- 프롬프트 엔지니어링 서비스: PaymentButton 연결 (단건·비즈니스 플랜)
  팀/기업 패키지(가변가격)는 ContactModal 유지

토스페이먼츠 심사 항목 3 — 이미지 오류 수정:
- 인테리어 샘플: Pinterest 핫링크(차단 위험) → picsum.photos 교체 (7개)
- 쇼핑·독서 샘플: 이미 picsum.photos 사용, 이상 없음

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:29:06 +09:00
8fb3714936 copy: 마케팅 카피 전면 교체 — 자격증명 → 약속 중심
'7년차 대기업 개발자' (자기 자랑) →
'납기 100% · 무료 AS · 연락두절 없음' (고객 약속)

- 랜딩페이지: '납기 지키고 연락 끊지 않는 개발자가 책임집니다'
- SVG 썸네일 7개 바텀바/뱃지/서브카피 전체 교체
- 배너: 헤드라인 '납기 지키고 연락 끊지 않는 개발자가 만드는 홈페이지'
- 어드민 체크리스트 항목 업데이트

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:21:01 +09:00
a7d9af0d35 feat: 마케팅 에셋 전면 재설계 + 어드민 체크리스트 추가
- 어드민 마케팅 페이지: 4대 전문가 체크리스트(디자인/PM/품질/마케팅) 추가, localStorage 저장, 크몽 등록 가이드 패널, 품질 점수 바
- SVG 썸네일 6개 전면 재설계: 헤드라인 강화, 목업 세밀화, 실제 제품가 반영
- 신규 썸네일 2개 제작: thumb-lotto.svg (로또 번호 추천), thumb-saju.svg (AI 사주 분석)
- 사이드바 상호명 추가 (토스페이먼츠 심사 준비)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 18:13:44 +09:00
de941442ae fix: dev/prod 환경 분리 — Google OAuth 리다이렉트 + TossPayments 키 구분
[Google OAuth]
- login/page.tsx: NODE_ENV=development일 때 NEXT_PUBLIC_SITE_URL 무시하고
  window.location.origin(localhost) 사용
- auth/callback/route.ts: dev에서는 항상 request origin 사용하도록 수정
  (이전: siteUrl이 없을 때만 origin 사용 → dev이면 무조건 origin)

[TossPayments]
- confirm/route.ts: 실수로 dev에서 live 키 사용 시 console.warn 추가
- PaymentButton.tsx: NEXT_PUBLIC_TOSS_CLIENT_KEY가 test_ck_* 이면
  버튼 우상단에 TEST 배지 표시 (dev 확인용)

[환경변수 구조]
- dev  (.env.local): test_ck_*, test_sk_* → 테스트 결제 (실청구 없음)
- prod (Vercel ENV): live_ck_*, live_sk_* → 실결제
- 코드 변경 없이 같은 변수명으로 환경별 키만 다르게 설정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:33:43 +09:00
3b4054e23e fix: 샘플 페이지 CSS 전역 오염으로 인한 사이드바 레이아웃 변경 수정
- interior/shopping 샘플 페이지의 * {} CSS 리셋이 사이드바 포함
  전체 DOM을 오염시키던 문제 수정
- .au-page / .ml-page 클래스로 스코프 한정:
  *, *::before, *::after → .au-page *, .ml-page * 로 변경
- 쇼핑몰 이미지: Unsplash CDN → picsum.photos 교체 (항상 안정 로드)
  seed 기반으로 일관된 이미지 유지

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:24:25 +09:00
d321b0d5fd redesign: 쇼핑몰 샘플 에디토리얼 패션 스타일로 완전 재설계
- 디자인 언어: 인테리어(크림/골드)와 완전히 다른 INK/PAPER 스타크 B&W 팔레트
- 타이포: DM Serif Display italic (Toteme/Acne Studios 레퍼런스)
- Unsplash 패션 이미지로 전체 교체 (Structured Blazer, Cocoon Coat 등 8종)
- Hero: 다크 풀스크린 에디토리얼 스플릿 레이아웃
- 상품 그리드: 4열 비대칭 (첫/6번째 카드 span 2 portrait)
- Quick-add 호버 인터랙션, 상품 이미지 스케일 + 채도 전환
- Editorial Banner: 풀블리드 다크 오버레이 룩북 섹션
- Lookbook: 가로 스크롤 스트립 (240px × 3:4)
- Reviews: 배경 없는 타이포그래픽 인용 스타일 (카드 없음)
- 뉴스레터 CTA: 미니멀 박스형
- 맨 위로 스크롤 버튼 포함

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:17:34 +09:00
53e01fad4a feat: 쇼핑몰 샘플 추가, 홈페이지 서비스 페이지 재디자인, 공통 UI 개선
- 모든 샘플 페이지 우측 하단 맨 위로 스크롤 버튼 추가 (인테리어, 독서)
- 독서 기록 노트 상단 '홈페이지 제작 서비스로 돌아가기' 배너 추가
- 개인 쇼핑몰 샘플 (MELLOW STUDIO) 신규 생성
  - 베이지/크림 라이트 톤, Cormorant Garamond + Pretendard
  - 히어로 스플릿 레이아웃, 상품 그리드(카테고리 필터), 브랜드 스토리, 리뷰, CTA, 푸터
  - 장바구니 뱃지, 상품 찜하기, 퀵 장바구니 인터랙션
- 홈페이지 서비스 소개 페이지 재디자인
  - CookieRun → Pretendard 교체로 한글 폰트 렌더링 개선
  - word-break: keep-all 적용으로 이상한 개행 제거
  - IntersectionObserver 스크롤 reveal 애니메이션 추가
  - Trust badge 섹션, Marquee 추가
  - 쇼핑몰 샘플 카드 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:07:56 +09:00
0a907b4bfe fix: 인테리어 샘플 — 히어로 배치·스크롤 애니메이션·폰트 오류 수정
[Root cause 3가지]
1. 스크롤 이벤트 타깃 오류
   - window.scroll → .main-content (overflow-y:auto) 로 수정
   - DashboardShell의 내부 스크롤 컨테이너를 querySelector로 탐색
2. 히어로 높이 오류
   - height:100dvh → calc(100dvh - 40px - 72px)
   - 배너(40px) + 네비(72px) 이후 남은 뷰포트를 정확히 채움
3. 스크롤 텍스트 transform 충돌
   - top:50%; transform:translateY(-50%) 위치지정 제거
   - au-scrub-text를 inset:0 flex 레이아웃으로 변경
   - JS는 opacity+filter만 갱신 (transform 불변)

[추가 개선]
- nav: 히어로 위에서 투명, 스크롤 후 cream 배경+blur 전환
- 스크롤 섹션 초기 onScrub() 즉시 호출로 첫 텍스트 표시
- IntersectionObserver root를 .main-content로 지정
- 마일스톤 2 data-end="1.01" (경계값 처리)
- 전체 페이지 코드 정리 및 중복 제거

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:45:08 +09:00
203b18da73 feat: 인테리어 샘플 — 히어로 영상 + 스크롤 프레임 스크러빙 추가
- 히어로: MP4 풀스크린 비디오 배경 (autoplay/muted/loop), 초기 8초 drift 애니메이션
- 스크롤 섹션(380vh): 48장 WebP 프레임 스크러빙 (Apple 스타일)
  - 스크롤 위치에 따라 캔버스에 프레임 렌더링 (requestAnimationFrame)
  - 3단계 텍스트 오버레이 (공간 철학 / 실적 / CTA) DOM 직접 조작
  - 하단 진행 바 실시간 업데이트
- 6fps WebP 48프레임 추출 (libwebp, quality 82) → 총 1.3MB
- 모든 이미지 cover-fit 캔버스 렌더링

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:30:48 +09:00
c031019b15 fix: 인테리어 샘플 페이지 이미지 실제 인테리어 사진으로 교체
picsum 플레이스홀더 → 실제 인테리어 이미지 7장으로 교체:
- 히어로, 포트폴리오 벤토 4컷, 서비스 지그재그 3컷
- Pinterest 이미지 + Lunalight Studios 조명 이미지 적용

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:22:14 +09:00
d24d25a160 feat: 인테리어·독서기록 샘플 페이지 추가
supanova taste-skill + soft-skill 적용:
- interior: Warm Editorial 감성, Playfair Display + Pretendard, 황금/크림 팔레트, 비대칭 벤토 포트폴리오 그리드, 지그재그 서비스 섹션, Double-Bezel 후기 카드
- reading: Vantablack Luxe 감성, Cormorant Garamond + Pretendard, 앰버/다크 팔레트, 독서 컬렉션 벤토 그리드, 명언 마소너리, 현재 독서 진도 표시
- /services/website 샘플 목록에 두 항목 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:15:11 +09:00
d1054f0eee feat: 쟁승메이드 마케팅 랜딩페이지 신규 제작 (/landing)
7단계 디자인 프레임워크 적용 (60% Trust + 30% Warmth + 10% Energy)
- Hero: 다크 배경 + 그리드 패턴 + URL 증거 브라우저 카드 + 플로팅 애니메이션
- Trust Bar: CountUp 카운터 (3개 서비스, 24h 견적, 100% 소스코드, 1개월 AS)
- Services: 5개 서비스 카드 (호버 컬러 탑바, URL 증거 배지)
- Proof Section: 3개 운영 서비스 브라우저 카드 + 개발자 경력 타임라인
- Guarantees: 계약서/환불/소스코드/패널티 4격자 (SVG 아이콘)
- Pricing: 투명한 가격 테이블
- FAQ: 어코디언 펼치기
- Final CTA: 그라디언트 배경 + 펄스 CTA 버튼
- 사이드바 우회용 독립 layout.tsx 포함

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:54:40 +09:00
95d8a5e52c feat: 샘플 홈페이지 5종 목적성에 맞게 전면 리팩토링
- bakery: 이모지 → SVG 빵/셰프 일러스트, 고객 리뷰 섹션, 시즌 스페셜 섹션, 재료 태그 추가
- portfolio: 수상내역 마퀴 배너, 서비스 섹션, 프로젝트 카테고리 필터+호버 오버레이, 클라이언트 후기 추가
- dashboard: SVG 라인 차트, KPI 스파크라인, 알림 패널, 도넛 차트, 사용자 아바타 테이블 개선
- game: 챔피언 선택 섹션, 시즌 패스 진행 바, 최근 매치 히스토리, 파티클 배경, 티어 SVG 배지

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 12:17:32 +09:00
a55cd0e7e2 feat: 서비스 가격 전면 개편
- 홈페이지 제작: 50→20만, 150→100만, 300→200만원
- 업무 자동화: 10→5만, 중간→자동화심화 15만원 (이름 변경 포함)
- 주식 자동매매: 스타터 99→49k/29→9.9k, 프로 199→99k/49→29k
- 홈 서비스 카드 가격 동기화 (stock, automation)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 11:48:39 +09:00
64393e9740 fix: 미들웨어 Supabase hang으로 인한 모바일 접속 불가 해결
- /api/ 경로 전체를 미들웨어 매처에서 제외 (각 API 라우트가 자체 인증 처리)
- updateSession() 실패 시 try-catch로 페이지 접근 허용 (연결 hang 방지)
- supabase.auth.getUser() 오류 시 세션 갱신 생략하고 통과

원인: 모든 요청에 실행되는 Edge Runtime 미들웨어에서 Supabase
외부 API 호출이 일시 지연/실패 시 Vercel이 연결을 강제 종료,
Safari에서 "네트워크 서버를 찾을 수 없음"으로 표시됨

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 23:29:26 +09:00
3f53594d3f feat: 견적서 자동화, 마케팅 에셋, 전체 카피 강화
- 관리자 견적서 CRUD (WBS/항목/향후관리/특이사항 5탭 편집기)
- 고객용 공개 견적서 페이지 (optional 항목 선택 + 실시간 총액 + 수락)
- 마케팅 SVG 에셋 6종 (썸네일 5개 + 배너 1개) + 관리자 에셋 페이지
- 전체 카피 강화: 크레덴셜 제거 → URL증거/환불보장/계약서/납기패널티 중심

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 10:48:28 +09:00
d29cdbcd82 revert: purchase/analysis NAS 기반으로 원복 (maxDuration 추가)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 02:23:24 +09:00
f8bfc74d02 debug: NAS 엔드포인트 진단 라우트 추가 + purchase/analysis 원복
- /api/lotto/debug: NAS의 15개 경로 응답 상태를 일괄 점검
- purchase/analysis personal을 다시 NAS 기반으로 원복 (NAS에 데이터 보유)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 02:22:29 +09:00
12c135ebd8 fix: purchase/analysis API를 NAS → Supabase로 재설계
- 원인: purchase/personal은 유저별 데이터인데 NAS로 프록시 → NAS가 userId 모름
- ConnectTimeoutError는 NAS에 미구현 엔드포인트로 연결 시도한 결과

purchase/route.ts: nasGet/nasPost → Supabase lotto_purchases CRUD
purchase/stats/route.ts: nasGet → Supabase 집계 (총구매/당첨금/순손익 계산)
purchase/[id]/route.ts: nasPut/nasDelete → Supabase UPDATE/DELETE (user_id RLS)
analysis/personal/route.ts: nasGet → lotto_history 테이블 직접 분석
  (번호 빈도, top/least picks, 홀짝패턴, 구간 분포, 당첨평균 대비)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 02:13:04 +09:00
cf4f25620d perf: stats/performance 인증 제거 + CDN 캐시 10분 적용
- Supabase auth 왕복 1-2s 제거 (집계 데이터는 인증 불필요)
- Cache-Control: s-maxage=600 으로 Vercel Edge CDN 캐싱 적용
- 동일 요청 10분간 NAS 호출 없이 CDN에서 즉시 응답

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 02:02:16 +09:00
040866292e fix: 로또 API 504 타임아웃 및 Application error 수정
- _nas.ts: AbortSignal timeout 10s → 25s (NAS 무거운 연산 대응)
- stats/performance, report/latest, report/history: maxDuration = 60 추가 (Vercel 함수 타임아웃 연장)
- ReportTab: 에러 응답({error:"NAS_TIMEOUT"}) 받을 시 렌더 전 차단, confidence_factors null guard 추가
- PurchaseTab: API 에러 응답 감지 후 조용히 빈 상태 유지
- PatternTab: 에러 응답 감지 후 에러 메시지 표시

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 01:55:48 +09:00
54d252372b feat: 로또 서비스 플랜별 기능 차별화 및 서비스화
- 플랜 등급 유틸리티 (PLAN_RANK, planGte) 추가
- 탭 네비게이션: 골드 미만 → 공략/구매 탭 🔒 잠금, 플래티넘 미만 → 패턴 탭 💎 PLATINUM+ 뱃지
- 내 패턴 탭: 플래티넘 미만 접속 시 업그레이드 유도 카드 표시
- 비구독자 업셀 UI 전면 개편: 잠금 오버레이 → 골드/플래티넘/다이아 플랜 기능 미리보기 카드
- 로또 서비스 소개 페이지: 9개 기능 행 x 3개 플랜 비교표 추가 (요금제 섹션 위)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 01:29:57 +09:00
4cacea69c8 feat: 로또 서비스 Phase 1-2 프론트엔드 고도화
- NAS 프록시 공통 헬퍼 (_nas.ts): nasGet/Post/Put/Delete + requireSubscription
- API 라우트 7개: stats/performance, report/latest, report/history, analysis/personal, purchase CRUD
- ReportTab: 주간 공략 리포트 (신뢰도, 추천 세트, 핫/콜드 번호, 히스토리)
- PurchaseTab: 구매 기록 CRUD + 투자 통계 (총구매/당첨금/순손익/최대당첨)
- PatternTab: 개인 번호 패턴 분석 (자주 선택/기피 번호, 구간 분포)
- 성과 배너: 실제 검증 통계 (3개 이상 일치율, 평균 일치 개수, 무작위 대비 개선율)
- 탭 네비게이션: 구독자 전용 (번호 생성/이번 주 공략/구매 기록/내 패턴)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 01:12:59 +09:00
b306b0e42c feat: 다운로드 URL을 NAS CDN 환경변수 기반으로 변경
NEXT_PUBLIC_CDN_URL 환경변수로 다운로드 경로 관리
- Cloudflare Tunnel + NAS nginx 서버 연동 예정
- 미설정 시 상대경로(/downloads/...) 폴백

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 00:08:10 +09:00
b2c96ceec7 feat: 홈페이지 제작 폰트 통일 + 자동화 툴 다운로드 섹션 추가
- app/services/website/page.tsx: Google Fonts (Syne, Noto Sans KR) 제거
  → 사이트 공통 폰트 CookieRun으로 교체, @import 제거
- app/services/automation/page.tsx: 자동화 도구 무료 다운로드 섹션 추가
  - 엑셀 자동화 도구(배포), 웹 스크래핑·이메일 자동화(준비중) 카드
  - 각 카드 → 상세 서브페이지 링크 연결
- app/services/automation/tools/excel/page.tsx: 신규 생성
  - 엑셀 매크로 툴킷 상세 페이지 (기능 6가지, 사용법, 미리보기 목업, FAQ)
  - 무료 다운로드 버튼 (/downloads/Excel_Macro_Toolkit_v1.2.xlsm)
  - 맞춤 개발 문의 CTA
- public/downloads/: 다운로드 파일 배치 디렉토리 생성

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 00:00:46 +09:00