Headless 란
Headless 란?
Headless 란 직역을 해보면 머리가 없다는? 말인데.. 머리가 없다는게 도대체 무슨말일까?
일반적으로 사용자들이 웹페이지를 접속할때 브라우저(크롬, IE, 엣지, 사파리 등등) 을 사용한다. 이때 사용되는 브라우저가 앞서 말한 Head 를 가리키는 부분이다. 다시말해 Headless 란 브라우저가 없는 흔히 개발자들 사이에서 사용되는 Command Line 에서 확인가능한 방법을 가리킨다.
Headless 를 사용하는 이유는 뭘까?
Headless 가 주요사용되는 영역은 다양하다. 그중에서도 대표적으로 크롤링에서 많이 사용되는데, Headless 를 사용하면 사용자 인증등의 자바스크크립트로 이뤄지는 동작을 사용해볼 수 있다는 점이다.
한가지 예를 들면 자주 사용하는 curl 이란 명령어로 어느 특정 페이지를 가져온다고 하자.
만일 해당 페이지가 인증을 하고난 후에 접근이 가능하다면 curl 의 결과는 단순히 로그인 페이지를 가져올것이다. 하지만 Headless 를 사용하면 인증 동작을 사용하여 로그인 후 원하는 페이지의 정보를 가져올 수 있을 것이다.
이외에도 스크린샷 캡쳐, PDF 파일 생성 등에서 많이 쓰인다.
Headless 의 장점? 단점?
개발자 측면에서 봤을때 Headless 는 활용방안이 정말 많아 보인다. 그런데 꼭 좋은점만 있는 것은 아니다. 일반적으로 사용자가 브라우저에서 접근해서 사용하는 방식이 HttpClient 방식인데, 이는 주소 입력과 동시에 HTML Contents 를 불러오게 됩니다. 하지만 Headless 의 경우 로컬 또는 서버의 백그라운드에서 실제 브라우저를 사용하는 방식이기 때문에 속도적인 측면에서 기존의 HttpClient 방식에 비해 낮다고 볼 수 있습니다.
Headless 라이브러리
널리 알려저있는 것은 PhantomJS 이다. 하지만 Chrome 최신 버전에서도 headless-mode 를 사용할 수 있게 되었다. 윈도우는 60, 그외 OS 는 59 버전 이상에서 사용할 수 있다. 다만 PhantomJS 의 경우 OS 에 구애받지 않아 사용하기 용이하다.
댓글남기기