feat: 도구 쇼케이스 페이지 + 네이버 블로그 AI 자동화 툴

- 사이드바 "이베이 부품 검색" → "여긴 뭐 만들어요?" (DEMO 배지, /tools)
- /tools 쇼케이스: 완성형 레퍼런스 데모 카드 그리드 + 상담 CTA
- /tools/naver-blog: 주제·키워드·형식·톤·분량 선택 → AI 블로그 글 자동 생성
- 결과 3탭 (글 미리보기·SEO 정보·이미지 가이드) + 전체 복사
- Claude API 연동 SEO 최적화 프롬프트 + fallback 지원

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-03 00:59:00 +09:00
parent e27d13b6ec
commit 3537862c99
6 changed files with 1012 additions and 5 deletions

61
lib/blog-tools/types.ts Normal file
View File

@@ -0,0 +1,61 @@
export interface BlogRequest {
topic: string;
keywords: string[];
style: BlogStyle;
tone: BlogTone;
length: BlogLength;
imageGuide: boolean;
sections: number;
}
export type BlogStyle =
| 'informational' // 정보 전달
| 'review' // 리뷰/후기
| 'howto' // 방법/튜토리얼
| 'listicle' // 리스트형
| 'comparison' // 비교 분석
| 'story'; // 에세이/스토리
export type BlogTone =
| 'professional' // 전문적
| 'friendly' // 친근한
| 'casual' // 캐주얼
| 'formal'; // 격식체
export type BlogLength =
| 'short' // 800~1200자
| 'medium' // 1500~2500자
| 'long'; // 3000~4500자
export interface BlogResult {
success: true;
data: {
title: string;
subtitle: string;
content: BlogSection[];
tags: string[];
seoTitle: string;
seoDescription: string;
imageGuides: ImageGuide[];
meta: {
charCount: number;
sectionCount: number;
estimatedReadTime: string;
generatedAt: string;
model: string;
};
};
}
export interface BlogSection {
heading: string;
body: string;
imageSlot?: boolean;
}
export interface ImageGuide {
position: string;
description: string;
searchKeyword: string;
altText: string;
}