NPAPI

Netscape Plugin Application Programming Interface

1 개요

이름 그대로 Netscape 시절에 개발된 API 이다. 인터넷 익스플로러에서의 ActiveX와 기능이 유사하다. 사실 ActiveX가 NPAPI의 영향을 받은 것이다.

2 역사

1995년 넷스케이프 내비게이터(Netscape Navigator) 2.0에서 처음 선보였다. 당시 웹 환경은 HTML5 같은 것은 전무했고, 웹 브라우저 기능 자체도 많이 부족했기 때문에 브라우저 외부의 응용프로그램을 플러그인 형식으로 끌어쓸 목적으로 제공된 API였다.

NPAPI가 들어가자, 웹 환경이 보다 더 멀티미디어스러워졌다. 웹 페이지에서 음악이나 동영상을 재생할 수 있었기 때문이다. 웹 브라우저가 넷스케이프가 대세가 되자 쏟아져 나온 각종 플러그인 기술은 거의 모두 이 NPAPI를 지원했다. 대표적으로 이 시기에 나온 것이 Java 애플릿과 플래시, 리얼 플레이어등이 있다.

NPAPI가 흥하는 것을 본 마이크로소프트는 인터넷 익스플로러 3에 NPAPI 지원 기능을 탑재함과 동시에 IE를 위한 전용 플러그인 규격도 탑재하는데, 이것이 그 악명높은 ActiveX이다. ActiveX와 같이 NPAPI를 지원한 이유는, 이 당시 IE는 윈도우 전용이 아니었기 때문이다. 유닉스와 매킨토시 버전도 개발되었기 때문에 윈도우 환경에만 돌아가는 ActiveX만 전용으로 밀 수 없었다.

넷스케이프가 버전 4에서 삽질을 하기 시작하고, 그 틈을 타 IE가 치고 올라오면서 한때 웹 환경은 IE가 평정하다시피했다. 그리고 IE의 타 OS 지원이 IE 5/IE 5.2.3에서 끊기고 IE6이 윈도우 전용으로 나오자, 마이크로소프트는 묻지도 따지지도 않고 NPAPI 지원을 버렸다. 이 때문에 IE가 천하통일을 하다시피 했던 2000년대 초반에는 윈도우에서는 거의 사용되지 않았고, 윈도우에 비해 사용자수가 극히 적은 매킨토시나 유닉스, 리눅스에서 나오는 브라우저에서만 지원이 근근히 이어졌다.

그러다가 모질라 파이어폭스가 강력한 경쟁자로 나타나고, 뒤이어 구글 크롬도 나오면서 인기몰이를 하자, 윈도우 환경에서도 NPAPI가 다시 사용되기 시작했다. 마이크로소프트도 실버라이트를 밀면서 이들 웹 브라우저는 NPAPI를 이용해서 지원을 했다.

3 사용 현황

한국의 각 단체들은 구글 크롬모질라 파이어폭스의 점유율이 높아지자 IE에서 쓰던 액티브X를 크롬에서도 지원하기 위해 NPAPI 의 형식으로 실버라이트 등의 플러그인을 사용할 수 있게 하였다. 그러나 1995년에 개발되기 시작한 것인 만큼 그 역사가 너무 오래되어 (ActiveX 보다도 오래된 기술이다) 보안성 등에 문제가 생기자 IE 에서 ActiveX 지원을 종료하는 것처럼, 모질라 파이어폭스나 구글 크롬도 NPAPI에 대한 지원을 중단하게 되었다. 2015년 4월, 구글 크롬 버전 업데이트로 수동 설정을 해야 NPAPI 를 사용할 수 있게 되었으며#, 그 마저도 9월에 출시될 크롬 안정화 버전 45에서 지원이 중단될 것이라는 기사가 나왔으며, 실제로 45버전 배포화 동시에 얄짤없이 중단되었다. (실제로 이렇게 미리 권고하는 것 자체가 예정대로 시행하기 위해 준비기간을 주는 것이다. 하지만 모 나라의 기득권들은 꼭 실행된 후에야 시간이 부족했다고 변명하지) 만약 아직도 버전 45 이하를 사용하고 있다면44라던가 43이라던가 42라던가 chrome://flags에서 설정이 가능하다.

하지만 우리나라에서는 많은부분에서 여전히 액티브엑스나 NPAPI에 의존적이다. 하지만 관련 대비책은 아직 미비한 상황이라 지원이 중단되면 크롬유저의 불편이 예상된다. 익스플로러쓰라고하겠지[1] 파이어폭스 써라 파폭은 다들 존재 자체를 모르는지 플러그인 설치 안 하면 못 들어간다는 경고 다 씹는다.

