Network 통신

유진·2022년 11월 27일

Kotlin

목록 보기
2/3

서버

  • 클라이언트가 요청을 보내는 대상
  • 뒤에서 동작하는 시스템

Server - Client

client - server - backend language - DBMS

  • Client : 우리가 개발할 앱
  • Server : 웹 (HTTP) 서버
  • Backend Language : 실제로 우리의 동작을 처리하는 서버
  • DBMS : 데이터베이스

서버와의 통신

  • 서버와 데이터를 주고 받는 것도 서버에 도달해야 가능하다!
  • 서버의 위치 정보를 나타내는 2가지
    1. IP주소
    2. 도메인주소
  • 서버에게 원하는 바를 이야기하려면 정보를 알아야 한다!
    1. 통신프로토콜
      앱구현에서는 일반적으로 HTTP/HTTPS를 사용

    2. API 명세서
      어떤 주소로 보내야 원하는 동작을 할 수 있는지 적혀있다. (상세히 적어주어야함)
      서버 개발자가 작성해주어야 함

      ⇒ 이중 하나라도 잘못되면 서버에 도달 할 수 없음

서버와의 통신 - HTTP Protocol

HTTP Protocol의 구성 요소 2가지
1. Header : 용도 → HTTP 메소드
2. Body

대표적인 HTTP Methods 5가지

GET (조회)
POST (생성)
PUT (수정)
PATCH (일부 수정)
DELETE (삭제)

데이터를 담는 방법 2가지

  1. 보내는 주소 뒤에 붙이는 방법
    • Query string (?key=value)
      • 데이터를 필터링하는 용도로 많이 사용
    • Path variable
      • 특정 데이터를 직접 지정하는 용도로 많이 사용
  2. body로 보내는 방법
    • 주로 지정된 포맷으로 보냄
      • form-data : HTTP 프로토콜에 정의된 방식으로 전달
        • key-value 형태
        • 파일을 전송할땐 이 방식으로 보내야함
      • raw : 보내는 사람이 임의로 전달
        • 서버 개발자와 협의된 형태로 보내야 올바른 통신 가능(xml, json 등)

서버와의 통신 - API

  • API?
    • 정의 : 서버의 기능 단위
    • 특징 : API 명세서만 보고도 API를 사용할 수 있도록 서버 개발자가 꼼꼼하게 작성해야 함
    • 예시 : 식당의 메뉴

XML 과 JSON

: 개발에서 많이 사용하는 문자열 형태의 데이터 포맷

  • XML : Layout 구현시에 사용하는 포맷
  • JSON : 보다 간편하게 데이터를 표현하는 포맷

Postman

개발자들이 API를 디자인하고 빌드하고 테스트하고 반복하기 위한 API 플랫폼

API 개발의 생산성을 높여줌

Rest

Representational State Transfer
자원의 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

Retrofit2

REST API 통신 라이브러리

https://jaejong.tistory.com/33

OpenAPI

개발자라면 누구나 사용할 수 있도록 공개된 API

개발자에게 사유 응용 소프트웨어나 웹 서비스의 프로그래밍 적인 권한을 제공한다. (↔ 프라이빗 API)

HTTP vs HTTPS

HyperText Transfer Protocol (over Secure Socket Layer)

서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
암호화 차이

  • HTTP :보안에 취약한 반면, 안전하게 데이터를 주고 받을 수 있음
  • HTTPS : 암호화/복호화 과정이 필요하기에 속도가 느리다(but 오늘날에는 차이 거의 못느낌), 인증서 발급과 유지에 대한 추가비용이 필요
profile
안드로이드... 좋아하세요?

0개의 댓글