OpenClaw 통해 매일 아침 최신 뉴스 5가지를 브리핑으로 정리하고 네이버 블로그에 자동 발행하는 구조 만들기

한 줄 요약

Google News RSS로 뉴스를 모으고, 실제 원문을 다시 읽어 브리핑 템플릿으로 정리한 뒤, OpenClaw 브라우저 세션을 재사용해 네이버 블로그에 자동 발행하는 구조를 만들었다. 중간에 제일 크게 막힌 건 LLM보다도 네이버 에디터의 링크 카드 동작이었고, 결국 하단 링크 모음 + 안정형 본문 구조로 정리했다.

Before

처음 원했던 건 단순했다.
매일 아침 주요 뉴스를 5개 정도 골라서, 사람이 직접 정리한 것 같은 짧은 브리핑 글로 만들고, 그걸 네이버 블로그에 자동으로 발행하는 흐름이었다.

그런데 막상 해보니 생각보다 문제가 많았다.

  • 일반 검색 결과 스니펫만으로는 브리핑 품질이 낮았다.

  • searXNG 기반 수집은 최신 뉴스 기사 후보를 안정적으로 수집 하기 어려웠다.

  • Google News RSS 링크를 그대로 읽으면 원문이 아니라, 중간 링크였다.

  • 카테고리를 억지로 5개 맞추면 품질 낮은 기사까지 끼워 넣게 됐다.

  • 네이버 블로그는 URL을 본문에 넣는 순간 자동으로 카드형 링크를 만들어 문서 구조를 깨뜨렸다.

  • Playwright 단독 로그인 세션은 자주 죽어서 운영 용으로 불안정했다.

즉, 단순히 “뉴스 긁어서 글 써서 발행” 정도가 아니라, 수집 부터 발행까지 전 구간을 다시 설계해야 했다.

After

최종적으로는 구조를 이렇게 정리했다.

1) 수집: Google News RSS 사용

카테고리별로 AI/경제/정치/세계/스포츠 관련 피드를 RSS로 모았다.
브라우저를 과하게 흔들지 않고도 후보를 빠르게 모을 수 있다는 점이 장점 이었다.

2) 선별: 카테고리 균형보다 원문 품질 우선

처음엔 카테고리 별 1개씩 맞추려 했지만, 실제론 이 방식이 선별 품질을 망칠 때가 많았다.
그래서 기준을 바꿨다.

  • 카테고리 중복 허용

  • 서로 다른 원문 기사여야 함

  • 최근 7일 이내 기사만 통과

  • fetch 실패 / 이상 링크 / 오매칭은 제외

  • 억지로 5개를 채우지 않음

이렇게 바꾸니 “형식상 5카테고리”보다, 실제로 읽을 만한 최신 기사들을 고르는 쪽이 훨씬 자연스러웠다.

3) 원문 읽기: RSS 링크가 아니라 실제 기사 URL 재탐색

Google News RSS의 news.google.com/rss/articles/... 링크는 그대로 읽으면 원문이 아니었다.
그래서 제목 + 출처명을 기준으로 실제 언론사 기사 URL을 다시 찾도록 바꿨다.

이 과정에서 알게 된 건, 뉴스 브리핑 품질의 핵심은 템플릿 문장력이 아니라 원문 resolve 정확도라는 점이었다.
기사 제목은 맞는데 예전 기사로 연결되거나 MSN, v.daum 같은 중간 페이지로 빠지면 그 뒤 결과도 전부 무너졌다.

4) 템플릿화: 검색 요약이 아니라 원문 기반 LLM 작성

스니펫이나 메타 설명만으로는 사람이 정리한 것 같은 브리핑이 안 나왔다.
그래서 선택된 기사만 실제로 읽고, LLM이 아래 형식으로 다시 작성하게 만들었다.

  • 헤드라인

  • 한 줄 요약

  • 사실 요약 (3줄)

  • 알아야 할 것

  • 왜 중요한가

  • 출처

이 구조로 가니, 최소한 검색 결과 복 붙 같은 느낌은 많이 줄었다.

5) 네이버 발행: OpenClaw 브라우저 세션 재사용 + CDP 러너

처음엔 Playwright 단독 세션으로 네이버 로그인부터 발행까지 다 하려 했는데, 세션이 자주 죽어서 운영용으로 맞지 않았다.
결국 맞는 구조는 이거였다.

  • OpenClaw 전용 브라우저 세션을 유지한다.

  • 그 세션에서 네이버 편집 에디터를 연다.

  • Playwright는 독립 브라우저가 아니라 OpenClaw의 CDP에 붙어서 입력한다.

