코어 OS 계층
코어 OS 계층은 커널, 파일 시스템, 네트워크, 보안, 전원 관리, 디바이스 드라이버 등이 포함되어 있다. ios가 운영 체제로서 기능을 하기 위한 핵심적인 영역이라고 할 수 있다.
코어 서비스 계층
이 계층에 속한 프레임워크들은 문자열 처리, 데이터 집합 관리, 네트워크, 주소록 관리, 환경 설정 등 핵심적인 서비스들을 제공한다. 또한 GPS, 나침반, 가속도 센서나 자이로스코프 센서와 같이 디바이스의 하드웨어 특성에 기반한 서비스도 제공한다. 이 계층에 포함된 프레임워크 중 대표적인 것으로 파운데이션 프레임워크를 들 수 있으며, 파운데이션 프레임워크가 내부적으로 의존하는 코어 파운데이션 프레임워크 역시 이 계층에 포함되어 있다. 이 밖에도 코어 로케이션(Core Location), 코어 모션(Core Motion), 코어 애니메이션(Core Animation) 등의 프레임워크가 포함되어 있으며, 특히 애플 환경에서 데이터를 저장하기 위해 사용되는 코어 데이터(Core Data) 프레임워크도 이 계층에 포함되어 있다.
미디어 계층
여기에 속한 프레임워크들은 그보다 하위인 코어 서비스 계층에 의존적이며, 사우이 계층인 코코아 터치 계층에 그래픽 관련 서비스나 멀티미디어 관련 서비스를 제공한다. 대표적인 프레임워크로 코어 그래픽스, 코아 텍스트, 코어 오디오, 코어 애니메이션, AV파운데이션 등이 있다. 쉽게 생각해서 mp4와 같은 비디오 파일을 아이폰에 재생할 때 미디어 계층이 관여한다고 보면 된다.
코코아 터치 계층
코코아 터치 계층은 애플리케이션 프레임워크 계층이라고도 불리며, 애플리케이션을 직접 지원하는 역할을 담당한다. ios에 설치되고 실행되는 모든 애플리케이션은 코코아 터치 계층에서 제공하는 여러 가지 기술이나 서비스를 이용하여 기능을 구현하고 동작한다. 코코아 터치 프레임워크의 양대 산맥인 UIKit 프레임워크가 이 계층에 속해 있으며, 앞에서 살펴본 Game Kit, Map Kit 등의 프레임워크들 역시 여기에 속한다.
ios의 프레임워크 계층은 하드웨어와 애플리케이션 사이를 중계하는 위치에 자리한다. 프레임워크 계층 중에서 의미상 가장 아래에 위치한 코아 OS 계층은 개념적으로 하드웨어와 연결되어 있으며, 최상단에 위치한 코코아 터치 걔층은 애필리케이션과 연결된다.
하드웨어와 직접 커뮤니케이션할 수 없는 애플리케이션이 몇 줄의 코드를 통해 하드웨어 장치를 구동할 수 있는 것은 이같은 프레임워크 계층을 통해 간접적으로 하드웨어를 제어 할 수 있기 때문이다. 예를 들어 디바이스에 장착된 카메라 모듈을 사용하기 위해서는 카메라 장치에 대한 디바이스 드라이버와 하드웨어에 대한 제어 정보를 모두 알아야 하지만, ios에서는 이같은 제어 처리를 코어 OS 계층이 모두 담당하는 까닭에 애플리케이션은 카메라 하드웨어에 대한 아무런 정보 없이도 카메라를 다룰 수 있다.
* 대부분의 소프트웨어는 하드웨어와 직접 통신하지 않지만, 일부 분야에서는 하드웨어와 직접 통신하는 프로그램 코드를 작성하기도 한다. 이를 임베이드 프로그래밍이라고 한다. 임베디드 프로그래밍에서는 하드웨어와 직접 통신하고 제어하기 위해 부품의 명세서나 데이터 시트가 필요하고, 이를 이용하여 적합한 전기 신호를 만들어서 하드웨어를 제어하게 된다.
[참고] 꼼곰한 재은 씨의 Swift 기본편
'개발 > iOS' 카테고리의 다른 글
iOS 개발 팁 모음 (0) | 2022.10.27 |
---|---|
[ios] 코코아 터치 프레임 (0) | 2020.12.26 |
[ios] 앱의 라이프 사이클(Life Cycle, 생명주기) (0) | 2020.12.26 |
[ios] 핀치 제스처 (0) | 2019.05.04 |
[ios] 스와이프 제스처 (0) | 2019.05.03 |