iOS

iOS

[ iOS ] Apple 로그인 클라이언트 구현 (UIKit + Rx + Clean Architecture)

이 글은 UIKit 기반 앱에서 Apple 로그인을 구현하는 전 과정을 다룹니다.RxSwift, MVVM, 클린 아키텍처, 서버 연동을 기준으로 작성되었습니다.1. Apple Developer 계정 로그인https://developer.apple.com/account 로그인 - Apple idmsa.apple.com 2. App ID 생성 (식별자)좌측 메뉴 → Certificates, IDs & Profiles → Identifiers+ 버튼 클릭 → App IDs → App 선택Description: 앱 이름 입력Bundle ID: Xcode에서 사용하는 것과 정확히 일치하도록 입력 (예: com.example.app)Capabilities에서 Sign In with Apple 체크Continue →..

iOS/Design Pattern

[ Coordinator ] Coordinator 패턴이란?

Coordinator 패턴이란?코디네이터(Coordinator) 패턴은 iOS 앱에서 ViewController의 "화면 전환" 책임을 분리하여, 별도의 객체인 코디네이터가 화면 흐름과 네비게이션을 관리하도록 하는 디자인 패턴이다.이 패턴의 핵심 목적은 ViewController의 역할을 단순화하고, 화면 간 전환에 따른 결합도를 낮추는 것이 목적이다.왜 코디네이터 패턴이 필요할까?Coordinator 객체는 화면 전환(네비게이션)과 관련된 모든 로직을 담당하게 되는데 ViewController는 더 이상 다른 ViewController를 직접 생성하거나, 네비게이션을 직접 수행하지 않는다.ViewController는 단지 자신의 코디네이터에게 "다음 화면으로 이동해달라"고 요청만 할 뿐이다. Coord..

iOS/면접 질문

[ iOS 면접 질문 ] 프로세스와 스레드의 차이점, 그리고 iOS에서의 프로세스와 스레드 관리 방법에 대해 설명해주세요.

프로세스와 스레드의 차이점, 그리고 iOS에서의 프로세스와 스레드 관리 방법에 대해 설명해주세요.프로세스는 실행 중인 프로그램의 단위로, 독립된 메모리 공간과 시스템 자원을 가지며 다른 프로세스와 자원을 공유하지 않습니다. 반면 스레드는 프로세스 내에서 실행되는 작업의 흐름 단위로, 같은 프로세스 내의 다른 스레드들과 메모리 공간을 공유합니다. 그래서 스레드는 프로세스보다 생성과 전환이 빠르고 가볍지만, 자원을 공유하기 때문에 동기화 문제나 경쟁 상태에 더 취약할 수 있습니다.iOS에서는 하나의 앱이 하나의 프로세스로 실행되며, 기본적으로 메인 스레드와 여러 백그라운드 스레드로 구성됩니다. 메인 스레드는 UI 업데이트나 사용자 입력 처리를 담당하며, 이 스레드가 막히면 앱이 응답하지 않는 현상이 발생할 ..

iOS/면접 질문

[ iOS 면접 질문 ] 싱글톤 패턴(Singleton Pattern)이란 무엇이며, 어떤 경우에 사용하나요?

싱글톤 패턴(Singleton Pattern)이란 무엇이며, 어떤 경우에 사용하나요?싱글톤 패턴은 애플리케이션 전역에서 하나의 인스턴스만 생성되도록 보장 하는 디자인 패턴입니다. 주로 공통된 설정, 네트워크 관리, 데이터 저장소, 로깅 등의 공유 리소스를 관리할 때 사용됩니다. 이 패턴을 통해 인스턴스를 여러 곳에서 접근 가능하면서도 일관성을 유지할 수 있습니다.싱글톤 패턴의 장점과 단점을 설명해주세요.싱글톤의 장점은 하나의 인스턴스를 여러 곳에서 재사용할 수 있어 메모리 사용을 줄이고, 전역 접근이 가능해 어디서든 쉽게 사용할 수 있으며, 일관된 상태를 유지하는 데 효과적입니다.단점은 가장 큰 문제는 테스트가 어렵다는 점입니다. 싱글톤은 전역 상태를 가지기 때문에 하나의 테스트가 다른 테스트에 영향을 ..

iOS/면접 질문

[ iOS 면접 질문 ] REST API와 iOS에서의 네트워크 요청 및 응답 처리 방법에 대해 설명해주세요.

REST API와 iOS에서의 네트워크 요청 및 응답 처리 방법에 대해 설명해주세요.REST API는 클라이언트와 서버가 HTTP 프로토콜을 기반으로 데이터를 주고받는 방식입니다. iOS에서는 주로 URLSession을 사용해서 요청을 보냅니다. 사용자 정보를 가져오는 경우를 예로 들면, 특정 URL에 GET 요청을 보내고, 서버에서 내려준 JSON 데이터를 Codable을 채택한 모델로 디코딩해서 화면에 보여주는 방식입니다. Swift에서는 이 디코딩 작업을 간단하게 하기 위해 Codable을 사용하는데, Codable은 Encodable과 Decodable을 합친 타입이에요. 서버에서 데이터를 받아올 때는 Decodable, 서버로 보낼 때는 Encodable이 각각 사용됩니다. 실제로 제가 진행했던..

iOS/면접 질문

[ iOS 면접 질문 ] Swift의 문자열(String) 다루기와 관련된 주요 기능은 무엇이 있나요?

Swift의 문자열(String) 다루기와 관련된 주요 기능은 무엇이 있나요? Swift의 String 타입은 유니코드 규격을 완전히 지원하며, 다양한 언어, 이모지, 조합 문자 등도 정확하게 처리할 수 있도록 설계되어 있습니다. String은 Character 타입의 컬렉션이며, 각 문자는 하나 이상의 유니코드 스칼라로 구성될 수 있습니다.인덱싱은 정수(Int)가 아닌 String.Index를 사용하여 유니코드 경계를 정확하게 다루며, 문자열 연결(+), 분할(split), 결합(joined), 접두사/접미사 검사(hasPrefix, hasSuffix), 공백 제거(trimmingCharacters), 대소문자 변환(uppercased, lowercased) 등의 다양한 문자열 조작 기능을 제공합니다...

Sheep1sik
'iOS' 카테고리의 글 목록