소개
네이버 브랜드커넥트(쇼핑 커넥트) 제휴 포스팅 작업을 자동화하는 시스템을 만들었습니다.
기존 작업은:
상품 검색
상품 선정
홍보링크 발급
글 작성
이미지 삽입
OGP 카드 생성
블로그 발행
까지 대부분 수작업이었고, 키워드 하나당 30분~1시간 정도가 소요됐습니다.
그래서 목표를:
“키워드 하나만 입력하면 블로그 발행까지 자동 화한다”
로 잡고 시스템을 구축했습니다.
최종적으로는 Streamlit 대시보드에서 원클릭으로:
상품 검색
AI 상품 선정
홍보링크 발급
블로그 글 생성
이미지 업로드
OGP 카드 삽입
네이버 블로그 발행
까지 자동 수행되도록 구현했습니다 🚀
진행 방법
기술 스택
Claude Cowork (Opus)
시스템 설계
Playwright 코드 작성
DOM 분석
디버깅
리팩토링
등 전체 개발 workflow를 담당했습니다.
Claude Sonnet API
상품 선정
블로그 글 생성
을 담당했습니다.
비용과 효율을 고려해:
설계/디버깅 → Opus
반복 API 호출 → Sonnet
구조로 분리했습니다.
Playwright (Python)
브라우저 자동화 핵심 역할입니다.
자동화 범위:
- 네이버 로그인
- 상품 검색
- 홍보링크 발급
- 이미지 업로드
- SmartEditor 조작
- OGP 카드 생성
- 블로그 발행
특히 SmartEditor SE5 조작이 가장 난이도가 높았습니다.
Streamlit
운영용 대시보드를 구성했습니다.
기능:
키워드 입력
진행 상태 표시
발행 이력 관리
원클릭 실행
프로젝트 구조
navipost/
├── dashboard.py
├── browser/
│ ├── blog_browser.py
│ └── bc_browser.py
├── modules/
│ ├── keyword.py
│ ├── product.py
│ ├── writer.py
│ └── publisher.py
각 모듈을:
키워드 분석
상품 처리
글 생성
발행 자동화
역할 단위로 분리했습니다.
핵심 프롬프트 구조
Claude Sonnet에는 아래 구조로 글 생성을 요청했습니다.
① 제목 ② 수익 고지문 ③ 도입부 ④ 상품 블록 ⑤ 선택 가이드 ⑥ 마무리
이미지와 링크는:
[IMAGE_BC_n], [LINK_BC_n]
placeholder 형태로 먼저 생성한 뒤, publisher.py에서 실제 이미지와 OGP 카드로 치환했습니다.
결과와 배운 점
구현 결과
최종적으로:
키워드 입력 → 약 5분 내 자동 발행 수준까지 자동화할 수 있었습니다.
추가로:
상품 이미지 자동 삽입
naver.me 홍보링크 연결
OGP 카드 생성
까지 정상 동작을 확인했습니다.
주요 시행착오
1. DOM 셀렉터 변경
브랜드커넥트 CSS 클래스명이 자주 변경되어 selector가 깨졌습니다.
해결:
class*=부분 매칭 사용debug 스크립트로 DOM dump 검증
2. 이미지 다운로드 CORS 문제
브라우저 fetch() 방식이 CORS 정책에 차단됐습니다.
해결:
context.request.get()
방식으로 변경해 안정적으로 다운로드 처리했습니다.
3. OGP 카드 삽입 후 URL 잔존
OGP 카드 생성 후 원본 URL paragraph가 남는 문제가 있었습니다.
해결:
URL 패턴 탐지
JavaScript 후처리 제거
4. Claude API 토큰 초과
장시간 세션 사용 시 context limit 문제가 발생했습니다.
해결:
CLAUDE.md 기반 상태 관리
세션 분리
payload 최소화
느낀 점
이번 프로젝트를 진행하면서:
Claude
Playwright
Streamlit
조합이 실제 운영 자동화에 굉장히 강력하다는 걸 체감했습니다.
특히 단순 글 생성이 아니라:
“브라우저 자동화 + AI 생성 + 발행 workflow”
를 하나의 pipeline으로 연결할 수 있다는 점이 인상적이었습니다.
앞으로는:
예약 발행
성과 분석 대시보드
등으로 확장해볼 계획입니다 😊