인생은행 저금통이 개인적으로 젤 끌려 인터넷 구매하로 고고 ~ 현재 24,000원 이네요 ^^;

본문 ===>


[지디넷코리아]계속되는 경기불황, 푼돈이라도 모으려는 마음가짐을 돕는 이색 저금통이 인기다.

 

독특한 디자인에 재미있는 기능까지 더해져 저금하고 싶게 만들어 주는 이색 저금통들이 제법 다양하다. 단순히 동전을 넣어 저금하는 것만이 아니라 저축계획을 세워서 저금할 수 있도록 하거나 오락적인 기능이 가미됐다.

 

불황을 맞은 요즘, 온라인 쇼핑몰에서는 이색 저금통들이 인기 상품으로 떠올랐다.

 

■'페이스뱅크 얼굴저금통'은 입부분에 가져간 동전을 자동으로 오물오물 받아먹는 제품이다. 센서가 부착된 센서가 손의 움직임에 반응하는 원리다. 최근 옥션에서만 조회 수 3,000건을 돌파했다.

 


■앞면에 LED 액정이 탑재된 ‘손오공 디지털저금통 인생은행’이다. LED 화면이 나온 좁은 골방이 저금이 올라갈수록 호화저택까지 스토리를 전개한다. 500원 전용이며 10만원까지 채울 수 있다.

 


■‘슬롯머신 저금통’은 게임을 즐기면서 저금도 할 수 있다. 돈을 넣는 구멍이 게임용과 저금용으로 나눠진다. 게임용 구멍에 동전을 넣고 레버를 당겨 잭팟이 터지면 슬롯머신처럼 저장된 동전이 쏟아진다.

 


■'ATM 디지털 저금통'은 동전금액을 인식하는 똑똑한 저금통이다. 제품이름처럼 실제 현금인출기를 똑닮은 디자인에 예금, 예금인출, 잔액조회 등의 기능까지 갖췄다. 저금을 할 때는 비밀번호를 설정한 후 동봉되어 있는 보안카드를 삽입, 키를 누른 후 지폐 또는 동전을 넣고 예금금액을 입력한 뒤 다시 키를 누르면 된다. 동전은 카드를 삽입하지 않아도 자동적으로 금액을 인식한다. 같은 방식으로 예금인출도 할 수 있다.

 

스크랩 주소 : http://ncanis.tistory.com/81

좋은 글이더군요.~
참고할만한 글입니다.~
by ncanis(조성준)

===================================
http://younghoe.info/159 

=====================================

 
객체의 상태를 동시에 수정을 하는 것이 허용하지 않을 때 발생시키는 ConcurrentModificationException이 있습니다. ConcurrentModificationException의 쓰임으로 Javadoc API에서 예로 든 것은 하나의 쓰레드가 컬렉션을 순회(iterate) 중일 때, 다른 하나의 쓰레드가 컬렉션을 수정하는 경우입니다. 컬렉션의 모든 요소를 살펴보려고 순회하고 있는데, 컬렉션이 늘었다 줄었다 하는 경우를 생각해보세요. 매우 불안정한 순회가 될 것입니다.

재미있는 생각이 떠올랐습니다. 만일 학교에서 숙제 검사를 하는 경우를 생각해보죠. 요즘도 이런 용어를 쓰는지 모르지만, 1분단부터 차례로 선생님이 학생들의 숙제를 검사하게 됩니다. 만약에 학생들이 자유롭게 자리를 비울 수 있다거나, 검사 도중에 자리를 바꿔 앉을 수 있다면 제대로 된 검사가 불가능할 것입니다. ^^

ConcurrentModificationException은 반드시 다수의 쓰레드가 동반된 상황과 관계된 것은 아니라고 API는 전합니다.
If a single thread issues a sequence of method invocations that violates the contract of an object, the object may throw this exception. For example, if a thread modifies a collection directly while it is iterating over the collection with a fail-fast iterator, the iterator will throw this exception.

