🎈 Network
두대 이상의 컴퓨터를 연결하는 것
네트워크가 필요한 이유
1) 클라이언트(앱) -> 인터넷 -> 서버 : 요청
-> 내가 지금 화면을 그리려고 하는데 데이터좀 줘
2) 서버 -> 인터넷 -> 클라이언트(앱) : 응답
-> 화면을 그릴 수 있는 데이터 여기있어
네트워킹
서버와 클라이언트의 의사소통
네트워크 약속(프로토콜)이 존재
대부분의 앱들이 정보를 서버로 부터 받아서 화면을 구성한다
문제점
매번 똑같은 화면을 그릴 때 매번 똑같은 데이터를 전달받아야 한다
-> 낭비다
해결책
캐싱
한번 받은 데이터를 클라이언트가 로컬 데이터베이스에 저장
다시 필요하면 서버에 요청할 필요없이 로컬 데이터베이스를 이용
단점
캐싱 구현 난이도 높음
프로토콜의 종류
- FTP : 파일 전송 규약
- SMTP : 메일 전송 규약
HTTP
: 인터넷 서비스 규약 -> 우리가 배워야할 규약
Request
클라이언트가 서버에게 보내는 요청
이때 HTTP 규약을 따라야 한다
Request Header
- 요청에 대한 추가정보를 기입하는 곳
- 서버 개발자들이 특정한 값을
header에 실어 보내달라 요청
할 때 있다
Request Body
- 추가적인 요청이 있을 때 추가적인 정보를 기재하는 곳
- 예) 모든 학생들의 정보가 아닌 id가 1인 학생의 정보만 가져와달라는 요청
JSON형태
로 보낸다
Request Method
- GET, POST, DELETE, PUT, HEAD, CONNECT ...등
Response
서버가 클라이언트에 보내는 응답
Response Code
Status 코드
- 200(성공)
- 201(너가 요청한 요구사항 잘 처리 되었음)
- 401(너는 요청에 대한 결과를 볼 권한이 없다)
- 404(not found, 너가 보낸 요청은 잘못되었다)
[참고] HTTP 응답코드에 대한 분류
JSON
키-벨류 방식
- {} : 객체 표현
- [] : 배열 표현
'📜 TIL' 카테고리의 다른 글
[iOS] iOS 어플리케이션을 배포하는 4가지 방식 간단-정리 (0) | 2022.10.29 |
---|---|
[Android] 루트 액티비티(Root Activity) & 어플리케이션 클래스(Application class) 간단히 알아보자 (0) | 2022.10.26 |
동기처리 비동기 처리에 대해 매우 쉽고 간단히 정리! (0) | 2022.10.21 |
[Android] values의 strings.xml에 없는 값을 사용해도 실행이 잘 되는 경우 (0) | 2022.10.20 |
[Android] Kotlin 파일은 Java파일의 Lombok 라이브러리와 호환되기 힘들다 (0) | 2022.10.19 |