오늘은 Alamofire에 대해 알아보겠습니다.
iOS 앱을 개발하다보면 네트워크를 이용하여 데이터에 접근해야 하는 경우가 생깁니다. 물론 기본적으로 Foundation의 URLSession을 이용할 수도 있지만, 다소 번거로운 경우가 생기기도 합니다. (이 경우는 따로 정리해보겠습니다.) 이로 인해 Alamofire를 많이 사용합니다.
Alamofire는 swift를 기반으로 한 HTTP 네트워킹 라이브러리입니다. 이는 공통적인 네트워크 작업을 함에 있어 매우 우아한 인터페이스를 제공합니다. 기능으로는
등으로 다양합니다.
여기에선,
하는 작업을 해보겠습니다.
기본적으로 소스코드는 링크에서 받으실 수 있습니다.
여기에선 SW API(스타워즈 API)를 사용합니다. https://swapi.dev
위를 간략히 설명하고 넘어가겠습니다.
HTTP는 서버에서 클라이언트로 데이터를 전송할때 사용되는 Application Protocol 입니다. HTTP는 아래와 같이 다양한 request method들을 정의하여 바람직한 동작들을 가리킬 수 있게끔 합니다.
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를 우리가 만든 앱에 통합하는 것을 쉽게 만들어줍니다.
이미 애플이 제공하는 URLSession이 있음에도 왜 사용할까요? Alamofire는 URLSession을 기반으로 하지만, 네트워크 요청하는 과정 속에서 생기는 어려움들을 우리 눈에 보이지 않게 처리하여 우리 본연 작업에만 집중할 수 있게 도와줍니다.
Alamofire에는 아래와 같은 대표적 기능이 있습니다.
다음으로 이어집니다.