PhantomJS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
PhantomJS는 아리야 히다야트가 개발하여 2011년 1월 23일에 출시된 헤드리스 브라우저이다. 자바스크립트 API를 사용하여 웹 페이지를 열고, 스크린샷을 찍고, 사용자 동작을 실행하며, 페이지 컨텍스트 내에서 자바스크립트를 삽입하여 실행할 수 있다. 웹 페이지 자동화, 스크린샷 캡처, 웹 페이지 테스트, 성능 측정 등 다양한 분야에서 활용되었으며, SlimerJS, TrifleJS, CasperJS 등의 생태계를 형성했다. 2018년 3월, 개발이 중단되었다.
더 읽어볼만한 페이지
- 크로스 플랫폼 웹 브라우저 - 구글 크롬
구글 크롬은 구글이 개발한 웹 브라우저로, 크로미엄 프로젝트를 기반으로 오픈 소스 코드를 활용하여 개발되었으며, 다양한 기능과 운영체제 지원을 통해 세계 시장 점유율 1위를 기록하지만 개인 정보 보호 정책으로 비판을 받기도 한다. - 크로스 플랫폼 웹 브라우저 - 모질라 파이어폭스
모질라 파이어폭스는 모질라 재단에서 개발한 무료 오픈 소스 웹 브라우저로, 탭 브라우징, 팝업 차단, 확장 기능 등을 지원하며 웹 표준 준수 및 개인 정보 보호 기능을 강화했다. - 2011년 소프트웨어 - 아이클라우드
아이클라우드는 애플의 클라우드 컴퓨팅 서비스로, 다양한 데이터를 저장 및 동기화하며 여러 기기에서 접근 가능하고, 추가 기능과 저장 공간 확장을 제공하지만 보안 및 개인 정보 보호에 대한 논란도 있다. - 2011년 소프트웨어 - HHVM
HHVM은 페이스북에서 개발한 PHP 및 Hack 언어 실행 엔진으로, JIT 컴파일을 통해 높은 성능을 제공하며 웹 개발 분야에 새로운 가능성을 제시했다. - 웹키트 기반 소프트웨어 - 구글 크롬
구글 크롬은 구글이 개발한 웹 브라우저로, 크로미엄 프로젝트를 기반으로 오픈 소스 코드를 활용하여 개발되었으며, 다양한 기능과 운영체제 지원을 통해 세계 시장 점유율 1위를 기록하지만 개인 정보 보호 정책으로 비판을 받기도 한다. - 웹키트 기반 소프트웨어 - 사파리 (웹 브라우저)
사파리는 애플이 개발한 웹 브라우저로, 2003년 처음 출시되어 웹킷 엔진을 기반으로 빠른 속도와 웹 표준 지원을 제공하며, macOS, iOS, iPadOS 등에서 기본 브라우저로 사용된다.
PhantomJS - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
종류 | 헤드리스 브라우저 |
개발자 | 아리야 히다얏 |
출시일 | 2011년 1월 17일 |
최신 버전 | 2.1.1 |
최신 버전 출시일 | 2016년 1월 24일 |
프로그래밍 언어 | C++ 자바스크립트 C |
개발 상태 | 개발 중단 |
라이선스 | BSD |
웹사이트 | https://phantomjs.org |
2. 역사
PhantomJS는 Ariya Hidayat에 의해 개발되어 수년간의 개발 끝에 2011년 1월 23일에 출시되었다.[16][3] 공개 프로젝트에 대한 첫 번째 커밋은 2011년에 이루어졌다.[17][4] 이 프로젝트는 2010년 12월 26일부터 기여가 시작된 것으로 보이며, 이후 꾸준히 개발이 진행되었다.[18] 2015년 2월 5일 기준으로, 이 프로젝트의 오픈 소스 코드 저장소는 770명이 주시하고 있었으며 107명의 기여자가 참여했다. 당시 1376개의 열린 이슈와 1252개의 닫힌 이슈를 보유하고 있었다.[18]
PhantomJS는 자바스크립트 API를 통해 웹 페이지 관련 작업을 자동화하는 데 사용된다. 이 API를 활용하면 웹 페이지를 열고, 페이지 내용을 조작하며, 스크린샷을 찍는 등의 기능을 구현할 수 있다. 또한, 특정 웹 페이지의 컨텍스트 내에서 원하는 자바스크립트 코드를 삽입하여 실행하거나, 사용자의 행동을 시뮬레이션하는 것도 가능하다. 이러한 기능들은 웹 테스팅, 페이지 분석, 웹사이트 모니터링 등 다양한 목적으로 활용될 수 있다.
PhantomJS를 상징하는 로고는 검은색 배경 위에 형광 파란색 유령 모양이다. 이는 그래픽 사용자 인터페이스(GUI), 즉 브라우저의 '몸통'이 없는 헤드리스 브라우저의 특징을 나타낸다.
그러나 시간이 지나면서 활발한 기여가 줄어들었고, 결국 2018년 3월 PhantomJS의 개발은 중단되었다.[5]
3. 사용법
3. 1. 기본 사용 예제
PhantomJS의 자바스크립트 API를 이용하면 웹 페이지를 열거나, 스크린샷을 찍거나, 사용자 동작을 실행하고, 페이지 컨텍스트 내에서 자바스크립트를 삽입하여 실행하는 등의 작업을 할 수 있다. 예를 들어 다음 코드는 한국어 위키백과를 열고, 페이지 로딩이 완료되면 'wikipedia.org.png'라는 이름의 파일로 스크린샷을 저장한 후 종료하는 예제이다.
console.log('웹 페이지를 로드하는 중');
var page = require('webpage').create();
var url = 'https://ko.wikipedia.org/'; // 대상 URL: 한국어 위키백과
page.open(url, function (status) {
if (status === 'success') { // 페이지 로딩 성공 시
console.log('페이지를 로드함');
page.render('wikipedia.org.png'); // 'wikipedia.org.png' 파일로 스크린샷 저장
} else {
console.log('페이지 로드 실패: ' + status);
}
phantom.exit(); // PhantomJS 종료
});
4. 생태계
PhantomJS의 API는 헤드리스 브라우저와 상호 작용하는 표준 방법으로 가치를 인정받아, 이를 기반으로 다양한 파생 프로젝트들이 등장했다. 대표적으로 SlimerJS,[6] TrifleJS,[7] CasperJS[8] 등이 있다.
야후!](Yahoo!)]는 웹사이트의 성능 지표를 수집하기 위해 PhantomJS를 활용하는
4. 1. SlimerJS
SlimerJS는 PhantomJS와 유사한 API를 제공했지만, WebKit 대신 Mozilla의 Gecko 브라우저 엔진을 기반으로 했다.[6]4. 2. TrifleJS
PhantomJS의 API는 헤드리스 브라우저와 상호 작용하는 표준 방법으로 가치를 인정받았다. SlimerJS가 WebKit 대신 Mozilla의 Gecko 브라우저 엔진을 기반으로 PhantomJS와 유사한 API를 제공했던 것처럼[6], TrifleJS는 인터넷 익스플로러의 MSHTML 엔진을 대상으로 개발되었다.[7]4. 3. CasperJS
PhantomJS 출시 직후, Nicolas Perriault는 PhantomJS를 기반으로 자동화된 웹 페이지 테스트를 위한 클라이언트로서 기능을 확장하는 라이브러리 모음인 CasperJS를 개발했다. 이를 통해 사용자들은 PhantomJS를 활용하여 BDD 테스트를 생성할 수 있게 되었다. CasperJS의 마지막 릴리스는 2017년에 이루어졌다.[8]5. 사용자
주목할 만한 여러 회사에서 PhantomJS를 사용했다. 대표적인 예로 트위터,[10] 링크드인,[11] 넷플릭스,[12] 타임 워너 케이블[13] 등이 있다. 각 회사의 구체적인 활용 사례는 아래 하위 섹션에서 확인할 수 있다.
5. 1. 트위터
트위터는 2015년 기준으로 단위 테스트를 위해 QUnit과 PhantomJS를 사용했다.[10]5. 2. 링크드인
링크드인은 2011년 당시 성능 테스트를 위해 PhantomJS 기반 도구를 사용했다.[11]5. 3. 넷플릭스
넷플릭스는 2014년 기준으로 사이트를 직접 방문하지 않고도 사이트의 상태를 파악하기 위해 PhantomJS를 기반으로 구축된 헤드리스 브라우저인 Sketchy를 사용했다.[12]5. 4. 타임 워너 케이블
타임 워너 케이블은 2012년 기준으로 젠킨스 연속 통합을 위해 CoffeeScript, Jasmine, JUnit XML과 함께 PhantomJS를 사용했다.[13]참조
[1]
웹사이트
Releases · ariya/phantomjs
https://github.com/a[...]
2017-04-21
[2]
웹사이트
phantomjs/LICENSE.BSD at master · ariya/phantomjs
https://github.com/a[...]
[3]
웹사이트
don't code today what you can't debug tomorrow
http://ariya.blogspo[...]
2015-07-20
[4]
웹사이트
ariya/phantomjs
https://github.com/a[...]
2015-07-20
[5]
웹사이트
Archiving the project: suspending the development
https://github.com/a[...]
Github
2018-03-03
[6]
웹사이트
FaQ - SlimerJS
http://slimerjs.org/[...]
2015-07-20
[7]
웹사이트
trifleJS
http://triflejs.org/
2015-07-20
[8]
웹사이트
CasperJS on GitHub
https://github.com/c[...]
2021-04-11
[9]
웹사이트
YSlow - Official Open Source Project Website
http://yslow.org/pha[...]
2015-07-20
[10]
웹사이트
Leo Lanese on Twitter
https://twitter.com/[...]
2015-07-20
[11]
웹사이트
LinkedIn Mobile: How do we do it?
http://www.slideshar[...]
2015-07-20
[12]
웹사이트
Netflix Open Source Security Tools Solve Range of Challenges
http://threatpost.co[...]
2015-07-20
[13]
웹사이트
one year of wandering headlessly
http://ariya.ofilabs[...]
2015-07-20
[14]
웹인용
Releases · ariya/phantomjs
https://github.com/a[...]
2017-04-21
[15]
웹인용
phantomjs/LICENSE.BSD at master · ariya/phantomjs
https://github.com/a[...]
[16]
웹인용
don't code today what you can't debug tomorrow
http://ariya.blogspo[...]
2015-07-20
[17]
웹인용
ariya/phantomjs
https://github.com/a[...]
2015-07-20
[18]
웹인용
Contributors to ariya/phantomjs · GitHub
https://github.com/a[...]
2015-07-20
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com