전문지식2016. 3. 17. 12:57





모바일 앱마켓 최근 동향에 대하여


점점 더 발전하고 있는 모바일 앱마켓에 대한 고객 니즈를 분석해보고, 그에 따른 서비스 제공에 대한 수요를 조사해


보고자 자료를 찾아보았습니다.



모바일 앱마켓 최근 동향(2016.02.16)


모바일 앱(App)은 스마트폰, 태블릿PC, 스마트워치 등 다양한 모바일 기기의 확대와


함께 급속하게 성장하고 있다. 현재 모바일 앱 마켓은 애플의 앱스토어(App Store)와


구글의 구글플레이(Google Play)가 전세계 시장을 주도하고 있다. 애플의 앱스토어와


구글플레이의 앱 보유량은 2015년 6월 기준으로 각각 150만개와 160만개에 달하여


그 밖의 앱 마켓인 아마존 앱스토어(약 40만개), 윈도우즈폰스토어(약 34만개)에 비


해 월등하게 많은 수의 앱을 보유하고 있다.1) 또한 애플 앱스토어의 모바일 앱 다운로


드 수는 2014년 6월 850만 건에서 2015년 6월 1천억 건으로 증가하는 등 모바일 앱


마켓은 큰 폭의 성장을 지속하고 있다.






구글플레이의 경우 2015년 미국 시장에서 애플 앱스토어보다 높은 다운로드


수를 기록하였다. 미국에서 구글플레이와 애플 앱스토어간의 다운로드수 비율은


2014년에 45%와 55%였으나, 2015년에는 55%와 45%로서 구글플레이의 점유율이


더 커졌다. 특히 미국 시장에서 구글플레이에서의 게임 앱의 다운로드수가 애플 앱스


토어보다 1.5배 높아 게임 앱이 구글플레이의 성장을 견인한 것으로 나타났다. 그러


나 매출액 측면에서는 세계 시장에서와 마찬가지로 애플 앱스토어가 구글플레이를 크


게 앞지르고 있다.



App Annie의 보고서에 따르면, 2015년 앱 카테고리별 특징으로는 우선 카쉐


어링과 택시 앱의 성장을 들 수 있다. 대표적인 카쉐어링과 택시 앱에는 Uber, Luft,


Ola Cabs, GrabTaxi 등이 있으며, 국내에서도 카카오택시앱이 다운로드 순위 9위를


기록하였다.



둘째, 데이트앱의 수익성이 강화되었다. 대표적인 데이트 앱인 Tinder의 경우 애플


앱스토어와 구글플레이 합산 매출(게임 제외) 기준으로 5위를 기록하고 있다. Tinder


는 무료인 기본 서비스와는 달리 프리미엄서비스인 Tinder Plus는 월간 유료 가입방


식을 채택하여 매출 증가에 기여하고 있다.



셋째, 음악 및 비디오 스트리밍 앱이 성장하고 있다. 음악 및 비디오 스트리밍 앱은


유료 구독을 기반으로 하는 서비스가 많아 매출이 증가하고 있다. 특히 미국과 중국에


서 매출 성장세가 두드러지는데, 미국에서는 애플 앱스토어와 구글플레이 합산 매출


기준(게임 제외)으로 1위에는 Pandora Radio가 차지하고 있고, 2위에 Spotify, 3위에


HBO Now, 5위에는 Hulu가 차지하고 있다. 또한 Netflix가 2015년 9월 유료 구독


기반의 서비스를 런칭하였고, YouTube도 10월에 유료 서비스인 YouTube Red를 런


칭함에 따라 향후 비디오 스트리밍 앱의 매출은 더욱 증가할 것으로 예상되고 있다.



넷째, 모바일 쇼핑 이용자가 증가하면서 모바일 커머스 앱도 성장하고 있다. 특히


인도는 모바일 커머스 앱 다운로드 수 측면에서 2015년에는 전년에 비해 2.6배 이상


의 높은 성장세를 나타냈다.


(정보통신정책연구원 제 28 권 3호 통권 617호 참조)


----------------------------------------------------------------------------------------------



모바일 앱에 대한 개인적인 분석


상단의 참고자료를 보자면, IOS시장에 비해 Google시장이 확연이 더 발전하고 있음을 보여주고 있습니다.


물론 저도 안드로이드 기반의 핸드폰을 사용하고 있지만, 아이패드를 사용하고 있기도 합니다.


개발자 측면에서 왠지 안드로이드가 좀 더 접근성이 좋다랄까...지극히 개인적인 생각입니다.ㅎㅎ


자바언어를 사용하기 때문이기도 하겠죠. 그래도 IOS가 UI측면에서는 우월한거 같긴 하구요..


뭐 일단 통계자료가 결과를 말해주고 있으니,,,



1위 : 카쉐어링과 택시 앱


