[Swift] @Environment에 대해 알아보기(Property Wrapper 3편)
·
Swift
안녕하세요. 이전 글에서 @ObservedObject, @StateObject에 대해 알아봤고, 오늘은 마지막 @Environment에 대해 알아보겠습니다. @Environment A property wrapper that reads a value from a view’s environment. 출처: 공식문서 공식 문서에는. @Environment Property Wrapper는 View 환경에 저장된 EnvironmentValues 을 읽어오기 위한 Property Wrapper이고, key path를 통해 EnvironmentValues을 지정하고, 읽어올 수 있다고, 나와있습니다. 위 같은 글을 읽었을 땐 바로 이해가 되질 못했습니다. 때문에 직접 사용해 보면서 정리해 보겠습니다. 예제를 통해 사..
[Swift] @ObservedObject와 @StateObject의 차이에 대해 알아보기(Property Wrapper 2편)
·
Swift
안녕하세요. 이전 글에선 @State, @Binding, @Published 3가지 Property Wrapper에 대해 알아보았고, 이번엔 @ObservedObject, @StateObject에 대해 알아보겠습니다. @ObservedObject와 @StateObject A property wrapper type that subscribes to an observable object and invalidates a view whenever the observable object changes. 출처: 공식문서 둘은 비슷한 상황에 사용되고, 공통점이 많기 때문에 같이 정리해 보겠습니다. @ObservedObject와 @StateObject는 ViewModel 객체와 같은 반응형 객체를 만들 때 사용되는 P..
[Swift] @State, @Binding, @Published 대해 알아보기(Property Wrapper 1편)
·
Swift
안녕하세요. 오늘은 SwiftUI를 접하면서 동시에 Property Wrapper 또한 접하게 되면서 주로 사용하는 것들에 대해서 정리할 필요성을 느껴 Property Wrapper에 대해 작성해 보려 합니다. 때문에 이번에 알아볼 Property Wrapper를 소개하면, @State @Binding @Published @ObservedObject @StateObject @Environment 위 6가지에 대해 알아볼까 합니다. 6가지 외에도 더 많기도 하고, 직접 커스텀 해서 만들 수도 있지만, 프로젝트하면서 가장 많이 사용했던 것들만 뽑아봤습니다. 사실 6개도 많아서 2편으로 나눠 작성해보려 합니다. 먼저, 프로젝트 하면서 가장 많이 사용되었던 State 부터 알아보겠습니다. @State A pro..
[Swift] Alamofire의 RequestInterceptor을 사용해 토큰 갱신하기
·
Swift
안녕하세요. 이번에 프로젝트를 진행하면서 JWT를 통한 인증 방식을 사용했는데 앱 같은 경우 accessToken의 유효기간이 있어 refreshToken을 사용해 토큰을 갱신 받아야 합니다. 때문에 오늘 알아볼 것은 좀 더 간편하게 accessToken을 갱신 받을 수 있는 방법에 대해 알아보겠습니다. RequestInterceptor Type that provides both `RequestAdapter` and `RequestRetrier` functionality. `RequestAdapter` 및 `RequestRetrier` 기능을 모두 제공하는 유형입니다. RequestInterceptor는 Alamofire 라이브러리에서 제공하는 프로토콜 입니다. 프로토콜을 보면, adapt와, retry..
[다이나믹 프로그래밍] 백준 실버1 1149번: RGB거리
·
코테
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 풀이 문제를 정리하면, 집의 수 N이 주어진다. 각 집은 빨강, 초록, 파랑으로 색을 칠해야 하고, 각 집을 칠하는데 집마다 색 별로 비용이 주어진다. 색을 칠할 땐 인접한 집과 다른 색으로 칠해야 한다. (예를 들어, 2번 집이 빨강이면 1번과 3번 집은 빨강이 아닌 색으로 칠해야 한다.) 모든 집을 칠하는 비용의 최솟값 출력 이 정도로 문제를 정리해 볼 수 있다. 처..
Combine 뽀개기 4장: Scheduler
·
Swift
Scheduler A protocol that defines when and how to execute a closure. 클로저를 실행하는 시기와 방법을 정의하는 프로토콜입니다. Scheduler를 사용하는 이유는 우리가 구현한 클로저가 언제 실행될지, 무슨 쓰레드에서 실행될지 제어하기 위해서이다. 때문에 Combine에선 DispatchQueue OperationQueue RunLoop ImmediateScheduler 위와 같은 Scheduler를 제공한다. 위 DispatchQueue, OperationQueue를 이용하여 우린 클로저가 무슨 쓰레드에서 실행될지 제어해줄 수 있고, RunLoop 통해 어떠한 RunLoop에서 실행될 지 결정해 줄 수 있다. ImmediateScheduler는 생소..