-
GUI로 쉽게 상호작용할 수 있는데 왜 굳이 이런 브라우저가 있는 것일까? GUI가 필요 없거나, GUI를 쓸 수 없는 상황 때문일 것이다.
-
전자의 경우는 웹크롤링이 대표적이다. 해당 웹페이지가 제공하는 데이터만이 관심사일 뿐, 그 데이터가 어떤 모양으로 렌더링되는지는 내 알 바가 아니기 때문에 헤드리스 브라우저를 사용하여 더 빠르게 데이터만을 가져올 수 있다.
- 뿐만 아니라 헤드리스 브라우저는 javascript로 동적 생성되는 AJAX로 변경된 정보에도 접근할 수 있다.
- 동적으로 생성하여 제공된 데이터를 반영한 화면을 크롤링해야, 보다 정확히 해당 내용을 가진 웹페이지를 찾아내고 유저에게 제공할 수 있기 때문에 구글 Chrome Search 팀에서는 서치엔진이 헤드리스 브라우저를 통해 AJAX 페이지를 비롯하여 최종 state를 반영한 HTML코드도 효과적으로 크롤링하도록 했다.
-
후자는 GUI가 없는 기계에서 웹에 접근해야 하는 경우이다.
- 데스크탑이 아니라 서버사이드에서 별도의 화면 없이 웹 화면 상의 작업을 해야 할 때는 헤드리스 브라우저를 통해 가능하다.
- 브라우저 테스트를 돌리거나 웹페이지의 스크린샷을 뜨는 등의 자동화 작업 등 E2E(End to End) 테스트를 위해 Cypress나 Puppeteer + Jest 형태로 많이 쓰인다고 한다.