2015. 5. 14. 14:51



5월 14일은 로즈데이 입니다.


로즈데이 선물 고르셨나요?  


오늘은 무료 궁합앱을 소개해드립니다. 좋아하는 이성과 한번 심심풀이로 무료 궁합한번 보세요.


소름 돋게 잘맞네요!!  


추천해드립니다.






27016D3853570300212620


216E8D385357030022F4F6


234C44385357030117ADEF


26343D38535703011BB71B


123123.PNG 


안드로이드 마켓 다운로드 :



qr_love.png 


'2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

하이브리드 앱 (웹앱) 이 최선 책인가?  (0) 2014.06.02
토익 단어 스터디하기 편리한 앱  (0) 2014.04.01
아이핀이란?  (0) 2014.02.26
OAuth 란  (0) 2013.12.12
phone gap 앱개발  (0) 2013.03.29
Posted by hoonihoon
2014. 6. 2. 10:18




회사에서 하이브리드 앱 을 개발 중이다. 웹이 80% 이상이고, 20% 가 네이티브 앱으로 되어있다.


개발 하면서 문제가 된 부분이 상당 수다.  


1. 네이티브앱에 비해 웹은 느리다. 


2. 브라우저 오류가 있다.  4.4 킷캣에서 발생하지 않는 오류가 4.0 대 ICS 에 발생한다.

    UI 버그가 상당 하다.


3. 제조사 별로 메모리 관리 하는 용량에 대해 제약조건이 다르기 때문에 발생하는 이슈가 있다.

  예를 들어 상당수의 시간이 걸리는 데이터를 Webview 에서 보여줄 때 삼성폰에서는 정상 동작하나, LG,VEGA 등에서는 앱이 죽는 문제가 발생한다. 




장점이라고 하면


1. 수정할 내용이 있다면 web 은 실시간 반영 이 가능하다. (중요)

2. 수수료를 많이 먹는 인앱결제(구글) 을 사용하지 않고  결제시스템 PG MPI 등을 사용 할 수 있다.

3. 개발 인원을 감축 시킬 수 있다.


장점이 다 비용에 관련된 부분이라 기업에서 추친하는 방향이긴 하지만 

앱 개발자가 봤을 때는 반대입장입니다. 수익을 내려면 우선 앱을 사용자 들이 많이 써야한다.

앱을 많이 쓰게 하려면 UI/UX 는 물론이고, 속도도 빨라야 한다.  

친구중에는 웹페이지 로딩하는데 3~5초 걸린다면  앱을 삭제 하는 경우도 봤다.



내가 기획자라면, 기획자로서 스토리 보드를 만든다면 

결제 페이지는 웹페이지로,  나머지는 전부 네이티브로  결정할 것 같다.





































'2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

기념일 - 로즈데이 5월 14일 선물 (무료궁합)  (0) 2015.05.14
토익 단어 스터디하기 편리한 앱  (0) 2014.04.01
아이핀이란?  (0) 2014.02.26
OAuth 란  (0) 2013.12.12
phone gap 앱개발  (0) 2013.03.29
Posted by hoonihoon
2014. 4. 1. 11:36



토익 학원에서 스터디 하시나요?  단어는 어떻게 외우고 계신가요?


노트를 들고 외우시나요? 아니면 책상에 앉아서만 외우시나요?



저같은 경우는 매번 노트에 적어서 종이 한장 들고 다니면서 하루시험 볼 단어를 외웠는데요.


편리한 좋은 앱이 하나 있어서 추천해 드립니다.










한손으로 폰을 들고 외울 수 있어서 참 좋네요.


추천 드립니다. 


별점 : ★★★★★



마켓 다운로드 가기 :


구글 스토어로 다운로드 



'2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

기념일 - 로즈데이 5월 14일 선물 (무료궁합)  (0) 2015.05.14
하이브리드 앱 (웹앱) 이 최선 책인가?  (0) 2014.06.02
아이핀이란?  (0) 2014.02.26
OAuth 란  (0) 2013.12.12
phone gap 앱개발  (0) 2013.03.29
Posted by hoonihoon
2014. 2. 26. 10:42

Q.

아이핀(i-PIN)이란 무엇인가요?

A.

i-PIN(Internet Personal Identification Number)이란, 옛 정보통신부와 한국정보보호진흥원(현
 
재 한국인터넷진흥원으로 통합)이 개발한 사이버 신원확인 체계입니다. 회원가입 시 주민등록번
 
호 등 민감한 개인정보를 입력하도록 요구하는 한국 웹사이트들의 특성을 고려하여, 2005년 가이
 
드 라인이 만들어 지고, 2006년 10월 개정을 통하여 시행되었습니다.  

최근 빈번히 일어난 개인정보유출 및 그에 따른 각종 피해사례가 늘어남에 따라, 정부는 온라인
 
상에서 주민등록번호 수집 및 이용을 제한하도록 정보통신망법을 개정하였습니다. 온라인상에서
 
주민등록번호이용이 제한됨에 따라, 주민등록번호를 대신할 수 있는 여러가지 인증방법을 사용하
 
게 되었는데, 그 중 한가지가 바로 i-PIN을 이용한 본인인증입니다. 

i-PIN을 사용하면 각종 포털사이트나 게임사이트에서 본인인증을 할 때, 해당 사이트에는 민감한
 
