티스토리 뷰
아이폰에 이어 안드로이드까지 요즘 모바일 어플리케이션 개발이 대세인 듯합니다.
일단 기존 개발자들이 개발에 대한 접근이 쉽다는 장점이 있어 더욱 많아지는 것 같습니다.
아이폰의 경우, Objective-C라는 언어를 별도로 학습해야 하지만 안드로이드는 Java 기반 개발자들에게는 별 어려움 없이 적응 할 수 있기도 하죠.
실제로 자료를 보면 점차 안드로이드 점유율이 높아질 거라 예상하고 있기도 하네요.
저희도 개발하면서 느끼는 거지만 모바일 어플리케이션은 왠지 모르게 느리다는 느낌이 있습니다.
게임이나 내부에서 동작하는 어플리케이션은 조금 낫지만 서버를 접속해야 하는 경우에 특히 이런 경우가 많습니다.
아무래도 3G 네트워크 환경에서의 속도 때문인데요..
실제 개발할 때는 보통 WIFI 환경에서 개발을 진행하기 때문에 전혀 문제가 없어 보이지만,
사용자들은 대부분 이동중에 스마트폰을 보는 경향이 있어 3G 환경이 많기 때문이죠..
3G 환경에서의 네트워크 속도는 제가 예전에 올린 다음 글을 참고하시면 될 것 같습니다.
2011/09/05 - [프로그래밍] - 3G 네트워크의 속도를 알아보자.
그러면 과연 모바일 어플리케이션의 속도를 향상시키기 위해서는 어떻게 해야 할까요?
제 나름대로의 관점(전지적 미니 시점?)에서 접근해 보면 다음 그림처럼 3가지 요소를 고려해야 한다고 봅니다.
한번 정리해 볼께요..
1. DB 최적화
기존 웹 사이트에서도 마찬가지지만 서비스의 성능에 가장 큰 영향을 주는 것이 바로 DB 입니다.
실제로 느린 사이트나 모바일 어플리케이션의 특징 중의 하나가 DB 최적화가 안되어 있다는 것이죠.
DB에서 Query를 하나 보냈는데 처리 시간이 1초 이상이 걸린다고 하면
당연히 사용자는 그만큼 오래 기다려야 하는 거겠죠..
DB 최적화에는 여러가지가 있습니다.
인덱스 구성을 최적화해서 Select 쿼리의 속도를 향상시키는 방법이 대표적이기도 한데요.
인덱스 라는 것이 Insert, Delete에 대해서는 반대로 속도를 떨어뜨리는 기능도 있기 때문에 적절한 설계가 필요하다고 봅니다.
또한 DB 자체의 설정을 통해 동시 접속 수를 어느 정도 설정하는 것도 필요하겠죠..
대부분 DB와 접속하기 위해 Web Server로 톰캣과 같은 WAS를 사용할 텐데요..
DB Connection Pool 관리도 중요한 내용이 되겠죠.
그래서 일단 모바일에서 접근하는 모든 쿼리를 0.1초 이내의 응답시간에 처리할 수 있도록 구성하면
DB 최적화는 어느정도 되었다고 할 수 있을 것 같습니다.
2. Web Server 최적화
Web Server 최적화라고는 했지만 실질적으로는 모바일 어플리케이션에 제공하는 데이터 양을 줄이라는 것에 가깝습니다.
XML이나 간단한 문자열로 전송 데이터를 설계해서 개발하면 되겠죠..
웹서비스를 이용하기 위한 SOAP 등도 활용할 수 있겠으나 부가 정보들이 추가되는 경향이 있어 별로 추천하고 싶지는 않습니다.
작은 용량이나마 낭비되는 것은 줄이는 것이 바람직하지 않을까 해서요~
또한 Web Server의 동시 접속자 수도 체크해야 겠죠..
많이 사용하는 Apache의 경우 동시접속자 수가 500인가로 기본값으로 설정되어 있었던 것 같습니다.
요즘 서버 성능이면 500 이상은 거뜬히 받아 들일 수 있기 때문에 이 값을 수정하는 것도 필요하겠죠..
3. 모바일 어플리케이션 자체 성능 향상
듀얼 코어 탑재 모바일 폰들이 나오고 있지만 아직도 PC에 비해 CPU 속도나 다른 성능이 떨어지는 것이 사실입니다.
여기에서 지도 보여주고, 카메라 증강현실 넣고, OpenGL 이용한 그래픽 이것 저것 넣으면
자체 속도도 많이 떨어집니다.
제가 생각하기에는 모바일 어플리케이션 하나에서 모든 것을 하려고 하면 안될 것 같습니다.
자신의 핵심 기능에 집중하고 사람들이 그 기능 때문에 사용하도록 해야지..
이것 저것 많이 넣어둔다고 더 많은 사용자들이 쓰는 것은 아닌 것 같습니다.
모바일 어플리케이션 관련해서 발표할 사항이 있어 해당 내용들을 정리하다가 블로그에도 올려봅니다.
주관적인 의견이기는 하지만 많이 참고하시기 바랍니다.
일단 기존 개발자들이 개발에 대한 접근이 쉽다는 장점이 있어 더욱 많아지는 것 같습니다.
아이폰의 경우, Objective-C라는 언어를 별도로 학습해야 하지만 안드로이드는 Java 기반 개발자들에게는 별 어려움 없이 적응 할 수 있기도 하죠.
실제로 자료를 보면 점차 안드로이드 점유율이 높아질 거라 예상하고 있기도 하네요.
저희도 개발하면서 느끼는 거지만 모바일 어플리케이션은 왠지 모르게 느리다는 느낌이 있습니다.
게임이나 내부에서 동작하는 어플리케이션은 조금 낫지만 서버를 접속해야 하는 경우에 특히 이런 경우가 많습니다.
아무래도 3G 네트워크 환경에서의 속도 때문인데요..
실제 개발할 때는 보통 WIFI 환경에서 개발을 진행하기 때문에 전혀 문제가 없어 보이지만,
사용자들은 대부분 이동중에 스마트폰을 보는 경향이 있어 3G 환경이 많기 때문이죠..
3G 환경에서의 네트워크 속도는 제가 예전에 올린 다음 글을 참고하시면 될 것 같습니다.
2011/09/05 - [프로그래밍] - 3G 네트워크의 속도를 알아보자.
그러면 과연 모바일 어플리케이션의 속도를 향상시키기 위해서는 어떻게 해야 할까요?
제 나름대로의 관점(전지적 미니 시점?)에서 접근해 보면 다음 그림처럼 3가지 요소를 고려해야 한다고 봅니다.
한번 정리해 볼께요..
1. DB 최적화
기존 웹 사이트에서도 마찬가지지만 서비스의 성능에 가장 큰 영향을 주는 것이 바로 DB 입니다.
실제로 느린 사이트나 모바일 어플리케이션의 특징 중의 하나가 DB 최적화가 안되어 있다는 것이죠.
DB에서 Query를 하나 보냈는데 처리 시간이 1초 이상이 걸린다고 하면
당연히 사용자는 그만큼 오래 기다려야 하는 거겠죠..
DB 최적화에는 여러가지가 있습니다.
인덱스 구성을 최적화해서 Select 쿼리의 속도를 향상시키는 방법이 대표적이기도 한데요.
인덱스 라는 것이 Insert, Delete에 대해서는 반대로 속도를 떨어뜨리는 기능도 있기 때문에 적절한 설계가 필요하다고 봅니다.
또한 DB 자체의 설정을 통해 동시 접속 수를 어느 정도 설정하는 것도 필요하겠죠..
대부분 DB와 접속하기 위해 Web Server로 톰캣과 같은 WAS를 사용할 텐데요..
DB Connection Pool 관리도 중요한 내용이 되겠죠.
그래서 일단 모바일에서 접근하는 모든 쿼리를 0.1초 이내의 응답시간에 처리할 수 있도록 구성하면
DB 최적화는 어느정도 되었다고 할 수 있을 것 같습니다.
2. Web Server 최적화
Web Server 최적화라고는 했지만 실질적으로는 모바일 어플리케이션에 제공하는 데이터 양을 줄이라는 것에 가깝습니다.
XML이나 간단한 문자열로 전송 데이터를 설계해서 개발하면 되겠죠..
웹서비스를 이용하기 위한 SOAP 등도 활용할 수 있겠으나 부가 정보들이 추가되는 경향이 있어 별로 추천하고 싶지는 않습니다.
작은 용량이나마 낭비되는 것은 줄이는 것이 바람직하지 않을까 해서요~
또한 Web Server의 동시 접속자 수도 체크해야 겠죠..
많이 사용하는 Apache의 경우 동시접속자 수가 500인가로 기본값으로 설정되어 있었던 것 같습니다.
요즘 서버 성능이면 500 이상은 거뜬히 받아 들일 수 있기 때문에 이 값을 수정하는 것도 필요하겠죠..
3. 모바일 어플리케이션 자체 성능 향상
듀얼 코어 탑재 모바일 폰들이 나오고 있지만 아직도 PC에 비해 CPU 속도나 다른 성능이 떨어지는 것이 사실입니다.
여기에서 지도 보여주고, 카메라 증강현실 넣고, OpenGL 이용한 그래픽 이것 저것 넣으면
자체 속도도 많이 떨어집니다.
제가 생각하기에는 모바일 어플리케이션 하나에서 모든 것을 하려고 하면 안될 것 같습니다.
자신의 핵심 기능에 집중하고 사람들이 그 기능 때문에 사용하도록 해야지..
이것 저것 많이 넣어둔다고 더 많은 사용자들이 쓰는 것은 아닌 것 같습니다.
모바일 어플리케이션 관련해서 발표할 사항이 있어 해당 내용들을 정리하다가 블로그에도 올려봅니다.
주관적인 의견이기는 하지만 많이 참고하시기 바랍니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 컨텍스트 메뉴 만들기 (0) | 2011.09.30 |
---|---|
안드로이드 옵션 메뉴 만들기 (0) | 2011.09.29 |
안드로이드 dp, sp 단위에 대한 정리 (2) | 2011.09.08 |
구글맵 라이선스의 무료 사용 범위에 대한 정리 (3) | 2011.08.26 |
SKT T-Store App 소개 바로가기 URI (0) | 2011.08.25 |
댓글