2024/03 4

Swift의 메모리 구조

Swift의 메모리 구조 Swift에서 메모리는 주로 네 가지 영역으로 나눌 수 있습니다. (1) 코드(Code) 영역 : 실행 가능한 프로그램 코드를 기계어 형태로 저장합니다. 이 영역은 읽기 전용(Read-Only)이며, 프로그램의 실행 중에 변경되지 않습니다. (2) 데이터(Data) 영역 : Swift 정적 변수, 상수, 타입 메타데이터 등을 저장합니다. 프로그램 시작과 동시에 할당되며 프로그램이 종료되면 메모리가 해제됩니다. 실행 도중 변경될 수 있습니다(Read-Write). var name: String = "FrenteBW" var age: Int = 25 struct Place { static let country: String = "Korea" } 위 코드에서 name, age, Pla..

iOS/Common 2024.03.29

CPU 아키텍처와 AP(Application Processor)

1. 캐시 메모리의 개념과 종류, 역할 캐시 메모리는 CPU와 주기억장치 간의 속도 차이로 인한 성능 저하를 막기 위해 사용되는 메모리입니다. CPU가 필요로 하는 데이터가 레지스터에 없는 경우, 주기억장치로부터 데이터를 읽어오기 위해 상당히 긴 시간을 기다려야 합니다. 캐시 메모리는 이러한 데이터 접근 시간을 줄여 속도를 향상시킵니다. 캐시 메모리는 속도와 용량에 따라 L1, L2, L3 캐시 등으로 분류되며, 숫자가 작을수록 용량이 작고 빠르며, 숫자가 클수록 용량이 크고 느립니다. CPU에 가까울수록 상위 레벨 캐시로 취급하며, 최하위 레벨 캐시의 경우 마지막 레벨을 의미하는 LLC(Last Level Cache)라고도 부릅니다. 2. CPU 아키텍처의 종류와 특징 - ARM과 x86 CPU 아키텍..

Computer Science 2024.03.27

iOS 운영체제: 프로세스, 스레드, 메모리 관리, 샌드박스 이해하기

1. 프로세스와 스레드의 차이점 iOS에서 실행되는 앱은 프로세스와 스레드라는 두 가지 주요 실행 단위를 가지고 있습니다. 프로세스는 실행 중인 프로그램의 인스턴스로, 각각 독립적인 메모리 공간을 가지고 있습니다. 반면, 스레드는 프로세스 내에서 실행되는 흐름의 단위로, 프로세스 내의 메모리 공간을 공유하며 실행됩니다. iOS에서의 프로세스와 스레드 관리 iOS에서는 GCD(Grand Central Dispatch)와 NSOperationQueue를 사용하여 스레드를 관리합니다. 이를 통해 개발자는 복잡한 스레드 관리를 피하고, 메모리 사용량을 최적화할 수 있습니다. GCD를 사용한 스레드 관리 예시 // GCD를 사용하여 백그라운드 스레드에서 작업 수행 DispatchQueue.global(qos: ..

iOS/Common 2024.03.27

[RxSwift] .subscribe { }와 .subscribe(onNext: { })의 차이

// .subscribe { } Observable.just("Tell me something~") .subscribe { (string: Event) in print(string.element) // Optional("Tell me something~") } .disposed(by: self.disposeBag) // .subscribe(onNext: { }) Observable.just("Tell me something!") .subscribe(onNext: { (string: String) in print(string) // Tell me something! }) .disposed(by: self.disposeBag) Q. '.subscribe { }' 형태와 '.subscribe(onNext: {..