5th Development Pre + Practice

MorganKim·2021년 10월 7일
0

SSAC

목록 보기
7/9

Server

클라이언트의 요청에 맞게 데이터를 보내줌
서버와 클라이언트는 역할적 관계이지 고정적 관계가 아님, 1:n 관계

Http 통신

http 통신을 하려면 주소를 알아야 한다
헤더와 바디에 담긴 패킷을 보낸다
post 생성 get 조회 patch 일부 수정 delete 삭제 put 수정

데이터를 보내는 방법

  • Query String
    ?key=value&key=value...
    주소에 노출이 됨 -> 노출되어도 괜찮은 정보만 담아서 보냄
    노출되면 안 되는 데이터는 Body 에 담아서 보냄
    • ? : 시작을 알리는 구분자
    • & : key, value 구분자
      get에 Body 를 붙여서 보내도 될까?
      가능은 하지만 그럴 필요가 없어서 붙이지 않음
  • path variable
    /userId/userId ex. /user/2
    /user/{userID} or /user/:userId 두 가지 방식이 있음

  • Body

    • raw
      • xml
        Json
    • form-data
      • K-V 쌍
        통신이 더 빠름

역직렬화

Json 객체를 사용자가 정의한 자바 객체로 변환해주는 작업
역직렬화를 도와주는 라이브러리 : Gson

네트워크 통신 작업

  • 1. 데이터 클래스 정의


  • 2. API 호출을 위한 인터페이스 정의


  • 3. Retrofit Client 생성
    Retrofit Client 라는 싱글턴 클래스 생성
    Retrofit.Builder 클래스의 인스턴스를 만들고 base url 구성


  • 4. Request 전송
    API 호출을 위한 getWeatherData() 메서드 구성
    enqueue() 메서드를 통해 비동기적으로 네트워크 통신 진행
    response 를 잘 받았을 때와 실패했을 경우를 나누어 예외 처리


cf. 안드로이드에서 네트워크 통신을 하기 위해서는 okhttp3 라는 통신 라이브러리의 도움을 받아 api 를 호출해 데이터를 주고 받을 수 있다.
cf. okhttp3 를 통해 받아온 Json 데이터를 변수나 객체에 담아 사용하는 방법은 okhttp3 Json 파싱하기 키워드를 통해 검색
cf. 구체적인 함수나 메소드는 okhttp3 라이브러리 깃허브에서 확인

0개의 댓글

관련 채용 정보