본문 바로가기

스터디

티스토리 API 종료? 오히려 좋아! Dify.ai로 블로그 포스팅 완전 자동화 하는 비밀 방법

반응형

 

티스토리 API 종료? 오히려 좋아! Dify.ai로 블로그 포스팅 완전 자동화하는 비밀 방법

안녕하세요, 게임 개발자들! 오늘은 정말 대단한 꿀팁을 가져왔습니다. 티스토리 API가 종료되어 자동 포스팅이 불가능하다고요? 천만의 말씀! 오히려 더 강력한 도구를 활용할 기회가 왔습니다. AI 기술의 힘을 빌려 티스토리 블로그를 완전 자동화하는 비밀 방법을 공개합니다. 이 방법을 적용하면 잠자는 동안에도 고품질 콘텐츠가 자동으로 생성되고 포스팅되는 마법을 경험하게 될 것입니다!

📌 목차

  1. 티스토리 API 종료, 파티는 이제 시작이다
  2. Dify.ai란? AI 자동화의 게임체인저
  3. 초간단 설치 가이드: 10분만에 세팅 완료
  4. 자동화 전략: 워크플로우 구축하기
  5. 코드 한 방에 끝내기: 복사하고 실행만 하세요
  6. 실전 팁: 차원이 다른 자동화 레벨업
  7. 결론: 자고 일어나면 완성되는 블로그 제국

티스토리 API 종료, 파티는 이제 시작이다

"이런, 티스토리 API가 종료되었대요!" - 많은 블로거들의 한숨 소리가 들립니다.

맞습니다. 티스토리는 2023년 12월부터 2024년 2월까지 Open API 서비스를 완전히 종료했습니다. 이제 더 이상 API를 통한 직접적인 포스팅은 불가능합니다. 하지만 여기서 좌절할 필요가 전혀 없습니다!

"좋은 개발자는 문제를 해결하고, 뛰어난 개발자는 문제를 기회로 바꾼다."

API가 막혔다면, 더 강력한 기술로 우회하면 됩니다. 그리고 그 열쇠는 바로 Dify.ai웹 자동화 조합에 있습니다.

Dify.ai란? AI 자동화의 게임체인저

Dify.ai는 LLM(Large Language Model) 기반 애플리케이션을 개발할 수 있는 강력한 오픈소스 플랫폼입니다. 복잡한 AI 워크플로우, RAG 파이프라인, 에이전트 기능 등을 코드 한 줄 없이 구축할 수 있습니다.

Dify.ai 대시보드 이미지

Dify.ai의 핵심 능력:

🔄 복잡한 워크플로우 자동화
🤖 AI 에이전트 구축 및 실행
📝 고품질 콘텐츠 자동 생성
🌐 웹 자동화 통합 기능

이 도구는 단순한 챗봇이 아닙니다. 완전한 워크플로우 자동화 시스템을 구축할 수 있는 플랫폼입니다. 티스토리 API가 막혔다고요? 오히려 좋습니다! 웹 자동화를 통해 더 유연하고 강력한 시스템을 만들 수 있으니까요.

초간단 설치 가이드: 10분만에 세팅 완료

Dify.ai 설치는 놀랍도록 간단합니다. 클라우드 버전과 로컬 설치 두 가지 옵션이 있습니다.

클라우드 버전 (가장 쉬운 방법)

  1. cloud.dify.ai에 접속
  2. 이메일 가입 후 로그인
  3. 대시보드에서 새 프로젝트 생성
  4. 끝! 바로 사용 가능

로컬/서버 설치 (고급 사용자용)

# 저장소 복제
git clone https://github.com/langgenius/dify.git

# 디렉토리 이동
cd dify

# Docker로 실행 (Docker 설치 필요)
docker-compose up -d

5분 안에 모든 설정이 완료됩니다. 이제 티스토리 자동화의 세계로 들어갈 준비가 됐습니다!

자동화 전략: 워크플로우 구축하기

티스토리 API가 막혔다면, 우리는 웹 자동화로 해결합니다. Dify.ai와 Playwright/Selenium을 조합해 완벽한 자동화 시스템을 만들어 보겠습니다.

1단계: 워크플로우 설계

[주제 선정] → [콘텐츠 생성] → [이미지 생성] → [품질 검증] → [티스토리 로그인] → [포스팅] → [발행] → [결과 보고]

2단계: Dify.ai 워크플로우 생성

  1. Dify.ai 대시보드에서 "빈 상태로 시작" 클릭
  2. "워크플로우" 선택 및 앱 이름 설정 ("티스토리 자동화")
  3. 다음 노드 추가:
    • 주제 생성 노드: 블로그 주제 자동 선정
    • 콘텐츠 생성 노드: 블로그 포스트 작성
    • 웹 자동화 노드: 티스토리 접속 및 포스팅