물론 Chrome 에서는 NPAPI 가 아닌 보안성이 훨씬 강화된 PPAPI(Pepper Plugin API) 라는 플러그인 API 를 이미 별도로 제공하고 있다. 이는 구글이 자랑(?)하는 Native Client(NaCl)염화나트륨[2] 이라는 샌드박스 내에서 실행하는 플러그인이다. 이는 구글 크롬 자체적으로 구현하고 있는 샌드박스와는 전혀 다른 것으로, 이름 그대로 유저가 개발하는 Native Application(C/C++ 로 개발) 에 대해서 유저가 별도로 샌드박스 Broker 와의 IPC 를 생각하여 코딩하지 않아도 알아서 내부적으로 처리해주는 플랫폼이다. 물론 샌드박스 내에서 실행한다는 것은 곧 로컬 파일 액세스 등에서 자유롭지 못하다는 것을 뜻하고 이는 보안성이 더 강화된다는 것을 의미한다.
다만 유니티 엔진 측의 답변[3](왜 너희들은 PPAPI 안 쓰냐? 에 대한)에 따르면 PPAPI는 구글이 플래쉬를 그냥 죽일 수 없어서 만든 플래쉬 전용 API에 가까운 녀석이라 범용성이 떨어진다고 한다. PPAPI 대응해봤자 기존 게임을 NPAPI → PPAPI 그냥 포팅한다고 실행되는 경우가 거의 없으며, 유니티 웹 엔진 자체는 WebGL로 진화할 것이지만, 기존에 이미 NPAPI 기반으로 만들어진 게임은 어쩔 수 없다고 한다. 그래서 15년 10월 현재 유니티 엔진으로 만든 웹게임을 크롬으로 접속하면 그냥 파이어폭스 쓰라고 나온다. 예시 (상단 안내창엔 "Recent updates to Chrome have made Unity games unplayable. For the optimal experience, please play using Firefox."가 나오고, 게임 창에는 "Changes to Google Chrome have made Unity games unplayable within this browser."가 나오며 공통적으로 파이어폭스 다운로드 페이지 안내가 있다. 본격 파이어폭스 영업) (근데 파이어폭스도 시기만 다를 뿐 NPAPI 버릴 예정인 건 똑같은데 그 이후로는 어쩌려고 저러는지 모르겠다.) 배틀로그도 한동안 관련 문제로 몸살을 앓다가 크롬 45버전 정식 배포 이후 일명 액티브EXE[4] 비슷한 웹 헬퍼로 해결. 그나마 한국식 리소스 처먹으며 상주하는 건 아니고, 그냥 게임 실행 명령만 실행 파일로 이어준다. 그동안 익숙해졌던 실행 방식을 유지하기 위해서인 듯.

오페라 브라우저는 크로미움 변형 브라우저인데, 크롬이랑 같은 버전의 크로미움으로 업데이트 되지만 npapi가 아직은 계속 사용가능하다. 단, 리눅스 버전은 지원하지 않는다. 머지않아 지원이 중단될 것으로 보인다. 플러그인을 사용하면 지원되지 않을 예정이라고 알림이 나온다.

4 중단

크롬 45 버전 이후 더이상 NPAPI가 동작하지 않는다. 예정대로 9월이 되자 크롬 45가 업데이트 되었고 크롬을 사용하던 사람들은 당연하게도 금융권과 게임 등 문제가 발생하고 있다. 금융위원회에서는 15년 안으로 가능하도록 하겠다고는 했다.# 대체로 exe를 설치하고 실행하는 방식을 사용할 것으로 보이며, 그나마 국민은행의 경우 브라우저에 인증서를 저장하는 방식으로 인증서는 사용하지만 Active-X나 NPAPI 설치가 필요없는 방식을 사용했다고 한다. 마이크로소프트 엣지에서도 된다는 듯. NPAPI의 지원 중단과 그 여파는 표준을 지키지 않는 한국 IT 업계의 현실을 보여주는 역할을 하였다.

크롬 이외의 파이어폭스와 사파리 브라우저에서는 아직 NPAPI를 지원하고 있지만 파이어폭스같은 경우에는 NPAPI을 사용할 경우 경고창을 지속적으로 띄어주고 있으며 파이어폭스도 2016년 말에 NPAPI 지원을 모두 중단한다. 사파리 브라우저는 NPAPI에 대한 아무런 응답이 없다. 그러나 사파리는 이미 진작에 윈도우 지원을 포기한 상태라 한국에서는 모바일 페이지나 앱으로 때울 가능성이 크다.(...)

이 추세대로 NPAPI도 얼마 못 가 곧 역사의 뒤안길로 사라져 갈 것이다.

5 우회방법

한 유저가 크롬과 동일한 소스를 기반으로 하는 Chromium을 변형해 NPAPI의 사용이 계속 가능하도록 하는 버전을 배포했다고 한다. Chromium의 경우 자동 업데이트로 차기 버전으로 납치되지 않기 때문에 한동안은 버틸 수 있을 것 같다.

[1] 에서 다운로드 받을 수 있다. 하지만 꼭 필요한 것 아니라면 되도록 NPAPI 없는 공식 크롬을 쓰자. 애초에 저 프로젝트의 개발자도 "나도 npapi가 엿같은 줄 알지만 금융이나 기타 업무 때문에 어쩔 수 없이 만들었다. 한국의 현실이 빨리 개선되기를 바란다."고 인정하고 있다. 무엇 보다도 향후 보안에 아무런 도움이 안 되는 만큼, 이를 대체용으로 사용 해서는 안 된다.

6 함께보기

크롬 관련 번역
크롬 지원중단 원문
파이어폭스 작동제한 원문

파이어폭스 지원 중단 원문
  1. 실제로 우리은행에 문의해본 결과 중단이 되면 당분간 타 브라우저를 사용해달라고 했다.
  2. 일종의 말장난이다. API 이름이 후추이니 샌드박스 이름을 소금이라고 지은 것.
  3. 글 자체는 WebGL 지원 발표이지만, PPAPI로 검색하면 Jonas Echterhoff의 답변을 찾을 수 있다.
  4. 천송이 코트니 해서 액티브X 없앤다고 난리친 결과가 기껏 기존의 보안 프로그램들은 exe로 다운받아서 실행하는 것을 비꼬는 말.