이 글에는 제휴 링크가 없습니다. 삽화는 GPT 이미지 생성, 화면은 직접 캡처, 다이어그램은 직접 제작했습니다.
Playwright 뜻 — 브라우저에 손을 달아주는 도구, AI가 내 대신 클릭하게 만드는 법
컴퓨터로 하는 일의 대부분은 결국 브라우저 안에서 벌어집니다. 글을 올리고, 사진을 첨부하고, 버튼을 누르고, 결과를 확인하는 일. 그런데 AI는 글은 잘 쓰면서 정작 그 글을 올리는 손이 없어요. 브라우저 앞에 앉아 클릭하는 건 여전히 사람 몫이었죠. Playwright(플레이라이트)는 AI에게 그 손을 달아주는 도구입니다. 이 글의 네이버판도 제가 손으로 올리지 않았어요. 제목 입력부터 사진 첨부, 카테고리 선택, 발행 버튼까지 전부 이 도구가 대신 눌렀습니다. 오늘은 그게 어떻게 가능한지, 그리고 쓰면서 정한 원칙 하나를 이야기해 볼게요.

결론 요약
- Playwright = 사람이 브라우저에서 하는 클릭·타이핑·스크롤을 대본으로 적어 브라우저에 시키는 도구. 마이크로소프트가 만든 무료 오픈소스
- 원래는 웹사이트 테스트용이었지만, 지금은 AI 에이전트의 손으로 더 많이 쓰입니다. 공식 MCP 서버까지 나와 있어요
- 이 블로그의 네이버·인스타 발행은 전부 이 도구가 합니다. 원칙은 하나, 로그인은 사람이, 조종은 코드가
- 브라우저 자동화는 사람보다 정확하지만 사람보다 순진합니다. 그래서 검증 단계와 속도 제한이 꼭 필요해요
🧩 1. 극작가와 배우 — 이름부터 풀어봅니다
Playwright는 영어로 ‘극작가’입니다. 이름이 곧 원리예요. 극작가가 대본을 쓰면 배우가 그대로 연기합니다. 여기서 배우는 브라우저고, 대본은 코드예요. “이 주소로 가서, ‘사진’ 버튼을 누르고, 이 파일을 올리고, 제목 칸에 이 글자를 쳐라.” 이렇게 적어두면 브라우저가 그 순서대로, 사람보다 빠르고 정확하게 움직입니다.
마이크로소프트가 2020년에 공개했고, 크롬·엣지·파이어폭스·사파리 계열 브라우저를 모두 다룰 수 있어요. 파이썬이나 자바스크립트로 대본을 쓰고, 2026년 9월 기준 최신 버전은 1.62, 무료입니다. 비슷한 도구로 셀레니움(Selenium)이 오래전부터 있었는데, Playwright는 페이지가 다 뜰 때까지 알아서 기다려주는 것 같은 ‘눈치’가 더 좋아서 요즘은 이쪽이 기본이 됐어요.
📦 2. 테스트 도구가 AI의 손이 되기까지
원래 용도는 웹사이트 테스트였습니다. “회원가입 버튼이 잘 눌리나”를 사람이 매번 확인하는 대신 코드가 눌러보게 하는 거죠. 개발자들만 쓰는 도구였어요.
그런데 AI 에이전트가 등장하면서 쓰임이 달라졌습니다. 에이전트 글에서 “에이전트 = 목표를 주면 도구를 써서 일을 끝내는 AI”라고 했는데, 그 도구 중 가장 강력한 게 브라우저예요. 세상 대부분의 일이 브라우저 안에 있으니까요. 그래서 마이크로소프트는 AI가 브라우저를 직접 다루게 해주는 Playwright MCP를 공식으로 내놨고, 2026년 릴리스들은 아예 “에이전트가 브라우저를 모는 것”을 전제로 설계됐습니다. MCP가 AI에게 손발을 달아주는 표준 규격이라면, Playwright는 그 손이 브라우저를 잡게 해주는 부품인 셈이에요.
🔍 3. 실물 — 이 블로그의 네이버 글은 이렇게 올라갑니다

네이버는 블로그 글쓰기 API를 2020년에 닫았습니다. 그래서 자동으로 올리려면 사람처럼 에디터를 조작하는 수밖에 없어요. 제 발행 대본이 하는 일을 사람의 동작과 나란히 놓으면 이렇습니다.
| 단계 | Playwright가 하는 일 | 사람이었다면 |
|---|---|---|
| 제목·본문 | 글자 하나당 10ms 간격으로 타이핑. 에디터가 자동 서식을 거는 패턴은 피해서 | 복붙 후 서식 정리 |
| 사진 | ‘사진’ 버튼 → 파일 전달 → 업로드 완료 감지 → 크기 지정 → 가운데 정렬 → 캡션 | 장당 30초 |
| 발행 | 패널 열기 → 카테고리 선택 → 태그 입력 → 전체공개 확인 → 발행 | 1분 |
| 검증 | 발행 전 전 문단을 읽어 원고와 글자 단위로 대조, 발행 후 게시글의 사진 수·태그를 다시 읽기 | 눈으로 훑기 |
글 한 편의 네이버판은 대본 파일 하나(제목·문단·사진·캡션·카테고리·태그)로 굳혀둡니다. 매일 아침 정해진 시간에 릴리스 작업이 그 대본을 Playwright에게 넘기고, 저는 결과 링크만 확인해요. 지금까지 네이버 39편, 인스타그램 16편이 이렇게 나갔습니다.
⚙️ 4. 핵심 원칙 — 로그인은 사람이, 조종은 코드가