3단계: 주요 워크플로우 노드 설정

주제 생성 노드 프롬프트 예시:

다음 키워드 중에서 게임 개발자에게 유용한 블로그 주제 5개를 제안해주세요:
- 언리얼 엔진
- 유니티
- 게임 최적화
- 인공지능
- 모바일 게임

콘텐츠 생성 노드 프롬프트 예시:

다음 주제에 대한 전문적인 블로그 포스트를 작성해주세요:
주제: {topic}
키워드: {keywords}

포스트는 다음 구조를 따라야 합니다:
1. 흥미로운 제목
2. 도입부 (독자의 관심을 끌 수 있는 내용)
3. 본문 (최소 3개 섹션)
4. 결론 및 독자 참여 유도

티스토리 블로그에 적합한 마크다운 형식으로 작성해주세요.

코드 한 방에 끝내기: 복사하고 실행만 하세요

아래 코드는 Dify.ai의 Jupyter Code Executor 도구에서 실행할 수 있는 완전한 자동화 스크립트입니다. 이 코드는 콘텐츠 생성부터 티스토리 포스팅까지 모든 과정을 자동화합니다.

# 티스토리 블로그 자동 포스팅 완전 자동화 스크립트
# 복사해서 Dify.ai의 Jupyter Code Executor에 붙여넣기만 하세요!

import os
import time
from datetime import datetime
from playwright.sync_api import sync_playwright
import openai  # OpenAI API 사용 예시

# 환경 변수 설정 (실제 값으로 변경하세요)
TISTORY_ID = "your_tistory_id"       # 티스토리 아이디
TISTORY_PW = "your_tistory_password" # 티스토리 비밀번호
TISTORY_BLOG = "your_blog_name"      # 블로그 이름 (예: myblog.tistory.com의 'myblog' 부분)
OPENAI_API_KEY = "your_openai_api_key" # OpenAI API 키

# OpenAI API 설정
openai.api_key = OPENAI_API_KEY

def generate_content(topic, keywords):
    """AI로 블로그 콘텐츠 생성"""
    prompt = f"""
    다음 주제와 키워드로 티스토리 블로그 포스트를 작성해주세요:
    
    주제: {topic}
    키워드: {keywords}
    
    1500-2000자 내외로 작성하고, 다음 구성을 포함하세요:
    - 매력적인 제목
    - 소개 (독자의 관심을 유도)
    - 본문 (3-4개 섹션으로 구성)
    - 결론 및 독자 참여 유도
    
    SEO에 최적화된 내용으로 작성하고, 마크다운 문법을 사용하세요.
    """
    
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "당신은 전문 블로그 작가입니다. SEO에 최적화된 고품질 블로그 포스트를 작성합니다."},
            {"role": "user", "content": prompt}
        ]
    )
    
    return response.choices[0].message.content

def post_to_tistory(title, content, category="0", tags=""):
    """Playwright로 티스토리에 포스팅"""
    with sync_playwright() as p:
        # 브라우저 시작
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()
        
        try:
            # 로그인
            page.goto('https://www.tistory.com/auth/login')
            page.fill('#loginId', TISTORY_ID)
            page.fill('#loginPw', TISTORY_PW)
            page.click('button[type="submit"]')
            page.wait_for_load_state('networkidle')
            
            # 블로그 관리 페이지로 이동
            page.goto(f'https://{TISTORY_BLOG}.tistory.com/manage/post')
            page.wait_for_selector('a.btn_post', timeout=10000)
            
            # 새 글쓰기
            page.click('a.btn_post')
            page.wait_for_load_state('networkidle')
            
            # 제목 입력
            page.wait_for_selector('input[name="title"]')
            page.fill('input[name="title"]', title)
            
            # 마크다운 모드 활성화 (있는 경우)
            if page.is_visible('a.btn_markdown'):
                page.click('a.btn_markdown')
            
            # 내용 입력 (에디터 타입에 따라 다를 수 있음)
            # 마크다운 에디터
            if page.is_visible('.CodeMirror'):
                page.evaluate('''
                    editor => {
                        const cm = document.querySelector('.CodeMirror').CodeMirror;
                        cm.setValue(arguments[0]);
                        cm.save();
                    }
                ''', content)
            # HTML 에디터 (iframe 기반)
            elif page.is_visible('iframe.iframe_editor'):
                frame = page.frame_locator('iframe.iframe_editor').first
                frame.locator('body').fill(content)
            # 기본 textarea
            else:
                page.fill('textarea[name="content"]', content)
            
            # 카테고리 선택
            if page.is_visible('select[name="category"]'):
                page.select_option('select[name="category"]', category)
            
            # 태그 입력
            if page.is_visible('input[name="tag"]'):
                page.fill('input[name="tag"]', tags)
            
            # 발행 (공개 설정)
            page.click('input[value="public"]')
            
            # 발행하기
            page.click('button.btn_publish')
            
            # 발행 완료 대기
            page.wait_for_selector('.wrap_post_info', timeout=15000)
            
            # 발행된 포스트 URL 가져오기
            current_url = page.url
            
            return {
                "status": "success",
                "message": "포스팅이 성공적으로 발행되었습니다.",
                "post_url": current_url
            }
            
        except Exception as e:
            return {
                "status": "error",
                "message": f"포스팅 중 오류가 발생했습니다: {str(e)}"
            }
        
        finally:
            browser.close()

