본문 바로가기

프로그래밍 팁26

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.
dequeueReusableCell을 보다 편리하게 사용하는 방법 iOS의 UICollectionView나 UITableView를 사용할 때 보통 dequeueReusableCell를 통해 셀을 재사용합니다. 그런데 이 메소드를 사용할 때마다 셀에 해당되는 identifier를 넘겨 주고 타입 캐스팅까지 해야해서 번거롭고 코드도 지저분해집니다. 따라서 이 과정을 생략할 수 있도록 extension을 정의해 보겠습니다. 구현 방법 먼저, identifier를 간편하게 사용하기 위해 UITableViewCell와 UICollectionViewCell에 대한 extension부터 정의합니다. extension UITableViewCell { static var identifier: String { return String(describing: self) } } extensi.. 프로그래밍 팁/iOS 2020. 11. 14.