브라우저를 웹사이트 크롤링이나 브라우저 자동화 등에 사용하는 것은 꽤 유용하지만 무거웠기 때문에 항상 많이 사용되곤 했습니다. 브라우저에 공식적으로 헤드리스 모드가 추가되기 전까지는 PhantomJS 처럼 헤드리스를 구현해준 프로젝트를 쓰곤 했습니다.
크롬 브라우저는 2017년 크롬 59에서 처음으로 헤드리스 모드를 추가했고 공식이다 보니 쓰기 좋아서 Puppeteer, Playwright같은 프로젝트를 이용해서 많이 쓰게 되었습니다.
크롬의 헤드리스 모드는 --headless 플래그를 사용해서 실행하기 때문에 크롬의 모드를 지정한 것처럼 보이지만 실제로는 크롬과는 별도의 구현체를 사용해서 실행했기 때문에 이를 유지보수하는 비용의 문제도 있었고 실제로 동작이나 버그도 달랐습니다.
이 문제를 해결하기 위해 2022년 새로운 헤드리스 모드를 추가했고 이제 공식화되어 --headless=new를 사용하면 새 헤드리스 모드를 쓸 수 있고 앞으로는 크롬의 표준 헤드리스 모드가 될 예정이라고 합니다. 기존에는 헤드리스 크롬인지를 검사하기 위해 플러그인의 수를 세어보거나 chrome 객체를 확인해서 구별했지만 이제는 헤드리스 모드가 실제 크롬과 차이가 없어졌기 때문에 구별하기도 훨씬 어려워 졌다고 합니다.