'숙제 검사'를 제대로 수행하기 위해서는 학생들이 검사를 받는 시점에 자리에 위치해야 합니다. 이것이 숙제검사의 Contract으로 볼 수 있습니다. 위에서 fail-fast 라 는 용어가 나오는데요. 이것은 이렇게 설명할 수 있습니다. 학생이 검사를 받기 전에 자리를 비웠다고 해서 반드시 문제가 생기는 것은 아닙니다. 비웠다가도 검사하는 시점에 본인의 위치에 있기만 하면 문제가 될 것이 없습니다. 그러나, 통제의 편의를 위해서는 이러한 문제도 엄격하게 다룰 수 있죠. 이와 같은 정책이 fail-fast 라고 할 수 있습니다.

API에서는 ConcurrentModificationException 구현을 너무 신뢰하지 말라는 듯한 문구가 있습니다.
Fail-fast operations throw ConcurrentModificationException on a best-effort basis. Therefore, it would be wrong to write a program that depended on this exception for its correctness: ConcurrentModificationException should be used only to detect bugs.

민재님이 발견한 재미있는 현상이 적절한 예가 아닌가 생각되네요.

public void testArrayList() {
List<String> strings = new ArrayList<String>();
strings.add("1");
strings.add("2");
strings.add("3");
strings.add("4");
strings.add("5");
strings.add("6");
strings.add("7");
strings.add("8");
for (String string : strings)
  if ("7".equals(string))
   strings.remove(string);
}

비교하는 문자열이 7인 경우에만 ConcurrentModificationException가 발생하지 않습니다. 원인을 알아보기 위해서는 ArrayList의 구현을 찾아봐야겠죠. 실제로는 AbstractList의 내부 클래스인 Itr에 구현되어 있습니다.

