티스토리 뷰

728x90

 


Network

• 두 대 이상의 컴퓨터를 연결하고 통신하는 것.

• 각 단체마다 자신들의 네트워크를 구성하여 정보 교환, 자원 공유 등을 한다.

• 방식

     - P2P(Peer-to-Peer) 방식

          - 통신할 기기끼리 직접 연결

          - 통신할 기기가 여러 개라면 여러 개의 기기를 모두 연결해야 한다.

     - 서버-클라이언트(Server-Client) 방식

          - 연결의 중심이 되는 서버가 존재

          - 모든 기기들이 서버에 연결되어 있어, 한 기기에서 다른 기기와 통신하려면 서버를 거쳐서 통신

 

Internet

• 전 세계를 연결한 네트워크를 인터넷이라고 한다.

• 많은 양의 컴퓨터들 간의 원활한 통신을 위해 지키기로 한 규약을 프로토콜이라고 한다.

• 인터넷은 TCP(Transmission Control Protocol) / IP(Internet Protocol) 이라는 프로토콜을 기반으로 한다.

     - HTTP : 웹 서비스 규약

     - FTP : 파일 전송 규약

     - SMTP : 메일 전송 규약

 

Internet을 사용하는 Application

• 인터넷에 연결된 앱의 대부분은 HTTP를 사용하여 데이터를 송수신한다.

• HTTP는 서버-클라이언트 방식을 기본으로 하여 요청-응답(Request-Response) 방식으로 통신한다.

     ex) 앱(클라이언트)이 화면을 그릴 데이터를 서버에 요청 -> 서버가 요청에 맞는 응답(화면에 그릴 데이터) 전달 -> 앱은 받은 데이터로 화면을 그림

• 데이터를 서버에만 저장하는 것이 아닌 앱 내에도 적절히 저장하여(캐싱) 단점 최소화.

 

HTTP

• Request

     - Start-line : 요청 내용

     - Header : 요청에 대한 추가 정보

     - Body : 요청 시 전송할 데이터

• Response

     - Status-line : 응답 요약

     - Header : 응답에 대한 추가 정보

     - Body : 응답 데이터

• HTTP에서 서버와 클라이언트는 JSON 형식으로 데이터를 전송한다.

 

* JSON

• 원래는 JavaScript 언어에서 객체를 표현하는 방식이다.

• 표현 방식이 좋아서인지 이를 파생하여 HTTP에서 데이터 방식으로 사용한다.

• {} : 객체, [] : 배열, 키-밸류 방식

• JSON 형태의 데이터를 그대로 전송할 수는 없고, 전송에 적합한 형태로 바꾸었다가 다시 JSON 형태로 복구해야 한다.

     - 전송에 적합한 형태로 바꾸는 것을 직렬화(Serialization)라고 한다.

     - 다시 복구하는 것을 역직렬화(Deserialization)라고 한다.

 

Android에서의 Network 사용 법

• HttpURLConnection

     - 안드로이드에서 기본으로 제공해주는 네트워크 모듈

     - but 사용하기 번거롭다.

• HttpURLConnection의 사용을 편하게 만들어주는 라이브러리

     - Volly

     - Retrofit 등이 있다.

 

 

 

 

 

 

 

 

 

이 글은

패스트 캠퍼스 Android 앱 개발의 정석 with Kotlin 올인원 패키지 Online

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.

 


728x90
댓글
공지사항