2위 : 데이트 앱


3위 : 음악 및 영상 스트리밍 앱


4위 : 모바일 커머스 앱



모바일기기 사용자들이 많이 사용하는 순위 입니다.


저는 3번을 주로 사용하네요~~


서비스를 개발해 보고 싶은 분들은 충분히 시장조사가 필요하겠죠, 말도 많지만, 우버, 카카오택시 잘나가고 있죠~~


수익측면에서 데이트 앱은 상당하지 않을까 생각 합니다. (1km, 랜덤채팅 등등) 제가 알기론 무료로 서비스 되는 앱들


중에는 사용량은 많으나 광고수익은 잘 안나오는 것들도 있다고... 그래서 수익을 올리기 위해서 19금으로 가는 데이트


앱이 많은 가 봅니다.


수많은 앱이 마켓에 올라와 있지만, 아직도 충분히 틈새는 있어 보입니다.


두 가지 서비스를 적절히 조합하여 새로운 앱을 만들거나, O2O(Online To Offline 온라인과 오프라인을 연결하는


방식의 서비스를 말함)를 이용하여 모바일 커머스 앱을 서비스 등등


확실한 것은, 모바일 서비스로 시간과 장소에 구애받지 않고 바로바로 필요한 것과 즐길거리를 이용할 수


있다는 것입니다.


스트리밍 서비스는 속도와 서버 스펙이 좋아야 하므로,,, 저는 모바일 커머스 앱이나 컨버전스를 통한 신규 앱


개발에 조금 더 마음이 가네요~


모바일 커머스도 생산자와 구매자와의 직접 거래는 물론, 뭔가 혁신적인(?!!!) 서비스를 만들어보고 싶네요 ㅎㅎ


필요한 자료들을 좀 더 모아보고 분석하여 도움이 될만한 자료는 다시 올리겠습니다.


그 후에는 저도 신규서비스를...ㅎㅎ




'전문지식' 카테고리의 다른 글

모바일 앱마켓 최근 동향(2016.03.16)에 대하여  (2) 2016.03.17
분양과 관련된 자주쓰는 용어들  (0) 2015.10.28
부동산 정책론(7)  (0) 2015.09.30
건폐율과 용적률  (1) 2015.09.29
입지 및 공간구조론(6)  (0) 2015.09.25
부동산 시장론(5)  (0) 2015.09.23
Posted by 하루군 justksh

댓글을 달아 주세요

  1. 좋은글 감사

    2016.06.16 15:58 [ ADDR : EDIT/ DEL : REPLY ]
  2. 좋은소식 잘 읽었습니다.~^^

    2016.06.27 06:29 [ ADDR : EDIT/ DEL : REPLY ]

프로그램개발2016. 3. 14. 17:46





DB Sequence 란?

  - 자동증가되는 값
  - 순차적으로 값을 증가하여 내부적으로 유일한 값을 만든다(증가값 조절 가능)
  - 시퀀스를 생성할때 시작값, 최대값 증가치를 지정하여 자동 증가 하도록 생성 가능
  - SEQUENCE 를 생성할 때 시작 ~ 최대값을 지정하여 자동증가컬럼 생성할 수 있다.
  - SEQUENCE 를 생성할 때 시작 ~ 최대값 지정하지 않으면 1부터 1씩 증가.
Sequence 생성하기

    create sequence 시퀀스이름
    [start with 시작값]
    [increment by 증가치]
    [maxvalue 최대값]
    [minvalue 최소값]
    [cyclenocycle]  Cycle => 지정된 최대 값까지 증가하였을 때 다시 시작 값부터 시퀀스 시작함 , 기본값 noCycle
    [cachenocache]   nocache 옵션을 권장한다고는 하지만,, 퍼포먼스 측면에서 얼마만큼 위험한지 잘 모르겠음
                                CACHE : 메모리상에 시퀀스 값을 관리하여 빠르게 실행 할 수 있음(기본 값 20)

                                NOCACHE : 는 원칙적으로 메모리상에서 시퀀스 관리하지 않는 것


시퀀스 사용법

    시퀀스이름.Nextval --> 증가된 시퀀스값 조회
    시퀀스이름.Currval --> 현재 시퀀스값 조회

시퀀스 수정
    alter sequence 시퀀스 이름
    [옵션설정]

시퀀스 삭제
    drop sequence 시퀀스 이름


DB Sequence 권한 부여하기

다른계정도 호출할 수 있도록 시퀀스에 권한을 준다.


grant [select,sequence,alter] on 소유계정.시퀀스 to 대상계정;


  - select : currval(현재값 조회)과 nextval(다음값 조회)을 사용할 수 있는 권한

  - alter : sequence 변경권한을 줌 

  - sequence : alter와 select를 포함 


주의할 점은 권한을 부여한 뒤, Synonym을 만들어서 써야 편함

