macOS

[iOS, macOS] Alamofire Framework(1)

Daesiker 2021. 3. 9. 14:55
반응형

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에 대한 공부를 진행할 예정이다.

반응형

'macOS' 카테고리의 다른 글

[iOS, macOS] Alamofire Framework(3)  (2) 2021.03.11
[iOS, macOS] Alamofire Framework(2)  (0) 2021.03.10
[iOS, macOS] QuickLook 프레임워크(2)  (0) 2021.03.07
[iOS, macOS] QuickLook 프레임워크(1)  (0) 2021.03.06
[IOS, MacOS] FileManager Library  (2) 2021.03.05