뷰컨트롤의 생명주기 ViewController 의 생명주기 메서드는 얼핏보면 많고 복잡해 보이지만 메서드의 이름으로 잘 설명이 되어있어 생각보다 그렇게 어렵지는 않다. viewDidLoad 먼저 viewDidLoad의 메소드는 이름 그대로 view가 메모리에 로드되고 난 후 딱 한번 호출되는 메서드이다. 해당 메소드는 시스템에 의해 자동으로 호출되기 떄문에 일반적으로 리소스나 화면의 구성요소들을 초기화 하는 용도로 사용된다. viewWillAppear viewWillAppear 라는 메소드명은 view가 보일 예정이다 라는 뜻으로 말 그대로 View 가 보이기 직전, 즉 만들어진 ViewController가 View 계층 구조에 추가되기 직전에 호출된다. 이는 메모리 로드와는 상관없이 현재 화면에 해당 ..
Result 타입 이란? 함수나 메서드에서 성공 또는 실패를 반환하는데 사용되는 형식이며, 주로 비동기 작업 진행 시 사용된다. Swift5 에서 새로 추가된 Result Type를 이해하기 위해선 열거형 , 연관값, 제네릭을 이해하고 있어야 한다. 에러가 발생하는 경우, 에러를 따로 외부로 던지는 것이 아니라 리턴 타입 자체를 Result 타입으로 구현해서 함수 성공과 실패 정보를 담아 리턴한다. 장점으로 실제 함수 정의시에 에러 타입을 명시적으로 선언하며 타입캐스팅이 불필요하다는 점이 있다. Result Type 처리 3단계 (1) 에러타입 정의 먼저 Error 프로토콜을 채택해 열거형을 통해 에러 타입을 지정해둔다. enum Result where Failure: Error{ case success..
iOS 앱에서 동기와 비동기는 아주 자주사용되는 내용이고 사실 강의를 들으면서도 좀 어려운 개념이었다. 여러번 반복해서 들으면서 이 개념을 조금 더 익힐 수 있도록 해야겠다. 오늘 공부한 비동기 , 동시성 프로그래밍 관련 2탄 시작해보자 동기(sync) vs 비동기(async) 동기(sync) 동기적인 작업은 순차적으로 실행되며, 한 작업이 끝나야 다음 작업이 실행된다. 동기적인 작업은 보통 현재 실행 중인 스레드에서 처리되며, 작업이 완료될 때 까지 해당 스레드는 차단된다. 비동기(async) 비동기적인 작업은 순차적으로 실행되지 않고 별도의 스레드에서 바로 새로운 작업이 시작된다. 비동기적 작업은 보통 백그라운드 스레드에서 처리되며, 작업이 완료되면 메인 스레드로 결과를 반환하거나 콜백 함수를 호출하..
iOS 메인스레드 (Thread 1) 의 역할 iOS 애플리케이션은 메인 스레드를 생성하고 메인 런 루프(Main Run Loop)를 실행하여 앱의 이벤트를 처리한다. 이벤트는 주로 사용자의 상호작용(터치, 제스처)이나 시스템에서 발생하는 알림(앱의 상태변화, 백그라운드 작업 등) 등을 포함한다. 사용자 인터페이스(UI) 처리 메인 스레드는 앱의 UI를 처리하는 주된 스레드이다. 사용자의 모든 상호 작용은 메인 스레드에서 처리된다. 화면에 보이는 요소들의 업데이트인 레이아웃 변경, 텍스트 업데이트, 이미지 로드 등은 메인 스레드에서 수행된다. 이벤트 처리 사용자의 터치, 제스처 등의 입력은 이벤트로 변환되어 메인스레드로 전달된다. 메인 스레드는 이러한 이벤트를 받아들여 적절한 UI 업데이트나 작업을 수행..
프로세스(Process): 프로세스는 운영 체제에서 실행되는 프로그램의 인스턴스입니다. 각 프로세스는 독립적인 메모리 공간을 가지며, 다른 프로세스와 격리되어 있습니다. 각 프로세스는 최소한 하나의 스레드를 가지며, 프로세스는 스레드의 집합으로 이루어집니다. 프로세스 간 통신(IPC, Inter-Process Communication)을 통해 데이터를 공유할 수 있지만, 일반적으로 비용이 많이 드는 작업입니다. 프로세스 관리 : iOS는 각 앱을 별도의 프로세스로 실행하여 각 앱이 격리되도록 합니다. 이를 통해 앱 간의 간섭을 최소화하고 보안을 강화할 수 있습니다. iOS는 멀티프로세스 환경에서 안정적으로 동작할 수 있도록 프로세스 생성, 종료 및 관리를 담당하는 운영 체제의 역할이 중요합니다. 스레드(..
AP는 Application Processor의 약자로 컴퓨터나 모바일 기기와 같은 전자 제품에서 응용 프로그램을 실행하는 중앙 처리 장치(CPU) 가르킵니다. iOS 기기에서 사용되는 AP(Application Processor)는 모바일 기기에서 앱을 실행하고 관리하는 핵심 적인 부분입니다. 프로세서 종류 : iOS 기기의 AP는 주로 Apple이 설계한 A 시리즈 칩셋을 사용합니다. 이 칩셋은 ARM 기반 프로세서 아키텍처를 기반으로 합니다. 고성능 및 저전력 : AP는 다양한 코어를 가지고 있어 병렬로 여러 작업을 동시에 처리할 수 있습니다. 또한 모바일 기기에서 고성능의 처리를 가능하게 하면서도 전력 소비를 최소화 합니다. 이는 모든 모바일 기기의 배터리 수명을 연장하고 사용자 경험을 향상시킵니..