기본 노트
주로 https://blog.logrocket.com/playwright-vs-puppeteer/ 를 참고한 노트입니다. Chrome이 headless browser를 지원한 이후 , 일부 개발자가 지원하던 복잡하고 번거로운 기술(예: PhantomJS, Selenium)을 바탕으로 Web 자동화 프레임워크가 빠르게 발전하기 시작했습니다. ** Puppeteer **는 Chrome이 공식 지원하는(DevTools Protocol 기반) 프레임워크이며, WebDriver 프로토콜 기반인 PhantomJS보다 안정적입니다. ** Playwright **의 개발팀은 Puppeteer에서 왔습니다. Puppeteer와 비교하면:
- API가 비슷합니다(사용법을 익히는 비용이 거의 없습니다).
- 일부 API가 더 Ergonomic합니다(의미가 더 명확합니다). 여러 장치를 편리하게 흉내 낼 수 있습니다.
- Firefox와 Webkit을 지원하지만 호환성은 낮습니다(앞으로 Puppeteer 팀과 “함께 구축”할 수 있을지도 모릅니다……). 기술 선택에서는 Playwright / Puppeteer, Cypress / PhantomJS / Selenium 중 무엇을 고르든(많은 workaround가 있지만 동시에 flaky할 수 있습니다) 다음을 고려해야 합니다.
- 브라우저 간 지원(이 글에 따르면 현재는 Playwright가 가장 잘하지만, Puppeteer와 Cypress가 계속 뒤처질 것이라고 누가 보장할 수 있을까요?)
- 장기 지원(당연한 말처럼 들립니다……).
- 구체적인 업무에 맞춘 분석(이 역시 당연한 말입니다……).
업무 선택
새 프로젝트라면 Playwright 사용을 권합니다. 다른 프레임워크와의 자세한 비교는 아래 기타 참고 자료의 2번 글을 읽어 보세요.
기타 참고 자료
- The reckless, infinite scope of web browsers - 현대 브라우저 생태계에 대한 견해
- Playwright VS Selenium VS Puppeteer VS Cypress - 인기 Web 자동화 프레임워크를 여러 관점에서 비교한 종합적인 중국어 블로그
- Puppeteer, Selenium, Playwright, Cypress – how to choose? - 위 중국어 블로그 서두에서 인용한 글