# 실행 함수
def run_automation(topic, keywords, category="0", tags=""):
    # 콘텐츠 생성
    print(f"'{topic}' 주제로 콘텐츠 생성 중...")
    generated_content = generate_content(topic, keywords)
    
    # 제목과 본문 분리 (첫 번째 줄을 제목으로 가정)
    content_lines = generated_content.split('\n')
    title = content_lines[0].replace('#', '').strip()
    body = '\n'.join(content_lines[1:])
    
    # 티스토리에 포스팅
    print(f"'{title}' 제목으로 티스토리에 포스팅 중...")
    result = post_to_tistory(title, body, category, tags)
    
    return result

# 자동화 실행
result = run_automation(
    topic="게임 개발자를 위한 최신 엔진 비교",
    keywords="게임 개발, 유니티, 언리얼 엔진, 고도, 게임 엔진 비교",
    category="게임 개발",
    tags="게임개발,엔진비교,유니티,언리얼"
)

print(result)

⚠️ 주의: 실제 사용 시 TISTORY_ID, TISTORY_PW, TISTORY_BLOG, OPENAI_API_KEY 값을 본인의 정보로 변경하세요!

실전 팁: 차원이 다른 자동화 레벨업

기본 자동화를 넘어 고급 자동화 기능들을 추가해 블로그 제국을 건설해보세요:

1. 스마트 주제 선정 자동화

def generate_trending_topics():
    """트렌드 키워드 기반 주제 생성"""
    # 네이버 트렌드, 구글 트렌드 등에서 인기 키워드 수집 코드
    # ...
    
    prompt = f"다음 트렌드 키워드를 활용한 게임 개발 관련 블로그 주제 5개 제안: {trend_keywords}"
    # OpenAI 호출 코드 생략
    
    return topics

2. 이미지 생성 및 첨부 자동화

def generate_and_attach_images(topic, num_images=3):
    """AI로 이미지 생성 및 티스토리 첨부"""
    # DALL-E, Stable Diffusion 등을 활용한 이미지 생성
    # ...
    
    # 생성된 이미지를 티스토리에 첨부
    # ...
    
    return image_urls

3. 완전 자동화 스케줄링

def schedule_posting():
    """일정에 따라 자동 포스팅"""
    # 주 3회, 화/목/토 오전 9시에 자동 포스팅
    # ...

4. SEO 최적화 자동화

def optimize_for_seo(content):
    """SEO 최적화 로직"""
    # 키워드 밀도, 메타 태그, 제목 최적화
    # ...
    
    return optimized_content

결론: 자고 일어나면 완성되는 블로그 제국

티스토리 API가 종료된 것은 축복입니다. 이제 우리는 더 강력한 AI 자동화 도구를 활용해 차원이 다른 블로그 자동화 시스템을 구축할 수 있게 되었으니까요!

Dify.ai와 웹 자동화를 결합한 이 시스템은:

시간 절약: 매일 3-4시간씩 블로그 포스팅에 투자하던 시간을 완전히 자유롭게!
📈 일관성: 정해진 일정에 따라 꾸준히 고품질 콘텐츠 발행
🧠 지능적: 트렌드를 분석하고 SEO에 최적화된 콘텐츠 자동 생성
🔄 적응형: 플랫폼 변화에도 쉽게 적응하는 유연한 시스템

남들은 API 종료로 좌절할 때, 당신은 이미 앞서 나가고 있을 것입니다.

"가장 큰 위기는 가장 큰 기회다."

지금 바로 Dify.ai를 설치하고 이 자동화 코드를 실행해 보세요. 자고 일어나면 완성되어 있는 블로그 포스트를 경험해보세요!


이 글이 유용했다면 댓글과 공유 부탁드립니다! 자동화에 관한 질문이나 추가 팁이 필요하시면 언제든 댓글로 남겨주세요. 다음 포스트에서는 "AI로 게임 개발 프로세스 자동화하기"에 대해 다뤄보겠습니다!



해당 글 자체는 ai가 작성한글로 제가 구축한것과는 다름을 알려드립니다. 근데 은근히 현실성 있는 자동화 방법으로 ai가 글을 써준 방법으로 자동화를 구축하는건 다음시간에 해보겠습니다. 아래는 실제 workflow로 제미나이 무료api키를 사용하였습니다.