본문 바로가기

전체 글116

[iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 2 이전 글인 1. [iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 1 에서 이어지는 내용입니다! 앞서 요구사항의 발생과 설계에 대해 살펴보았습니다. 오늘은 코드 레벨에서 상세한 구현 내용에 대해 공유하겠습니다! 코드 설명 앞선 글에서 다이어그램으로 표현한 객체와 인터페이스(프로토콜)들에 대해 소개하겠습니다! 1. NotificationPayload 구조체 public struct NotificationPayload: Codable { public let aps: APS public let id: String public let category: String? public let deepLink: String? public let webLink: String? public var hasLink: .. 2024. 1. 5.
[iOS] SOPT - 푸시 알림 딥링크 라우팅 개발 여정 1 오늘은 IT 동아리 SOPT의 공식앱인 SOPT를 개발하며 했던 고민들과 이렇게 개발한 이유에 대해 적어보려고 합니다! 주제는 바로 푸시 알림 딥링크 라우팅입니다. 푸시 알림 딥링크란 무엇일까? 아이폰을 사용하다보면 카톡이 오거나 기타 앱에서 광고 같이 알림 센터에서 짧게 팝업으로 표시하는 메시지가 있는데 이것을 푸시 알림이라고 합니다. SOPT 앱에서도 이런 푸시 알림에 대한 니즈가 생기기 시작했습니다. 특히, 푸시 알림이 유용한 이유는 저 알림을 터치했을 때 개발자가 원하는 위치의 화면으로 이동시키는 경험을 제공할 수 있기 때문입니다. 카카오톡 푸시 알림을 터치하면 해당 메시지가 있는 채팅방으로 바로 이동하는 것처럼 말이죠! 이것을 저는 푸시 알림 딥링크 라우팅이라고 부르고 있습니다. 푸시 알림의 페.. 2024. 1. 5.
[프로그래머스] Swift - 금과 은 운반하기 https://school.programmers.co.kr/learn/courses/30/lessons/86053 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2024.01.04 기준 Level 3 알고리즘 공부를 위해 풀고 기록하는 글입니다! 참고만 해주시고 더 좋은 풀이법이 있다면 알려주세요! 아이디어 문제 조건 여러 도시가 존재 (도시의 개수 == g.count == s.count) 각 도시에 트럭이 1개씩 존재 각 트럭은 최대 w[i] kg 만큼의 광물을 한 번에 운반 가능 이 때 금과 은 동시에 운반 가능 a 도시에 금이 40kg, 은이 30k.. 2024. 1. 4.
[Combine] Combine과 Backpressure (with OpenCombine, RxSwift) Combine 탐구 시리즈 1. Publisher와 Subscriber 그리고 Subscription(with OpenCombine) 2. Cancellable 탐구 (with OpenCombine) 오늘은 OpenCombine을 기반으로 Combine의 Backpressure 전략에 대해 알아보도록 하겠습니다!! 추가로 RxSwift의 Backpressure와의 차이점에 대해서도 살펴보겠습니다. Backpressure란? Backpressure라는 단어 자체를 처음 들어본 분들도 꽤 있을 것 같습니다. 저 또한 익숙한 단어는 아니었는데 사전적 의미는 다음과 같습니다. "기체를 배출하는 쪽의 압력"이라고 용어 사전에 적혀있습니다. 배압 또는 역압이라고도 하며 흐름 방향의 반대 압력을 막연하게 배압(bac.. 2023. 12. 14.
Eliminate data races using Swift Concurrency https://developer.apple.com/wwdc22/110351 Eliminate data races using Swift Concurrency - WWDC22 - Videos - Apple Developer Join us as we explore one of the core concepts in Swift concurrency: isolation of tasks and actors. We'll take you through Swift's... developer.apple.com 이전 Swift Concurrency WWDC 정리에 이어 오늘은 Swift Concurrecy를 통해 Data race를 제거하는 방법을 전체적인 관점에서 정리해 보겠습니다. 이번 WWDC에서는 동시성의 세계를 동시.. 2023. 11. 23.
[Combine] Cancellable 탐구 (with OpenCombine) Combine 탐구 시리즈 1. Publisher와 Subscriber 그리고 Subscription(with OpenCombine) 지난번 Publisher, Subscriber, Subscription 학습에 이어서 오늘은 Combine의 Cancellable에 대해 깊게 공부해 보도록 하겠습니다. 오늘도 역시 OpenCombine을 기반으로 코드 레벨까지 내려가 Combine에서 Cancel이 발생하는 과정에 대해 살펴보겠습니다. Cancel은 무엇일까? 우선 가장 먼저 생각해봐야 할 것은 cancel 자체에 대한 개념입니다. Combine에서는 cancel을 공식적으로 지원합니다. 공식 문서를 보면 Cancellable 프로토콜이 cancel 함수를 명시하고 있습니다. 이 함수의 역할은 Cance.. 2023. 11. 22.