(권한 부여 후 시퀀스 앞에 소유한 계정명을 빼먹어서 실행이 안되는 오류아닌 오류가 있었음)




[예제 소스]=========================================


seq_log라는 시퀀스를 생성한다.

조건은 1부터 999999999까지 자동으로 초기화 되도록 하고, 증가값은 1, 캐쉬는 사용하지 않는다.


create sequence seq_log

start with 1

maxvalue 999999999

increment by 1

cycle

nocache

;


증가 값을 조회한다.

select SEQ_LOG.NEXTVAL from dual

;


시퀀스를 삭제한다.

drop sequence seq_log

;


생성된 시퀀스를 모든 유저에게 조회권한 부여한다.

GRANT SELECT ON HOD.SEQ_LOG TO public

;



Posted by 하루군 justksh

댓글을 달아 주세요

프로그램개발2016. 3. 11. 13:21




ORA-24784: Transaction exists


트랜잭션이 있습니다.



여러대의 WAS를 이용하는 3Tier 환경에서 데이터를 저장하기 위한 로직을 추가하게 되었는데,


상단의 오류가 발생하였습니다.



자주 보이는 오류는 아닌데,,,, 한번 뜨기 시작하니 엄청나게 많이 뜨더군요~


서비스 할 수 있는 상태가 아니라서 일단, 서비스는 급히 내리고,,,ㅜㅜ



구글이든 다음이나 네이버로 오라클 오류에 대해 찾아보면 그리 많이 나오지는 않습니다.


저 오류의 근본적인 이유는 


ORA-24784: Transaction exists Cause: An attempt was made to start a transaction, while attached to a non-migrateable transaction


어렵네요.


non-migrateable 트랜잭션과 연결된 트랜잭션을 시작하려 했다..



제시된 해결방법으로는


OracleConnection.ClearPool(this.Connection)을 이용하여 생성자에게 넣어주는 것


정도밖에 검색이 안됩니다.



음... 일단, 시스템 환경이 복잡해질수록 이런 류(?!)의 오류 발생 가능성이 높아지는 건 당연하겠고,;;;


처음에 의심이 갔던 곳은 L4 였습니다.


L4 때문에 워낙 고생을 했던지라..


서버가 여러대이다 보니 L4로 로드밸런싱을 하고 있습니다.


DB서버도 여러대로 구성을 해놓은 지라, 모든 부분을 다 알지는 못하는 관계로,,


분산트랜잭션을 사용하는 과정에서 발생하는 것은 아닌가 의심도 가고,..


딱히 해결책이 없는 상태에서, 이것저것 테스트 해보면서 실마리를 찾았습니다.



필요한 데이터를 얻기 위해서는 


연결개체 생성 -> DB 커넥션 오픈 -> 데이터 얻기 -> DB 커넥션 해제 과정으로 진행이 됩니다.


DB 커넥션은 연결된 세션을 무한으로 늘릴 수는 없기 때문에 세션을 열고 닫는 과정을 반복하게 되는데요~


여러가지 방법들이 있긴 하지만,


열러있는 세션을 재활용하여 연결하는 방법(더 디테일하게 설명하기엔 조금 더 공부를 해야겠습니다).!


그 중에서도 트랜잭션으로 돌아가는 세션에게 접근하는 과정에서 발생하는 오류라고 추측이 들었습니다.



음.. 이미 해결방법은 제시된 상태이고,(세션 클리어??)


현재 시스템에서 적용해볼 수 있는 방법은 무엇인가 찾아봤습니다.


간혹, DB LINK를 사용하면 저 에러가 나올 수 있다고 하는데, 저는 DB LINK를 사용하지 않은 단순한 Insert 쿼리이다 보니..


저게 문제는 아니였고,..



일단, DB 커넥션 객체를 생성할 때 초기화 로직을 넣고 싶었지만, 프레임워크 수준에서 정의된 거라 함부로 고치기가 부담ㅜㅜ


프레임쿼크를 뒤져보다 다행히도~ 실행 옵션이 다른 메소드가 있음을 알았고,,


테스트 해보니 해결이 되는 것 같았습니다. Good.!



다른 점은 커넥션이 오픈된 경우, 끊고 재 연결 시키는 로직이었습니다.


음... 의심이 거의 확신으로 가는 순간이었습니다.ㅋㅋ


저는 일단 요렇게 해결을 보았지만, 워낙 많은 상황들이 있기 때문에..


대략 해결방법을 정리해 보자면,



1. 생성자에서 ClearPool을 실행해준다.


2. 커넥션객체 오픈 전에 명시적으로 닫는 과정을 넣어준다.


3. DB LINK를 사용하는 경우에는 로직을 변경해준다.



이 정도 방안을 정리해 보았습니다.



Posted by 하루군 justksh

댓글을 달아 주세요