즉 로그인 문제를 우회하는 게 아니라, 로그인 된 세션을 오래 재사용하는 방식을 채택했다.

가장 크게 막힌 지점: 네이버가 URL을 카드로 바꿔버렸다

본문 자동 입력까지는 얼추 붙었는데, 발행된 글을 보니 문단이 계속 깨졌다.
처음엔 줄바꿈이나 굵기 문제인 줄 알았는데, 실제 발행본을 보니 원인은 따로 있었다.

본문 안에 URL이 들어가면 네이버가 자동으로 링크 카드/미리보기 블록으로 바꿔버린다.

그 결과,

  • 출처 아래 URL이 카드로 변환되고

  • 카드가 중간에 끼어들면서

  • 다음 줄 1) 문장이나 섹션 라벨이 밀려 섞였다

  • 굵기까지 같이 어긋나 보였다

즉 문제는 단순 포맷팅이 아니라, 네이버 에디터가 본문 URL을 자체적으로 재해석한다는 점이었다.

이걸 확인한 뒤, 본문 구조를 다시 바꿨다.

버린 방식

  • 본문 중간에 URL 직접 쓰기

  • [텍스트](URL) 마크다운 넣기

  • 네이버가 알아서 예쁘게 처리해줄 거라고 기대하기

채택한 방식

  • 본문은 plain stable 템플릿으로 유지

  • 출처는 본문에 출처명만 남김

  • 링크는 본문 중간이 아니라 하단 링크 모음 섹션으로 분리

결론적으로, 운영용 1차 정답은 하단 링크 모음 + 안정형 본문이었다.

디벨롭 포인트

이 구조가 붙고 나서도 남은 과제는 분명했다.

1) 원문 resolve 정확도 더 올리기

아직도 가끔 제목은 맞는데 과거 기사나 중간 페이지로 잘못 연결되는 경우가 있다.
원문 URL을 고를 때 제목·출처·날짜 일치율을 더 엄격하게 보는 보정이 필요하다.

2) 네이버 최종 발행 confirm 더 안정화

본문 입력 자체는 거의 붙었지만, 네이버 발행 단계는 1차 발행 버튼과 팝업 안 최종 발행 버튼을 정확히 구분해야 한다.
이건 마지막에 태그까지 채우고 “최종 발행”에서 멈추는 문제를 겪으면서 별도 보정했다.

3) 글 품질 고도화는 발행 안정화 다음 단계

나중에는 기사형 카드 UI를 참고해서,

  • 헤드라인 아래 대표 이미지

  • 카드형 커버 이미지

  • 기사별 시각 요소
    같은 포맷도 넣어보고 싶다.

다만 이건 발행 구조가 충분히 안정화된 뒤 하는 게 맞다.
지금은 보기 좋은 것보다 “매일 안 깨지고 올라가느냐”가 더 중요하다.

왜 이 구조가 중요했나

처음엔 그냥 “뉴스 요약 자동화” 정도로 생각했는데, 실제로는 더 큰 교훈이 있었다.

자동화를 만들 때 중요한 건 “다 자동화할 수 있냐”보다, 어디서 깨지고 어디를 타협해야 안정적으로 굴러가느냐는 점이었다.

이번 작업에서도 그게 그대로 드러났다.

  • 뉴스는 많이 모으는 것보다 좋은 원문 몇 개를 정확히 읽는 것이 중요했고,

  • 네이버는 예쁘게 보이게 하려는 시도보다 에디터가 덜 개입하는 구조가 더 중요했고,

  • 로그인은 새로 자동으로 뚫는 것보다 세션을 유지해서 재 사용하는 방식이 맞았다.

즉 이 구조는 단순히 “브리핑 글 하나 발행”하는 자동화가 아니라,
수집 → 선별 → 원문 읽기 → 템플릿화 → 발행까지 이어지는 운영형 파이프라인을 만드는 과정이었다.

-본 구조를 통해 자동 발행 된 블로그 글 : https://blog.naver.com/storemasu/224244639683

진짜 실험은 지금부터

일단 구조는 붙었다.
Google News RSS 기반으로 오늘의 브리핑을 만들고, 옵시디언에 저장하고, 네이버 블로그까지 새 글로 발행하는 흐름이 실제로 돌아갔다.

이제 남은 건 두 가지다.

  • 이게 며칠 연속으로도 안정적으로 도는지

  • 그리고 발행 구조가 충분히 안정화된 뒤, 글 품질과 시각 요소를 얼마나 더 끌어올릴 수 있는지

오늘 얻은 결론은 분명하다.

자동화는 한 번에 완성되지 않는다.
대신 어디서 깨지는지 끝까지 따라가다 보면, 결국 운영 가능한 구조는 남는다.

2

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요