전체글209 Swift에서 Codable 객체와 딕셔너리(Dictionary)를 상호 변환하는 방법 Encodable → 딕셔너리 Encodable 혹은 Codable을 따르는 객체를 딕셔너리 타입으로 변환하는 방법은 다음과 같습니다. 우선 extension부터 정의합니다. extension Encodable { func encode() throws -> [String: Any] { let data = try JSONEncoder().encode(self) guard let dictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any] else { throw NSError() } return dictionary } } 1. JSONEncoder를 사용해서 Encodable을 따르는 객.. 프로그래밍 팁/Swift 2020. 11. 18. AWS에서 NAT 게이트웨이(NAT Gateway) 사용 시 유의해야 하는 점 AWS에서 VPC(Virtual Private Cloud)를 구성하면서 NAT 게이트웨이를 생성해서 사용하는 경우의 유의사항에 대해 살펴보겠습니다. 예를 들어 VPC에 연결된 람다(Lambda) 함수를 구성하는 경우, 해당 람다 함수가 인터넷에 연결되어야 하는 경우가 있습니다. 이를 테면, 람다 함수가 특정 사이트에 접속해서 스크레이핑 혹은 크롤링을 하는 경우나 외부 API 서버를 호출해야 하는 경우 등입니다. 이 때, VPC에 NAT 게이트웨이를 구성함으로써 외부에 대한 접근이 가능해지도록 만들어야 하는데, 이러한 설정을 처음 해 보는 사용자라면 NAT 게이트웨이에 시간당 금액이 부과된다는 사실을 놓칠 가능성이 높습니다. NAT 게이트웨이에는 서울(ap-northeast-2) 리전 기준으로 시간당 $0.. 프로그래밍 팁/서버, 백엔드 2020. 11. 17. Swift에서 Unix Timestamp 값을 얻는 방법 스위프트로 코딩할 때 가끔 서버와의 통신 등을 이유로 유닉스 타임스탬프를 사용해야 할 때가 있습니다. 그런데 스위프트에서는 기본적으로 유닉스 타임스탬프 값을 얻는 방법을 제공하고 있지 않습니다. 따라서 이번 포스팅에서는 이를 간단하게 익스텐션으로 구현하는 방법에 대해 알아보겠습니다. 유닉스 타임스탬프(Unix Timestamp) 구현하기에 앞서 유닉스 타임스탬프에 대해 간단히 알아보겠습니다. 유닉스 타임스탬프란, 1970년 1월 1일 0시(UTC)를 기점으로 현재까지의 경과 시간을 초 단위로 환산하여 나타낸 값입니다. 예를 들어 2020년 1월 1일 0시(UTC)는 유닉스 시간으로 1577836800으로 표기합니다. 구현 방법 Date의 익스텐션에 프로퍼티 혹은 스태틱 프로퍼티를 추가함으로써 간단히 구현.. 프로그래밍 팁/Swift 2020. 11. 16. RxSwift로 간단한 파일 다운로더 만들기 RxCocoa에는 URLSession을 리액티브하게 사용할 수 있도록 만들어 주는 익스텐션이 포함되어 있습니다. 이를테면 public func response(request: URLRequest) -> Observable라는 메소드를 사용해서 HTTPURLResponse와 Data를 리액티브하게 받는 등, 편의를 위한 메소드들이 존재합니다. 하지만 익스텐션으로 제공되는 메소드에 파일을 다운로드 받는 메소드는 존재하지 않습니다. 따라서 이번 포스팅에서는 RxSwift를 활용해서 이를 간단하게 구현해 보겠습니다. 구현 방법 우선, URLSession의 리액티브 익스텐션을 정의하고 그 안에 메소드의 파라미터와 적절한 반환형을 정의합니다. extension Reactive where Base: URLSessio.. 프로그래밍 팁/Swift 2020. 11. 15. 이전 1 ··· 10 11 12 13 14 15 16 ··· 53 다음