Cocoa (코코아)에 대하여

Tabber·2021년 5월 29일
1
post-thumbnail

Why?

요즘 iOS 공부를 하면서 코코아, 코코아 터치, 코코아 프레임워크 등등이 너무 자주 보였다. 그래서 이번에 정의를 다지는겸 블로그에 남기기로 했다.

코코아의 정의

일단 코코아가 뭘까?

Cocoa and Cocoa Touch are the application development environments for OS X and iOS, respectively.
(코코아와 코코아 터치는 각각 OS X와 iOS를 위한 애플리케이션 개발 환경입니다.)

애플의 공식 문서인 Cocoa 에서는 이렇게 표현한다.
위 설명을 보면 코코아는 'Mac OS X(지금은 Mac OS)'를 위한 애플리케이션 개발 환경이고,코코아 터치는 'iOS'를 위한 애플리케이션 개발 환경이다. 애플리케이션 환경을 제공해주는 용도로 사용하는 듯 하다.

'코코아'라는 단어는 Objective-C 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용합니다. 출처 - 부스트코스 iOS 앱 프로그래밍 강의

코코아 라는 단어 자체가 애플 제품의 애플리케이션 개발의 생태계라고 생각하면 될 듯 하다.

코코아 프레임워크

이러한 환경을 제공해주는 방법으로 코코아 프레임워크가 존재한다. 코코아 프레임워크는 기본적인 자료형과 메소드가 정의되어 있는 Foundation Kit과 주로 UI 개발에 사용되는 Application Kit으로 이루어져 있다. 맥에서 사용하는것이 코코아 라고 불리우고, iOS에서 사용하는 것이 코코아 터치라고 불리운다.

코코아 터치는 핵심 프레임워크인 UIKitFoundation Kit을 포함하고 있다.

Foundation 프레임워크는 가장 기본적인 객체의 동작을 정의 하는 클래스와, NSObject를 구현한다. (이후에 더 공부해서 작성하겠다.) String과 Number, Array와 Dictionary 등 우리가 코드를 작성하며 사용하는 기본적인 클래스들을 제공하는 것이다.

애플리케이션의 유저 인터페이스를 개발하기 위해서 UIKit과 AppKit을 사용한다.
하지만 AppKit은 Mac 환경에서 사용하고, UIKit은 iOS 환경에서 사용한다라는 차이점이 존재한다. 대부분의 시각적인 처리는 위 Kit에서 제공한다.

이렇게 코코아,코코아 터치, 코코아 프레임워크에 대해 알아보았다.

여담

이름을 코코아로 지은 이유가, 그 당시 핫했던 언어인 JAVA에 영향을 받아 "이 언어는 어린아이도 사용할 수 있는 쉬운 Java"(Java for Kids)라는 뜻으로 코코아로 지었다고 한다.

profile
iOS 정복중인 Tabber 입니다.

0개의 댓글