# 네이버 블로그에 글을 자동으로 올리는 법 — 붙여넣기 실측표 16종

자비스스튜디오 · 2026-09-05 · 회원가입도 댓글도 필요 없습니다. 그대로 쓰세요.

---

## 0. 전제 — API 는 없습니다

네이버 블로그 **글쓰기 API 는 2020년에 폐지**됐습니다. 남은 길은 브라우저를 띄우는 것뿐입니다.

그런데 스마트에디터 ONE 은 컴포넌트 기반이라 **DOM 을 직접 조립하면 계속 깨집니다.**
문단 하나를 넣어도 에디터가 자기 구조로 다시 잡아버립니다.

**방향을 바꾸세요.** HTML 을 클립보드에 올리고 붙여넣으면 에디터가 **알아서 자기 컴포넌트로 바꿔줍니다.**
우리가 만드는 게 아니라 에디터한테 만들게 하는 겁니다.

---

## 1. 살아남는 것 (11종)

| 넣은 HTML | 나온 것 | 비고 |
|---|---|---|
| `<h2>` | `se-fs19` + 굵게 | 별도 「소제목」 컴포넌트가 아니라 **큰 글씨 문단** |
| `<h3>` | `se-fs15` + 굵게 | 본문과 크기가 같다 — h2 와만 구분된다 |
| `<strong>` | 굵게 | |
| `style="font-size:24px"` | `se-fs24` | **인라인 크기가 그대로 산다** |
| `<span style="font-size:19px">` | `se-fs19` (문단 안 일부만) | 부분 강조 가능 |
| `text-align:center` / `right` | `align-center` / `align-right` | |
| `style="color:#0B7A6B"` | `rgb(11,122,107)` | **색이 그대로 산다** |
| `<blockquote>` | **`se-quotation`** | 진짜 인용 컴포넌트 + 「출처 입력」칸 |
| `<hr>` | **`se-horizontalLine`** | |
| `<img>` | **`se-image`** (가운데 정렬) | URL 로 넣으면 네이버가 가져간다 |
| `<figure>` + `<figcaption>` | `se-image` + **캡션** | 캡션이 그대로 들어간다 |

## 2. 버려지는 것 (6종)

| 넣은 HTML | 결과 | 대안 |
|---|---|---|
| `<table>` | **안 넘어간다** | **이미지로 구워서** 사진처럼 넣는다 (아래 4번) |
| `<ul>` `<li>` 목록 | **평범한 문단**으로 풀림 | 앞에 `· ` 를 직접 붙인다 |
| `<pre><code>` | **평범한 문단** | 색+크기로 흉내내거나 이미지로 |
| `<em>` 기울임 | **사라짐** | 굵게나 색으로 대신 |
| `background-color` 형광펜 | **사라짐** | `color` 는 사니까 그걸로 |
| `<style>` 시트 | 통째로 버려짐 | **인라인 스타일만** 쓴다 |

## 3. 함정 둘

**링크만 있는 문단은 OG 카드가 된다.**
링크 하나만 든 `<p>` 를 넣으면 큰 미리보기 카드가 생깁니다.
원하지 않으면 **문장 안에** 링크를 넣으세요 — "자세한 건 여기에 있습니다" 처럼.

**이미지 캡션을 비워두면** 「사진 설명을 입력하세요」가 그대로 남습니다.
`<figcaption>` 은 항상 채우는 게 낫습니다.

⚠ 네이버가 에디터를 고치면 이 표도 다시 재야 합니다. 문서가 아니라 **실측**이라 그렇습니다.

---

## 4. 표는 이미지로 굽는다 — png 말고 webp

`<table>` 이 안 넘어가니 표를 그림으로 만들어 사진처럼 넣습니다.

⚠ 네이버는 이미지를 **URL 로만** 가져갑니다. 그래서 **배포된 주소**여야 합니다.
그리고 호스팅에서 png 를 빼는 설정을 쓰고 있다면(용량 때문에 흔합니다) **png 로 구우면 404** 입니다.

```bash
# 표 → webp
ffmpeg -i table.png -c:v libwebp -quality 82 naver-table-1.webp
```

**순서를 지키세요.** 네이버는 붙이는 **그 순간** 이미지를 가져갑니다 —
404 인 채로 붙으면 나중에 배포해도 그 글은 안 고쳐집니다.