브라우저 자동화를 처음 접하면 “코드가 아이디와 비밀번호로 로그인하게 하면 되겠네”라고 생각하기 쉽습니다. 저는 한 번도 그렇게 하지 않았어요. 이유는 둘입니다.
- 비밀번호를 코드에 두면 안 됩니다. 파일이 새는 순간 계정이 새요. 제 저장소 어디에도 네이버·인스타 비밀번호는 없습니다
- 로그인 자동화는 봇으로 감지됩니다. 네이버도 인스타도 자동 로그인 패턴을 잡아내고, 걸리면 글 하나가 아니라 계정이 위험해져요
대신 이렇게 합니다. 엣지 브라우저를 ‘원격 조종 문(포트)‘을 열어둔 채 띄우고, 그 창에서 사람이 직접 한 번 로그인합니다. Playwright는 새 브라우저를 여는 게 아니라 그 창에 붙어서 일해요. 브라우저 입장에서는 사람이 쓰던 창에서 사람이 계속 뭔가 하는 것과 구분이 안 됩니다. 계정이 둘이면(AI 블로그·세차 블로그) 창도 둘. 각 창에 한 번씩 로그인해두면 전환 없이 둘 다 다룹니다.

💥 5. 배운 것 — 정확하지만 순진합니다

쓰면서 넘어진 날이 몇 번 있었는데, 교훈은 전부 같았습니다. 배우는 대본을 너무 곧이곧대로 연기해요.
- 숨은 버튼을 먼저 잡습니다. “‘발행’이라는 글자가 든 버튼을 눌러라”라고 했더니, 화면엔 안 보이는 ‘예약 발행 0건’ 버튼을 먼저 잡고 30초를 기다리다 실패했어요. 사람은 보이는 버튼만 누르지만 코드는 안 보이는 것도 찾습니다. “보이는 것 중에서” 라는 조건이 필요했어요
- 보이지 않는 공백에 걸립니다. 카테고리 ‘세차 장비·용품’을 찾으라고 했는데 못 찾았어요. 화면엔 똑같이 보이는데 글자 사이에 특수 공백이 섞여 있었죠. 사람 눈엔 같아도 코드엔 다른 글자입니다
- 버튼 이름이 바뀌면 멈춥니다. 바로 이 글을 올리던 날 아침, 네이버가 발행 버튼의 내부 이름을 바꿨어요. 사람 눈엔 똑같은 초록색 ‘발행’ 버튼인데 코드는 이름으로 찾다가 멈췄습니다. 이름 대신 역할로 찾도록 고치니 바로 됐어요
공통점은 “사람이면 당연히 알아서 할 일”이 코드엔 규칙으로 적혀 있어야 한다는 것. 그래서 넘어질 때마다 문서에 한 줄씩 적었고, 그 문서가 LLM 위키의 한 페이지가 됐습니다.
⚠️ 6. 주의 — 시작 전에 알아둘 것
- 내 계정, 내 콘텐츠, 사람의 속도. 도구가 빠르다고 하루에 열 편씩 올리면 플랫폼이 어뷰징으로 봅니다. 저도 닷새에 40편을 내보낸 뒤 네이버 검색에서 글이 안 잡히는 걸 확인하고 하루 1편 상한을 걸었어요. 빠른 것과 빨라도 되는 건 다릅니다
- 남의 사이트를 긁는 용도라면 약관부터. 허용되지 않은 수집이나 대량 요청은 법과 약관 문제가 됩니다. 이 글의 범위는 “내 계정으로 내 글 올리기”예요
- 화면이 바뀌면 깨집니다. 그래서 발행 후 결과를 다시 읽는 검증이 필수예요. AI 산출물은 검증까지가 한 세트
- 눈에 보이는 창으로 시작하세요. 화면 없이 도는 모드는 나중 일이고, 처음엔 브라우저가 실제로 움직이는 걸 보면서 만드는 게 훨씬 빠릅니다
🎯 시작 코스 — 코드 10줄
파이썬이 깔려 있다면 두 줄로 시작합니다. 첫 줄은 설치, 둘째 줄은 녹화기예요. 브라우저에서 내가 클릭한 걸 코드로 받아 적어주기 때문에 코딩을 몰라도 여기서 출발할 수 있습니다.
pip install playwright && playwright install
playwright codegen https://blog.naver.com
그리고 “사람이 로그인한 창에 붙기”는 이게 전부입니다.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp("http://localhost:9223") # 원격 조종 문을 열고 띄운 엣지
page = browser.contexts[0].pages[0] # 사람이 로그인해둔 탭
page.goto("https://blog.naver.com/<아이디>/postwrite")
page.keyboard.type("안녕하세요", delay=10) # 사람처럼 한 글자씩
page.screenshot(path="확인.png") # 결과를 눈으로 검증
엣지는 msedge.exe --remote-debugging-port=9223 --user-data-dir=<전용 폴더>로 띄우고, 그 창에서 직접 로그인하면 준비 끝입니다. Claude Code에 “이 대본대로 네이버에 올리는 스크립트 만들어줘”라고 하면 위 코드의 나머지는 AI가 채워요. 제 발행 스크립트도 그렇게 만들어졌습니다.
브라우저는 세상 대부분의 일이 벌어지는 무대이고, Playwright는 AI에게 그 무대에 오를 배우를 붙여주는 도구입니다. 다만 대본을 어디까지 맡길지는 사람이 정해야 해요. 제 답은 “로그인은 사람이, 조종은 코드가”였습니다.
기준: 2026-09-10. Playwright 버전·개발사·MCP 정보는 공식 문서와 2026년 릴리스 노트 해설을 확인했습니다. 발행 건수(네이버 39·인스타 16)와 넘어진 사례들은 이 저장소의 기록에서 직접 셌습니다. 삽화는 GPT 이미지 생성, 화면은 직접 캡처, 다이어그램은 직접 제작입니다.