IT

AI 기반 블로그 작성 앱 제작 가이드: 코딩 없이 80분 완성

esmile1 2025. 2. 8. 17:09

AI 기반 블로그 작성 앱 제작 가이드: 코딩 없이 80분 완성

I Built an AI Powered Writing App With Zero Coding

Cursor + Firebase + DeepSeek/EXA API 조합으로 구현하는 지능형 워드 프로세서

1. 핵심 기능 개요

  • 블록 단위 콘텐츠 편집(Shift + →/←)
  • AI 자동 완성(Tab 키 활용)
  • EXA API 기반 실시간 이미지/링크 검색
  • DeepSeek 모델 연계 문맥 인식 작성
  • Firebase 실시간 데이터 동기화

2. 개발 환경 구성

2.1 필수 도구 설치

npm install -g firebase-tools
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh> | bash

2.2 Cursor 초기 설정

  1. Software Composer 템플릿 선택
  2. Next.js 기반 프로젝트 생성
  3. 로컬 실행 환경 구성
// firebase-config.js
import { initializeApp } from "firebase/app";
const firebaseConfig = { /* 개인 설정 */ };
export const app = initializeApp(firebaseConfig);

3. 데이터 아키텍처 설계

Firebase Firestore 구조

컬렉션 문서 필드 데이터 타입

users uid, email string
documents content, images[], links[] array

블록 데이터 모델

interface ContentBlock {
  id: string;
  text: string;
  images: string[];
  links: { url: string; title: string }[];
}

4. AI 통합 구현 단계

4.1 DeepSeek API 연결

// api/deepseek.js
export const generateCompletion = async (prompt) => {
  const response = await fetch('<https://api.deepseek.com/v1/chat/completions>', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.DEEPSEEK_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: "deepseek-chat",
      messages: [{ role: "user", content: prompt }]
    })
  });
  return response.json();
};

4.2 EXA 이미지 검색

# utils/exa_search.py
import requests

def search_images(query):
    headers = {"Authorization": f"Bearer {EXA_API_KEY}"}
    params = {
        "q": query,
        "num_results": 5,
        "highlight": True
    }
    response = requests.get("<https://api.exa.ai/search>", headers=headers, params=params)
    return response.json()["results"]

5. 30단계 상세 구현 매뉴얼

  1. Cursor에서 'nextjs-template-2' 선택
  2. Firebase 콘솔에서 새 프로젝트 생성
  3. 사용자 인증 설정(Google OAuth 활성화)
  4. Firestore 데이터베이스 생성(테스트 모드)
  5. 웹 앱 등록 후 구성 정보 복사
  6. firebase-config.js 파일 생성
  7. Firestore 초기화 코드 작성
  8. 사용자 세션 관리 로직 구현
  9. 메인 페이지에 '새 문서' 버튼 추가
  10. 문서 생성 라우트 설정
  11. 블록 편집기 UI 컴포넌트 제작
  12. Hotkey 라이브러리 통합(react-hotkeys-hook)
  13. Shift+→ 핸들러 구현
  14. 사이드 패널 토글 로직 작성
  15. 이미지 업로드 컴포넌트 개발
  16. EXA API 검색 기능 연동
  17. 검색 결과 표시 그리드 레이아웃
  18. 이미지 선택 저장 기능 구현
  19. DeepSeek 자동 완성 트리거 설정
  20. 문맥 분석 프롬프트 엔지니어링
  21. 생성 텍스트 포맷팅 로직 추가
  22. 실시간 문서 저장 기능(Firestore 연동)
  23. 문서 목록 페이지 구현
  24. 최근 수정 시간 표시 로직
  25. 문서 삭제 기능 추가
  26. 오류 처리 모달 구현
  27. 반응형 CSS 스타일링
  28. 성능 최적화(이미지 지연 로딩)
  29. PWA 설정(오프라인 작동)
  30. 배포 스크립트 작성

6. 핵심 기능 상호작용 다이어그램

graph TD
    A[사용자 입력] --> B{키 입력 분석}
    B -->|Tab| C[DeepSeek API 호출]
    B -->|Shift+→| D[사이드 패널 열기]
    C --> E[AI 생성 텍스트 삽입]
    D --> F[이미지/링크 검색]
    F --> G[EXA API 요청]
    G --> H[결과 표시]
    H --> I[사용자 선택 저장]

7. 문제 해결 가이드

증상 원인 해결책

이미지 업로드 실패 EXIF 메타데이터 exif-js로 제거
API 응답 지연 Cold Start 사전 워밍 요청
CSS 깨짐 CSS-in-JS 충돌 styled-components 재설치
인증 오류 토큰 만료 자동 갱신 로직 추가

프롬프트 엔지니어링 예시

DeepSeek 자동완성 프롬프트

주어진 문맥을 분석해 자연스러운 다음 문장 생성:
- 1문장 길이 제한
- 원문과 어조 일치
- 구체적 사실 제시

예시 입력: "AI의 미래는"
예시 출력: "인간-기계 협업 시스템의 발전으로 일상생활 전반에 적용될 전망"

EXA 이미지 검색 최적화

# 이미지 검색 쿼리 최적화 함수
def optimize_query(text_block):
    keywords = extract_nouns(text_block)  # 한국어 형태소 분석
    return " ".join(keywords[:5]) + " high quality image"

"AI 도구의 진정한 가치는 창작 과정의 흐름을 방해하지 않으면서 창의성을 확장시키는 데 있습니다" - 영상 중 발췌

본 가이드는 2025년 2월 기준 최신 API 사양을 반영했으며, AI 모델 업데이트 시 일부 코드 수정이 필요할 수 있습니다. 이미지 캐싱 전략과 오프라인 동기화 기능 추가를 통해 사용자 경험을 더욱 개선할 수 있습니다.