기본 콘텐츠로 건너뛰기

8월, 2010의 게시물 표시

2010년 2Q 휴대폰 시장 점유율 - 가트너

2010년 2Q 휴대폰 시장은 전체적으로 13.8% 성장하였다고 가트너가 발표하였다. 하지만, 심화된 경쟁으로 인해 단가는 낮아졌다고 한다.

(가트너가 발표한 2010년 2Q 휴대폰 제조사 별 점유율. 천대 기준)
Company 2Q10  Units 2Q10 Market Share (%) 2Q09  Units 2Q09 Market Share (%) Nokia 111,473.8 34.2 105,413.4 36.8 Samsung 65,328.2 20.1 55,430.1 19.3 LG 29,366.7 9.0 30,497.0 10.7 Research In Motion 11,228.8 3.4 7,678.9 2.7 Sony Ericsson 11,008.5 3.4 13,574.3 4.7 Motorola 9,109.4 2.8 15,947.8 5.6 Apple 8,743.0 2.7 5,434.7 1.9 HTC 5,908.8 1.8 2,471.0 0.9 ZTE 5,545.8 1.7 3,697.9 1.3 G’Five 5,208.6 1.6 NA NA Others 62,635.2 19.30 45,977.2 16.1 Total 325,556.8 100.0 286,122.3 100.0
기존 순서대로 Nokia, Samsung, LG가 각각 1,2,3위를 차지하였고 그 뒤를 Sony Ericsson, Motorola를 제치고 RIM이 4위를 차지하였다. Apple이 근소한 차이로 Motorola의 뒤를 바짝 따르고 있다. 이제는 휴대폰 업계 Big5가 Nokia, Samsung, LGE, RIM, Sony가 되겠다. (안녕~ Motorola ...)

Nokia, LG는 2009년 2Q 대비 약간씩 점유율이 줄어드는 모습을 보였고 Samsung, RIM, Apple, HTC등이 점유율을 높였다. 대부분 스마트폰 관련된 업체가 강세임을 알 수 있다.

Samsung의 경우 2010년 3Q에 Windows Phone 7 출시가 예상되고 있고 RIM의 경우는 새로운 BlackBerry OS 6.0에 기반한 터치폰인 Torch 출시에 관심이 쏠리고 있다.

(가트너가 발표한 2010년 2Q 스마트폰 운영체제 점유율)

2010년 8월 14일 현재 IT 기업의 규모

오라클과 구글의 소송 소식을 접하고 현재 주요 IT 기업들의 몸집이 서로 누가 더 큰지 궁굼하여 Yahoo Finance에서 Market Cap을 살펴보았다.
Apple - 227 billion $Microsoft - 211 billion $IBM - 161 billion $ Google - 155 billion $Cisco - 121 billion $ Oracle - 113 billion $Intel - 106 billion $HP - 94 billion $삼성전자 - 90 조원 <== 삼성전자는 한 이정도 위치이겠군요. Verizon - 84 billion $ Nokia - 32 billion $ Dell - 23 billion $.... LG전자 - 14조원 <== 중간에 다른 업체들이 많을테니 14위는 아닙니다. 음... IT 기업의 4위, 6위 업체의 대결이라. 세기의 대결이라 할만하다.

참고로 이 소송의 핵심에 서있는 Java(TM)가 (여전히) 시장 지배력 1위의 개발 언어임을 TIOBE index를 통해 확인해보자.

Android: Oracle이 제기한 Google Android에 대한 소송

NOTE - 이 글에 작성한 내용은 이미 언론에 공개되어 있는 내용을 근거로 하여 정리한 개인적인 의견입니다. 회사의 의견이나 회사의 비밀 정보는 전혀 없음을 알립니다.

8월 12일 미국 NORTHERN DISTRICT OF CALIFORNIA의 지방 법원에 Oracle이 Google을 상대로 특허와 저작권을 침해하였다고 Case No. pa-1418106으로 소송을 제기하였다.

이미 많은 뉴스에 기본적인 소송 내용을 소개하고 있으니 아래 링크에서 간단히 확인을 해보시기 바란다.
오라클, 특허침해 혐의로 구글 제소오라클, 구글 안드로이드 특허침해 소송안드로이드, 특허소송 휘말렸다 - ZDNet 이 글에서는 pa-1418106에서 구글이 침해하였다고 주장한 오라클이 보유한 7개의 특허를 정리해보려고 한다. 다시 한번 말하지만 아래 내용은 회사 내부 정보와는 전혀 관계 없고 미국 특허청이 제공한 public한 특허 문서를 보고 개인적으로 정리해본 내용이다.

- 실제 특허의 내용과 내가 이해한 내용이 차이가 있을 수 있음을 미리 알린다. -

1. No. 6,125,447
특허명: "Protection Domains To Provide Security In A Computer System"

2. No. 6,192,476
특허명: "Controlling Access To A Resource"

위 1,2 번 특허 모두 permission에 기반한 보안 처리에 대한 특허 내용으로 보인다. 모두 Li Gong이 제안한 특허.

