2024/12 6

[Swift] RxSwift

RxSwift :  ReactiveX를 적용한 Swift 라이브러리ReactiveX(RX) : 비동기 프로그래밍과 옵저버 패턴을 쉽게 구현할 수 있도록 돕는 Microsoft 사에서 만든 라이브러리. 반응형 프로그래밍 RxCocoa : iOS, macOS에 대해서 Rx 프로그래밍을 지원하는 도구 Observable : 데이터 발행 주체. 이벤트와 데이터를 방출하는 스트림(stream). 시간적인 개념이 포함됨. 데이터의 흐름Observer : 구독하고 관찰하는 관찰자subscribe : Observable을 구독하는 것dispose : 구독 해제Observable은 Observer가 구독해서 데이터를 사용해야 의미가 있다 Scheduler : Observable 스트림에서 스레드를 지정할 수 있도록 돕는..

ios 개발 공부 2024.12.26

[Swift] 디자인 패턴 & 아키텍처

디자인 패턴 : 일반적인 개발 상황에서 접하게 되는 문제들을 해결하기 위한 설계 패턴싱글톤 패턴(Singleton) : 특정 클래스의 인스턴스가 앱 전체에 단 하나만 존재하며, 앱 전역에서 모두 접근할 수 있도록 하는 패턴. 개별적인 인스턴스를 생성할 필요가 없고 단 하나의 인스턴스를 재활용해서 여러 곳에서 활용할 때 적합                                                               ex) 위치 서비스, UserDefaults 전체 관리 클래스, 네트워크 중복 로직 관리 클래스델리게이트 패턴(Delegate) : 어떤 객체 A에서 하고 싶은 일을 다른 객체 B에게 대신 처리하게 하는 패턴옵저버 패턴(Observer) : 어떤 객체의 상태가 변화할 때 그를..

ios 개발 공부 2024.12.24

[Swift] sync(동기) & async(비동기)

프로세스(Process) : 실행하기 위해 메모리 위에 올라온 프로그램(iOS 앱)스레드(Thread) : 프로세스 내에서 작업을 수행하는 단위한 개의 프로세스 내에서 여러 개의 스레드가 동시에 작업 수행멀티 스레딩 : 여러 개의 스레드를 가지고 동시에 작업하는 것크게 메인 스레드와 백그라운드 스레드로 구분동기(synchronous = sync) : 직렬적인 작업 방식. 어떤 스레드에 작업 A를 처리하다가 새로운 작업 B가 들어오면 A를 멈추고 B를 처리한 후 다시 A를 처리하는 방식비동기(asynchronous = async) : 병렬적인 작업 방식. B가 들어오면 다른 스레드에 B를 넘기고 처리하던 A는 멈추지 않고 병렬적으로 동시에 처리하는 방식. B가 완료되면 완료되었다는 결과를 전달받는다 동시성..

ios 개발 공부 2024.12.23

[Swift] CRUD & CoreData & UserDefaults

CRUD (Create, Read, Update, Delete) 란?Create : 데이터 생성Read : 데이터 읽기Update : 데이터 업데이트(쓰기)Delete : 데이터 삭제 Swift로 기기 내 디스크에 데이터를 저장할 수 있는 대표적인 방법으로는 CoreData, UserDefaults가 있다대량의 데이터를 담을 때에는 CoreData, 단순한 데이터를 담을 때에는 UserDefaults를 주로 사용한다 CoreData 란?앱에서 기기의 디스크에 데이터를 읽고 쓸 수 있게 돕는 프레임워크 import Foundationimpot CoreData@objc(PhoneBook)public class PhoneBook: NSManagedObject {}NSManagedObject : CoreData..

ios 개발 공부 2024.12.11

[Swift] 네트워크 통신

JSON(JavaScript Object Notation) 이란?네트워크에서 데이터를 주고받을 때 서버와 클라이언트가 가장 많이 사용하는 데이터 형식 API(Application Programming Interface) 란?어떤 프로그램을 개발할 때 원하는 기능들을 제공해 주는 창구, 설명서, 도구 인코딩 : 데이터를 특정 형식으로 변환하는 것디코딩 : 인코딩 된 데이터를 다시 원본으로 변환하는 것Swift의 Codable 프로토콜을 채택한다는 것은 인코딩과 디코딩이 될 수 있음을 의미 URL 구조URL(Uniform Resource Locators) : 웹에서 특정 위치를 나타내는 주소Protocol : 인터넷 통신 규약을 의미 ex) http, httpsDomain : 자원이 위치한 서버의 이름. u..

ios 개발 공부 2024.12.04

[Swift] 메모리 관리

메모리 : RAM. 휘발성 장치이기 때문에 데이터를 영구적으로 저장하지 않는다-> 앱 실행 중 메모리에 저장된 데이터들은 앱을 종료하면 삭제된다-> 앱을 실행시키면 메모리에 올라간다-> RAM의 용량이 클수록 동시에 실행시킬 수 있는 앱의 총량이 높아진다-> CPU가 디스크보다 메모리에 더 빨리 접근할 수 있다-> 디스크에 비해 용량이 작다-> EEPROM과 같은 비휘발성 메모리도 있으며 아이폰은 이곳에 장치의 일련변호 및 하드웨어 정보를 저장한다 디스크 : 비휘발성 장치이기 때문에 앱 실행 중에 디스크에 저장된 데이터들은 앱을 종료해도 디스크에 남는다-> 상대적으로 용량이 큰 정보들을 담을 수 있다-> 메모리에 비해 속도가 느리다-> UserDefaults, CoreData를 활용해서 디스크에 데이터를..

ios 개발 공부 2024.12.02