private class Itr implements Iterator<E> {
...
int expectedModCount = modCount;

modCount는 컬렉션이 수정된 횟수를 임시로 기록하는 값입니다. Iterator를 생성하면서 그 값을 복사해둡니다. 그리고, iterator 객체에서 next() 혹은 remove() 메소드가 호출되면 복사한 값 즉, iterator 생성 시점의 수정 횟수현재의 수정 횟수를 비교합니다. 두 수치가 갖지 않으면, ConcurrentModificationException를 발생시킵니다.

그렇다면 앞의 예제에서 예외가 발생하는 과정을 추정해보고, 왜 "7"을 비교할 때는 예외가 나지 않는지 확인해보죠.
for (String string : strings)
  if ("7".equals(string))
   strings.remove(string);

JDK5에서 지원하는 간결한 for문입니다. foreach 구문이라고도 하죠. 실제로는 strings라는 이름의 ArrayList 객체에의 iterator() 메소드를 호출하게 됩니다. 보다 정확하게 이야기하면 Iteratable 인터페이스를 구현한 객체의 iterator() 메소드를 호출하죠. iterator() 메소드는 Iterator 객체를 반환하는데, hasNext() 메소드를 호출하여 true가 반환되면 next() 메소드를 호출하여 결과를 반환하는 방식으로 컬렉션의 요소들을 순차적으로 반환합니다. 매우 복잡해보이는 일을 foreach 로 표현할 수 있어 편리해진 것이죠.

위의 구문을 다음과 같이 변경할 수도 있습니다. 구문을 더 복잡해지지만, 내부적인 동작을 보여주는데는 더 유리하죠.
String string = null;
for (Iterator it = strings.iterator(); it.hasNext();) {
           string = (String)it.next();
           if ("7".equals(string))
               strings.remove(string);
       }


앞에서 Iterator의 next()ConcurrentModificationException를 발생시킬 수 있다고 했죠. foreach 수행 중에 암묵적으로 next()가 호출된다는 사실을 기억하세요. 위 코드의 remove() 메소드는 Iterator 객체의 것이 아니라 ArrayList의 행위입니다. ArrayList의 remove()에서 아래의 코드를 발견할 수 있습니다.
modCount++;

iterator 생성 시점의 수정 횟수현재의 수정 횟수를 비교합니다!

ConcurrentModificationException이 발생하겠죠.

그렇다면 "7"의 경우는 왜 발생하지 않을까요? 또한, "8"로 비교를 수행해도 의외의 결과를 얻습니다. 소스를 한참 뒤져보고서야 해답은 Iterator 객체의 next()와 hasNext()에 있음을 알게 되었습니다.
public boolean hasNext() {
           return cursor != size();
}

public E next() {
  ...
lastRet = cursor++;


cursor 값은 0부터 시작하여 하나씩 증가하죠. 이를 효과적으로 표현하기 위해서 예제 코드를 수정해보겠습니다.

public void testArrayList() {
List<String> strings = new ArrayList<String>();
strings.add("1");
strings.add("2");
strings.add("3");
strings.add("4");
strings.add("5");
strings.add("6");
strings.add("7");
strings.add("8");
String string = null;
int coursor = 0;
for (Iterator it = strings.iterator(); it.hasNext();) {
  string = (String) it.next();
  System.out.print(++coursor + " : ");
  if ("7".equals(string))
   strings.remove(string);
 
  System.out.println(coursor == strings.size());
}
}

출력 값은 다음과 같습니다.
1 : false
2 : false
3 : false
4 : false
5 : false
6 : false
7 : true

"7"의 경우엔 hasNext()가 false를 반환하게 됩니다. 결국, 그 다음 요소는 순회가 안되고 무시되어 버리죠. ^^

그 렇다면 "8"은 어떻습니까? 앞의 예제의 "7"을 "8"로 변경하여 수행해보면, 8번 반복이 아니라 9번 반복이 수행됩니다. 원인은  Iterator 객체의 hasNext() 메소드의 구현이 크기 비교가 아니라 수치가 동일한가를 비교하고 있기 때문이죠. ^^

이러한 현상에 대해 API에서 on a best-effort basis라고 귀뜸해준 것이라면 매우 적절한 처사라 생각됩니다.

Fail-fast operations throw ConcurrentModificationException on a best-effort basis. Therefore, it would be wrong to write a program that depended on this exception for its correctness: ConcurrentModificationException should be used only to detect bugs.


읽어 볼 만한 글
Fail-fast Iterator에 대한 멀티쓰레드 무결성 해결방법


===============================================================================
링크가 혹깨질염려가 있어서.~ 위의 내용을 간략하게 설명해볼께요.~

하 부 콜렉션 객체에 변경이 일어나 순차적 접근에 실패하면 Enumeration 객체는 실패를 무시하고 순차적 접근을 끝까지 제공한다. Iterator 객체는 하부 콜렉션 객체에 변경이 일어나 순차적 접근에 실패하면 ConcurrentModificationException 예외를 발생한다. 이처럼 순차적 접근에 실패하면 예외를 발생하도록 되어 있는 방식을 fail-fast라고 한다.

이를 해결하는 2가지 방법이 있지요.

1. 스냅샷으로 데이터 링크 자체를 위해 리스트객체로 다시한번 깜사는 방법.
public Iterator snapshotIterator(Collection collection) {
return new ArrayList(collection).iterator();
}
위와같이 하면 어떻게 될까요.~ 컬렉션 객체를 다시 새로운 리스트로 감쌈니다.
즉 collection안의 데이터가 변경되서 없어질지라도, iterator하는 것은 new ArrayList()로
감싼 객체링크들이니 문제가 없는 것이죠.


2. 동기화 유틸을 이용하는방법.
Collection c = Collections.synchronizedCollection(myCollection);


이 과정을 다음처럼 콜렉션 구현 객체를 생성할 때 실행하면 효과적이다.

Set c = Collections.synchronizedSet(new HashSet(...));
SortedSet c = Collections.synchronizedSortedSet(new TreeSet(...));
List c = Collections.synchronizedList(new ArrayList(...));
Map c = Collections.synchronizedMap(new HashMap());
SortedMap c = Collections.synchronizedSortedMap(new HashSortedMap());

jdk는 정말 없는게 없죠. ㅋㅋ 잠깐


이렇게 생성된 콜렉션 구현 객체는 쓰레드에 안전하므로 스냅샷을 만들지 않고 synchronized 블럭을 이용하여 콜렉션 뷰의 실패를 막을 수 있다.

synchronized(c) {
    for (Iterator it = c.iterator() ; it.hasNext() ;) {
        System.out.println(it.next());
    }
}

[지디넷코리아]태국 노텍(NorTec)이라는 기업이 AA형 건전지로 작동되는 200달러짜리 미니 노트북PC를 발표했다고 씨넷, IT미디어, 엔가젯 등 주요 외신들이 12일 일제히 보도했다.

 

'게코 에듀북(Gecko EduBook)'이라 불리는 이 노트북은 8.9인치 디스플레이를 탑재한 소형 저가 제품으로 열악한 환경에서도 장기간 사용할 수 있도록 설계됐다고 노텍측은 밝혔다.

 

▲ 노텍의 `게코 에듀북`

이 노트북은 클락스피드 1GHz, 소비전력 1.2와트 CPU ‘Xcore86’를 탑재하고 냉각팬은 없다. OS는 우분투 리믹스(Ubuntu Remix)가 프리 인스톨되어 있고 다른 리눅스와 윈도XP도 지원한다.

 

저장장치는 2.5인치 HDD나 플래시 메모리를 선택할 수 있다. 배터리는 AA형 건전지 8개(구동시간 4시간) 또는 리튬이온 배터리를 사용하는 것이 가능하다.

 

▲ 노텍의 `게코 에듀북`

CPU와 D램을 탈착할 수 있는 모듈방식을 채택해 업그레이드가 용이하다고 한다. 사용자가 와이파이(Wi-Fi)나 와이맥스(WiMAX) 모듈을 탑재할 수도 있다.

 

가격은 200달러부터이며 오는 7월 출시될 예정이다.

 

▲ 노텍의 `게코 에듀북`

 

▲ 노텍의 `게코 에듀북`



==========================================================================================
기타 추가할 만한 사이트 있으면.... 리플 부탁 드려요 ^_^/

==========================================================================================

1) 움직이는 GIF 로더 컴포넌트 :

활용 : FLEX 어플리케이션에서 움직이는 GIF이미지를 보여줄 수 있음.

주소 : http://code.google.com/p/as3gif/

2) 플렉스 뷰어 컴포넌트 :


