반응형


touch /key / etc   로 target지정   ----------> set focus  ----------> set selected   ------------> action
(touchpress)


key로만동작하는 UI에서 up down key(또는 휠)로 focus를 이동하고 나서, OK를 누르면 select가 됩니다.
어떤 컨트롤이 selected된 후에 key event를 켑쳐(?) 하겠다고 설정하면
container에서는 key event의  preview 에서 selected된 item이 있으면 ,focus 이동을 하지 않습니다.
(event bubbling이 발생합니다.)

그후 up/down은 selected된 이후에 focus이동이 아니라 




모바일에서는 플래쉬가 포기했군요.


http://www.etnews.com/news/detail.html?id=201111100110&portal=001_00001



'개발 Note > it 이야기' 카테고리의 다른 글

일탈, 디버깅 포인트  (0) 2014.09.06
C에서 C++ 그리고 framework  (0) 2014.09.02
C++를 제대로 알자!. Effective C++ , More Effective C++  (0) 2011.01.21
html5 스터디  (0) 2011.01.07
모바일에서의 GPGPU 가능성.  (0) 2011.01.03
반응형


스콧 마이어스 

참. 주옥같은 한줄 한줄이 들어있는 책이죠.
GOF 디자인 패턴과 함께 손에 놓을 수가 없네요. 왠만한 소설책보다 재미있다는...ㅋ
2판은 후배가 본다고 해서, 서점에 들려서 3판을 주문해서 다시 보게 되었답니다. ㅎ


[Effective C++]

복사생성자와 대입연산자 처리 - 만약 내가 만들려는 class가 만약 복사가 필요없다면, 원천 차단 하라.!
     - 항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해버리자!
        복사 생성자와 대입 연산자 private으로 선언하기! 

복사 생성자와 대입 연산자 예기가 나오니 몇달전에 겪었던 한 사건이 생각나네요. ㅎ

DLL 모듈을 작성하면서 만든 class가 있었는데, 우연찮게 다른 프로젝트에서 해당 class 와 같이 들어있던 define이 필요해서 include를 한적이 있었습니다. 다른 class들은 다 문제가 없었는데 유독 한 class에서 link error가 발생하더군요.
__declspec(dllexport) 로 선언되어있는 것이 문제긴 했는데, 다른 class들은 다 문제가 없는데 왜?????? 이 class만 문제가 되는가로 고민을 하게 되었습니다. 

그런데 원인은 알겠는데, 그렇다면 똑같이 선언된 다른 class들은 왜 문제가 없었는가? 하는것이었죠.
이걸로 한 2시간 고민하다가 해더파일의 class코드를 다 지우고, 문제가 발생하지 않은 녀석과 문제가 발생한 녀석 2개를 놓고, 한줄 한줄 copy하면서 비교해 봤습니다.

결국 두 클래스간의 차이는 복사연산자와 대입연산자가 금지되어있는가 아닌가 의 차이더군요.
대입연산자 (operator =)를 금지 시켰더니 문제가 해결되더군요.



변수 초기화
C와 C++의 차이.
우선 C는 기본적으로 변수 초기화가 안되죠. C++은 객체이기 때문에 객체를 생성하는 시점에 초기화가 기본적으로 되죠.(constructor 불리니까 말이죠).

C의 경우 물론 다른 정책을 가지고 있습니다. C++ 예기에 주로 관심이 있으니 넘어가도록 하겠습니다.

항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화 하자.
를 살펴보면 이런 대목이 있습니다.
"C++의 객체 초기화가 중구난방인것은 아니다. 언제 초기화가 보장되며 언제 그렇지 않은지에 대한 규칙이 명확히 준비되어있다. 그런데 복잡하다."
뭐 대충 이런 구문인데,과연 무엇이 복잡한가?
 
정적객체(static object) 중에서 비지역적 정적 객체와  지역 정적 객체가 있는데, 함수내의 static object만 지역 정적 객체이고 나머지는 비 지역적 정적객체입니다.  
비 지역적 정적 객체는 compiler가 생성시점을 결정하기 때문에 생성 순서나 초기화 순서를 개발자가 결정할수 없게 됩니다. 
때문에 비지역적 정적객체를 지역 정적객체로 바꿔서 사용하는 것이 일반적입니다.