3. No. 5,966,702
특허명: "Method And Apparatus For Preprocessing And Packaging Class Files"

복수 개의 클래스 파일에 중복된 데이터를 전처리 과정에 의해 중복을 합치고 제거하는 처리에 대한 특허 내용인 것 같다. Nedim Fresko가 제안한 특허.

4. No. 7,426,720
특허명: "System And Method For…

Java: 실시간 처리를 위한 Java Real-Time System 소개

Real-Time System이란? 아주 빠른 속도로 처리되는 시스템을 의미하는 것일까?

아니다! Real-Time System이란 빠른 속도로 처리되는 것이 아니고 정해진 시간에 정확히 동작을 수행하는 시스템을 의미한다.

Nasa에서 개발한 로켓의 추진 제어 장치 소프트웨어를 개발한다고 상상해보자. 로켓이 대기권에 진입하기 정확히 59초 전에 자세 제어 추진을 1.6초 수행하여 각도를 15도 변경해야한다.
이처럼 정확한 시간에 정해진 dealine동안 정해진 만큼 동작을 수행하도록 구현하는 시스템을 실시간 시스템이라 볼 수 있다. (위와 같은 동작이 더 빨리 수행된다고 아무런 득 될게 없다. 로켓을 고철로 재활용하기 위한 목적이라면 모를까)

Real-Time System은 정확도에 대한 에러를 어느 정도 감수 할 수 있는지에 따라 Hard Real-Time 과 Soft Real-Time 으로 구분한다. 앞에서 예를 든 로켓 같은 경우는 Hard Real-Time의 경우이고 Soft Real-Time은 약간의 오차 정도는 허용할 수 있는 시스템이다.

Java로 Real-Time을?

정확한 동작을 필요로 하는 Hard Real-Time System에 Java를 이용한 소프트웨어 개발이 가능할까? 일반적인 Java라면 아마 불가능할 것이다. 로켓을 제어하는 순간에 가비지 콜렉션이 하필 시작되거나 혹은 서로 다른 Java 쓰레드간에 스케줄링이 되어 시간차가 발생할 수 있다.

하지만, Java를 만든 Java의 아버지들은 이런 극도의 정확성을 요구하는 곳에서도 Java가 사용되기를 바라마지 않았던 것 같다. JCP (Java Community Process)가 만들어지고 가장 먼전 제안된 1번 JSR (Java Specification Request)가 바로 Real-Time Java이니 말이다.

Real-Time Java는 Real-Time System에서 Java를 사용하기 어렵게하는 근원적인 문제점 - 가비지 콜렉션, 스케줄링 - 등을 해결하고 또한, Real-…

Java: Java for Game? Java가 Game 개발에 어울릴까?

Java가 기업용 서버 소프트웨어 개발에 활발하게 쓰이는 것과 달리 일반 응용프로그램 분야에서는 별로 대접을 받지 못하는 현실을 개선하려면 어떤 분야부터 손보면 좋을까?
로딩타임, 성능, 사용자 인터페이스 등 Java를 이용한 클라이언트 프로그램을 개발하지 않는 이유들은 개발자 별로 서로 다를 것이다. 하지만, 이런 단점에도 불구하고 점점 복잡해지는 소프트웨어를 더 쉽게 다양한 환경에서 동작하도록 만들기 위해서는 Java만큼 이미 성숙한 해결책도 없지 않은가?
클라이언트 개발을 활성화하기 위해 Java를 게임 개발에 활용할 수 있도록 지원하면 어떨까? 역시, 사용자가 직접 쓰는 응용프로그램 중에는 게임이 가장 시장이 큰 분야이니 말이다. 그렇다면, 현재 게임 개발에 Java가 어느 정도 사용되고 있고 미래에 더 활성화 될 가능성은 있을 것인가?
이런 의문점을 가지고 "Java + Game"에 대해 조사해보기로 했다.
1. Java로 개발한 게임들
우선, Java로 개발한 게임들에 대해 살펴보자.
Oracle의 Java in Action 웹페이지를 보면 Java를 이용한 3D MMORPG RuneScape에 대한 설명이 있다. 가입자가 1억 3000만명이 넘는다고 하다. 실제 게임을 설치해서 실행해보니 WOW같은 화려한 그래픽에는 못미치치만 잘만든 Role Playing 게임이다

Puppy Games에서 개발한 Revenge of the Titans 게임도 눈여겨 볼 만하다. 이 회사는 작고 손쉽게 즐길 수 있는 게임을 개발하는데 모든 게임을 Java로 만든다. Revenge of the Titans는 Starcraft와 같은 전략 게임으로 너무 머리쓰지 않고 즐길 수 있는 게임이며 그래픽도 신선하다.

개발이 진행 중인 것으로 보이는 Urban Galaxy라는 게임도 재미있을 것 같다. SF 영화를 보면 자주 등장하는 미래의 빌딩 숲을 날아다니는 자동차로 전투도 치르고 무역도 하며 캐릭터를 키우는 게임으로 보인다. 아래에서 데모 동영상을 볼 수 …