활용 : 목록형 이미지를 보여줄때 사용하는 컴포넌트 (IPod 커버 플로우와 유사)

주소 : http://www.quietlyscheming.com/blog/components/tutorial-displayshelf-component/


3) 플렉스 달력 컴포넌트:



활용 : 달력 내부에 다양한 내용을 넣어 스케줄러 등으로 활용 할 수 있음.

주소: http://code.google.com/p/flexcalendar/

4) 반사 컴포넌트 :


활용: 반사 효과

주소 : http://blog.benstucki.net/?id=20

5) 플렉스 단위 테스트 프레임 워크 :

활용 : 플렉스 단위 테스트로 녹화/되감기 가능

주소 : http://code.google.com/p/flexmonkey/

6) 플렉스 테이블 컴포넌트 :


활용 : MS워드와 유사한 형태의 테이블

주소 : http://code.google.com/p/flex-table/

7) 플렉스 라이브러리 프로젝트 :

활용 : 플렉스 오픈소스 라이브러리 프로젝트

주소 : http://code.google.com/p/flexlib/

8) 플렉스 버드아이 프로젝트 :



활용 : 진보화 된 비주얼 라이브러리 (다양한 기능을 포함함.)

주소 : http://code.google.com/p/birdeye/


메시지 푸시를 테스트 하는데 일종의 버그가 발견되어 리포트 해본다.

serverces-config.xml 에서 스트리밍 관련 설정을 할 때

channel-definition에서 properties의 하위 항목이 존재하지 않을 경우

파폭, 크롬, 사파리에서는 정상적으로 작동하나....
익스7,8에서는 메시지를 수신할 수 없는(subscribe가 안됨 -_-;) 현상이 발생된다.

