웹런처의 브라우저 호환성, 넥슨 사례

Posted in 모바일 // Posted at 2010. 11. 26. 14:29
728x90
게임사이트에서 웹 런처는 거의 필수에 가깝다.
이것은 인식의 문제가 아니라, 게임과 웹의 시너지를 통해 게임 이용 전반의 생태계 조성에 필요하기 때문이다.

표준과 멀티 브라우저 시대가 열렸지만, 국내는 여전히 IE 가 절대강자로 군림하고 있다.
이 말은 적어도 아직까지는 국내 대상 게임서비스에서 웹 런처를 위한 ActiveX 사용을 할만(?) 하다는 것이다
(그래서 필요악이다)

문제는 해외 서비스에 있다. 해외는 갈수록 IE 점유율이 떨이지고 있다.
해외 게임사이트에 웹 런처를 고려 한다면 브라우저 호환성은 보다 심각한 문제가 된다.

이와 관련하여 넥슨의 사례를 보고자 한다.
넥슨 사이트 역시 웹 런처를 제공한다. 하지만 ActiveX 설치는 존재하지 않고 심지어 4대 브라우저를 모두 지원한다. (IE, 파이어폭스, 사파리, 오페라)

신기하던 차에 살짝 살펴보니, 웹 런처를 브라우저별 플로그인 기술로 구현된 듯 하다
그리고 플래시를 통해 설치된 플러그인 파일을 실행시키는 구조이다

즉 IE는 여전히 내부적으로는 ActiveX를 이용하고 있는 것이다. 
그러나 명시적으로 ActiveX 설치는 없는 방법으로.....

설치 및 구동방식을 대략 살펴 보면,
1) 먼저 Setup.exe 파일을 수동으로 다운로드해서 설치해야 한다. 여기서 뭔가 감이 잡힐 것이다.
   브라우저에서 ActiveX 를 바로 설치하는 것이 아니라 수동 설치 과정이 필요한 것이다.
   이 수동설치를 통해 내부적으로 ActiveX가 설치되는 것이다



2) 이후 플래시로 만든 웹 런처 버턴을 클릭하면 수동으로 설치된 ActiveX가 실행되는 것이다
 알아본 바로는 플래시의 fscommand 기능을 통해 브라우저 플러그인 실행파일을 구동시킬 수 있다고 한다.   



재미있는 구조다. IE에 설치된 ActiveX는 브라우저의 추가기능관리에서 확인할 수 있다
그리고 이 파일의 위치는 아래와 같다
'C:\Documents and Settings\All Users\Application Data\Nexon\NGM'
아마도 플래시에서 접근하기 위한 영역이 필요하지 않았나 싶다



다른 브라우저를 보면 브라우저 확장기능인 플로그인으로 등록된 것을 확인할 수 있다
아래 그림은 파이어폭스에 설치된 플러그인 화면이다


그리고 아래는 구글 크롬에 설치된 모습니다



브라우저별 플러그인 기술을 각각 개발해야 하는 것인지 ActiveX 를 수동으로 설치하는 과정으로 모든 브라우저에서 가능한지 실제 구현 및 운영상 치명적인 단점은 없는 지 등 등 구체적인 내용은 아직 파악되지 않았으나 두 가지 중요한 힌트를 얻을 수 있는 좋은 기회였다

1) 웹 런처의 브라우저 호환성을 확보할 수 있다 
   호환성을 위한 최적의 방법론은 아닐 수 있으나 하나의 주요한 대안이 될 수 있다

2) 구현 측면에서 플래시를 이용하면 ActiveX 로 제작된 실행파일을 구동시킬 수 있다

이 방법이 좋고 나쁨이나 맞고 틀림, 혹은 꽁수이냐 등을 떠나서,
해외 서비스를 위한 웹런처 구현에 한쪽 눈을 트이게 한 좋은 소식이다

이 서비스에 대한 더 자세한 구현 방법론을 아는 분이 있다면 과감하게 댓글로 알려 주기 바란다~

필요악? ActiveX

Posted in 모바일 // Posted at 2010. 11. 25. 13:51
728x90
마이크로소프트의 ActiveX 는 언젠가부터, 그리고 요즘은 더욱더 비판받는 존재이다.

비판의 시작은 ActiveX의 보안 취약점 때문이었다. 다시 말해 ActiveX의 너무 과도한 권한이 문제였다.
순진한 사용자들은 ActiveX가 뭔지도 몰랐다. 그냥 설치하라니깐, '해야 되나 보다' 했다
그리고 이렇게 설치된 ActiveX를 통해 사용자 PC에서 못된 짓(?)을 하는 사례가 늘어났다

그 다음은 호환성 문제
요즘과 같이 멀티 디바이스, 표준을 외쳐대는 시류에 IE 에서만 가능한 ActiveX는 완전 찬밥 신세다
찬밥을 넘어 굉장한 비판 대상이 되고 있다. 불쌍하게도 ActiveX는 자신을 개발 해 준MS에게게도 버림받을 상황이다