Java Inside: Cisco 7975 VoIP Phone

Oracle의 CDC 개발자인 Hinkmond의 블로그에 소개된 Java ME CDC가 탑재된 Cisco의 VoIP 폰. CDC에 AGUI (Advanced GUI)를 적용하여 UI를 개발했다고 한다.

AGUI는 Java ME CDC 기반 디바이스에서 Java SE가 제공하던 Swing UI를 개발할 수 있도록 하는 라이브러리이다.

알게 모르게 우리 주변에 Java가 탑재된 장치들이 하나씩 둘씩 늘어나고 있다. "Java is Everywhere!" Hoola!

참고: 그동안 정리해본 Java가 탑재된 장치 목록들. Coming more soon ...
Amazon의 Kindle eBook 리더Blu-ray Disc에 사용되는 BD-J교육용으로 사용하기 좋은 Sun SPOT스마트 볼펜 - Livescribe PulseVoIP 전화기 - Cisco 7975 VoIP Phone

Java: JDK 7의 새로운 기능 - G1 가비지 콜렉터

JDK 7은 G1이라는 이름의 새로운 가비지 콜렉터를 제공한다. 기존에 잘 사용하던 CMS 가비지 콜렉터도 있는데 왜 또 하나의 새로운 가비지 콜렉터를 제공하는 것일까?

Java가 가장 많이 활용되고 있는 서버 측 응용프로그램들은 대부분 최대 처리량이 매우 중요하다. 하지만, 통신 업체나 금융 업체의 특정 사용 예에서는 실시간 특성도 또한 중요하다.

G1 가비지 콜렉션은 가비지 콜렉션 수행 시 멈춤 시간을 최소화하여 실시간 특성을 향상하면서도 최대 처리량을 희생하지 않는 것을 목표로 한다. G1 가비지 콜렉터는 대용량의 메모리와 다중 프로세스를 제공하는 서버 플랫폼에서 사용되는 것을 가정하고 구현되었다.

이미 JDK 6 update 14에서 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC 옵션을 제공하면 G1 가비지 콜렉터를 사용할 수 있다. 인터넷 블로그를 뒤져보니 누군가 JDK 6 버전에서 테스트해본 결과 아직 실험 버전이라 그런지 성능 개선 효과가 별로라고 하는데 어떤 시스템에서 테스트를 수행했는지는 확실치 않다. (앞에서 언급한 것처럼 G1은 대용량 메모리와 다중 프로세서를 가진 서버 시스템에 적합하기 때문에 테스트 환경이 어떤 시스템이었는지가 중요할 것이다.)

G1 가비지 콜렉터가 어떤 식으로 동작하는지 이해하기 위해서는 research paper를 읽어보면 가장 확실하겠지만 머리도 아프고 시간도 없으니 만만한 JavaOne 세션을 살펴보는 것이 더 좋으리라.

JavaOne 세션에서 이해한 내용을 기준으로 G1 가비지 콜렉터에 대한 기술적인 백그라운드를 정리해보도록 하겠다. (이 글에서 사용한 모든 그림은 JavaOne 2008 - The Garbage First Garbage Collector 세션의 자료에서 발췌한 것임을 밝힌다.)

G1 가비지 콜렉터의 특징

CMS 가비지 콜렉터를 대치할 G1의 주요 특징을 집어보자. JavaOne 세션 자료를 보면 아래와 같이 G1의 특징들을 나열하고 있다.
Server style…

Java ME: Opera Mini 1일 10억 페이지 뷰 달성

스마트 폰에서만 모바일 웹을 즐길 수 있는 것이 아니다! Java ME 플랫폼에서 동작하는 모바일 웹 브라우저인 Opera Mini가 최근 일일 10억 페이지 뷰를 달성했다고 한다.


Java ME CLDC / MIDP 위에서 실행되는 Opera Mini는 서버에서 보내주는 웹 페이지 뷰를 Java ME 클라이언트 프로그램에서 보여주는 형태로 동작하여 full browser와 거의 유사한 기능을 제공한다.

이외에도 Bolt라고 하는 WebKit 서버기반의 Java ME full browser도 있는데 한국에서는 별로 효용성이 없을지 모르겠으나 유럽, 중국, 아프리카와 같이 Java ME를 탑재한 feature phone이 많이 팔리는 국가에서는 중요한 애플리케이션들이다.



UPDATE:
같은 회사에 다니는 지인에게서 얻은 정보 한토막. 자신이 사용하는 Nokia 휴대폰에서 테스트를 해보니 Opera Mini는 한글 페이지를 볼 때 아무런 문제가 없지만 Bolt의 경우는 한글이 제대로 출력되지 않았다고 한다. 이런 차이점이 세계 #1의 Mobile Browser 업체가 된 원동력이 아니었을까 하는 의견을 주었다.