[UMC] 7주차 워크북

nini·2022년 6월 23일
0

UMC

목록 보기
7/13
post-thumbnail

서버란?

: 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템

  • Serve + er 의 합성어 → 제공하는 사람

  • 과정

    1. 클라이언트가 서버 역할을 하는 컴퓨터와 연결
    2. 클라이언트가 API 명세서를 보고 원하는 데이터를 요청
    3. 서버는 요청 받은 데이터를 Backend Language에게 전달
    4. Backend Language에서 요청된 데이터가 DB 안에 있는지 확인
    5. 요청된 데이터를 서버가 클라이언트에게 전달
  • 프로토콜(HTTP)

    • Method
      • GET - (조회) 리소스 조회
      • POST - (생성) 요청 데이터 처리, 주로 등록에 사용
      • PUT - (수정) 리소스를 대체, 해당 리소스가 없으면 생성
      • PATCH - (일부 수정) 리소스 부분 변경
      • DELETE - (삭제) 리소스 삭제

(서버와 연동할 때 클라이언트측에서도 데이터를 전달하는 경우가 있는데, 어떻게 전달할까? ex. ID & Password)

Query String

<형식>

  • 정해진 엔드포인트 주소 이후에 ?를 쓰는것으로 쿼리스트링이 시작함을 알린다
  • parameter=value로 필요한 파라미터의 값을 적는다
  • 파라미터가 여러개일 경우 &를 붙여 여러개의 파라미터를 넘길 수 있다.
    엔드포인트주소/엔드포인트주소?파라미터=값&파라미터=값
  • = 로 key 와 value 가 구분된다.

Path Variable

  • 보안이 크게 중요하지 않은 get 메소드 요청시 사용
  • url에 변수도 함께 보내는 방법
    /user:userId or /user/{userId}

Body

  • 로그인과 같이 보안이 필요한 경우 따로 형식이 존재하지 않는 Body에 담아서 보낸다

Alamofire

Alamofire
: 서버와의 연동을 도와주는 라이브러리

  • 비슷한 기능의 라이브러리 - Swift JSON
  • iOS, macOS를 위한 Swift 기반의 HTTP 네트워킹 라이브러리
  • Alamofire는 URLSession 기반
    -> URLSession은 네트워킹 호출에서 모호한 부분이 많은데 Alamofire를 사용한다면 데이터를 접근하기 위한 노력을 줄일 수 있으며 코드를 더 깔끔하고 가독성 있게 쓰는 것이 가능해짐

서버 연동을 할 때 사용하는 또다른 라이브러리, Moya

: Alamofire 라이브러리의 코드의 유지보수와 유닛 테스트가 힘들다는 단점을 보완하고자 나타난 네트워킹 라이브러리

  • Moya는 URLSession을 추상화한 Alamofire를, 다시 추상화한 라이브러리로 Network Layer를 템플릿 화해서 재사용성을 높이고, 개발자가 request, response에만 집중을 하도록 쉽게 말해 개발자를 도와주는 라이브러리라고 할 수 있다!
profile
도전하는 iOS 개발자

0개의 댓글