간혹 이 두 개념이 혼재되어 혼란을 야기시킨다.
ActiveX를 왜 반대하는가? 보안 취약점 때문인가 아니면 호환성 때문인가?
아마 둘다라고 하는 사람이 많을 듯 하다. 근데 간혹 이 두 개념이 혼재되어 원인과 결과가 이상하게 흐르기도 한다.

예로, ActiveX의 대안 중 하나라고 하는 Signed Applet 은 어떤가? ActiveX의 대안으로 심심찮게 언급되고 있다. 근데, 이 역시 웹의 특징을 넘어서는 권한을 가지려 한다. Signed Applet과 같은 대안 기술이 호흥을 얻는 이유는 바로 호환성이다. IE 뿐만 아니라 다른 브라우저에서도 자바 애플릿이 구동되기 때문에 대안기술로 등장한 것이다. 즉 여기서 대안이라는 측면은 보안성과는 무관하게 호환성에 초점이 맞춰진 것이다.


일단 보안 부분은 이렇다. 핵심은 웹의 샌드박스 보안 모델로 인한 제한적인 권한이다. 일반 웹 기술로는 로컬 PC 자원에 액세스 할 수 없다. 게임런처와 같은 ActiveX는 로컬 PC의 자원에 접근해야 하는데 방법이 없다. 그래서 얼씨구나 ActiveX 했다. 즉 핵심은 ActiveX가 아니라 로컬자원에 대한 권한이다. ActiveX와 Signed Applet 모두 웹의 샌드박스 이상의 권한을 부여받을 수 있기 때문에 사용하는 것이다.
그리고 절대 다수 IE 사용자들의 환경에서 ActiveX는 자연스러운 선택이었던 것이다.

이제 시대가 많이 변해서 호환성이 큰 이슈가 되고 있다.
웹 표준의 중요한 원칙도 호환성을 위한 표준 정립이다. 이런 환경에서 ActiveX는 정말 골치거리가 아닐 수 없다. 재미있는 것은 플래시나 애플릿 역시 어느정도 호환성은 보장되지만 그 역시나 웹 표준은 아니다.
즉, IE 만 가능한 ActiveX와 다른 브라우저에서 가능한 애플릿,플래시의 차이일 뿐이다.

결과적으로 간혹 ActiveX 는 애매한 해석으로 공격 당하고 있는 느낌이 든다.
(나 역시 반 ActiveX 주의자다. 말하고자 하는 것은 해석의 혼란에 있다)

그러나 개발자라면 이런 해매한 해석의 내면을 아는 사람이 꽤 많을 것이다.
문제는 트랜드를 외치는 사람들, 그리고 일반 사용자들의 애매한 해석을 꼬집고 싶다.


게임회사에 일하다 보니 웹런처로써의 ActiveX가 말그대로 필요악일때가 많다.
근래 새로운 게임 포털을 구상하는 단계에서도 이 문제는 여전히 대두되고 있다.

웹을 통한 게임 접근성의 향상과 웹의 활성화를 위해 웹 런처는 거의 필수에 가깝다.
웹런처이다!!! 즉 ActiveX가 필요한게 아니라 웹 런처가 필요한 것이다
그런데 이런 웹 런처가 가능하기 위해서는 웹의 보안 한계를 넘어서는 뭔가가 필요하다
그것이 바로 ActiveX이다(혹은 Signed Applet과 같은 것이다)

국내 사용자만을 생각한다면 더 말할 것도 없이 ActiveX 다. 외국에 비해 국내은 아직까지 IE 사용자들이 절대 다수이다. 그러나 해외를 염두한다면 상황은 달라진다. 간단하게 그냥 다운로드 시켜서 독립 exe로 하겠지만, 역시 문제는 웹의 활성화가 걸림돌이다. 여기서 호환성 대안 기술을 고려해 볼 수 있다

결국 게임으로의 접근성을 향상시키고 웹의 활성화를 위해 웹 런처가 필요악에 가깝다
그러나 사양기술인 ActiveX 를 고집하는 것도 왠지 꺼림직하다. 또한 표준화, 접근성, 호환성, 범용성이 중시되는 정신 문화에 좋은게 없는 것도 사실이다.

오늘 이런 글을 봤다.
ActiveX 와 게임회사의 공생관계.

글과 댓글을 매우 흥미롭게 읽었으며 느끼는 바가 있다.
현실과 이상의 문제라고 봐야 하나? 아니면 얻는게 있으면 잃는게 있다는 양면성의 문제인가?
그도저도 아니면 웹의 본래 철학을 넘어 서버린 ActiveX의 태생 자체가 문제였던가?
혹은 웹이 네이티브의 그것과 같이 동작하기를 바라는 비즈니스의 문제인가?


음.. 공생하고 공론해야죠. 상생인가? ㅎ