티스토리 뷰
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
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'📱 Android > 💡 개념' 카테고리의 다른 글
[Android/개념] 24. 권한(Permission) (0) | 2022.11.14 |
---|---|
[Android/개념] 22. Room (0) | 2022.11.10 |
[Android/개념] 21. SharedPreferences (0) | 2022.11.10 |
[Android/개념] 20. Database(데이터베이스) (0) | 2022.11.09 |
[Android/개념] 19. ViewPager & TabLayout (0) | 2022.11.09 |