Open Hminchae opened 4 months ago
UIKit
은 iOS Application에서 User Interface를 구현하고 관리하는 프레임워크UIKit
FrameWork는 Gesture
, Animation
, draw
, 이미지 처리 , 텍스트 처리 등 사용자 이벤트를 처리를 위한 클래스를 포함한다.UIKit
내부에는 UITableView
, UICollectionView
, UIButton
, UIAlertController
등 애플리케이션 화면을 구성하는 요소들을 포함하고 있다.UIKit
클래스 중 UIResponder
에서 파생된 클래스나 사용자 인터페이스에 관련된 클래스는 애플리케이션의 메인 스레드(혹은 메인 디스패치 큐)에서만 사용한다.Cocoa Touch FrameWork
는 iOS애플리케이션 개발 환경으로, 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크를 포함하는 Top - Level - FrameWork 이다.Cocoa FrameWork
는 macOS
애플리케이션 제작에 사용하는 프레임 워크이다.Cocoa
라는 단어는 Objective - C
런타임을 기반으로 하고, NSObject
를 상속받는 모듈 클래스 또는 객체를 가리킬 때 사용한다.Cocoa
또는 Cocoa Touch
는 iOS
또는 macOS
의 전반적인 기능을 활용해 애플리케이션을 제작할 때 사용하는 프레임워크이다.Cocoa Touch
는 핵심 프레임워크인 UIKit
과 Foundation
, CoreData
, MapKit
, CoreAnimation
을 포함한다.
Cocoa Touch Framework
ios앱을 만드는데 필요한 여러 개발도구를 포함하는 최상위(가장 프로그래머와 가까운) 프레임워크
먼저
코코아(Cocoa)
라는 단어는,NSObject
를 상속받는 모든 클래스, 모든 객체를 가리킬 때 사용하는 단어다.초기에 애플이 NeXT에서 이걸 샀을 때는 블루 박스라고 불리다가. 이제는 코코아라 불린다. Objective-C에는 C++ 같은 네임스페이스가 따로 없기 때문에, 충돌을 피하기 위해 보통 클래스의 이름 앞에 Prefix를 붙인다. Foundation Kit 프레임워크 클래스들은 덕분에 이름앞에 죄다 NS(NeXTSTEP에서 따와서 NS)를 붙여놓았다. NSString이라든지 NSArray라든지.
코코아라는 이름은 그당시 지금이상으로 핫했던 언어인 Java가 커피원산지에서 따온 이름이기 때문에, 애플 개발자는 어린아이도 할 수 있는 자바(Java for kids)라는 의미에서 코코아라고 이름지었다고 한다.
코코아 터치는 애플이 아이폰, 아이패드, 아이팟터치와 같은 제품의 소프트웨어 애플리케이션을 구축하기 위해 제공하는 사용자 인터페이스 프레임워크다. 주로 Object C 언어로 작성되었으며 Mac OS X에 기반을 두고 있다. 코코아 터치는 모델 뷰 컨트롤러 소프트웨어 아키텍처를 기반으로 개발되었다. 코코아 터치에서 이용할 수 있는 높은 수준의 응용 프로그램 프로그래밍 인터페이스는 애니메이션, 네트워킹, 그리고 코드 개발을 덜 하고 개발된 응용 프로그램에 기본 플랫폼의 모양과 동작을 추가하는 것을 돕는다.
참고로 비슷한 이름의
코코아 프레임워크
는macOS
개발 환경을 위한 프레임워크라고 한다. 그렇기 때문에, 아이폰, 아이패드 등의 터치기반의 iOS 개발환경에코코아 터치 프레임워크
라는 이름이 붙게된 것 같다.import
CoreData
UIKit
UIKit 프레임워크는 사용자의 인터페이스를 관리하고, 이벤트를 처리하는게 주 목적인 프레임워크다.
Foundation
원시 데이터 타입
(String, Int, Double)부터가Foundation
에 포함되어있기 때문에, 프레임워크를 상속하지 않으면 아무것도 할 수 없다고 봐도 무방하다.UIKit은 가장 위인 Cocoa Touch 계층이고 그보다 두단계 Foundation은 Core Service 계층이다. 그렇기 때문에 UIkit이 Foundation 프레임워크를 상속했을 가능성이 높다.결과적으로 UIkit을 상속하는 것 만으로, Foundation도 함께 상속한 결과를 내는 것이다.그렇다고 해서, 모든 상위계층이 하위계층을 포함하고 있다거나, 같은계층끼리의 포함관계가 없는 것은 아니다. 예를들어 같은 계층의 GameKit은 UIkit을 상속하고있고, Foundation은 CoreFoundation을 상속하고 있다.
Cocoa Touch 계층
하위 계층의 프레임워크를 사용하여 애플리케이션을 직접 구현하는 프레임워크.UIKit, GameKit, MapKit
Media 계층
상위 계층인 코코아 터치 계층에 그래픽 관련 서비스나 멀티미디어 관련 서비스를 제공Core Graphics, Core Text, Core Audio, Core Animation, AVFoundation
Core Service 계층
문자열 처리, 데이터 집합 관리, 네트워크, 주소록 관리, 환경 설정 등 핵심적인 서비스들을 제공.또한 GPS, 나침반, 가속도 센서나 자이로스코프 센서와 같이 디바이스의 하드웨어 특성에 기반한 서비스도 제공.Foundation, Core Foundation, Core Location, Core Motion, Core Animation, Core Data
Core OS 계층
커널, 파일 시스템, 네트워크, 보안, 전원 관리, 디바이스 드라이버 등이 포함iOS가 운영 체제로서 기능을 하기 위한 핵심적인 영역