본문 바로가기

전체 글79

[iOS] iOS는 어떻게 이루어져 있을까? * 부제 - iOS 4계층 (iOS API) API란? 앱이 동작하도록 하기 위해 사용하는 함수나 메소드, 클래스와 같은 프로그래밍 인터페이스 iOS’s API 4계층으로 이루어짐. 사이에 몇개의 계층이 더 있지만 대표적으로 4계층이라는 소리 아래로 갈수록 HW에 가까움 1. Core OS - OSX Kernel, Power ManageMent (전원 관리), Mach 3.0, Keychain Access (접근 제어), BSD, Certificates, Sockets, File System, Security, Bonjour, ... - 아이폰은 유닉스에서 동작한다. 기본적으로 작동하는 유닉스 버전들 → Multitasking, UNIX 파일 시스템 등 iOS App 빌드 시 사용된다. - Core OS.. 2022. 3. 19.
비동기 처리하는 이유 먼저 간단하게 예시를 들어 보겠다. 컴퓨터 → 버거킹 프로세스 → 통새우와퍼주니어 세트 (내가 좋아해서... ㅋㅋ) 스레드 → 세트를 구성하는 메뉴들 (햄버거, 감튀, 제로콜라) 궁금했던 것과 문제점: 비동기 처리의 효율성은 알고 있었지만 정확하게 필요한 이유를 제대로 설명할 수 없었다. 👀 해답 (비동기 처리를 하는 이유) → 프로세스들은 컴퓨터의 자원을 분할해서 사용하지만 스레드들은 프로세스마다 주어진 전체 자원을 함께 사용하기 때문. → 이렇게 되면 속도와 효율성은 높아지겠지만, 프로세스 안에서 공유되는 변수에 스레드 여럿이 동시에 접근한다면 시간 문제로 인한 Error가 발생하게 된다. → 해결: Closure, Lambda, Functional Programming 등 ⇒ 동시성 프로그래밍 2022. 3. 18.
예외 처리를 하는 이유 논리 오류 때문이다. 논리 오류란? - 프로그래머가 작성한 코드의 논리적 결함에 의해 발생하는 오류 런타임 시간에 발생한다. 오류의 원인이 코드에 있기 때문에 프로그래밍 과정에서 미리 방지할 수 있다. 이를 예외 처리 (Exception Handling) 라고 한다. ex) Swift의 do-catch, Python의 try-except, Ruby의 begin-rescue 코드 예시 (Swift) do { try // 오류 발생 가능코드 (= 시도해 볼 동작) // 오류가 발생하지 않으면 실행할 코드 } catch 오류 패턴 { // 처리 코드 } catch 오류 패턴2 where 추가 조건 { // 처리 코드 } /* 오류가 발생할 수 있는 곳을 예측해서 → try 가 붙은 부분들은 코드가 잘못 됐더라.. 2022. 3. 18.