개발 공부
애플릿, NPAPI (플러그인, 넷스케이프, 모질라) 본문
(자바EE를 이해하기 위한 글)
플러그인[1][2] - 플러그인(plugin) 또는 추가 기능(애드인;add-in, 애드온;add-on)은 호스트 응용 프로그램과 서로 응답하는 컴퓨터 프로그램이며, 특정한 "주문식" 기능을 제공한다. 응용 프로그램이 플러그인을 제공하는 까닭은 많다. 이를테면, 서드파티 개발자들이 응용 프로그램을 확장하는 기능을 만들게 하거나, 뜻밖의 기능을 지원하거나 응용 프로그램의 크기를 줄이거나, 호환되지 않는 소프트웨어 라이선스 문제로 인해 소스 코드를 응용 프로그램에서 분리하는 것을 들 수 있다. 현재 널리 사용되는 플러그인은 액티브X, NPAPI, 플래시, 실버라이트 등 크게 네 가지다. 주로 인터넷 뱅킹, 키보드 보안, 동영상 스트리밍 등을 웹 상에서 구현하기 위해 사용된다.
시작은 썬 마이크로시스템즈였다. 자사의 프로그래밍 언어 자바를 기반으로한 플러그인 자바애플릿을 95년에 고안해내고, 이를 웹 브라우저에 추가할 수 있도록 했다. 썬 마이크로시스템즈에 주도권을 내주기 싫었던 넷스케이프 그룹은 NPAPI(Netscape Plugin API)라는 독자적인 플러그인을 개발하고 넷스케이프 브라우저 2.0과 함께 배포하기 시작했다. MS 역시 96년말 액티브X를 개발하고 인터넷 익스플로러 3에 추가했다. 이후 인터넷 익스플로러는 액티브X 위주로, 크롬, 파이어폭스, 사파리, 오페라 등 다른 웹 브라우저는 NPAPI 위주로 플러그인을 지원하기 시작했다.
서브루틴 - 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다.자바 애플릿 - 자바 애플릿은 응용을 뜻하는 application과 작다는 의미의 접미사 let을 조합한 합성어로 자바 언어로 작성된 소프트웨어를 뜻하는데 컴퓨터 사용자가 별도로 서버에 요청을 하지 않아도 수행할 수 있도록 단순한 애니메이션, 시계나 달력 같은 간단한 작업 등을 웹 상에서 실현하게 해 주는 응용 프로그램들이 자바 애플릿입니다. 자바 언어로 작성한 프로그램이 단독으로 동작하는 경우에는 자바 애플릿 대신 자바 프로그램이라고 하는 경우가 많습니다.
자바 애플릿은 사전에 컴파일 후 웹 서버에 등록해 두게 되는데 웹의 표준 데이터 형식인 하이퍼텍스트 생성언어(HTML)로 작성한 문서에 애플릿이라는 태그를 사용하여 자바 애플릿을 지정하게 됩니다. 자바 애플릿을 구동하기 위해서는 자바 가상 머신을 내장한 웹 브라우저가 필요한데 브라우저는 문서 속에 애플릿이라는 태그가 있는 경우 지정된 자바 애플릿을 웹 서버에서 다운로드해 실행합니다.
자바 서블릿 - 웹 서버 쪽에 작성된 자바 프로그램으로 브라우저의 요청을 통해 웹 서버에 의해 실행됩니다. 메모리 내에 적재한 상태로 남아 있기 때문에 매번 읽어 들일 필요가 없고, 스레드 형태로 실행되기 때문에 효율성이 높다고 평가 받습니다. 그리고 자바 언어로 작성되었기 때문에 플랫폼에 대해 독립적이라는 것이 특징입니다.
자바 애플릿과 서블릿 - 자바 애플릿과 자바 서블릿 주로 웹 서버에서 작동되는 프로그램이라는 점에서는 유사하지만 자바 서블릿은 자바 애플릿과 달리 서버에서 실행되며 자바 애플릿은 서버에 상관 없이 자신의 시스템에서 실행된다는 점이 가장 큰 차이입니다. 이외에도 자바로 만들어진 프로그램으로는 자바 애플리케이션, 자바 빈스 등이 있습니다.
애플릿, 자바 애플릿
애플릿 - 애플릿(영어: applet)은 플러그인의 하나로서 전용 위젯 엔진이나 더 큰 프로그램 범위 내에서 실행되는 특정한 작업을 수행하는 조그마한 응용 프로그램을 말한다. 웹 브라우저, 제어판과 같은 다른 프로그램에서 실행되는 소프트웨어 구성 요소로 볼 수 있다. 애플릿은 독립적으로 사용되지 않으며 작은 기능을 가지고 있다. 이것은 1993년 애플스크립트에서 처음 도입된 용어이다.
애플릿은 "서브루틴"과 기능이 많이 다르다. 먼저, "서블릿" 같은 한 종류의 클라이언트 플랫폼에서만 동작한다. 또한 서브루틴과 달리 애플릿의 컨테이너에 의해 기능이 제한된다. 애플릿은 스크립트 언어가 아닌 컴파일 가능 언어로 작성되므로 성능 향상이나 다양한 기능을 가져올 수 있다. 서브루틴과 달리, 완전한 웹 구성 요소를 애플릿을 가지고 작성할 수 있다. 서블릿은 완전한 기능을 갖춘 응용 프로그램은 아니며 쉽게 접근하기 위해 계획되었다.
넷스케이프-
월드 와이드 웹(WWW, World Wide Web)와 웹 브라우저(web browser) 는 1991년 탄생했다. 최초의 웹 브라우저 '월드와이드웹(WorldWideWeb)'은 텍스트 정보만 표시 가능했다. 1993년에 그래픽 데이터를 표시할 수 있는 '모자이크(Mosaic)' 웹 브라우저가 출시됐다.
넷스케이프는 모자이크의 개발자인 마크 앤드리슨(Marc Andreessen)과 업무용 컴퓨터 전문업체인 실리콘 그래픽스의 짐 클라크가 주축이 되어 개발하여 1994년 출시했다. 이 때의 이름은 넷스케이프 내비게이터(Netscape Navigator)이다.
넷스케이프 웹브라우저는 단순히 웹 페이지를 표시하는 기능 외에 다양한 이미지나 동영상, 음성 등의 멀티미디어 콘텐츠를 재생하는 기능도 지원했으며, 각종 플러그인(plug-in)을 통해 기능을 확장할 수도 있었다. 그리고 대부분 네티즌의 이용 패턴에 적합한 그래픽 인터페이스를 갖추고 있어 사용이 편했다. 사실상 현대적인 웹 브라우저의 기본 틀을 확립한 것이 넷스케이프라고 할 수 있다.
더욱이, 넷스케이프는 다양한 기능을 제공하는 것에 비해 시스템 자원을 적게 점유했기 때문에 저사양 PC를 쓰는 사용자에게도 환영을 받았다. 또한, 넷스케이프 웹 브라우저는 유료 버전과 무료 버전을 동시에 출시했는데, 양쪽의 기능 차이는 거의 없었기 때문에 대부분의 사용자들은 사실상 넷스케이프를 무료 소프트웨어로 인식했다. 우수한 기능에 세련된 인터페이스, 높은 효율성까지 갖추고 비용부담까지 없는 넷스케이프는 엄청난 인기를 끌며 1990년대 웹 브라우저 시장을 거의 독점하기에 이른다. 특히 1996년 전후의 웹 브라우저 시장에서 넷스케이프의 점유율은 거의 90%에 이를 정도였다.
마이크로소프트의 인터넷 익스플로러(Internet Explorer)는 1995년 출시하여 운영체제 점유율과 같이 성장했다.
넷스케이프 내비게이터(1994, 모질라) -> 넷스케이프 커뮤니케이터(1997, 넷스케이프 커뮤니케이터 스위트(모질라 스위트)) -> 모질라 재단 설립(1998) -> AOL에 매각(1998) -> 모질라 파이어폭스(2004, 게코 레이아웃 엔진)
모질라 -
모질라 애플리케이션 스위트(Mozilla application suite) 또는 모질라(Mozilla, 코드명 Seamonkey)는 자유 소프트웨어 크로스 플랫폼 인터넷 스위트로, 웹 브라우저, 이메일 클라이언트, 뉴스 클라이언트, HTML 편집기, IRC 클라이언트가 포함되어있다. 처음에는 넷스케이프 커뮤니케이션즈 코퍼레이션이 넷스케이프 커뮤니케이터의 소스를 기반으로 개발을 시작했으나, 이후 모질라 재단에서 개발을 주도하였다. 현재는 개발이 중단되었으며, 후속 버전으로 시몽키 커뮤니티에서 개발하는 시몽키(SeaMonkey)가 있다.
모질라라는 이름은 넷스케이프 네비게이터 웹 브라우저의 개발을 시작할 때 내부적으로 쓰던 것이다. 모질라는 ‘모자이크 킬러(Mosaic killer)’를 의미하며, 당시 가장 인기있던 브라우저인 모자이크를 능가하려는 희망을 나타내려고 허구의 괴물인 고질라의 이름을 빌린 것이다. 외부적으로 이 이름은 HTTP 프로토콜의 ser-Agent 문자열에만 쓰였고, 동시에 도마뱀 모양의 회사 마스코트의 이름이기도 했다.
모질라 파이어폭스 -
데이브 하얏트와 블레이크 로스는 파이어폭스 프로젝트를 모질라 프로젝트의 실험적인 분파로서 시작하였다. 그들은 넷스케이프의 후원에서 비롯된 상업적인 요구와 개발자들의 무분별한 기능 추가가 모질라 브라우저의 효용성을 저해한다고 생각하였다. 그들은 모질라 스위트를 비대한 소프트웨어로 보았으며, 모질라 스위트를 대체하기 위한 목적으로 기능이 정제된 브라우저를 만들었다. 모질라 재단은 2003년 4월 3일에 개발의 초점을 모질라 스위트에서 파이어폭스(당시 피닉스)와 선더버드로 전환하는 계획을 발표하였다.
게코 (레이아웃 엔진) - 게코(영어: Gecko)은 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 응용 프로그램 프레임워크이다.
게코는 1997년 디지털스타일을 사들인 넷스케이프 커뮤니케이션스에 의해 처음 만들어졌다. 넷스케이프 내비게이터 1.0 때부터 쓰여 온 기존의 레이아웃 엔진은 인터넷 익스플로러의 레이아웃 엔진보다 못하다는 인식이 지배적이었다. 그것은 느렸으며 W3C 표준에도 맞지 않았고 DHTML에 대한 지원이나 페이지를 새로 불러올 때의 페이지 요소 재정렬 면에서도 좋지 않은 모습을 보여주었다. 게코는 처음에는 넷스케이프 코뮤니케이터가 어느 정도 만들어졌을 때 넷스케이프 코뮤니케이터에 끼워넣는 것을 목표로 하고 기존의 레이아웃 엔진과는 별개의 차원에서 만들어졌으며 게코가 만들어지는 동안 기존의 레이아웃 엔진을 사용하는 판이 몇 개 더 나왔다.
NPAPI - NPAPI(Netscape Plugin Application Programming Interface)는 웹 브라우저용으로 플러그인을 개발할 수 있게 허용하는 API이다. 처음에는 1995년 넷스케이프 내비게이터 2.0을 시작으로 넷스케이프 브라우저용으로 개발되었으나 이어서 다른 브라우저들에도 채용되었다.
NPAPI 구조에서 플러그인은 audio/mp3와 같은 처리 가능한 콘텐츠 타입을 선언한다. 브라우저가 네이티브로 처리할 수 없는 콘텐츠 타입을 마주치면 적절한 플러그인을 로드하여 플러그인이 렌더링할 브라우저 콘텍스트 내에 공간을 비치시킨 다음 데이터를 그곳으로 흘려보낸다. 이러한 플러그인은 데이터를 렌더링하는 역할을 하게 된다. 이 플러그인은 페이지 안에 자리를 차지하며 동작하는데 이는 외부 애플리케이션을 실행시켜 알 수 없는 콘텐츠 타입을 처리했던 오래된 브라우저들과는 상반된다.
NPAPI의 요구사항은 각 플러그인이 플러그인 콘텐츠의 초기화, 작성, 삭제, 위치 지정을 위한 약 15개의 기능을 구현, 노출해야 한다는 것이다. NPAPI는 또한 스크립팅, 인쇄, 전체 화면 플러그인, 창없는 플러그인, 콘텐츠 스크리밍을 지원한다.
NPAPI, 자바 애플릿 지원 종료[1][2][3] -
구글은 2015년 9월부터, 질라 재단은 2015년 10월부터 파이어폭스에서 NPAPI 플러그인 지원을 중단하겠다는 발표를 했고, 곧이어 오라클에서는 2016년 1월 Java 9부터 애플릿을 위한 자바 플러그인 지원을 중단하겠다고 발표했다. 따라서 자바 애플릿은 Java 9 이후 역사 속으로 사라질 예정이며, 이후 자바 애플릿이 했던 역할은 유사한 기술인 Java Web Start가 대신하게 된다.
구글 측에서는 "크롬 검색의 보안, 속도, 안정성을 개선하기 위해" 라는 사유로 NPAPI를 지원 중단하였다. 이에따라, 크롬에서는 실버라이트, 자바 애플릿, 유니티 등을 더이상 사용 할 수 없다.
'웹개발 (자바, 스프링, React) > 자바 개념' 카테고리의 다른 글
Spring - DI, IoC, AOP 개념 (0) | 2020.06.19 |
---|---|
자바EE, Spring (0) | 2020.06.18 |
java servlet filter (0) | 2018.09.12 |
자바 기본 reachable and unreachable object (0) | 2018.06.21 |
자바 연습문제 1번. JVM - Heap Memory (0) | 2018.06.21 |