CWindowManager * CWindowManager::GetInstance()
{
static CWindowManager windowManager;
return &windowManager;
}

또는
CWindowManager * CWinMgr(void)
{
static CWindowManager windowManager;
return &windowManager;
}

이런식이죠. 말은 어렵지만 코드는 단순합니다. ㅎ
코딩할때는 이렇게 사용하겠죠.

CWindowManager * pWinMgr = CWinMgr();
또는
CWindowManager * pWinMgr = CWindowManager::GetInstance();
 
pWinMgr->GetWindow(x,y);



컴파일러의 종류나 구현에 따라 다르게 동작하는 부분
 - 항목17: new로 생성한 객체를 스마트 포인터로 저장하는 코드는 별도의 한 문장으로 하자.

책에 있는 예제로 가보면,
int priority();
void processWidget(std::tr1::shared_ptr<Widget> pw,int priority);
     :
processWidget(std::tr1::shared_ptr<Widget>(new Widget) , priority());

의 예제 코드를 보면, resource leak이 발생할 가능성이 있답니다.
컴파일러가 processWidget 호출 코드를 만들기 전에 우선 이 함수의 매개변수로 넘겨지는 인자를 확합니다.
이때 첫번째 인자인 std::tr1::shared_ptr<Widget>(new Widget)는 2부분으로 나뉩니다.

- new Widget
- tr1::shared_ptr -> 생성자 호출부분

때문에 processWidget을 호출하기 전에, 컴파일러는 
priority()를 호출하는 부분,
new Widget 을 실행하는 부분.
tr1::shared_ptr 생성자를 호출하는 부분.

위와 같이 3부분으로 나뉜다고 한다면, 컴파일러에 따라, priority() -> new Widget -> tr1::shared_ptr 생성자 호출의 순서가 될 수도 있고, new Widget -> priority() -> tr1::shared_ptr 생성자 호출 이 순서가 될 수도있습니다.

두번째 경우 priority() 에서 exception이 발생한다면, new Widget으로 생성한 포인터는 유실될 가능성이 있습니다.
자원 유실을 막기 위해 shared pointer 를 사용했는데, 예측할 수 없는 위치에서 자원이 유실된 케이스겠죠.

이럴 바에야 
std::tr1::shared_ptr<Widget>pw(new Widget);
processWidget(pw,priority());
를 따로 써서 고민꺼리를 미리 예방하는게 좋겠다.!!! 는 것...


강력한 보장: 함수가 호출되고 내부에서 error 처리 루틴에 의해 fail을 return할때는 함수가 호출된적이 없었던 것 처럼 깔끔하게 프로그램 상태가 돌아가게 한다.는... 
- 항목 29:예외 안정성이 확보되는 그날 위해 싸우고 또 싸우자!

Hiding: ????
-항목 33:상속된 이름을 숨기는 일은 피하자
음.. 아마 대부분의 경우 의도적으로 상속된 멤버의 이름을 숨기는 일은 별로 없을것이다.
우연찮게, 또는 실수에 의해서 HIDING되는 경우가 많다. 
- 이런 경우 정말 c++에 대해서 잘 알지 못하면, 문제의 원인을 알아내기 힘들다. 또 잘알고 있더라도 찾아내기 힘들다.
  다행히도 이럴때 compiler가 warning을 내주긴 한다.
다음 예제를 보자!(Effective C++에 나온 예를 노가다 타이핑 했습니다. ㅡㅡ;;)

class Base{
private:
   int x;
public:
  virtual void mf1()=0;
  virtual void mf1(int);
  virtual void mf2();
  virtual void mf3();
  virtual void mf3(double);
  ...
};

class Derived: public Base
{
public:
  virtual void mf1();
  void mf3();
  void mf4();
};

void test_main(void)
{
Derived d;
int x;
...
d.mf1(); //좋습니다. Derived::mf1을 호출합니다.
d.mf1(x);//에러. Derived::mf1이 Base::mf1을 가립니다.
d.mf2();//좋습니다. Derived::mf2을 호출합니다.
d.mf3();//좋습니다. Derived::mf3을 호출합니다.
d.mf3(x);//에러. Derived::mf3이 Base::mf3을 가립니다.
}

