• Home
  • About
    • Zzu-h photo

      Zzu-h

      주니어 Android 개발자입니다.

    • Learn More
    • Email
    • Instagram
    • Tistory
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

Android: Network

11 Jul 2022

Reading time ~1 minute

Network

HTTP(HyperText Transfer Protocol)

  • 클라이언트와 서버 사이에 이루어지는 request/response 프로토콜
  • 대표적인 메소드
    • GET
    • POST/PUT
    • DELETE

REST(REpresentational State Transfer Architecture)

  • 자원에 접근하는 방법을 정의한 것

REST API 정리

  • 링크
  • 링크2
  • 웹 상에서 자원의 위치를 정의하고 그것을 표현하는 방법까지를 프로토콜로 만든 것

구성

  • 자원
    • URI
  • 행위
    • HTTP METHOD
  • 표현
    • Representation

특징

  • Uniform
    • URI로 지정한 리소스에 대한 조작을 통일된 동작을 수행하는 스타일 추구
  • Stateless
    • 상태정보가 없어 서버는 들어오는 요청만을 수행한다.
  • Cacheable
    • 캐싱 기능을 사용할 수 있음
  • Self-descriptiveness
    • Rest Api만 보아도 쉽게 이해할 수 있음
  • Client-Server구조
    • 클라이언트와 서버의 역할을 확실히 분리하여 서로의 관심사만을 신경쓸 수 있음
  • 계층형 구조
    • 다중 계층으로 구성될 수 있으며, 구조상의 유연성을 둘 수 있음
    • 중간 매체를 사용할 수 있음

디자인 가이드

  1. URI는 정보의 자원을 표현해야 한다.
  2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다

REST API 중심 규칙

  1. URI는 정보의 자원을 표현해야 함
    • /members/delete/1는 자원을 표현하는 것이 아닌 행위를 표현한 것임
    • 따라서, 잘 표현된 방식이 아니다.
  2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE 등)로 표현

URI 설계 시 주의할 점

  1. 슬래쉬는 계층 관계를 나타내는 데 사용됨
  2. URI 마지막 문자로 슬래쉬를 포함하지 않음
  3. URI 가독성을 높이기 위해 하이폰을 사용
    • underline을 사용하지 않음
  4. URI 경로에 소문자가 적합함
  5. 파일 확장자는 URI에 포함시키지 않는다.
    • Accept header를 사용

자원을 표현하는 Colllection과 Document

  • Document
    • 문서 또는 하나의 객체
  • Colllection
    • 문서 또는 객체들의 집합
    • 보통 집합이기 때문에 복수를 사용함
  • Example
    • http://restapi.example.com/sports/soccer/players/13
    • sports, players는 Collection
    • soccer, 13은 Document

Retrofit의 역할

  • HTTP 통신 구현을 위해 Retrofit과 OkHttp를 사용하는 이유?

OAuth

Role

  • Client:보호된 리소스를 요청하는 앱
  • Resource Owner : 보호된 리소스에 대한 접근 권한 부여
  • Authorization Server : Client에 access token 발급
  • Resource Server : 보호된 리소스 호스팅

HTTP 헤더

  • Accept: application/json
    • type을 지정해줌
  • Authorization: Bearer token
    • Bearer?
      • 인증 type에 속함
      • 보통 타입은 “Basic”
      • 인증 스킴이라고도 한다.
      • OAuth 2.0을 사용하기 위해서는 Bearer를 사용한다.


Share Tweet +1