```bash
# ① 배포 먼저
firebase deploy --only hosting
# ② 그다음 네이버
node publish.mjs <슬러그> --publish
```

---

## 5. 영상 업로드 — 네 번 실패하고 찾은 길

네이버 에디터에 mp4 를 올리는 건 사진과 완전히 다릅니다.

- ✗ 툴바 「동영상」은 **팝업이 아니라** 같은 화면 레이어입니다 (창 개수가 그대로)
- ✗ `waitForFileChooser` 로는 안 잡힙니다 — 툴바 버튼이 파일창을 안 엽니다
- ✗ 레이어 안 「동영상 추가」를 가로채 `accept()` 해도 **요청조차 안 나갑니다**
- ✗ 업로더가 `input` 을 그때그때 만들었다 지워서 `change` 가 안 걸립니다
- ✓ **`HTMLInputElement.prototype.click` 을 가로채 그 input 을 붙잡아 둔다**

```js
// ⚠ 페이지가 뜨기 **전에** 걸어야 한다 (page.goto 앞)
await page.evaluateOnNewDocument(() => {
  const orig = HTMLInputElement.prototype.click;
  HTMLInputElement.prototype.click = function () {
    window.__trapped = this;      // 붙잡아 둔다
    return orig.call(this);
  };
});
// ... 「동영상 추가」를 누른 뒤 ...
const handle = await page.evaluateHandle(() => window.__trapped);
await handle.asElement().uploadFile(videoPath);
```

⚠ 이 가로채기는 **모든 file input** 에 걸립니다. 사진을 URL 로 넣는다면 안전하지만,
파일로 올리는 코드를 나중에 넣는다면 여기부터 보세요.

---

## 6. 일부러 천천히 돌리세요

빠르게 만들 수 있어도 안 하는 게 낫습니다. 사람 입력을 흉내 내는 값들:

| 무엇 | 값 |
|---|---|
| 마우스 경로 | **베지에 곡선** + 멀리 갈 땐 살짝 지나쳤다 되돌아옴 |
| 손떨림 | 매 걸음 **±1.2px** |
| 뜸 들이는 시간 | **가우시안 분포** — 매번 다르다 |
| 실행별 템포 | **1.0~1.95배** 무작위 |
| 연타 | `clickCount` 를 올린다 (사람이 더블클릭하듯) |

한 편에 몇 분 걸립니다. 손으로 하던 것보다는 훨씬 빠르고, 기계가 낼 수 있는 속도는 아닙니다.

---

## 7. 붙여넣은 뒤에는 반드시 확인하세요

붙여넣기는 **조용히 실패합니다.** 클립보드는 파일이나 변수와 달리 **바깥에서 누구나 덮어쓸 수 있는 자원**이라,
도구가 도는 몇 분 사이에 사람이 뭔가를 복사하면 그대로 들어갑니다.

⚠ **문턱을 절대값으로 잡지 마세요.** 검사기가 원본을 이미 알고 있으니 **원본 대비**로 잽니다.

```js
const expect = { text: plainLen(bodyHtml), imgs: (bodyHtml.match(/<img /g) || []).length };
// ... 붙여넣은 뒤 에디터에서 실제 값을 읽는다 ...
const ratio = got.len / expect.text;
if (ratio < 0.5) { console.error("본문이 원본의 " + Math.round(ratio*100) + "% 뿐이다"); process.exit(1); }
if (expect.imgs >= 3 && got.imgs < expect.imgs * 0.7) process.exit(1);
```

그리고 **기본을 임시저장으로** 두세요. 발행은 `--publish` 를 명시해야 나가게.

---

## 8. 오늘 이것만

- 네이버 글쓰기 **API 는 2020년에 폐지**됐다 — 남은 길은 브라우저다
- DOM 을 조립하지 말고 **클립보드로 붙여넣는다** — 에디터가 알아서 바꿔준다
- **표는 안 넘어간다** — 이미지로 굽되 **webp** 로, 그리고 **배포를 먼저**
- 자동화라고 빨라야 하는 건 아니다 — **사람 속도**로 도는 편이 낫다

---

전체 글: https://jarvisstudio-blog.web.app/blog/naver-blog-auto-publish/
