안드로이드 개발 질문/답변
(글 수 45,052)
제가 만들려는 앱은, 사용자와 서버가 지속적으로 상호작용을 하는것은 아니고
사용자가 기능버튼을 눌렀을때 그에 해당하는 정보를 서버에서 받아오고,
서버에서 클라이언트(안드로이드) 로 정보를 아무 때나 전송 할 수 있어야 합니다.
이해하기 쉬운 예를 들자면 카카오톡이 되겠습니다.
친구에게 보낼 메시지를 쓰고, 메시지보내기버튼을 누르면 서버로 보내고, 서버에서는 해당친구에게 메시지를 보내주고
메시지 대상이 되는 친구는 서버로부터 Notification메시지를 받아서 메시지가 왔는지 안왔는지 알 수 있고..
이러한 앱을 만드는데에 있어서 네트워크프로토콜로
HTTP를 쓸수도 있고 TCP 소켓을 쓸 수 도 있는데. 어느것을 써야할지 감이안오더군요 ^ ^
각각의 프로토콜 사용시의 장단점을 간단하게 알려주시거나, 참조할 수 있는곳을 알려주시면 감사하겠습니다.




음; 제가 통신에 대해 자세히 아는건 아니지만 제 의견을 애기해볼게요~
HTTP, TCP 둘다 연결성 프로토콜로 서버와 클라이언트가 연결이 되어야 통신을 할 수 있는
네트워크 프로토콜로 알고있구요~
HTTP의 장점은 서버쪽에서 클라이언트에게 XML파을을 던져주면 되니 서버의 부하가 줄어드는걸로 알구요,
TCP의 장점은 서버와 클라이언트간의 실시간으로 데이터를 주고 받는걸로 알고있어요.
버튼을 클릭하였을때, 연결하면 되는거니 굳이 TCP로 연결을 계속 유지할 필요는 없다고 생각되어서
HTTP통신에 한표입니다~
다만 한가지 문제되는건 보내는쪽에선 버튼을 누르면 그만이지만
받는쪽에서는 HTTP든 TCP든 둘다 연결이 되어야하기 때문에
받는쪽에서 계속 서버쪽으로 자신에게 온 메세지가 있냐는 요청을 넣어야 할텐데요.
(설령 주기가 하루에 한번씩 확인한다고 해도 계속 요청을 넣어야하는게 되겠지요.)
이부분은 C2DM을 이용해서 서버에서 클라이언트로 넣어주는게 좋을듯 합니다~
HTTP나 TCP 관련된 싸이트는 알지 못하는데
C2DM관련된 블로그 링크 걸어봐요 http://huewu.blog.me/110087032264
이상 허렵한 저의 생각이었습니다. ㅎㅎㅎㅎㅎㅎㅎ