[ 아래 예제 코드에서 properties의 Child가 1개라도 존재하지 않는 경우 .... 익스만 문제 발생 !!! ]

        <channel-definition id="my-streaming-amf"
            class="mx.messaging.channels.StreamingAMFChannel">
            <endpoint
                url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf"
                class="flex.messaging.endpoints.StreamingAMFEndpoint" />
            <properties>
                <max-streaming-clients>10</max-streaming-clients>
                <idle-timeout-minutes>0</idle-timeout-minutes>
                <server-to-client-heartbeat-millis>5000</server-to-client-heartbeat-millis>
                <user-agent-settings>
                    <user-agent match-on="MSIE" kickstart-bytes="2048"
                                max-streaming-connections-per-session="3" />
                    <user-agent match-on="Firefox" kickstart-bytes="2048"
                                max-streaming-connections-per-session="3" />
                </user-agent-settings>
            </properties>
        </channel-definition>

이거땜시 1주일 정도 해맨듯... ㅡ.,ㅡ;



나의 생각 >>>


이전 스크랩 기사에서 안드로이드VS아이폰 에서 구글에 1표 투표했는데 바로 이런글이... ^^;
저렴한 라이센스 (비용) 이라는 것은 역시 무시할만한 것이 아니네요..
개인적으로 안드로이드를 공부하고 있기는 한데 왠지 이런 기사를 보니 힘이 더 나네요 ㅎㅎㅎ


본문 >>>


[지디넷코리아]구글 안드로이드 모바일 운영체제(OS)가 올해 900%까지 성장할 것이란 조사 결과가 나왔다.

 

시장 조사 업체 스트래티지 어낼리틱스(SA)는 최근 발간한 보고서에서 안드로이드는 올해 휴대폰 제조 업체, 개발자, 이동통신 서비스 업체들의 지원을 등에 업고 무려 900%까지 성장할 것으로 전망했다.

 

안드로이드는 2008년 미국 시장에서 거점을 마련했다. 올해는 유럽과 아시아 시장에서도 가파른 성장세를 보일 것으로 전망된다.

 

T모바일은 지난해 하반기 HTC가 만든 안드로이드 기반 스마트폰 'G1'을 미국에 내놨다. 현재까지 'G1'은 100만대 가량 판매된 것으로 전해졌다.

 

SA는 안드로이드의 강점으로 상대적으로 저렴한 라이선스 모델을 언급했다.

 

세 미(Semi) 오픈소스 구조와 클라우드 서비스를 위한 구글의 지원은 HTC, 모토로라, 삼성전자, T모바일, 보다폰 등 내로라 하는 휴대폰 업체 및 이통사들이 안드로이드를 지지하도록 하고 있다. 이를 기반으로 안드로이드는 2~3년안에 스마트폰 시장에서 정상급 플레이어가 될 것으로 SA는 내다봤다.

 

SA에 따르면 안드로이드에 이어 애플 아이폰OS가 올해 79% 성장할 것으로 전망됐다.

 

경기 침체에도 불구하고, 세계 스마트폰 출하량은 지난해 1억5,200만대에 달했다. 리서치인모션(RIM)블랙베리는 스마트폰 OS 점유율에서 마이크로소프트 윈도모바일을 제치는 기염을 토했다.
결론 >>>


-80년대 매킨토시 = 현재 아이폰 = 폐쇄, 독점
-80년대 IBM 호환 PC = 현재 안드로이드 = 개방, 상생

현재는 아이폰이 유력하지만 폐쇠적인 상황을 유지 한다면 결국에는 안드로이드에게 밀릴것이라는 예상.
뭐 그래도 나름 APPLE에서도 SDK등을 개방하고 있다 하지만... 아직 개발자가 iPod개발에 접근하기 위해서는
코코아 설치를 위해 맥 컴퓨터 구매라는(해킨토시도 대안이긴 하지만...) 초기 접근의 어려움이 존재하니..
결국두고봐야 알겠지만 난 개인적으로 안드로이드에게 1표... 하지만 선점효과 네임벨류등은 무시할 수 없다 ^^


본문 >>>


[지디넷코리아]전 세계 스마트폰 시장의 패권을 차지하기 위한 경쟁에서 근래 가장 돋보이는 선수는 애플과 구글이다.
애 플은 아이폰의 빅히트으로 말미암아 일개 컴퓨터 업체에서 이동통신 시장의 총아로 떠올랐고, 구글 역시 안드로이드를 통해 초대박 닷컴기업에서 모바일 업체로 발을 넓히고 있다. 비슷하면서도 다른 양사의 대결 구도에서 애플이 먼저 유리한 고지를 차지한 것은 사실이다.

 

