Server/Client 통신 카테고리가 왜 안드로이드에서만 다루지 싶을 수 있지만 안드로이드에서의 Server/Client 통신을 이야기 하려 한다.
2 Tier C/S 모델
- 클라이언트와 서버가 1:1 방식으로 연결
- 클라이언트가 요청을 하고 서버가 응답을 하는 것이 기본적인 네트워킹 방식
3 Tier 모델
- 서버의 구성을 유연하게 가져감.
- 응용 서버와 데이터 서버를 구성하는 경우, 데이터베이스를 분리시킨다.
네트워킹에 대한 이해
- TCP/IP 수준의 통신 방식을 제공하는 소켓을 이용하여 서버에 연결해보면 이해가 쉽다.
- 일반적인 프로그래밍은 대부분 TCP 연결을 사용한다.
- 비연결성(stateless) 특성으로 인해 실시간으로 데이터를 처리하는 애플리케이션의 경우, 응답 속도를 높이기 위해 HTTP보다 소켓 연결을 선호한다.
소켓 연결 방식 !?
- 안드로이드에서 표준 자바 소켓을 그대로 사용할 수 있다.
- 서버 쪽에서 서버 소켓을 만들어서 실행한다.(포트)
- 클라이언트 쪽에서는 소켓을 만들어 서버 소켓으로 연결한다. (IP와 포트 지정)
- Stream 객체를 이용하여 데이터를 보내거나 받을 수 있다.
네트워킹 시 주의할 점
- 반드시 워크 스레드에서 네트워크 작업을 하자.
- 워크 스레드를 사용하기에 UI 업데이트는 핸들러를 사용하자.
이게 무슨 말인지 이해가 안되면 여길 읽어보자.