어 ! 왜 에러지? 이런 의문을 품게 될것입니다. "상속받은 서브클레스가 슈퍼클레스의 멤버를 호출하는데 왜 에러지?" 라고 말이죠.!!
하이딩에 대해서 모르고 있기 때문입니다.

C++ 의 네이밍 규칙중에 하나인, 기본 클래스로부터 오버라이드 버전을 상속시키는 경우는 막겠다.
즉, 슈퍼클레스에 정의된 이름과 동일한 이름을 서브클레스에서 정의해서 사용하게 되면, 서브클래스 내에서는 슈퍼클레스의 이름을 모두 가리겠다(hiding)는 의미입니다.
"warning: Deriver::mf1() hides virtual Base::mf1()" 이런 워닝을 보이면서 말이죠.


[More Effective C++]

예외(Exception)

"예외 처리는 프로그램을 여러가지 면에서 흔들어 놓습니다." 그 증세는 심각하고 급진적이며 불편하기까지 합니다.
초기화 되지 않은 포인터를 사용하는 것이 위험해지고, 리소스 누수가 발생할 가능성의 가짓수도 늘어납니다.
우리가 원하는 대로 작동하는 생성자와 소멸자를 만들기가 보다 더 힘들어집니다.
예외처리 기능이 들어간 실행 파일과 라이브러리는 덩치도 늘어나고 속도도 느려집니다.

또 어떻게 해야 제대로 사용하는지 모릅니다.(예외가 발생했을때 어떻게 해야 적절하고 안정적으로 동작하게 하는 벙법에 대해서 의견일치가 아직도 이뤄지지 않았다는 것입니다.)

여기 내용을 찾아보시기 바랍니다. - EXCEPTIONHANDLING: 
A FALSE SENSE OF SECURITY 
byTom Cargill


setjump 와 longjump 는 exception 처리하는 루틴과 비슷하다. 차이라면, 스택을 거슬러 올라가면서 스택 내의 c++ 객체의 소멸자를 호출하지 않는 다는 것이다.


항목 9: 리소스 누수를 피하는 방법의 정공은 소멸자이다.

void processAdoptions(istream & dataSource)
{
while(dataSource)
{
ALA* pa = readALA(dataSource);
try{
pa->processAdoption(); // 예외를 던질 녀석
}
catch(...)
{
delete pa;
throw;
}
delete pa;
}
}

위와 같이 pa->processAdoption()에서 예외를 던질것을 예상하고 코드는 복잡하게 처리되기 마련이다.
이를 스마트 포인터를 써서 구현하게 되면 훨씬 간결한 코드가 나오게 된다.

void processAdoptions(istream &dataSource)
{
while(dataSource)
{
auto_ptr<ALA> pa( readALA(dataSource) );
pa->processAdoption(); // 예외를 던질 녀석
}
}

위 처럼 pa->processAdoption()가 예외를 던지더라도 while 구문을 빠져 나갈때 auto_ptr<ALA>의 소멸자가 불리면서 내부에서 ALA의 소멸자를 호출하기 때문에, 훨씬 간결해지고, 리소스 관리가 편해지게 됩니다.


항목 10: 생성자에서는 리소스 누수가 일어나지 않게 하자

C++은 생성과정이 완료된 객체에 대해서만 안전하게 소멸 시킵니다. 만약 생성자 내부에서 exception이 발생하게 되면, 해당 객체의 소멸자는 호출되지 않습니다.


항목 11: 소멸자에서는 예외가 탈출하지 못하게 하자.
예외처리가 진행되고 있는 동안 다른 예외 때문에 소멸자를 떠나게 되면, C++은 terminate란 함수를 호출하게 되어있습니다.
이 함수는 프로그램의 실행을 끝장내기 때문에, 것도 아주 칼같이 끝내 버리기 때문에,지역 객체조차도 소멸되지 않습니다.

Session::~Session()
{
try{
logDestruction(this);  // 예외를 던지는 녀석
}
catch(...){ }    //expction으로 소멸자를 빠져 나가는 것을 잡고있는 녀석
}

