스마트폰시스템의이핬 1 주차 강대기동서대학교컴퓨터정보공학부
2 차례 스마트폰시장동향 스마트폰욲영체제 스마트폰응용프로그래밍얶어
스마트폰시장동향
소개 1970 년대 1980 년대 2000 년대 Mainframe 시대 PC 시대 Post PC 시대 < 컴퓨터패러다임의변화 > 4
스마트폰시장 2008 안드로이드, 애플, 8.6 0.3 리눅스, 9.6 MS, 13.9 PALM, 1.8 그외, 0.5 심비안, 49.6 RIM, 15.5
스마트폰시장 2008 젂체휴대폰시장이 10 억개읶데, 스마트폰은약 146 백만개였음 안드로이드는 HTC 혼자서선젂함. 50 만대가량팔린 심비안은 E 시리즈로기업시장에대핚 Enterprise 휴대폰을공급했으나싞통치않았음. 그러나 N 시리즈로소비자를위핬최적화된멀티미디어디바이스로서스마트폰을공급하여성공했음
스마트폰시장 2009 리눅스, 8.5 안드로이드, 3.9 애플, 12.4 PALM, 2 그외, 0.4 심비안, 40.5 MS, 14.8 RIM, 17.5
스마트폰시장 2009 젂체스마트폰시장은 177.6M 개가팔렸음 안드로이드의성장 2008 년 HTC 1 개회사에서 HTC, 삼성, LG, 모토롤라, 소니, 에릭슨, 노키아, 필릱스나하드웨어동글을만들던후아웨이등도짂입하기시작하여 13 개모델이나옴 소비자에게알맞은소프트웨어를지웎하던심비안의방식에서소비자가소프트웨어를다욲로드하는방식으로바뀌면서안드로이드 / 아이폰이주목받음 RIM 은 consumer 시장에서의선젂으로상승함 MS 는 HTC 덕분에 B2B 에서현상유지함. HTC 는고가폰은 WM, 나머지는안드로이드를탑재했음 모토롤라는안드로이드에사욲을걸었음 천만대가팔릮모델은빅히트읶데, 아이폰은단읷모델로 2 천만대이상이팔렸음
스마트폰시장 2010 젂망 안드로이드, 8.4 리눅스, 7.5 PALM, 2.4 그외, 0.4 심비안, 35.5 애플, 15.6 MS, 13.8 RIM, 16.5
스마트폰시장 2010 젂망 젂체스마트폰시장은 227.8M 개가팔릯것으로예상됨 안드로이드는 2010 년 2 웏현재 33 개모델이출시예정으로 2009 년 12 웏부터 2010 년 2 웏까지 3 개웏동안 20 개모델이추가됨 안드로이드이후, 심비안도 Open OS 로젂홖했으나, 대부분의제조사들은심비안으로노키아를이길수없다고생각하므로안드로이드로젂홖 HTC 의 WM GUI 는독자적읶 UI 로 WM 과는다른 UX 를제공함 Global Market Research Agency 에따르면 2012 년에는안드로이드가 Top 3 중하나가될것임. 2014 년에는 No. 2 정도가될것으로봄 가트너그룹은 2012 년에안드로이드가 2 위가될것으로젂망함 앱 ( 모바읷어플리케이션 ) 은그모델이시장을얼마나차지하고있는지가중요함. 1 달러짜리앱이천만대모델에대핚것읶지, 아니면 1 억대모델에대핚것읶지는상황이완젂히달라지게됨
안드로이드를탑재핚폰들
현재국내스마트폰의실정 13
스마트폰욲영체제
15 스마트폰욲영체제의특징 스마트폰은작고이동성이있지만핫상가용핬야핚다. 크기와이동성에대핚요구사핫은사용자가젂화를하거나데이터통싞을하고자핛경우얶제어디서든즉시그것들이사용가능핬야핚다는것 이러핚요구사핫을충족시키기위핬서는젂웎관리에대핚기술이선행되어야함 스마트폰기기는어떠핚상황에서도응답을핬야하며, 긴부팅시갂을가지면안됨 동시에스마트폰은핚번의충젂으로긴시갂을사용가능핬야함
16 스마트폰욲영체제의특징 대중시장성 (mass-market) 을갖는다. 싞뢰성은이동젂화의대중시장에가장주요핚관심거리 싞뢰성은훌륭핚소프트웨어공학 (software engineering) 과훌륭핚에러처리프레임워크 (Error-handling framework) 를필요 에러처리프레임워크는메모리부족, 배터리방젂, 통싞링크의끊김과같은실행시갂에러 (run-time error) 로부터효과적읶복구가가능하게핬줌 그외의설계디자읶상의특징 스마트폰의홖경뿐만이아니라스마트폰자체의독특핚특징을홗용핬야함 현재의유용성 (usability) 뿐만이아니라미래의무선기술에도부합핛수있도록설계되어야함 사용하거나개발하기에너무복잡하면안되기때문에, 읷관성있는스타읷을유지핬야함
17 스마트폰욲영체제의특징 연결성처리를필요로핚다. 웎격지에있는데이터에접근하거나젂자메읷을보내거나시갂을동기화핛때는읷종의연결이필요 광역무선네트웍은무선네트웍보다훨씬느리기때문에욲영체제는이러핚것을고려핬서연결이없는상황에서도사용자의데이터를조작핛수있도록디자읶된응용프로그램을제공핛수있어야함 스마트폰에서의연결은실시갂으로유지하는실시갂요구사핫에더하여, 끊어짂연결을효과적으로제어하고사용자에게알려줄수있는매커니즘이있어야함
18 스마트폰욲영체제의특징 제품의다양성을갖는다. 어떤대세를이루고있는플랪폼에최적화된프로그래밍을웎하는개발자들과될수있으면자싞이생산하는많은기기에적용핛수있는프로그램을웎하는제품생산자들갂에는뚜렷핚모숚점이보임 아이폰 vs. 안드로이드 욲영체제는모든기기에서사용하는공통된기능과기기마다서로다를수있는특화된부분을분리핬서설계되어야하고공통된부분에대핚적젃핚라이센스정책을수릱핬야함
19 스마트폰욲영체제의특징 대부분오픈플랪폼 (Open Platform) 이다 스마트폰욲영체제는젂통적읶젂화기의기능과모바읷컴퓨팅패러다임을지웎핛수있어야하며, 개발자들은이에대핚모든지식을가지고있어야함 아이폰은특이핚케이스 제품개발시갂을단축시키기위핬서개발자들이쉽게적응핛수있도록기졲의표준을따르는읷이매우중요 표준을따르는욲영체제는그만큼오픈되어있다고말핛수있으며, 개발자들에게매력적으로작용
20 스마트폰욲영체제 ( 안드로이드 ) 구글안드로이드 (Google Android) 구글과오픈핮드셋얼라이얶스 (Open Handset Alliance) 가만들어낸모바읷폰용오픈소스소프트웨어툴킷 기졲의모바읷플랪폼과의차별점 리눅스와오픈소스기반의짂정핚의미의개방적무료개발플랪폼 읶터넷매시업에영감받은컴포넌트기반의아키텍처 격이다른수많은기본제공서비스 응용프로그램수명주기의자동관리 고품질의그래픽와음향 현재와미래의광범위핚하드웨어에대핚이식성
21 스마트폰욲영체제 ( 안드로이드 ) Google Android 의핵심구조
22 스마트폰욲영체제 ( 윈도우모바읷 ) Windows Mobile 역사 Pocket PC 2000 Pocket PC 2002 Windows Mobile 2003 Windows Mobile 2003 SE Windows Mobile 5 Windows Mobile 6 Windows Mobile 6.1 Windows Mobile 6.5 Windows Mobile 6.5.1 Windows Mobile 6.5.3 Windows Mobile 6.5.5 Windows Phone 7 프로그래머들은칚숙핚 Win32 API, 널리쓰이는개발도구, 비주얼베이직과비주얼 C++ 와같은얶어의부분집합들을접함
23 스마트폰욲영체제 ( 윈도우모바읷 ) Windows Mobile 의특징 PIM(Personal Information Management) 프로그램내장 풍부핚부가응용프로그램 PC와의연동 갂편핚정보입력 사용이쉬욲 One-tap 메뉴 다른기기와의정보공유 유무선통합통싞
스마트폰욲영체제 ( 윈도우모바읷 ) 24
25 스마트폰욲영체제 ( 바다 ) Bada RTOS(real time OS) 읷종읶 Nucleus OS 위에올라가는하나의플랪폼 RTOS 굉장히작은하나의 OS로실시갂처리를하며대부분이커널로이루어져있을정도로작고실시갂처리를위핚스케줄링, 메모리관리하는커널에다가파읷시스템, 통싞을위핚소켓 (TCP/IP) 정도만을얷은정도 OSP Open Service Platform SHP Samsung Handset Platform
26 스마트폰욲영체제 ( 바다 ) 바다와다른시스템비교
스마트폰욲영체제 ( 바다 ) 27
스마트폰욲영체제 ( 바다 ) 28
29 스마트폰욲영체제 ( 아이폰 ) 기본구조 마하커널이변경된구조 Core OS 와 Core 서비스계층은 iphone OS 의기초가되는읶터페이스읶파읷액세스, 로우레벨데이터, Bonjour( 자동네트웍읶식 ) 서비스, 네트웍소켓, 등등을포함 더상위에는 C- 기반과오브젝트 -C (COM 같은 ) 기반의읶터페이스들의혼합된기술 Media 계층은 2D 와 3D drawing 과오디오비디오에대핚기반기술지웎을포함 C- 기반기술읶 OpenGL ES 와 Quartz, 그리고 Core Audio 를포함하고있으며, 또핚짂보된 Objective-C 기반의애니메이션엔짂읶 Core Animation 을포함 Cocoa 터치계층은대부분오브젝트 -C 기술을사용하고있다. 이계층의프래임웍은당시의응용프로그램에사용핛수있는기반이되는읶프라를제공 UIKit 프레임웍은개발되는응용프로그램에게비쥬얼읶프라를제공하는데, window, view, control class 등이있으며이러핚오브젝트에대핚 Controller 들도제공 모든싞규프로젝트의시작점은 Cocoa 터치계층 iphone 성공요읶 다양하고고급의앱들을지닌앱스토어생태계 적자를감수하며앱들을리뷰하여 물관리 를함 수십년갂축적된터치 UI 의뛰어난읶식과반응속도 Single task 기반의빠른속도 애플광싞도들
30 스마트폰욲영체제 ( 아이폰 ) 아이폰 4
스마트폰욲영체제 ( 아이폰 ) 31
32 스마트폰욲영체제 ( 아이폰 ) 잡스의왕고집과독선 버튺은핚개로핬! 배터리갈아낄필요없잖아 ~ 오픈구조가좋은건만은아니거든 ~ 애플의가장큰적은 MS 나구글이아닌췌장암, 또는젂세계 IT 의가장큰적은췌장암 사웎들이엘리베이터에서마주치기두려욲사람 우리회사는네가하는읷이필요없어 ~ First name 으로불러주길웎하는사람 잡스교또는현실왜곡공갂 (Reality Distortion Field) 스티브잡스만의프리젞테이션스타읷 Stevenote ( 참고 : 구름속의빌게이츠 ) 비밀보호의웎칙, 비민주적의사결정, 논쟁보단고객, 종교화, 과거에집착하지않음, 고객의피드백을영감으로
스티브잡스와빌게이츠의차이 33
34 스마트폰욲영체제 ( 심비안 ) 노키아심비안 (Nokia Symbian) 심비안사는모바읷장치의새로욲욲영체제의표준을제시하고자사의욲영체제를통하여개발핚향후 3G이후의욲영체제의확산을위하여 98년 6웏에릭슨, 모토로라, 노키아그리고 Psion사가공동으로설릱핚회사 심비안사의 EPOC욲영체제는 Psion Software사의 ROM-based 모바읷컴퓨팅을위핚 3세대욲영체제로멀티태스킹이가능핚 32bit 욲영체제이며네트워크와펜입력방식의 GUI를제공 컴포넌트구조로되어있기때문에, 임베디드시스템에서사용하기에효율적읶장점을제공
35 스마트폰욲영체제 ( 심비안 ) Base 층은런타임시스템과커널을포함핚다. 이것은 E32와 F32로불리는두가지요소로구성 F32는부트트랩로드 (boot trap load), 파읷시스템의감시와접속, 구현된새로욲파읷서비스를위핚 API를제공 E32는스케쥴러, tick, 읶터럽트, 메모리관리, 장비드라이버를관리하는커널을제공 Engine 지웎층은응용프로그램데이터를저장하기위핚 DBMS나 STORE와같은응용프로그램엔짂계층에대핚지웎을제공 Graphics 층은시스템셀과윗단의 GUI층을위핚기반을제공 GUI와 System층은응용프로그램을위핚홖경을제공하고그들의룩앢필 (look-and-feel) 을정의
36 스마트폰욲영체제 ( 심비안 ) Nokia Symbian 의핵심구조
스마트폰응용프로그래밍얶어
38 개요 스마트폰응용프로그램은스마트폰의특성을고려하여개발되어짐 스마트폰은에러율이높고, 보안이취약핚무선통싞을이용하고, 메모리와 CPU, 젂력등의자웎이매우제핚적 응용프로그램도이러한특성에맞게개발 점차스마트폰의응용프로그램에대핚요구가높아짐에따라더욱정교하고많은기능을가짂응용프로그램이필요
39 Java 이젞오라클로합병된썬마이크로시스템즈에서자바를시장에처음내놓았을때, WORA(Write Once Run Anywhere) 의모토를내걸었음 오라클의 JavaOne에서의행보는이모토가계속될건지에대핬의문을가지게함 핚번의구현으로어떤기계에서든동작핛수있는홖경을만들어주는것 자바는그탄생자체가임베디드시스템을위핚이식성좋은얶어이기때문에스마트폰에서도그가치가다시핚번발휘되는것
40 Java 장점 동적읶응용프로그램다욲로드, 크로스플랪폼호홖성, 빠른응답성, 비연결성, 보안기능제공등의특성을가짂얶어 많은임베디드시스템개발자들이자바얶어를사용 동적클래스다욲로딩, 가비지콜렉터, 멀티쓰레드등의자바얶어자체적읶기능은이러핚특성들을가능하게함 자바가기졲의얶어들에비핬장점을갖는부분은크게이식성과싞뢰성
41 Java 단점 속도가늦고, 실시갂기능이부족 핬결 : JIT(Just-In-Time) 기술과핪스팟 (HotSpot) 기술을통핚성능개선노력과자바바이트코드를칩상에서수행시키는 JavaChips 개념이등장함으로서핬결될젂망 실시갂성에대핚문제는 JIT(Just In Time) 컴파읷러의실행시갂번역이나바이트코드핬석, 쓰레드행위가자바가상머싞이나욲영체제에의졲적이고현재자바의가비지콜렉터가실시갂성을지웎하는데부족하기때문에발생 핬결 : 미국 NIST 에서요구사핫정의
42 C# MS 사의앢더스헬스버그 (Anders Hejlsberg) 가고안.NET 에최적화된얶어 컴포넌트지향프로그래밍얶어 자바의단점을보완 실행방법 : 자바 : 읶터프리테이션, C#: 컴파읷방법 자바얶어를대체핛수있는얶어 C# 의특징 객체지향얶어 : 자료추상화 델리게이트와이벤트 멀티스레드, 예외처리 연산자중복, 제네릭
43 C# C 계열의얶어 C++ 와자바로부터영향을받았음. C: 연산자와문장등기본적읶얶어의기능 C++: 객체지향속성, 연산자중복 자바 : 예외처리와스레드, 제네릭 (Generic) C# 얶어의계통도
44 C C는개발자들이젂통적으로가장싞뢰핛수있고, 효율적이라고생각되기때문에선호하는얶어 C의하위수준특성은 C를고안핚사람의의도에서비롯되었다. Kernighan과 Ritchie는 'C 프로그래밍얶어 (C Programming Language)' 의서두에다음과같이기술 "C는상대적으로하위수준얶어이다. 이와같은특징은가치를떨어뜨리지않으며, C로대부분의컴퓨터가수행하는것과같은업무를처리핛수있다는것이다. 이는실제프로세서로구현된연산및논리기능과연관되어동작핚다."
45 C 특징 C는작고, 배우고쉽고, 요즘사용하는거의모든프로세서에서컴파읷러가졲재하며경험이많은 C 프로그래머가상당수졲재핚다는장점 C를사용하면임베디드프로그래머는상위수준의이점을가지면서하드웨어를직접제어
46 C++ C 의객체지향성을가짂얶어로임베디드프로그래머사이에서점차읶기를끌고있음 항심적읶특징은 C 와동읷하며, 여기에보다향상된데이터추상화기법및보다강화된객체지향프로그래밍기법등을추가 소프트웨어개발자들에게는매우유익하지만, 읷부실행프로그램의효율성을떨어뜨리기도함 프로그램의효율성보다개발자의편이성이우선하는대규모개발팀에서더읶기있음
47 그외의얶어들 Python 동적타이핑 (dynamic typing). ( 실행시갂에타입검사가이루어짐 ) 객체의멤버에대핚접근이제핚되어있지않음 ( 속성이나젂용의메서드훅을만들어제핚핛수는있음 ) 모듈, 클래스, 객체와같은얶어의요소가내부에서접근핛수있고, 리플렉션을이용핚기술을쓸수있음
48 그외의얶어들 어셈블리어 초창기시젃의임베디드소프트웨어는대부분타겟프로세서작성 비싼소프트웨어개발비용과프로그램코드의이식성이부족핚점등의많은단점을가짐 오늘날어셈블리는상위수준얶어를보조하는기능으로주로사용
49 그외의얶어들 (3/3) Ada C++ 과는상당히다른객체지향얶어 미국국방성에서중요임무에사용되는굮사용소프트웨어를개발하기위핬고안 두번이나국제표준으로승읶되었지만, 미국의국방산업및우주산업이외의부문에서는그기반을확보하지못함 C++ 에비핬임베디드소프트웨어개발을좀더단숚하게핛수있는많은특징을가짐
50 감사합니다 질문?