아이폰으로 한발 앞서 스마트폰의 미래를 제시했고 시장에 큰 충격을 줬다. 그러나 다양성과 유연함을 내세운 구글의 추격도 만만치 않다. 애플 아이폰과 구글 안드로이드의 대결에서 누가 최종 승자가 될 것인지 예측하기란 쉽지 않다. MS와 RIM도 행보도 변수다. 스마트폰 시장은 이제 막 열리기 시작했으며, 경쟁이 치열한 만큼 쉽사리 그 향방을 가늠키 어렵다.

 

그러나 과거의 경험을 면밀히 살펴본다면, 아이폰과 안드로이드의 미래를 예측하기도 그리 어렵지만은 않다. '과거는 미래를 비추는 거울'이라는 말도 있지 않은가?

 

1980년대 PC 시장이 주는 교훈

먼 저 전제할 것 하나가 있다. 스마트폰은 전화기라기보다 전화도 가능한 PC라는 개념이다. 실제로 아이폰의 경우 10년 전 데스크톱 PC 못지않은 성능을 지니고 있다. 즉, 전화기의 역사보다는 PC의 과거사를 살펴보는 것이 미래의 스마트폰을 예측하는 데 도움이 될 것이다.

 

자, 이제 '스마트폰 = 작은 PC'라는 개념을 탑재했으니, 타임머신을 타고 과거로 날아가 보자. 1981년에 힌트가 있다.

 

1981 년, 애플은 월 스트리트 저널에 위와 같은 대담한 광고를 내걸었다. "PC 시장에 뛰어든 IBM을 진심으로 환영한다"는 제목의 이 광고는 거대 공룡 기업인 IBM이라 할지라도 PC 시장에서는 애플의 아성을 넘지 못할 것이라는 자신감이 담겨있다. 그러나 애플의 예상과 달리 시장은 IBM의 손을 들어줬다.

 

APPLEⅡ의 성공으로 자만심에 빠진 애플은 폐쇄형 시스템인 매킨토시로 IBM PC와 경쟁을 벌였다. 매킨토시는 오직 애플에서만 만들고 운영체제도 애플이 제작한 Mac OS만 사용할 수 있었다. 드라이버 역시 마찬가지다. 오직 애플리케이션과 주변기기 영역만 서드파티 업체의 참여를 허용했고, 지금도 그렇다.

 

매킨토시는 혁신적인 GUI 운영체제와 당대 최신 기술을 적용한 멋지고 세련된 PC였지만, 너무 비쌌고 다양하지 못했으며 아군이 없었다. 애플은 매킨토시로부터 얻은 이익을 독점했으며 업계의 참여와 상생을 외면했다.

 

반면, IBM은 고성능 16비트 PC라는 점 외에 오픈 아키텍처라는 점을 강조했다. 다양한 운영체제와 하드웨어를 활용할 수 있는 개방형 구조를 지니고 있어 서드파티 업체들의 환영을 받았다.

 

시 스템을 개방한 덕분에 컴팩, 휴렛팩커드는 물론 대만, 일본 등 전 세계의 다양한 업체들이 IBM 호환 PC 시장에 뛰어들었으며, 이를 계기로 일개 벤처 기업에 불과했던 MS도 거대 소프트웨어 기업으로 성장할 수 있었다. 업계의 폭넓은 지지와 상생의 관계가 IBM 호환 PC를 성공시킨 것이다.

 

여기까지가 우리가 아는 80년대의 PC 역사이다. 시장은 독점보다 개방의 손을 들어줬다.

 

스마트폰은 전화기가 아닌 손 안의 PC

 

다시 시간을 현재로 돌려보자.

 