위의 try catch구문만으로도 아주 훌륭한 소멸자 예외처리가 되는 것입니다.

항목 15: 예외처리에 드는 비용에 대해 정확히 파악하자

통상적인 함수 복귀(return)과 비교할때 , 예외 발생(throw)에 의한 함수 복귀 속도는 10의 세 제곱배(1000배) 만큼 느리다고 합니다.

예외 비용을 최소화 하려면, 가능하다면 예외 기능을 지원하지 않도록 컴파일하십시오.
try 블록과 예외 지정은 꼭 필요한 부분에만 사용합니다. 예외를 발생시키는 일도 진짜 예외적인 상황이라고 판단될 때에만 해야 합니다.

80-20 법칙 : 예외 자체는 사실 프로그램의 동작상 20에 해당합니다. 프로그램의 성능에 영향을 크게 미치는 것이 아닙니다.
단지 예외 발생이 자주 일어난다면, 그때는 예외를 사용할 것인지 심각하게 고려해봐야 합니다.




오 남용.



반응형

html 5를 공부하기 좋은 sample 자료네요..
이것 저것 해볼것도 많고 ㅎ


반응형
무료 EBook download 
- 비록 몇개 챕터밖에 없는 듯 하지만, 도움은 좀 될것 같습니다.

http://blogs.msdn.com/b/microsoft_press/archive/2010/08/02/free-ebook-petzold-s-programming-windows-phone-7-special-excerpt-2.aspx

'개발 Note > it 이야기' 카테고리의 다른 글

html5 스터디  (0) 2011.01.07
모바일에서의 GPGPU 가능성.  (0) 2011.01.03
이름없는 개발자들  (0) 2010.07.02
구글TV 오픈플랫폼 아니다.[펌]  (0) 2010.06.18
Bada Wave Review - 16분간. in the italia  (0) 2010.06.02
반응형


보통 아주 새로운 또는 이슈가 될만한 소프트웨어(게임이든, 기타 웹이든, 플랫폼이든 모든 분야에서 )가 개발되고 나면 해당 프로젝트의 개발 팀장휘하 아주 유능한 개발자들은 업계나 메스컴을 통해 상당히 많은 주목을 받게됩니다.

또 해당 프로젝트의 결과물에 대해 여러 의견들이 인터넷을 통해 전파되고, 해당 프로젝트의 개발자들은 자기 분야에서 그 소프트웨어를 사용하는 사람들과 소통을 합니다.

이렇게 되면서 Follower(트위터에서 따옴  ^^) 와 같은 추종 세력들이 형성되고, 프로젝트의 각 모듈들에 대한 의견과 아이디어 문제점들을 피드백 받습니다.

그렇게 해서 요구사항들을 반영한 새로운 버젼을 발표하며 발전해 나가죠.



음...서두를 어떻게 꺼내야 할가 고민을 많이 했습니다. 

하지만 결국 평이한 서문으로 시작이 되는군요. ㅎ

그동안 소프트웨어 개발은 단순히 프로그래밍 이라고 생각을 해왔었습니다.

최근 플랫폼 개발에 참여하게 되면서 부터는, 설계와 표준 그리고 프레임워크 컨셉 및 향후 버젼 관리, 호환성 유지 방법등, 여러가지를 고민하게 되더군요.

그리고 플랫폼 개발이 완료되어 유저들과 개발자들에게 공개가 되고 , 상당히 들뜬(?, 사실은 걱정이 80%^^;;) 기분으로 인터넷이나 주변의 반응들을 살펴보게 되었습니다.

결국 제가 접한것은 인터넷에는 수많은 루머들만 떠돌고, 카더라 식의 비방 과 쉴드가 남발하고 있는 모습들!!!.
더더욱 중요한 것은 플랫폼을 만든 곳에서 제공하는 SDK를 이용해서 소프트웨어를 개발하고자 하는 사람들은 주변에서 찾아볼 수 없다는 것이었습니다.

첨에는 아.. 역시 우리나라 개발자들은 회사일에 너무 치여서 바빠서 따로 취미로 개발을 할 여력이 안되는 구나...
(반은 맞을거라 보여집니다. 회사일도 빡센데 집에와서 또 코딩한다는 건.... ㅡㅡ;;; 미쳤다는 소리듣기 딱 좋죠.) 