정보를 입력하지 않으면서 개인의 정확한 식별은 가능하기 때문에, 더 효과적으로 개인정보를 보
 
호할 수 있습니다. 또한 i-PIN을 사용할 때 마다 본인이 가입할 때 입력한 이메일로 인증정보를
 
알려주기 때문에, 자신의 i-PIN계정의 도용여부를 금방 알아차릴 수 있으며, 주민등록번호와는
 
다르게 아이핀이 도용됬을 경우에는 즉시 폐기 후 새로운 아이디와 비밀번호로 재발급 받으면 되
 
기 때문에, 보안상으로 주민등록번호보다 훨씬 안전하다고 볼 수 있습니다.  

i-PIN을 발급받기 위해서는 발급자의 대면확인, 주민등록번호, 공인인증서, 휴대전화, 신용카드
 
중 하나의 방법을 통하여 신원확인을 하여야 합니다. 

2013년 3월 현재,  

서울신용평가정보( http://siren24.com )
 
나이스 신용평가정보( http://idcheck.co.kr ) 

코리아 크레딧뷰로( http://ok-name.co.kr )  

공공아이핀센터( http://gpin.go.kr )
  
4곳에서 아이핀을 발급해 주고 있습니다.

출저: 이스트소프트

Posted by hoonihoon
2013. 12. 12. 22:45

플랫폼의 핵심 기능중 하나가 Open API이다. 해당 기능을 이용하려면 인증(Authetication)하고 권한 부여(Authorization)할 수 있는 약속을(프로토콜) 새롭게 만들어야 했고 그 결과물이 OAuth이다. 초기 1.0에서 보안결함을 해결한 1.0a 와 최신 2.0 버전을 가장 많이 사용을 하고 있다. 




개념

예전의 OpenID방식은 인증(로그인)만을 처리하는 것이고, RESTful Open API 호출시 권한 체크를 하지 않으므로 이에 대한 권한체크도 필요하다. OAuth는 두개의 역할을 다 수행한다 

  - 인증 : 우리가 흔히 사용하는 Login시 ID/Password 를 통하여 인증을 받는다 - Request_Token

  - 권한 : 권한이 있는 기능만을 호출할 수 있다 - Access_Token



버전

  - v1.0 : 보안 결함 발견 v1.0a가 IETF 표준 프로토콜, 웹만 인증 가능

  - v2.0 : v1.0의 key_signature 복잡함등의 제거, 웹뿐만 아니라 애플리케이션도 인증 가능 



V1.0 

  - User : 특정 서비스에 사용하는 유저 예) Smart Visualization 사용자

    Consumer : 특정 서비스이면서 OAuth 제공자(서비스 제공자)에게 인증과 권한을 요청 예) Smart Visualization

    Service Provider : OAuth 제공자 예) 트위터

  


  - Request Token 으로 인증을 처리하고 Access Token으로 권한

  - 장점

1. 컨슈머가 아이디/패스워드를 가지지 않고 API를 사용할 수 있음

2. 필요한 API에만 제한적으로 접근할 수 있도록 권한 제어 가능

3. 사용자가 서비스 프로바이더의 관리 페이지에서 권한 취소 가능

4. 패스워드 변경 시에도 인증 토큰은 계속 유효함.

  - 총정리

  

- 동영상 강좌 

  


  

V2.0 

  - 3가지 종류 존재 : bearer token 방식 사용. 나머지 두가지는 계속 수정중 

  - 간단해 졌고, 더 많은 인증 방법을 제공, 대형 서비스로 확장을 지원한다 

  


사용하기 

  - 다양한 언어별 라이브러리 존재 



<참조>

  - OAuth v2.0 만능 도구상자 (KTH)

  - OAuth v1.0와 춤을 (NHN)

 

출저: http://mobicon.tistory.com/category/Protocols/OAuth


Posted by hoonihoon
2013. 3. 29. 14:44

NHN 웹앱개발팀 이현철

가장 많은 스마트폰 플랫폼을 지원하는 하이브리드 앱 개발용 크로스 플랫폼인 PhoneGap. PhoneGap의 특징은 무엇이고 애플리케이션 개발에 어떻게 사용할 수 있는지 간략하게 살펴보겠습니다.

  • 스마트폰 크로스 플랫폼

    스마트폰 플랫폼 벤더에서 제공하는 네이티브 SDK로 제작한 애플리케이션을 네이티브 앱이라고 한다. iOS를 대상으로 하는 애플리케이션은 Object-C로, Android를 대상으로 하는 애플리케이션은 Java로 개발해야 한다. 이렇게 플랫폼별로 개발 언어와 환경이 다르기 때문에 여러 디바이스와 플랫폼을 지원하려면 디바이스와 플랫폼의 개수만큼 시간과 노력을 들여야 하는 문제가 발생한다.

    물론 사용자에게 제공하려는 기능을 표준 웹으로 구현할 수 있다면 애플리케이션 개발 노력을 줄일 수 있지다. 하지만 웹 브라우저에 구현할 수 있는 UX와 기능은 아직 네이티브 앱에 비하여 열악하다. 결정적으로 표준 HTML과 JavaScript로는 카메라나 가속도계를 비롯한 스마트폰의 다양한 기능을 사용할 수 없다.

    현재는 세계적으로 iPhone(iPad), Android, BlackBerry 등이 많이 사용되고 있지만, 앞으로 Window Phone 7이 등장하면 앱 제작사 입장에서는 동일한 기능을 플랫폼별로 제작해야 하는 부담이 더 늘게 된다. 이런 부담을 줄이려는 노력은 자연스럽게 크로스 플랫폼(Cross Platform)의 발전으로 이어졌다.

    현재 많은 종류의 스마트폰 크로스 플랫폼이 있다. 그 중에서 주목할 만한 것 두 가지를 꼽자면 Titanium MobilePhoneGap이 있다.


    참고

    더 다양한 종류의 크로스 플랫폼에 대한 정보는 http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework를 참조한다.


    Titanium Mobile은 개발자가 Titanium Mobile에서 제공하는 고유의 JavaScript API로 애플리케이션을 개발하면, 개발 환경이 JavaScript 코드를 네이티브 개발 언어로 치환하는 방식이다.

    PhoneGap(또는 Apache Cordova)은 '하이브리드 앱(Hybrid App)' 부류에 속하는 크로스 플랫폼이다. 하이브리드 앱이란 개발자가 플랫폼에 의존적인 기능(카메라 등의 장치 제어)만 네이티브 라이브러리로 제작하고 HTML과 JavaScript로 네이티브 기능을 이용할 수 있도록 한 것이다. 그래서 하이브리드 앱 개발자는 HTML5, CSS, JavaScript만으로도 애플리케이션을 개발할 수 있다.

    PhoneGap을 이용한 하이브리드 앱을 개발하는 과정을 간략하게 나타내면 다음 그림과 같다. 먼저, 웹 표준 기술을 이용하여 애플리케이션을 개발한다. 그리고 PhoneGap을 이용하여 각 플랫폼별 프로젝트를 구성한 다음 애플리케이션을 앱스토어에 배포한다.

    p01.png

    그림 1 PhoneGap 앱 제작 과정(원본 출처: http://phonegap.com/about)


    참고

    Adobe사가 PhoneGap을 인수한 이후 PhoneGap 소스를 Apache 재단에 기부했다. 현재 PhoneGap은 Apache Incubator에 속해 있다. Apache Incubator에서 PhoneGap은 Apache Callbakc으로 불리다 Apache Cordova로 이름이 바뀌었다.


  • PhoneGap

    PhoneGap은 웹 콘텐츠를 보여 주는 웹뷰(WebView)에서 스마트폰 디바이스에 접근하여, 카메라나 마이크 제어 같은 웹 브라우저 고유 기능 이외의 기능을 실행할 수 있는 인터페이스를 제공하는 대표적인 하이브리드 앱 개발 솔루션이다. 캐나다에 있는 Nitobi라는 회사에서 처음 제작했으며 2011년 10월에 Adobe사가 PhoneGap을 인수했다. Adobe사의 인수 후에 Apache 라이선스 적용으로 오픈소스 정책을 더욱 강화했으며, 각종 추가 기능이 플러그인 형태로 개발되어 커뮤니티에 공유되고 있는 것이 장점이다.

    PhoneGap은 현재 하이브리드 앱 플랫폼 중 가장 큰 경쟁력을 가지고 있다. 가장 많은 스마트폰 플랫폼(iOS, Android, Windows Phone, Blackberry 등 7개 운영체제)을 지원하고, 제품 완성도도 높기 때문이다.

    PhoneGap에 대해서 좀 더 자세히 알아보도록 하겠다.


    PhoneGap이 아닌 다른 하이브리드 앱 플랫폼

    PhoneGap 외에 국내에서 사용하는 대표적인 하이프리드 앱 플랫폼으로 WAC와 앱스프레소가 있다.

    WAC

    WAC(Wholesale Applications Community)는 개발 프레임워크라기보다는 웹 언어로 개발되는 하이브리드 앱의 개발/배포/보안/판매 등의 명세(Specification)를 정의하는 표준화 단체이다. 전 세계에서 많은 모바일 제조사 및 통신사에서 참여하고 있지만 Apple에서 지원하고 있지 않다는 단점이 있다. 따라서 WAC로는 iPhone용 애플리케이션을 개발할 수 없다. 이미 삼성, HTC, 모토로라 등이 WAC 기능을 지원하는 단말기를 출시하고 있고, 국내의 통신사에서도 채택하여 K-WAC이라는 통합 앱스토어를 출범했으나 현재는 Android를 사용하는 일부 단말기에서만 사용할 수 있다.

    앱스프레소

    KTH에서 개발한 국내 하이브리드 앱 개발 솔루션으로 WAC의 Device API 규격인 Waikiki API를 채택했다. 현재는 PhoneGap과 같이 네이티브 앱이 웹뷰를 포함하여 패키징되는 형태이나 곧 WAC용 앱으로 패키징하는 기능을 추가할 예정이다. 산업계 표준 API를 사용하는 강점이 있으나 아직까지는 iOS 및 Android의 두 개 플랫폼만 지원한다.


    PhoneGap은 다음 그림과 같이 웹뷰를 포함하는 네이티브 앱 구조이다. PhoneGap에는 장치 제어를 위한 JavaScript API가 있는데, 이 API를 이용해 카메라, 주소록, 가속도계 등을 사용할 수 있다

    p02.png

    그림 2 PhoneGap 레이어링

    2011년 11월 7일에 릴리스된 1.2.0 버전을 기준으로 장치 제어에 사용하는 디바이스 API는 다음과 같다. API에 대한 상세한 내용은 "PhoneGap API Reference" 문서를 참조한다.

    • Accelerometer: 가속도계 사용
    • Camera: 사진 촬영과 사진 앨범 탐색 
    • Capture: 동영상 녹화, 오디오 녹음, 정지 영상 촬영
    • Compass: 나침반 기능
    • Connection: 모바일 네트워크 상태 확인
    • Contacts: 주소록 검색 및 연락처 추가/수정/탐색
    • Device: 단말기, 운영체제 버전 등 
    • Events: 하드웨어 버튼 이벤트
    • File: 파일 입출력, 전송 
    • Geolocation: 위치 정보 
    • Media: 음성 재생과 녹음
    • Notification: 벨 소리, 진동, 시스템 알림 메시지 등
    • Storage: 네이티브 DB 접근
  • PhoneGap 동작 과정

    PhoneGap의 핵심 기능은 JavaScript와 네이티브 코드로 된 라이브러리를 연결하는 것이다. 그런데 JavaScript와 네이티브 코드는 동작 환경이 다르다. JavaScript는 인터프리터 방식으로 실행되는 것이어서 네이티브 코드와 데이터를 공유할 수 없다. 그래서 일종의 RPC를 사용해야 하는데, PhoneGap에서는 별도의 문자열 프로토콜을 만들어 웹뷰에서 네이티브 코드와 데이터를 교환한다. 어떻게 데이터를 전달하는지 iOS와 Android로 나누어 설명하겠다. 

  • iOS 동작 과정

  • 웹뷰에서 네이티브 앱으로 데이터 전달

  • 애플리케이션은 단말기에 설치될 때 커스텀 스킴(Custom Scheme)을 등록한다. 커스텀 스킴은 다른 애플리케이션에서 자신을 호출할 때 쓰인다. 가장 대표적인 커스텀 스킴은 전화(Telephony) 앱을 호출하는 "tel:"인데 다음과 같이 미리 약속된 파라미터를 전달할 수 있다.

    1
    2
    <a href="tel:01023465789">친구 전화 걸기</a>
      

    커스텀 스킴은 다른 애플리케이션을 실행할 때도 사용되지만, 현재 실행 중인 애플리케이션 자신을 호출할 때도 사용된다. PhoneGap에서는 이러한 방법으로 웹뷰에서 네이티브 앱으로 문자열을 전달한다. 아래와 같은 형식으로 커스텀 스킴을 웹뷰에서 호출하면 네이티브 코드에서는 클래스 이름, 함수 이름과 인자 등을 추출하여 해당 네이티브 코드를 실행한다.

    1
    2
    yourscheme://<class>.<command></command>/[<arguments>][?<dictionary>]
     </dictionary></arguments></class>
  • 네이티브 앱에서 웹뷰로 데이터 전달

  • iOS SDK의 WebView 클래스에 stringByEvaluatingJavaScriptFromString() 메서드가 있는데, 이 메서드를 사용하여 현재 실행중인 웹뷰에 JavaScript 코드를 삽입할 수 있다.

    1
    2
    3
    NSString* status = [[NSString alloc] initWithFormat:@"%@({ code: %d, message: '%@'});", callback, code, message];
    [webView stringByEvaluatingJavaScriptFromString:status];
      
  • Android 동작 과정

  • 웹뷰에서 네이티브 앱으로 데이터 전달

  • Android는 웹뷰에서 네이티브 메서드를 호출할 수 있는 인터페이스를 제공한다. WebView 클래스에 있는 addJavascriptInterface() 메서드로 JavaScript가 호출할 수 있는 코드 정보를 등록한다. 

    다음은 addJavascriptInterface() 메서드를 사용하는 예이다. JavaScript에서는 예에서와 같이 MyHybrid 객체를 별도로 정의하지 않아도 사용할 수 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    webView.addJavascriptInterface(new MyHybrid(), "MyHybrid");
    Class MyHybrid {
    public String hello(){
    return "Hello hybrid App";
    }
    }
    <script>
    alert(MyHybrid.hello());
    </script>
      
  • 네이티브 앱에서 웹뷰로 데이터 전달

  • 네이티브 앱에서 웹뷰로 데이터를 전달하고자 한다면 아래와 같이 WebView의 loadUrl() 메서드를 사용한다.

    1
    2
    webView.loadUrl("javascript:hello();
      
  • PhoneGap에 대한 궁금증

    PhoneGap에 대해 자주 받는 질문으로 PhoneGap에 대해 더 자세히 살펴본다.

  • 1. PhoneGap으로 패키징한 애플리케이션은 웹뷰를 포함하는가?

    웹뷰를 포함하지 않는다.

    PhoneGap은 웹뷰를 통해 실행되고 있는 JavaScript와 프레임워크의 네이티브 코드를 호출하는 인터페이스 역할을 할 뿐이며, 웹뷰는 각 모바일 프레임워크에서 제공하는 것이다. 마치 String 클래스를 사용하는 것과 유사하다. 즉, 웹뷰는 애플리케이션에 함께 패키징되는 것이 아니라 네이티브 앱에서 웹뷰를 호출하여 사용하는 것이다. 예를 들어 Android용 PhoneGap 애플리케이션을 만든 후 Android 2.2 버전과 2.3 버전에서 각각 실행하면, 각 플랫폼에서 실행되는 웹뷰는 서로 다른 것이다.

  • 2. 초기 페이지에서 외부 웹 페이지를 로드할 수 있는가?

    로드할 수 있지만 바람직하지 않다.

    PhoneGap으로 만든 애플리케이션의 첫 페이지를 외부 페이지(http://...)로 링크할 수는 있으며, 이렇게 하면 온라인 앱 형태가 된다. 하지만 이러한 구조는 PhoneGap의 원리에 어긋나는 구현 방식이며 로컬 자원에 접근하는 PhoneGap API(카메라, 파일 I/O 등)가 정상적으로 동작하지 않을 것이다. PhoneGap은 모든 웹 콘텐츠(HTML, CSS, JavaScript)가 로컬(단말기)에 저장되어 있다는 것을 전제로 한다. 앱을 구현하는 방식이 웹 언어일 뿐이지 일반 웹 앱처럼 웹 서버에 있는 페이지를 그대로 로드하는 것은 바람직하지 않다.

    참고로 PhoneGap 애플리케이션이 웹뷰가 전체 화면을 차지하고 첫 페이지부터 원격 웹페이지를 로드하는 온라인 애플리케이션 형태이면 Apple의 애플리케이션 검증 과정에서 주목을 받을 수 있다. 네트워크가 연결되지 않는 상황에서 아무런 오류 메시지를 사용자에게 보여 주지 않는다면 반려(Reject)될 사유가 되니 주의해야 한다.

  • 3. Apple App Store에서 반려 사유가 되지 않는지?

    예전에는 서드파티 라이브러리를 사용한 애플리케이션은 App Store 검증 단계를 통과하지 못했다. 하지만 요즈음은 Apple에서 이를 허용하고 있고 이미 Apple에서 PhoneGap에 대한 기술 검토까지 완료했기 때문에 App Store 등록에 어려움이 없을 것이다.

  • 4. 기능 확장은 어떻게 할 수 있는가?

    PhoneGap에서 지원하지 않는 기능은 다음 그림과 같이 PhoneGap 플러그인을 개발하여 기능을 확장할 수 있다. 확장하려는 하는 네이티브 기능과 이 네이티브 기능과 연결할 JavaScript 인터페이스를 개발해야 한다. 물론 각 플랫폼별(iOS, Android 등)로 각각 개발해야 한다.

    p03.png

    그림 3 PhoneGap 기능 확장(원본 출처:http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins)

  • PhoneGap은 쓸 만한가?

    PhoneGap이 어느 정도 품질인지는 PhoneGap으로 개발한 애플리케이션을 사용해 보면 알 수 있을 것이다. PhoneGap으로 개발한 애플리케이션을 몇 가지 소개해 보겠다. 더 많은 애플리케이션은 http://phonegap.com/apps에서 볼 수 있다.

    • Diary Mobile: 일정과 작업을 관리하는 애플리케이션이다.

    p04.png

    p05.png

    • JUST ONE MORE: 동영상 공유 서비스인 Vimeo의 영상을 편하게 볼 수 있는 애플리케이션이다.

    p06.png

    • Orbium: Android 마켓과 Apple App Store에 출시된 퍼즐 게임이다.

    p07.png

    PhoneGap으로 제작한 애플리케이션 중에는 큰 인기를 얻고 있는 것이 아직까지는 없지만, 개발 효율성 때문에 PhoneGap을 이용한 애플리케이션이 더 많이 등장할 것이다. 애플리케이션의 개수가 많아지는 만큼 그 중에서 인기 애플리케이션도 있게 될 것이다.

  • PhoneGap에 대해 정말 알고 싶은 것들

    PhoneGap으로 애플리케이션을 개발할 때 부딪히는 질문을 정리해 보았다.

  • 1. 과연 웹 언어만으로 애플리케이션을 개발할 수 있는가? 

  • 예: 90%

  • 어떤 애플리케이션을 개발하느냐에 따라 다르지만, 웹 언어(HTML, CSS, JavaScript)로 대부분의 기능을 구현할 수 있다.

  • 아니요: 10%

  • PhoneGap에서 애플리케이션 개발에 필요한 모든 기능을 제공하지는 않는다. 보조 웹뷰를 만든다거나 기타 다른 기능을 구현하려면 네이티브 언어의 힘을 빌려야 한다.

  • 2. 하나의 소스 트리로 여러 환경을 지원할 수 있는가? 

  • 예: 90%

  • 하나의 소스 트리로 iOS용 애플리케이션과 Android용 애플리케이션, 모바일 브라우저용 웹 페이지 프로젝트를 제작할 수 있다.

  • 아니요: 10%

  • Android와 iOS의 렌더링 방식 차이로 불가피하게 운영체제별로 구현을 따로 해야 하는 부분이 있다. 또한 PhoneGap API를 사용할 때도 운영체제별로 동작에 차이가 있는 경우도 있다. 대부분 로컬 자원 접근을 위한 경로 문제이며 운영체제 종류를 판별하는 간단한 분기문으로 해결할 수 있다.

  • 3. 필요한 기능을 완성도 높게 만들 수 있는가?

  • 예: 95%

  • PhoneGap에서 기본적으로 제공하는 API의 완성도가 높아서 사진 촬영, 사진 앨범 검색, 음성 녹음 등은 PhoneGap만을 이용하여 구현할 수 있다.

  • 아니요: 5%

  • 그러나 여전히 PhoneGap만으로는 부족하다.  추가적인 기능이 필요하면 오픈소스로 제공되는 플러그인(https://github.com/phonegap/phonegap-plugins)을 사용하거나 직접 플러그인을 개발해야 한다.

  • 4. 네이티브 앱만큼 미려한 UI를 개발할 수 있는가?

  • 예: 70%

  • 목록형 애플리케이션에서 필요한 UI(상/하단 고정메뉴 및 부분 영역 스크롤)는 대부분 구현할 수 있다. 전체 화면 전환 애니메이션도 구현할 수 있다. 하지만 이때 실제 페이지가 전환되는 것은 아니고 하나의 페이지에 있는 여러 레이어 사이를 전환하는 방식이다.

    Android 단말기의 "Back" 버튼에 대응하기 위하여 레이어 전환 시에 해시(Hash) 히스토리를 추가적으로 사용했다. 일반 웹 페이지 전환 방식과 비교해 다음 그림과 같이 다소 복잡한 방법으로 화면을 전환해야 하나 성능상 문제는 없었다.

    또한 HTML5와 CSS3로 화려한 그래픽과 애니메이션 등 다양한 UI를 구현할 수 있다.

    p09.png

    그림 4 일반 HTML 페이지에서의 레이어 전환과 Android 단말기에서 레이어 전환 비교

  • 아니요: 30%

  • 웹뷰 상에서 UI를 표현하는 방식이므로 모바일 웹 기능의 한계를 넘는 UI는 표현할 수 없다. HTML5와 CSS3로 좀 더 미려한 UI를 구현할 수 있지만, 그만큼 성능이 떨어질 수 있어서 사전에 많은 기술 검토와 프로토타이핑이 필요하다.

    저사양 단말기에서의 성능 테스트도 필수적으로 해야 한다. 일부 저사양 Android 기기에서는 반응성이 좋지 않았다.

  • 5. 성능 문제는 없는가? 

  • UI 성능

  • Android의 경우 UI 반응성이 iOS에 비해서 느린 경우가 많아서, 항상 기능을 구현할 때는 Android와 iOS 모두에서 확인해야 한다.

    iOS 4.x 버전 이하에서는 Safari 브라우저와 웹뷰에서 사용하는 JavaScript 엔진이 각각 다르다. Safari에서 사용하는 엔진(Nitro)이 웹뷰에서 사용하는 엔진(JSC)보다 2~3배 빠르다. 일반적으로 웹과 PhoneGap 앱의 성능 체감 차이는 그리 크지 않다. 하지만  무거운 JavaScript 연산 시 PhoneGap 앱이 다소 느릴 수 있음을 유념해야 한다. 참고로 iOS 5 이후부터는 Safari와 웹뷰의 JavaScript 엔진이 동일하다.

  • 로드 성능

  • PhoneGap UI를 위한 웹 콘텐츠 자원은 로컬(단말기)에 저장하여 사용하기 때문에 동일한 기능의 네이티브 앱에 비해 크게 차이가 나지 않는다.

  • 6. 애플리케이션을 재등록하지 않고 자동으로 UI를 업데이트할 수 있나?

    PhoneGap 앱은 원격에 있는 웹 콘텐츠가 아닌 로컬(단말기)에 저장되어 있는 웹 콘텐츠를 로드하여 사용한다. 하지만 원격에 있는 웹 콘텐츠를 로컬에 저장하고, 이렇게 저장한 웹 콘텐츠를 로드할 수는 있다. 로컬에 저장되어 있는 웹 콘텐츠의 유효성을 검사하여 유효하지 않을 경우 리모트에 있는 웹 콘텐츠를 불러와 업데이트하는 방법이 있기 때문이다.

    다음 그림은 리모트에 있는 웹 콘텐츠로 로컬의 콘텐츠를 업데이트하는 개략적인 과정이다.

    p10.png

    그림 5 PhoneGap에서 리모트 콘텐츠를 보여주는 방법

    하지만 이러한 방법은 Apple의 App Store 등록 시 문제가 될 수 있다. Apple에서는 이미 검증을 완료하여 출시된 앱의 UI가 변경되는 것을 적발하면 등록을 반려(Reject)할 수 있다고 한다.

  • PhoneGap 총평

    PhoneGap은 하나의 소스 트리로 여러 플랫폼(iOS, Android, 웹)을 지원할 수 있어 적은 비용으로 스마트폰 앱을 개발할 수 있는 플랫폼이다. 네이티브 앱에 비해 동작 성능이 좋지 않으나 사전 프로토타이핑으로 수행 성능이 좋지 않은 UI를 다른 방식으로 대체한다면 훌륭한 품질의 애플리케이션을 개발하는 데에 무리가 없을 것이다.

  • 출저: http://helloworld.naver.com/helloworld/8180

  • lhc.jpg
    NHN 웹앱개발팀 이현철
    2010년부터 모바일웹 Ajax UI개발을 했고, 최근 새로운 조직으로 변경되어 웹앱개발을 담당하고 있습니다.앞으로 웹언어로 개발된 모바일 어플리케이션의 중요성이 점점 커질 것으로 기대하며 이 분야를 열심히 파볼 예정입니다.

    '2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

    아이핀이란?  (0) 2014.02.26
    OAuth 란  (0) 2013.12.12
    개발자에게 도움될 만한 IT 기술 블로그  (0) 2013.03.14
    WPS(Wi-Fi Positioning System)의 기술요소  (0) 2013.03.06
    MVNO 소개  (0) 2012.08.27
    Posted by hoonihoon
    2013. 3. 14. 11:45

    '2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

    OAuth 란  (0) 2013.12.12
    phone gap 앱개발  (0) 2013.03.29
    WPS(Wi-Fi Positioning System)의 기술요소  (0) 2013.03.06
    MVNO 소개  (0) 2012.08.27
    MIME TYPE 개념  (0) 2012.08.27
    Posted by hoonihoon
    2013. 3. 6. 16:34

    출저 : http://www.mobizen.pe.kr/724

    Wifi로 들어오는 무선 ap의 정보를 이용해서 위치값을 얻어내는서비스

    기술요소

    - 무선 AP 정보를 얻어내는 기술

    - 얻어낸 data를 최적화하여 database를 구축하는 기술

    - 사용자 모바일 디바이스에서 필요한 정보를 얻어내는기술

    - 얻어낸 무선 AP 정보와 구축된 database내의 정보를 비교하여 위치를 얻어내는 기술



    1. WPS란?

    IT용어 중에 WPS를 찾아보면 Web Processing Service, Welding Procedure Specification, Wi-Fi Protected Setup 등 다양한 용어가 검색이 된다. 이번 포스팅에서 소개할 WPS(Wi-Fi Positioning System)는 이중에서 Wi-Fi로 들어오는 무선 AP의 정보를 이용해서 위치값을 얻어내는 서비스이다. 

    WPS가 일반인들에게 인식되기 시작한 것은 iPhone에서 해당 솔루션을 기본으로 탑재하면서부터이다. 이를 통하여 GPS나 이통사 LBS의 이용이 불가능한 iPod Touch에서도 위치를 얻어낼 수 있게 되었다. iPhone에 내장되어 있는 WPS는 'Skyhook Wireless' 의 제품이다.  위키피디아에서 'Wi-Fi Positioning System'으로 검색하면 'Skyhook Wireless'으로 redirect를 해줄만큼 이 회사는 WPS에서 중요한 존재이다. WPS라는 용어를 가장 먼저 사용했으며, 시장에서 가장 선두에 있는 기업이기도 하다.

    사용자 삽입 이미지


    2. WPS의 기술요소

    WPS는 크게 무선 AP 정보를 얻어내는 기술, 얻어낸 Data를 최적화하여 Database를 구축하는 기술, 사용자의 모바일 디바이스에서 필요한 정보를 얻어내는 기술, 얻어낸 무선 AP 정보와 구축된 Database내의 정보를 비교하여 위치를 얻어내는 기술 등으로 구성되어 있다. Skyhook Wireless를 비롯하여 Sony, 국내외 네트워크 사업자들이 구성 기술들에게 다양한 특허를 걸어 놓았다.


    2.1.무선 AP 정보를 얻어내는 기술

    흔히 솔루션 사업자들은 스캐닝 차량 등을 통해 무선 AP의 정보를 얻어낸다. 이때 얻어내는 정보는 SSID, MAC Address, Channel, Signal Strength, Noise Strength 등 매우 다양하다. 이러한 정보를 GPS가 내장된 디바이스를 통해 위치값과 함께 수집한다. 아래는 'Skyhook Wireless'가 특허 공개한 '위치 표지 데이터베이스와 서버, 위치 표지 데이터베이스구축 방법 및 이것을 이용한 위치 기반 서비스(공개번호 : 10-2007-0120085)'의 일부분이다.

    사용자 삽입 이미지

    2.2.얻어낸 Data를 최적화하여 Database를 구축하는 기술

    대부분의 서비스들은 위치 정보를 Key로 해서 AP의 정보를 가지는 것은 아니고, AP를 Key로 Database를 구축한다. WPS는 스캐닝 차량등을 통해 들어오는 다양한 정보(이동함에 따라 변하는 신호강도 등)를 조합해서 AP의 위치를 추정한다. AP의 정보외에 Tagging, Height 값 등 다양한 정보가 같이 Database에 쌓이게 되는데, AP의 위치를 계산하는 알고리즘이나 기타 정보들은 서비스별로 매우 다양한다.


    2.3. 사용자의 모바일 디바이스에서 필요한 정보를 얻어내는 기술

    2.1.에서 얻어낸 정보의 종류에 따라 모바일 디바이스에서 얻어내야 정보가 달라진다. 하지만, 플랫폼에 따라 필요한 정보를 얻어낼 수 없을 때가 있다. 예를 들면 무선 AP의 Signal Strength와 같은 정보를 클라이언트가 설치된 플랫폼에서 제공하지 않는다면 WPS는 사용할 수 없게 된다. 불행히도 대부분의 모바일 플랫폼들이 Wi-Fi를 통해 들어오는 다양한 정보들을 접근할 수 있는 API들을 모두 제공하지는 않는다. 

    그런 이유로 WPS의 기본 타겟 디바이스는 노트북이나 넷북이 되고, 대부분 브라우저 툴바 형태로 제공된다. Windows Mobile, Android등 일부 스마트폰 플랫폼에서 다양한 WPS들이 지원하고 있기는 하다. Mobile Browser의 경우는 아직까지는 iPhone Safari외에는 쉽지 않고 툴바설치가 되지 않으면 사용이 쉽지 않다. 아래는 'Skyhook Wireless'가 특허 공개한 '인터넷 검색 및 통신을 위한 위치 툴바(공개번호 : 10-2008-0087798)'의 일부분이다.

    사용자 삽입 이미지


    2.4. 얻어낸 무선 AP 정보와 구축된 Database내의 정보를 비교하여 위치를 얻어내는 기술

    같은 위치라고 해도 AP의 정보가 항상 동일할 수가 없다. 상황에 따라서 AP의 일부분이 Power Off 되어 있는 경우도 있을테고, 한 건물내에서 이동을 했을 경우도 있고, 그날 날씨에 따라서 Noise의 강도가 달라질 수도 있는 등 다양한 변수가 있다. 이러한 변수를 고려한 복잡한 알고리즘을 거쳐서 현재 위치를 추정하게 된다.

    알고리즘이 100% 정확하지는 않아서 때로는 잘못된 결과를 낼때도 있다. iPod Touch에서도 종종 강남에 있는데도 종로에 있다고 나오는 경우를 경험해 보았을 것이다. 현재 상용화 제품들은 Database에 해당 지역의 정보가 있다면 90%이상의 정확도를 가지고 있으며, 오차 범위도 실내에서는 5M, 실외에서는 10M 정도를 유지하고 있다. 아래는 'Skyhook Wireless'가 특허 공개한 '위치 확인 시스템의 연속 데이터 최적화(공개번호 : 10-2007-0118607)'의 일부분이다.

    사용자 삽입 이미지


    3. 주요 플레이어

    현재 WPS 시장은 거의 'Skyhook Wireless'의 독주에 가깝다. 하지만 WPS를 지원하는 다른 업체들이 없는 것은 아니다. CISCOHerecastKoozyt 등 다양한 업체들이 각각의 차별화 포인트를 가지고 시장을 넓혀가고 있다.(물론 이들은 'WPS'라는 용어를 직접적으로 사용하지는 않는다.) 이들의 차별화 포인트들은 기술의 차별화보다는 응용에 있다. 서비스에 따라서 서버응용 API, 다양한 Tagging 기법, 대형 지하 쇼핑몰 지원 등 재미난 것들이 많으니 관심을 가지고 비교해보면 재미있을 것이다.



    4. GPS를 보완하는 기술

    '무선 Air의 보완재, WiFi'포스트에서도 언급했지만 Wi-Fi 내장 디바이스들의 수요는 갈수록 증가하고 있으며 위치 정보에 대한 필요성은 더 이상 이야기 하지 않아도 될 것이다. WPS를 이용하면 사용자의 현재 위치를 얻어내고 다양한 응용서비스에 적용할 수 있다. 하지만, GPS를 완전히 대체하는 기술로서의 접근은 조금 위험하다. GPS가 아직 가격이 높고 보급율이 낮지만 곧 가격은 하락할 것이고, A-GPS를 넘어선 DGPS가 다양한 단말에 내장될 것으로 보여진다. GPS의 특성상 실내에서는 수신율이 급격히 떨어지고 당분간은 Wi-Fi 내장 기기의 보급율보다는 적을 것이니 WPS는 위치를 얻어내기 위한 GPS와 상호 보완적인 기술로 보면 될 것이다. 

    사용자 삽입 이미지
    국내에서 WPS 관련 서비스는 당분간 요원할 것으로 예상된다. 응용할 수 있는 서비스가 아직까지는 부족하고, 스마트폰이나 노트북을 이동중에 즐기면서 위치 정보에 대한 Needs가 필요한 상황이 아직까지는 흔하지 않기 때문이다. 

    'Skyhook Wireless' 도 국내 DB를 수도권과 부산 일부 지역만을 구축해 놓은 상황이다. 엄연히 'iPod Touch'라는 상용화 단말이 팔리는 상황에서 소비자들이 DB 구축에 대한 요구를 Apple에게 안하는 것을 보면 응용 서비스가 부족하긴 부족하나 보다. 언젠가는 국내에서도 스마트폰과 넷북의 보급율이 높아지고, 다양한 LBS가 등장하는 때가 오면 이러한 WPS가 각광받을 때가 오겠지....

    '2019년 이전 정리 > 모바일 정보' 카테고리의 다른 글

    phone gap 앱개발  (0) 2013.03.29
    개발자에게 도움될 만한 IT 기술 블로그  (0) 2013.03.14
    MVNO 소개  (0) 2012.08.27
    MIME TYPE 개념  (0) 2012.08.27
    모바일앱 기획 : 비지니스모델  (0) 2011.07.20
    Posted by hoonihoon