맨위로가기

PhantomJS

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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 관련 정보]에 관한 문서
기본 정보
PhantomJS 로고
PhantomJS 로고
종류헤드리스 브라우저
개발자아리야 히다얏
출시일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를 상징하는 로고는 검은색 배경 위에 형광 파란색 유령 모양이다. 이는 그래픽 사용자 인터페이스(GUI), 즉 브라우저의 '몸통'이 없는 헤드리스 브라우저의 특징을 나타낸다.

그러나 시간이 지나면서 활발한 기여가 줄어들었고, 결국 2018년 3월 PhantomJS의 개발은 중단되었다.[5]

3. 사용법

PhantomJS는 자바스크립트 API를 통해 웹 페이지 관련 작업을 자동화하는 데 사용된다. 이 API를 활용하면 웹 페이지를 열고, 페이지 내용을 조작하며, 스크린샷을 찍는 등의 기능을 구현할 수 있다. 또한, 특정 웹 페이지의 컨텍스트 내에서 원하는 자바스크립트 코드를 삽입하여 실행하거나, 사용자의 행동을 시뮬레이션하는 것도 가능하다. 이러한 기능들은 웹 테스팅, 페이지 분석, 웹사이트 모니터링 등 다양한 목적으로 활용될 수 있다.

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