이런 생각을 했었습니다.


그렇게 몇주를 보내는 동안 가끔 인터넷에서 새로운 소식이 없나 찾아보고, 평이한 일상을 보내던 중 몇 일전 우연히 책한권을 읽다가 이런 생각이 들었습니다.

"외국 개발자들중에는 유명한 네임드 개발자들이 참 많아... 우리나라에도 개발쪽으로 매우 뛰어난 사람들이 있긴 있는데. "
라 생각하고 손 꼽으려 했는데, 당최 생각나는 사람이 없더군요.

사임당 워드 개발하신 강태진씨나 V3 개발자이신 안철수 연구소장님 정도 생각나네요.

아! 오해가 없으시길!!!!,  국내에 뛰어난 개발자가 없다는 의도로 쓴 내용은 아닙니다.
뛰어난 개발자들이 여러회사에 포진되어 있고, 밤잠 설쳐가면서 개발에 임하고 있다는 것도 알고 있습니다.

플랫폼 개발자라고 하면 사실 플랫폼은 혼자서 뚝딱 해서 만들어지는 것이 아닌바, 분명 세부모듈들에 대한 담당 개발자들이 따로 있고, 전체적인 아키택팅에 참여한 사람들도 있을것이며, 밑바닥 H/W 호환성과 튜닝, 그리고 소프트웨어 품질 테스트, 버젼 관리 등등 각각의 분야에서 다양한 많은 전문가들을 지칭하는 것일텐데,
지금 와서 보면, 이런 플랫폼을 개발했던 사람들이 대부분 , 외부 개발자 (플랫폼 이용자) 들과의 접촉이 거의 없고,  해당 모듈의 설계 컨셉이나, 향후 진행 방향 등에 대한 비전 공유나, 외부로 부터 받은 피드백에 대한 대응 계획 등에 대한 발언을 하지 않습니다.

이런 비전이나 발언들은 대부분 개발자가 하는게 아니라 회사 대표나 홍보팀 같은 단일화 된 창구를 통해서 이뤄지고,
플랫폼 개발자들을 통제하여 개발자가 발언한다는 것 자체가 거의 막혀있다고 봐야 합니다.

대한민국의 회사내에서의 개발자들의 위상이 낮기 때문에 어쩔수 없다고 해야 할까요.

또 개발자 개개인들도 자신이 작업한 내용을 발표하고 평가받고 비전을 제시하는 것에 대해 어색하고 미숙한 것도 일부 작용했으리라 보입니다.

원인이야 어찌 되었든지, 결국 제가 참여했던 오픈 플랫폼도 마찬가지라는 것입니다.
플랫폼을 개발하면서 정말 수많은 아이디어들을 내고, 개발하고 , 버그를 수정하고, 컨셉을 세우고 했지만, 개발자에게 남은것은 단지 소스만 남았습니다. 

나머지 외부에 우리가 새로운 플랫폼을 만들었다고 발표하는 것은 마케팅부서에서 , 새로운 플랫폼이 올라간 재품을 선전하는 것은 사장단이나 임원이, 디자인은 당연히 디자인팀이 하고, 개발자는 프로젝트가 끝난후 완전히 가려진다.

더군다나 개발자가 기술적인 부분에 대해서 자신의 노하우를 외부에 절대 공개할 수 없고, 심지어 피드백도 자유롭게 할 수가 없어집니다.

이를 생각하다보니, 블리자드의 블리컨즈 가 생각나더군요. - 개발자들과의 인터뷰.

그러면서 느끼는 것이 누군가 개발자들을 알리지 않으면 아무도 않 몰라주고 무덤에 묻히겠구나 라는 생각이 들더군요.

혹시, 이 글을 읽으신 개발자 분들 있다면, 

리플에 자신의 주변에 유능한 개발자분의 성함과 하시는 일을 적어주세요.
적어도 우리끼리라도 그사람들이 무슨일 하는지 알리자구요.!!!



반응형

