[Android] Server/Client 통신

Jay·2021년 1월 28일
0

Android

목록 보기
15/39
post-thumbnail

Server/Client 통신 카테고리가 왜 안드로이드에서만 다루지 싶을 수 있지만 안드로이드에서의 Server/Client 통신을 이야기 하려 한다.

2 Tier C/S 모델

  • 클라이언트와 서버가 1:1 방식으로 연결
  • 클라이언트가 요청을 하고 서버가 응답을 하는 것이 기본적인 네트워킹 방식

3 Tier 모델

  • 서버의 구성을 유연하게 가져감.
  • 응용 서버와 데이터 서버를 구성하는 경우, 데이터베이스를 분리시킨다.

네트워킹에 대한 이해

  1. TCP/IP 수준의 통신 방식을 제공하는 소켓을 이용하여 서버에 연결해보면 이해가 쉽다.
  2. 일반적인 프로그래밍은 대부분 TCP 연결을 사용한다.
  3. 비연결성(stateless) 특성으로 인해 실시간으로 데이터를 처리하는 애플리케이션의 경우, 응답 속도를 높이기 위해 HTTP보다 소켓 연결을 선호한다.

소켓 연결 방식 !?

  1. 안드로이드에서 표준 자바 소켓을 그대로 사용할 수 있다.
  2. 서버 쪽에서 서버 소켓을 만들어서 실행한다.(포트)
  3. 클라이언트 쪽에서는 소켓을 만들어 서버 소켓으로 연결한다. (IP와 포트 지정)
  4. Stream 객체를 이용하여 데이터를 보내거나 받을 수 있다.

네트워킹 시 주의할 점

  1. 반드시 워크 스레드에서 네트워크 작업을 하자.
  2. 워크 스레드를 사용하기에 UI 업데이트는 핸들러를 사용하자.
    이게 무슨 말인지 이해가 안되면 여길 읽어보자.
profile
developer

0개의 댓글