기록하는 습관을 통해 성장하자.
- [Swift] 알고리즘에 필요한 Tip 정리 스위프트 알고리즘을 시작하면서 필요한 내용을 정리한 것을 올립니다! 시간 날 때마다 계속 추가할 예정..! 기본 입력 받기 (input의 타입은 String)var input = readLine()! Int형 한 개의 숫자 입력 받기var num = Int(readLine()!)! "1 2 3 4 5"와 같은 공백 있는 숫자 입력 받기// split - ReturnType: [SubString]var nums = readLine()!.split(separator: " ").map {Int($0)!}// components - ReturnType: [String]var nums = readLine()!.components(separatedBy: " "). map {Int($0)!} "12345"와 같은 공.. 2024.05.21
- [iOS] Firebase와 Google 로그인 연동하기 Firebase를 이용해서 구글 로그인을 구현하는 방법을 기록해보겠습니다. 아래의 그림을 보면서 먼저 동작 원리를 살펴보자면, 구글에 로그인을 하면 구글 토큰을 받게 되고 구글 사용자임을 증명하는 구글 토큰을 이용해서 파이어베이스 로그인을 시도합니다. 그리고 성공하게 되면 파이어베이스 토큰을 얻습니다. Firebase에서 프로젝트를 만들고 Xcode 프로젝트를 등록했다는 전제하에 시작하겠습니다. Podfile에 아래 두 줄을 추가하고 pod install로 설치해줍니다. pod 'Firebase/Auth' pod 'GoogleSignIn' 그리고 프로젝트에 복사해놨던 GoogleService-Info.plist의 RESERVED_CLIENT_ID를 복사해서 아래의 그림에서 URL Schemes에 붙여줍니.. 2021.02.02
- Publisher 깊게 보기 Publisher의 종류 한눈에 보기Combine에서 쓰는 Publisher는 크게 세 부류로 나뉨.분류 예시 특징기본 제공 PublisherJust, Empty, Fail, Future, Deferred한 번 정의되면 값이 정해져 있음외부 이벤트 PublisherURLSession.dataTaskPublisher, NotificationCenter.Publisher, Timer.publish시스템 이벤트에서 값이 흘러나옴수동 발행 PublisherPassthroughSubject, CurrentValueSubject, @Published코드에서 send()로 값을 직접 주입Apple이 기본 제공하는 Publisher들Just — 값 하나 내보내고 끝let publisher = Just("Hello")/.. 2026.05.13
- Combine이란? — 핵심 개념 3가지 세 개의 역할만 기억하면 됨.Combine의 모든 구조는 세 가지 역할로 설명됨.Publisher — 데이터를 내보내는 쪽Subscriber — 데이터를 받는 쪽Operator — 중간에서 데이터를 변환하거나 필터링하는 쪽아무리 복잡한 Combine 코드도 결국 "누가 데이터를 만들고, 누가 중간에서 가공하고, 누가 최종적으로 받는가"로 분해됨.Publisher — "나 값 줄게"Publisher는 시간이 지남에 따라 값을 내보내는 프로토콜. 네트워크 응답이 될 수도 있고, 텍스트필드의 입력값이 될 수도 있고, 타이머의 틱이 될 수도 있음.Publisher가 내보낼 수 있는 건 두 가지뿐임.값(Output) — 0개 이상완료(Completion) — 정상 종료 또는 에러. 한 번 발생하면 더 이상 값을 .. 2026.04.08
- 왜 Combine인가? Combine의 필요성에 대해 기록합니다. Combine이란?네트워크 요청, 사용자 입력 등 언제 올지 모르는 데이터(비동기로 발생하는 이벤트)를 다루기 위한 비동기 처리가 필요함.Combine은 이 처리를 해결하기 위해 만든 프레임워크→ 여러 비동기 패턴들을 하나의 일관된 파이프라인으로 통합하는 프레임워크기존 방식의 한계Combine 이전에는 여러가지 방식들(Completion Handler, Delegate, Notification Center, KVO 등)을 사용하여 처리했었음.각각의 패턴에 장점이 있지만, 한 곳에 모이면 코드의 흐름을 따라가기가 어려워짐.어떤 이벤트가 어디서 시작되어 어디로 흘러가는지, 에러는 어느 시점에서 처리되는지 이 모든걸 머릿속에서 추적해야 함.콜백 중첩 문제흔한 예를 들.. 2026.03.25