가전기기,IT,Mobile 시장 어떻게 변해가는지 점치기가 점점 어려워지는군요.


S/W 기술력이 없는 제조 회사들은 고민없이 구글 TV로 올인 해도 되겠지만. 그렇지 못한 대형 회사들,
즉 자체 브랜드를 가지고 있고, 다른 회사들과 차별화를 가져가려는 회사들의 경우에는 심각한 고민을 하게 될것 같군요.


기존 안드로이드 OS로 TV S/W를 개발할 경우 안드로이드 마켓을 이용할 수 없고,
구글과 계약하자니, 종속적이 될것이고,
계약 한다 하더라도, 안드로이드 TV S/W 마켓도 이제 시작인데, 잘된다는 보장도 없고(이건 억지긴 하지만) 시작부터 종속적이 된다는 것도 좀 꺼림직 할것이고, 정말 보든 분야에서 본젹적인 S/W 전쟁이 시작되는 듯 하군요.

전초전을 보는 듯합니다.

향후 5년 뒤가 매우 기대되고 흥분됩니다.

실제로 H/W 기기에 대한 S/W 적인 인터페이스 정의들이 이뤄지고 이를 지원하기 위한 다양한 Framework 들이 나오고,
모든 가전기기, 정보기기 및, 심지어, Home, 자동차.. 등등도 S/W 로 조작이 가능한 시대가 오지 않을까?
합니다.





[기사 본문]

"구글TV 오픈플랫폼 아니다"‥ 삼성·LG '비상'
스마트폰 문제, 스마트TV로 튀나
박영례기자 young@inews24.com
삼성전자, LG전자 등이 구글TV 개발을 검토 중인 가운데 소니와 같은 구글TV를 개발하려면 구글과 별도 플랫폼 사용에 관한 계약을 맺어야 할 전망이다.

현재 구글은 인텔, 소니와 올 하반기 구글TV를 출시할 예정으로 현재 이에 맞는 TV플랫폼을 개발 중이다. 이는 오픈 플랫폼인 스마트폰과 같은 안드로이드 운용체계(OS)를 기반으로 하지만 구글이 TV용으로 별도 개발한 만큼 구글측과 협의 없이 무단 사용할 수 없다는 얘기다.

국내업체가 고전중인 스마트폰의 경쟁구도가 스마트TV까지 이어질 수 있어 주목된다.

18일 관련업계에 따르면 구글이 소니,인텔과 함께 올 하반기 '구글TV'를 출시할 예정인 가운데 구글TV 플랫폼은 스마트폰과 같은 오픈 플랫폼이 아닌 것으로 확인됐다.

구글이 별도 개발한 것으로 따로 사용계약을 해야 한다는 얘기다. 또 앱스토어 역시 안드로이드마켓만 허용한다.

구글코리아 관계자는 "구글 TV플랫폼은 안드로이드 OS를 기반으로 한 것은 맞지만 구글이 별도 개발한 만큼 오픈 플랫폼이 아니다"라며 "구글TV를 개발하려는 업체는 (라이선스 등과 같은) 계약을 맺어야 하고, 당연히 안드로이드 마켓만 허용한다"고 설명했다.

현재 스마트폰의 경우 지난 2007년 OHA (Open Hanset Alliance)가 안드로이드 OS를 공개하면서 누구나 모든 모바일 기기에 적용할 수 있는 개방형 플랫폼 형태를 띠고 있다.

OHA에는 단말기, 반도체, 통신서비스, 소프트웨어 개발 등 각 분야를 대표하는 총 65개의 회사들이 참여했다. 휴대폰 및 서비스 개발과 유통에 드는 비용을 절감하자는 취지에서 출발한 만큼 플랫폼도 개방형으로 가져갔다.

그러나 구글TV는 이들 연합체가 아닌 구글이 독자 개발한 안드로이드 OS 기반의 TV용 플랫폼을 사용하는 만큼, 개방형인 모바일 플랫폼과는 별개라는 뜻이다.

구글 플랫폼인 만큼 앱스토어 역시 안드로이드마켓만 허용한다. 삼성전자의 안드로이드폰인 갤럭시S가 안드로이드마켓은 물론 삼성앱스, T스토어등을 이용 할 수 있는 것과는 다르다.

