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

안드로이드 채팅 앱 개발, 효율성 문제.

0 추천
안녕하세요.

안드로이드 채팅 앱을 취미삼아 하나 만들었는데, 그저 알고 있는 지식만을 이용해서 간단하게 구성해 봤습니다.

그러다가 푸시(push) 방식 관련해서 GCM 등 알게 되었고, 폴링(polling) 방식 이란것도 알게 되었는데요.

제가 만들어 놓은게 어떤 문제점이 있는지 어디서 효율이 떨어 지는지 궁금해서 이렇게 질문을 올립니다.

 

일단, 웹 호스팅을 받고 있는 서버가 하나 있습니다.

send.php, receive.php 라는 파일을 만들어서 서버에 올려놨구요. 이 두 파일의 동작은 아주 간단 합니다.

(GET 방식으로 설명하겠습니다. 실제로는 POST 방식을 사용 합니다.)

send.php?to=B&from=A&text=안녕하세요

위의 방법으로 A 사용자 앱에서 자바 객체를 이용해 페이지를 호출하면, 서버는 데이터를 DB에 저장합니다.

이제 B 사용자 앱에서 receive.php?to=B 처럼 페이지를 호출하면 서버는 DB에 쿼리하여 결과를 반환해 줍니다.

B는 반환값이 있으면 UI를 업데이트하여 출력해 주구요.

 

send와 receive 스레드를 각각 만들었고, 결국 2개의 스레드가 백그라운드로 돌아갑니다.

receive 스레드는 설정된 x 초 주기로 서버의 receive.php 페이지를 호출하고,

send 스레드는 앱 내의 특정 변수안에 값이 있을 경우만 send.php 페이지를 호출하는 구조 입니다.

 

push 방식은 아닌 것 같고, polling 방식에 가깝다는 느낌이 드는데...

제가 해놓은 방식이 어떤 방식인지와, 어떤 문제점이 있는지...

고수님들의 의견 부탁 드립니다.
황금오뎅 (120 포인트) 님이 2014년 1월 13일 질문

1개의 답변

+1 추천
x초 주기라는게 실시간이 아니라는 점을 들수 있구요,

 

그리고 실시간처럼 보이기 위해서 x초 주기를 짧게 하면 짧게할수록

 

의미 없는 (데이터 변화가 전혀 없는 사이에 발생하는) 쿼리

 

및 데이터 사용량(1회는 미미하겠지만 누적되면..무시못하죠)

 

또는 서버의 과부하 (사용자가 많아진다면..) 등이 있을 수 있겠네요.
Gradler (109,780 포인트) 님이 2014년 1월 13일 답변
모바일이니 아무래도 데이터 사용량 문제가 크겠네요.
답변 감사합니다.
스마트 폰용 채팅 프로그램(카카오톡과 유사한 채팅 개발 경험있으신분)   개발자 소개 부탁드립니다.

007hong@gmail.com 으로 메일 부탁드립니다.

해외- 뉴질랜드 거주자라서 한국내 모발폰 등 연락처가 당장은 없습니다.

저가 전화 혹은 이메일 드리겠습니다.

뉴질랜드 내 연락처입니다.

+64 9 828 2323, +64 21 214 0007
Thanks and Regards,

Francis
...