본문 바로가기

iOS

(4)
FCM과 APNs에 관하여 지금까지 서비스를 개발하며, 단순히 사용자들에게 메시지를 전달하기 위해 사용하였던 Push Notification과 메시지 전달을 위해 사용하였던 FCM(Firebase Cloud Messging), APNs에 관하여 공부하였고 이 블로그에 남깁니다. 1. Push Notification Push Notification이란? => 서버에서 발생한 Event를 특정 클라이언트에게 Event 발생 사실을 통지하는 기술 그렇다면 , Push Notification이 왜 필요할까요? iOS App의 경우 기본적으로 Background 상태가 되면 모든 처리 기능이 제한됩니다. 따라서 Background / Foreground 상태에 관계없이 사용자에게 메시지 전달이 필요한 경우, Push Notification..
(동기/비동기)와 동시성에 대한 개념 앱 개발자의 기초이자 중요한 개념인 동기와 비동기, 그리고 동시성에 대해 정리합니다. 동기 vs 비동기 동기와 비동기의 개념에 대해 살펴보기 전에 우선 쓰레드에 대한 이해가 필요합니다. 쓰레드의 정의를 보면 ''프로그램(프로세스)의 실행단위"라 명시되어 있습니다. 쉽게 말해 쓰레드란 Task를 처리하는 단위이자 흐름이며, 프로세스 내에서 실제로 작업을 수행하는 주체입니다. 본인이 앱 개발자인 만큼 앱을 기준으로 설명하겠습니다. 앞에서 설명한바와 같이 쓰레드는 일의 흐름이며 task를 할당받아 일을 처리합니다. 앱은 여러개의 쓰레드를 갖고, 일반적으로 별도의 처리없이 코드를 작성한 경우 task들은 하나의 쓰레드(메인 쓰레드)에 적재되고 처리됩니다. -> task1의 비용이 크다면, task2는 task1..
CI/CD(feat. Fastlane) Apple의 CodeSigning에서 설명한 글에 이어, 앞서 설명한 iOS 앱 개발 및 배포 과정에 있어 불편함을 최소화 및 CI/CD를 적용을 위해 공부한 부분을 글로 남깁니다. CI/CD란? → Application의 개발 단계를 자동화하여 보다 짧은 주기로 고객에게 제공하는 방법 → 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "Integration Hell")을 해결하기 위한 솔루션 Integration Hell: 코드 통합 단계에 있어서 그 과정이 매끄럽지 못해 최종적으로 코드를 통합하고 수정하는데 있어 오랜 시간이 걸리는 현상을 의미합니다. CI(Continous Integration): 지속적인 통합 통합 프로세스를 지속적으로 실시 코드는 주기적으로 변형 및 통합 코드는..
Apple 인증서 및 CodeSigning iOS App CI/CD 구현을 위해 공부한 내용 중 애플 디바이스 개발을 위해 필연적인 요소인 코드 사이닝에 대한 기록을 남깁니다. Apple 인증서란? 애플은 오직 자신들의 하드웨어에 앱을 비롯한 프로그램(소프트웨어)이 동작하도록 허락합니다. 따라서 iOS 기준 App이 실행될때 마다 애플로부터 인증을 받았는지 확인합니다. 인증 절차 개발자 ⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤> iOS Developer Program ⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤⏤> Apple 인증서 신뢰 여부 결정