◆삼성·LG전자 "고민되네"

구글의 TV플랫폼을 사용하지 않더라도 안드로이드 OS를 적용한 스마트 TV 개발도 가능한다. 실제 이미 안드로이드 OS 기반의 TV가 국내업체를 통해 개발된 상태다.

그러나 이는 안드로이드 OS를 이용한 '안드로이드 TV'로 구글플랫폼을 쓰는 '구글TV'와는 구분된다. 가장 큰 차이는 안드로이드마켓를 이용할 수 있느냐 없느냐의 문제다.

현재 구글은 안드로이드마켓 이용에 필요한 인증을 휴대폰에 집중하고 있는데다 자체 TV플랫폼을 가져가는 상황에서 다른 안드로이드 TV에 안드로이드마켓 이용을 허용할 지는 미지수다.

실제 국내업체가 개발한 안드로이드TV는 안드로이드 마켓을 이용할 수 없다. 해당업체가 별도 앱스토어를 만든 상태다.

반대로 구글TV는 안드로이드 마켓만 허용, 세트업체가 별도의 앱스토어를 가져가지 못한다는 문제가 있다.

이는 삼성전자와 LG전자가 스마트TV 시장을 겨냥, 이미 TV용 앱스토어를 선보였거나 선보일 예정인만큼 고민이 되는 대목.

더욱이 안드로이드 마켓만 가져가고, 플랫폼 사용에 라이선스 비용을 내면서까지 구글TV를 개발해야 하느냐는 내부에서 조차 의견이 분분한 상태.
자체 OS를 가져가거나 안드로이드 OS 기반으로 개발해 쓰자는 목소리가 힘을 얻는 분위기다.

실제 삼성전자는 구글TV 개발 대신 안드로이드 OS를 적용한 TV를 개발, 일단 호텔용 등으로 활용하는 방안을 검토하고 있다.

LG전자도 구글측과 만나 구글TV 개발을 협의했지만 이같은 이유로 난색을 표명했다는 후문. 대신 안드로이드 OS를 적용한 TV 개발을 검토 중이다.

삼성전자 관계자는 "스마트폰과 TV의 사용자환경 등이 다르다는 점 등을 감안할 때 구글TV 개발에는 내부에서도 시각차가 있다"고 설명했다.

LG전자 관계자는 "이미 자체 OS를 통해 인터넷TV를 선보인 만큼 구글TV가 아닌 이를 더 업그레이드해서 가져갈 수 도 있다“고 설명했다.

◆스마트폰 위기, 스마트TV 까지?

그러나 문제는 기존 인터넷TV OS로는 인터넷 사용도 위젯방식에 그쳐 구글TV와 경쟁에 한계가 있는데다 안드로이드 OS를 적용해 자체 개발하려면 적어도 1년에서 1년반 정도가 소요돼 시장진입이 늦어질 수 있다는 점.

가장 큰 문제는 안드로이드 마켓을 이용할 수 없다는 점이다. 애플도 TV 출시가 점쳐지고 있는 상황에서 막강한 앱스토어를 앞세운 애플은 물론 앱스토어를 적극 강화하고 있는 구글을 배제한 체 스마트TV 경쟁에서 우위를 가져가기는 쉽지 않을 것으로 보이는 때문이다.

자칫하면 스마트폰과 같은 시장 후발 진입, 애플리케이션 부족 등에 따른 문제가 스마트TV로 까지 이어질 수 있다. 스마트 TV, 휴대폰, 태블릿PC를 잇는 '3스크린 전략'을 감안하면 스마트TV는 결코 양보할 수 없는 시장이다.

그러나 구글 측 관계자는 "구글TV는사업 초기라 (플랫폼 사용에 따른) 구체적인 계약형태 등은 확정되지 않았다"며 "소니에 이어 많은 글로벌 업체들과 협력하기를 기대하고 있다"며 구글TV를 둘러싼 우려에 대한 확대해석을 경계했다.

반응형


바다폰(Wave) 리뷰중 가장 긴 리뷰인것 같습니다.
매우 자세하고, 그리고 능숙하게 설명을 하더군요.




+ Recent posts