마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서버 전문가 분들께 조언을 구합니다... 절실합니다...

–2 추천

 

안녕하세요
저희는 15일에 네일리스트라는 이미지 소셜 앱을 출시했습니다.
그런데, 앱을 설치하고 최초 3회정도는 갑자기 꺼지는 현상 발생하고 있습니다.
이후 사용시에도 오류 창이 뜨는 것 없이 앱이 꺼지거나 데이터를 불러오지 못하는 현상이 있습니다.
그리고 다수의 사용자 (1000명 이상)가 동시에 접속했을 때에는 앱 꺼짐 현상이 훨씬 빈번해져 아예 사용이 힘든 현상이 발생하였습니다. 메인에서 프로그레스바만 돌다가 앱이 그냥 사라지는 현상이 반복되고 있습니다.

이에 따른 원인을 동시접속자 수의 증가에 따른 과부하 현상으로 추정하여, 당일 날 서버를 추가로 구매하여 확장하였는데, 앱 꺼짐 현상이 달라지지 않고 있습니다.

서버는 현재 nCloud24 라는 호스팅 업체에서 3개를 사용하고 있구요(웹서버1개, DB서버2개)
웹서버(톰캣,아파치)를 거쳐서 DB서버(MySQL) 정보를 가져오는 형태를 취하고 있습니다.

저희는 일단 안드로이드 코딩에서 근본적인 구조가 문제가 있을 수 있다고 예상하고 있습니다. 그래서 JSONObject 사용이 원활하지 않아 DB를 불러오지 못하여 앱이 꺼지거나 NullPoint 오류가 나는 것으로 사려되고 있습니다.


혹시 서버 관련 전문가나 경험이 있으신 분들은 답변 부탁드립니다.
또는 프리랜서로 활동 중이시면 컨설팅이라도 조언해주시면 감사합니다.

당장 앱을 베타 버전으로 출시한 상황이지만, 서비스가 제대로 작동하지 않아 너무 막막합니다.
아직 학생의 신분으로 만든 앱이다 보니 해결책을 찾는데 너무 어렵습니다.
도와주세요...

 

현재 구글 마켓에 등록된 url은
https://play.google.com/store/apps/details?id=kr.co.nailist
입니다.

익명사용자 님이 2014년 7월 17일 질문
안드로이드 클라이언트 개발자가 잘못한듯. 왜 예외처리를 그따위로 해서 앱이 죽게 만드나요? 어떤 상황이라도 서버가 문제 있어도 클라가 죽는 일은 없어야 합니다.
달기살님은 뭔데 말을 그따위로 하시나요?  보는 3자도 눈살을 찌푸리게 만드는 댓글이네요. 아무리 출시를 한 앱이긴 해도 많은 테스트 과정없이 어떤 상황이 닥치더라도 클라이언트가 죽는일이 없게 달기살님은 잘 할 수 있나요?  그만큼 잘하시나요? 풉!!!

3개의 답변

0 추천
주신정보로는 서버 과부하라고 밖에 생각하지 못하겠네요

앱 특성상 이미지 다운로드가 많을것같으니 이미지 용량을 줄이는 방법으로 1차적인 접근을 해보세요.
q1212 (26,020 포인트) 님이 2014년 7월 17일 답변
0 추천
서버쪽에서 이미징 처리하여 응답줄때 쓰레드 풀날것 같다는 생각이 드는데요.

서버쪽 로그 안찍고 있나요?  말씀하시는것 들어보면 클라이언트 쪽에는 로그도 안남는거 보면...

서버쪽 로그를 봐야 할 텐데.... 흠..서버쪽 이미지 저장을 어떻게 하시나요?
쭈쭈총각 (17,750 포인트) 님이 2014년 7월 17일 답변
서버는 호스팅업체에 웹서버를 임대하여 사용하고 있고
AWS S3에 이미지서버를 두어 이미지를 저장합니다.
클라이언트에서 이미지를 가져오게 되면 웹서버에 있는 디비에 AWS 이미지 URL을 가져오게 되고 앱에 띄워주는 형식을 가지고 있습니다..
그럼 딱히 문제 없어 보이는데.... 클라이언트에서는 이미지 디코딩 어떻게 해서 사용하시나요?
url따와서 AQuery로 이미지캐싱 하고 있습니다..
http://helloworld.naver.com/helloworld/429368
이사이트에 나오는데로 AQuery 가용조건을 다 충족하셨겠죠?
서버환경이라던지... 통신프로토콜 http를 사용한다던지 하는거요..
위 내용만으로는 답을 찾기란 하늘에 별따기와도 같다는 생각이 드네요.  서버나 클라이언트 에러 로그라도 catch 하셔야 할것 같은데요? ^^
0 추천
제가 생각해도 예외처리를 안해주어서 앱이 뻑난거라고 생각이됩니다.

 

사실 네트워크 관련 작업을 할때는 예외처리할게 상당히 많거든요.

서버접속이 지연된다던지, 접속잘하다가 갑자기 인터넷연결이 불안정하다던지, 어느순간 인터넷이 끊겨버렸다던지..

인터넷 끊겼을때 무슨작업을 하고있는지는 소스를 봐야만 알수있을테고,

예외상황이 나올경우, 몇초뒤 재접속을 한다던가, 일정횟수가 지나면 경고메세지를 띄운다던가 해야되는데,

그런거없이 그냥 놔둬버리면 글쓴분 말마따나 인터넷연결 오류났는데 디비값을 못가져왔는데 그걸가지고 활용을 하려고한다던가 하면 뻑나거나 하겠죠.

 

일단 앱개발자한테 문의하는게 빠를듯하네요.
기초개발자 (24,060 포인트) 님이 2014년 7월 17일 답변
...