[swift] Alamofire 시작하기 [1]

‍deprecated·2021년 7월 8일
0

오늘은 Alamofire에 대해 알아보겠습니다.
iOS 앱을 개발하다보면 네트워크를 이용하여 데이터에 접근해야 하는 경우가 생깁니다. 물론 기본적으로 Foundation의 URLSession을 이용할 수도 있지만, 다소 번거로운 경우가 생기기도 합니다. (이 경우는 따로 정리해보겠습니다.) 이로 인해 Alamofire를 많이 사용합니다.

Alamofire는 swift를 기반으로 한 HTTP 네트워킹 라이브러리입니다. 이는 공통적인 네트워크 작업을 함에 있어 매우 우아한 인터페이스를 제공합니다. 기능으로는

  • chainable request/response methods
  • JSON, Codable decoding
  • authentication

등으로 다양합니다.

여기에선,

  • third-party RESTful API로부터 데이터를 요청
  • request parameter 전송
  • 응답을 JSON으로 변환
  • 응답을 Codable 프로토콜을 통해 스위프트 데이터 모델로 변환

하는 작업을 해보겠습니다.

기본적으로 소스코드는 링크에서 받으실 수 있습니다.

여기에선 SW API(스타워즈 API)를 사용합니다. https://swapi.dev

HTTP, REST, 그리고 JSON에 대한 이해

위를 간략히 설명하고 넘어가겠습니다.
HTTP는 서버에서 클라이언트로 데이터를 전송할때 사용되는 Application Protocol 입니다. HTTP는 아래와 같이 다양한 request method들을 정의하여 바람직한 동작들을 가리킬 수 있게끔 합니다.

  • GET : 데이터를 받습니다. 하지만 서버의 어떤 데이터도 변경할 수 없습니다.
  • HEAD : GET과 비슷하지만, 진짜 데이터가 아닌 header만 전달합니다.
  • POST : 데이터를 서버에 전송합니다. 가령 form을 채우거나 submit 버튼을 누를 때 사용합니다.
  • PUT : 데이터를 특정한 장소에 전송합니다. 가령 유저 프로필을 업데이트할 때 사용합니다.
  • DELETE : 특정한 장소의 데이터를 삭제합니다.

JSON은 JavaScript Object Notation의 약자로, 시스템 간 데이터 전달에 있어 직관적이고 사람이 읽을 수 있는 메커니즘을 제공합니다. JSON은 string, boolean, array, object/dictionary, number, null 과 같이 한정된 수의 데이터 타입만 가질 수 있습니다.
Swift 4 전에는 JSON에서 data object로, 또 그 반대로 변환하려면 JSONSerialization 클래스를 사용해야 했는데, 요즘은 Codable이 대세입니다. Codable은 JSON와 data model 사이에 자동화된 변환을 해줍니다.

REST는 REpresentational State Transfer의 약자로, 지속적인 웹 API를 만들기 위한 규칙의 집합입니다. REST는 request 사이에 상태를 지속하지 않거나, cacheable request를 만들고, 동일한 인터페이스를 제공합니다. 이를 통해 request간 데이터의 상태를 추적하지 않고도 API를 우리가 만든 앱에 통합하는 것을 쉽게 만들어줍니다.

근데 왜 Alamofire인가.

이미 애플이 제공하는 URLSession이 있음에도 왜 사용할까요? Alamofire는 URLSession을 기반으로 하지만, 네트워크 요청하는 과정 속에서 생기는 어려움들을 우리 눈에 보이지 않게 처리하여 우리 본연 작업에만 집중할 수 있게 도와줍니다.

Alamofire에는 아래와 같은 대표적 기능이 있습니다.

  • AF.upload : 파일을 업로드합니다.
  • AF.download : 파일을 다운르도하거나 이미 진행중인 다운로드를 재개합니다.
  • AF.request : 파일 전송과 무관한 다른 HTTP 요청

다음으로 이어집니다.

profile
deprecated

0개의 댓글