목차
1. 변수, 상수, 펑션 ➡️ 클래스 ➡️ 프레임워크 ➡️ 운영체제
2. Framework 4계층
3. 개발자가 자주 쓰는 핵심 프레임워크
1. 변수, 상수, 펑션 ➡️ 클래스 ➡️ 프레임워크 ➡️ 운영체제
변수, 상수, 펑션 ➡️ 클래스 ➡️ 프레임워크 ➡️ 운영체제
원하는 기능을 사용하고 싶다면 해당 기능을 제공하는 프레임워크를 임포트하여 사용하면 된다.
1.1. 클래스?
- 관련된 변수, 상수, 펑션을 클래스로 묶어놓으면 관리적인 측면에서 장점이 있다.
- 재사용을 할 수 있기 때문에 코드도 짧아진다.
1.2. 프레임워크?
- 관련된 비슷한 범주의 클래스들을 묶어놓은 것이 프레임워크다.
- 또다시 비슷한 범주의 프레임워크를 묶어놓은 더 큰 프레임워크도 존재한다.
- 프레임워크 안에는 클래스 뿐만 아니라 이미지 같은 리소스, 라이브러리, 문서 등 다양한 파일들이 존재한다.
1.3. 운영체제?
- 이러한 거대 프레임워크를 품고 있는 더 큰 프레임워크가 iOS 운영체제이다.
- 프로래밍은 운영체제를 통해 컴퓨터와 대화한다.
- 운영체제는 서로 다른 사양의 아이폰 하드웨어가 일관되게 동작한다.
- 그 이유는 운영체제 안에 구조화된 프레임워크 4계층(Cocoa Touch, Media, Core Service, Core OS)이 있기 때문이다.
2. Framework 4계층
iOS의 프레임워크(Framework)는 4계층으로 나뉘어 있다.
1. Cocoa Touch
2. Media
3. Core Service
4. Core OS
4 ➡️ 1 계층(상위 계층)으로 갈수록 Application과 가까운 사용자 구현 기능이 담겨있다.
반대로 1 ➡️ 4 계층(하위 계층)으로 갈수록 Hardware(iPhone)/운영체제에 대한 기능이 담겨있다. 아래 우측 노란 박스에 있는 프레임워크들은 왼쪽 4계층 프레임워크 안에 담겨진 기능들이며, 그림에 표시한 것 외에도 다양한 프레임워크들이 있다.
2.1. Cocoa Touch Framework 계층
- 화면의 그래픽 UI 및 터치 기능을 제공
- 앱을 개발하며 가장 많이 사용하는 *UIKit이 포함된 계층이다.
- Cocoa Touch 프레임워크 안에는 아래와 같이 여러개의 작은 단위의 프레임워크들이 존재한다.
- UIKit : 사용자에 의해 발생하는 이벤트 처리 기능, UI와 관련된 기능
- Foundation : 문자열, 날짜 처리, 런루프, GCD, 쓰레드, URL 작업등을 처리
- AddressBookUI: 주소록 관련 기능
- GameKit : 게임 관련 기능
- MapKit : 지도 관련 기능
- NotificationCenter: 노티피케이션 관련 기능
...
- Media라는 단어 그대로 그래픽이나 오디오, 비디오 등의 멀티미디어 기능을 제공
- C 와 Objectice-C가 혼합되어 개발되어 있음
- Media 프레임워크 안에는 아래와 같이 여러개의 작은 단위의 프레임워크들이 존재한다.
- Photos : 사진 관련 기능
- CoreGraphics: 2D 화면 그리기 관련 기능
- AssetsLibrary: 앨범 관련 기능
- AVFoundation : 영상 관련 기능
...
2.3. Core Service Framework 계층
- Core OS 계층에서 제공하지 않는 기능들을 포함
- 내부 데이터, 위치, 센서 등의 기능을 제공
- Core Service 프레임워크 안에는 아래와 같이 여러개의 작은 단위의 프레임워크들이 존재한다.
- Webkit : HTML 관련 처리 기능
- CloudKit : iCloud 연동 처리 기능
- CoreLocation : 위치, 방향 데이터 처리 기능
- StoreKit : In-App Purchase 구현 기능
...
2.4. Core OS Framework 계층
- 하드웨어와 가장 가까이 있는 최하위 계층
- C기반의 저수준의 API로 이루어져 있음
- 커널, 파일 시스템, 네트워크, 보안, 디바이스 드라이버 등의 low-level 핵심기능을 포함하여 iOS가 운영체제로서 역할을 하게 함
- CoreBluetooth : 블루투스 연결 관련 처리
- LocalAuthentication : TouchID, 사용자 인증 관련 처리
- Security : 키체인 및 인증서 관련 보안 처리
...
3. 개발자가 자주 쓰는 핵심 프레임워크
3.1. Foundation 프레임워크 ⭐️
- Cocoa Touch 프레임워크 계층에 포함되어 있음
- 기본적인 자료 구조, 스트링 처리, 메모리 관리 등의 기능을 제공
- Foundation에서 제공하는 클래스들은 모두 'NS-' 접두어가 붙는다.
- NS로 시작하는 클래스를 사용시에는 Foundation 프레임워크를 import 해줘야 함
3.2. UIKit 프레임워크 ⭐️
- Cocoa Touch 프레임워크 계층에 포함되어 있음
- 사용자에 의해 발생하는 이벤트, UI(화면)와 관련된 작업을 처리할 때 사용
- UIkit 프레임워크 안에는 Foundation 프레임워크가 내포되어 있으므로 UIkit 프레임워크만 선언하면 Foundation 프레임워크의 기능을 사용 가능
🙋 Foundation와 UIKit 프레임워크의 자세한 내용은 추후 다시 다뤄보겠다.