스 마트폰 시장에서 애플은 아이폰이라는 걸출한 단말기를 내놓았다. 2007년 애플이 아이폰을 선보인 이래, 1년 동안 2천만 대의 아이폰이 팔렸고 애플은 아이폰을 통해 220억 달러의 수입을 올렸다. 아이폰은 초기 매킨토시만큼이나 혁신적이고 매력적이다. 핑거 터치 스크린에 강력한 기능, 세련된 디자인 그리고 다양한 소프트웨어를 갖췄다.

 

그러나 여전히 아이폰은 애플에서만 만들며 독점적이다. 애플이 자랑하는 iTMS와 App Store도 아이폰만을 위한 서비스다. 이동통신사도 애플의 입맛에 맞춰야 아이폰을 공급받을 수 있다.

 

아 이폰의 인기가 날로 치솟고 있지만 애플을 제외한 다수 이동통신 관련 업체들은 아이폰을 그리 달가워하지 않는다. 너무 다르고 위협적이기 때문이다. 소비자와 아이폰 주변기기 및 액세서리를 만드는 서드파티 업체들이 아이폰에 열광할 뿐이다.

 

이 에 반해 구글은 독자적인 구글폰을 만드는 대신 안드로이드 OS를 내놓았다. 오픈소스 기반의 안드로이드 OS는 오픈 아키텍처까지는 아니지만 개방 지향적 플랫폼이다. 구글이 내거는 조건만 따른다면 어떤 단말기 제조업체, 이동통신사든 안드로이드 OS를 탑재한 스마트폰을 만들어 팔 수 있다. 애플 App Store에 견주는 안드로이드 오픈 마켓도 진행하고 있다.

 

올 들어 안드로이드 플랫폼 개발을 주도하는 오픈 핸드셋 얼라이언스(OHA) 가입 업체도 47개 사로 늘어났다. OHA에는 노키아와 애플을 제외한 글로벌 제조사와 이통사, 칩셋 메이커, 모바일 솔루션 업체가 두루 참여하고 있다. 국내 삼성과 LG도 참여하고 있다.

 

지난해 대만 HTC가 만들고 T-Mobile에서 출시한 최초의 안드로이드 기반 스마트폰 G1도 100만 대 이상 팔렸다. 올해 5월에는 두 번째 안드로이드 기반 스마트폰인 HTC 매직이 보다폰을 통해 독일, 영국, 스페인, 이탈리아 등 유럽 시장에 출시한다. 삼성 역시 오는 6월 안드로이드 OS를 탑재한 I7500 스마트폰을 유럽시장에 출시하겠다고 밝혔다. 그리고 이러한 소식들은 계속 이어질 전망이다.

 

개방과 상생을 내세운 구글 안드로이드의 저력

 

자, 이제 감이 오시는가?
80년대 PC 시장과 현재의 스마트폰 시장은 공통점이 있다. 아래 공식을 살펴보자.

 

-80년대 매킨토시 = 현재 아이폰 = 폐쇄, 독점
-80년대 IBM 호환 PC = 현재 안드로이드 = 개방, 상생

 

80 년대 PC 시장의 승자는 IBM이었다. 역사적 교훈을 바탕으로 한 이 공식대로라면 2010년대 스마트폰 시장의 승자는 아이폰이 아닌 안드로이드가 될 것이다. 게다가 영리한 구글은 80년대 IBM이 아닌 90년대 MS를 벤치마킹하고 있다. 구글은 하드웨어가 아닌 소프트웨어, 그것도 모바일 운영체제를 내놓았다. MS가 그랬던 것처럼 개방형 플랫폼 시장에서 운영체제를 장악, 스마트폰 시장의 주도권을 쥐겠다는 것이 구글의 야심이다.

 

출발 역시 좋아 보인다. 당장은 아이폰의 위세가 하늘을 찌르지만 안드로이드도 착실히 주변을 다지고 있다. 물론, 구글의 이러한 전략은 실패로 끝날 수 있다. 운영체제와 소프트웨어가 주력 사업인 MS와 달리 구글은 검색을 근간으로 하는 닷컴 기업이며 안드로이드를 통해 사업 영역의 확장을 꾀하는 것일 뿐 모바일이 주력 사업은 아니다.

 

