Alamofire란?
Alamofire은 iOS와 macOS에서 사용가능한 Swift 기반 HTTP 네트워킹 프레임워크이다. Apple의 Foundation networking을 기반으로 인터페이스를 제공하여 일반적인 네트워킹 작업을 단순화한다. Alamofire의 장점은 object-C 언어가 하나도 없이 오직 swift로만 작성된 프레임워크이고 오픈소스인데 거의 완벽한 공식 문서가 있어서 사용자가 처음 사용할 때 어려움이 크게 없다. 어느정도 HTTP 네트워킹의 개념을 알고 있고 swift의 URLSession 클래스를 사용한 경험이 있다면 쉽게 다가갈 수 있는 오픈소스 프레임워크이다.
세부 기능
— Request & Response의 체이닝 함수 제공
— Combine 지원
— URL 및 JSON 파라미터 인코딩
— 데이터의 업로드, 다운로드
— HTTP 응답 유효성 검사
— TLS 인증서 및 공개 키 고정
요구 사항
— iOS 10.0+, macOS 10.12+, tvOS 10.0+, watchOS 3.0+
— Xcode 11+
— Swift 5.1+
REST, HTTP, JSON이란?
HTTP
웹사이트에서 웹서버 화면으로 데이터를 전송하는 데 사용하는 응용 프로그램 프로토콜 또는 규칙이다. 클라이언트가 원하는 작업을 표시하는데 사용하는 요청 방법을 정의하는데 다양한 방법이 있다.
— GET : 웹 페이지와 같은 데이터를 검색하지만 서버의 데이터는 변경하지 않는다.
— HEAD : GET과 동일하지만 실제 데이터는 전송하지 않고 헤더만 전송한다.
— POST : 데이터를 서버로 보낼 때 사용한다.
— PUT : 특정 위치로 데이터를 보낼 때 사용한다.
— DELETE : 특정 위치에서 데이터를 삭제할 때 사용한다.
REST
REST는 웹 API를 사용하기 쉽고 유지관리가 가능하게 설계하기 위한 일련의 규칙이다. REST에는 Request에 대한 캐시값을 만들고 균일한 인터페이스를 제공하는 등 여러가지 아키텍쳐 규칙이 있다. REST를 통해 사용자는 Request 전체에서 데이터를 추적할 필요없이 API를 앱에 쉽게 통합이 가능하다.
JSON
데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식이다.
Alamofire 사용법
Xcode에서 직접 Packages 등록
Xcode 프로젝트 → File → SwiftPackage → Add Package Dependency 클릭
https://github.com/Alamofire/Alamofire.git repositories 추가 후 등록
Cocoa pods 사용
Cocoapods를 사용할 경우 .xcworkspace로 프로젝트를 열면 사용가능하다.
#프로젝트 폴더에 들어간다.
cd project
#pod 생성
pod init
#open pod file
nano podfile
#해당 podfile에 Alamofire 추가
# pod 'Alamofire', '~> 5.2'
#입력 후 저장
#pod 설치
pod install
Alamofire 사용하기
여기를 클릭하면 프로젝트를 다운받을 수 있다. 해당 프로젝트는 SW API라는 스타워즈 영화 관련 데이터 정보를 제공하는 open API이다. SW API에서 EndPoint가 films와 starships인 데이터를 사용하여 해당 프로젝트에 데이터를 제공할 수 있도록 만든 프로젝트이다. 해당 프로젝트는 Alamofire을 cocoapods으로 빌드를 했기 때문에 프로젝트를 받고 나서 pod install을 한 뒤에 열어야한다.
해당 프로젝트를 실행하면 이미지와 같은 View가 나오는데 초기 화면에는 스타워즈 영화 제목 리스트가 알파벳 순으로 정렬이 되어있다. 또 검색 필드에 스타워즈에 나온 우주선이나 영화제목을 검색하면 해당 키워드에 맞는 정보들이 나열되고 리스트를 클릭하면 그 영화나 우주선에 대한 상세정보가 나온다. 이 프로젝트를 코드리뷰하면서 Alamofire에 대한 공부를 진행할 예정이다.
[출처] : www.raywenderlich.com/library?q=Alamofire&sort_order=relevance