게다가 스마트폰 시장은 이제 시작 단계에 불과하다. 지난 해 전 세계 휴대폰 출하량은 15억 대에 이르며, 그 중 스마트폰이 차지하는 비중은 13%에 불과하다. 그리고 MS와 노키아, RIM이 스마트폰 시장의 선두를 차지하고 있다. 섣불리 누구의 우세를 논한 단계가 아니다.

 

더구나 국내 이동통신 시장의 경우 스마트폰의 점유율은 1%도 되지 않는다. 세계적 추세와 동떨어져 있다.

 

그 러나 스마트폰은 IT 업종에서 가장 빠르게 성장하는 분야 중 하나이며, 포스트 PC 시대를 선도하고 있다는 점에서 다른 어떤 시장보다 중요한 위치를 차지한다. 전 세계인의 손에 들려진 휴대폰이라는 플랫폼을 장악하는 이가 곧 미래 IT 산업의 승자가 될 것임은 두말할 필요가 없다.

 

그것이 구글이 됐든, 애플이 됐든 소비자 입장에서는 즐거운 선택의 기회가 된다는 점에서 반가운 일이다. PC와 인터넷 발전이 인류가 지닌 기술 문명의 초점을 바꾸어 놓았듯이 휴대폰과 무선 네트워크의 발달이 미래 인류의 생활을 다시 한 번 바꿔 놓을 것이다. 우리는 그 역사의 현장 한가운데 서 있다.
- 소득수준에 따라 6만원~24만원 차등지급

국세청은 지난해 처음 입사하거나 사업자 등록한 근로자ㆍ사업자 등 150여만명에 대한 유가환급금 신청을 오는 6월1일까지 받아 6월말(6월 24일 이후)에 지급할 예정이라고 밝혔다.

이번 환급 대상은 지난해 유가환급금을 지급받지 못한 ’07년 소득이 없는 신규근로자와 신규사업자, 그리고 ’08년 신청기한 이후 채용자 및 사업자등록자로써 근로자는 총급여 3,600만원 이하, 사업자는 종합소득금액 2,400만원 이하여야 한다.

국세청은 근로자의 환급금 신청을 돕기 위해 회사에 안내문을 발송했으며 사업자 신청 안내문은 5월7일 발송 예정이다.

신청방법은 회사에 재직 중인 근로자는 회사를 통해서, 신청기한 전에 퇴사한 근로자는 개별적으로 세무서에 소득ㆍ근무월수ㆍ계좌번호 등을 기재한 유가환급금 신청서를 제출하면 된다.

종합소득이 있는 사업자등록자와 근로자는 개별적으로 신청서를 세무서에 제출하면 되고 다만, 인적용역제공 사업자는 사업월수를 확인할 수 있는 증빙서류를 함께 제출해야 한다.

지급금액은 소득수준에 따라 6만원에서 24만원까지 차등지급된다.


국세청은 환급신청 편의를 위해 신청대상자의 종합소득금액 및 기준 환급액을 조회할 수 있도록 유가환급금 홈페이지(http://refund.hometax.go.kr/index.jsp)에 소득금액 조회 코너를 개설하고 전국 107개 세무서 및 94개 현지접수창구에 ‘유가환급금 신청 지원센터’를 설치ㆍ운영하고 있다고 설명했다.

국세청 관계자는 국세청에서는 어떤 경우에도 전화, ARS(자동응답전화)는 물론 금융기관의 ATM(자동입출금기)를 통해 환급하지 않는다며 전화사기에 속지 않도록 유의를 당부했다.

문 의 : 유가환급금 제도 T/F 한창욱 사무관(02-398-6191)

출처 : http://directsw.tistory.com/94

두 축의 레이블의 값을 변경할 때 사용하는 함수이다. 각 축마다 labelFunction의 Parameter가 조금씩 다르다.

LinearAxis에서의 labelFunction
public function getLabel(item:Object, prevValue:Object, axis:IAxis) : String
{
       return 'something';
}

CategoryAxis 에서의 labelFunction
public function getLabel(categoryValue:Object, previousCategoryValue:Object,
                                   axis:CategoryAxis, categoryItem:Object) : String
{
        return 'something';
}



+ Recent posts