이곳은 개발을 위한 베타 사이트 입니다.기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 macOS (문단 편집) ====# 카본(Carbon: 32비트 한정, 64비트 없음, 지원중단) #==== NeXTSTEP 시절부터 macOS의 API는 아래에서 설명할 Cocoa였다. 원래 Apple은 macOS의 API로서 클래식과 코코아의 두 가지를 고려하고 있었고 클래식은 사실상 호환성 모드일 뿐이었으므로 결국 macOS용 응용 프로그램은 기존 Mac OS의 API와는 전혀 다른 코코아로 작성하는 수밖에 없었다. 십수 년 묵은 코드 덩어리인 [[Adobe Photoshop]]이나 [[Microsoft Office]]를 모두 재작성할 상황에 놓이게 된 Adobe나 Microsoft 등의 반대에도 불구하고 Apple은 이를 밀어붙이려고 하였으나… Mac OS용 [[QuickTime Player]]을 macOS용으로 재작성하던 Apple은 기존 응용 프로그램을 코코아로 포트하는 작업이 장난이 아님을 스스로도 깨닫게 되었다(…). 결국 Apple은 ~~자신의 작업을 편하게 만들고자~~ macOS가 네이티브하게 기존의 Mac OS API를 지원할 수 있도록 하였는데 이것이 바로 카본이다. 다만 macOS에서 Mac OS의 클래식 API들을 모두 네이티브하게 지원하면 OS 자체가 비효율적이 되므로 Apple은 기존 API 중 높은 빈도로 사용되는 중요한 것들만 카본 API에 포함시켰다. ~~그리고 기존 Mac용 소프트웨어 개발업체들은 자신들의 소프트웨어를 신나게 카본화시켰다.~~ 카본은 기존 Mac OS API의 부분집합이라고도 할 수 있기 때문에 카본으로 작성된 응용 프로그램은 카본 라이브러리 확장 파일이 설치된 Mac OS 8.6이나 9에서도 실행이 가능했다. 이런 점에서 Windows 95 시절의 Win32s[* Win32s 응용 프로그램은 Windows 95와 Win32s 라이브러리가 설치된 [[Windows 3.1]]에서 모두 실행 가능했다.]와 비슷한 점이 있지만 곧 사장된 Win32s와 달리[* 이게 사장된 이유는 Windows 95가 하위 버전 호환성이 대단히 좋았기 때문에 굳이 하위 버전을 돌릴 필요가 없었기 때문이다. Windows 95는 Windows 3.1에서 쓰던 16비트 [[Windows API]]를 모두 가져간 것도 모자라서 도스용 프로그램도 돌릴 수 있게 MS-DOS를 아예 내장해놨다. 이 하위 호환성을 [[Windows 95]]부터 26년(!) 넘게 유지하다(다만, 64bit는 지원하지 않고, 32bit 운영체제만 지원하였다.) [[Windows 11]] 에서 32비트 버전을 출시하지 않기로 하면서 자연스럽게 NTVDM(NT Virtual DOS Machine)을 없엤다.] 카본은 2015년 현재까지도 그럭저럭 사용되고 있다는 점에서는 다르다. 카본 API는 기존 응용 프로그램을 손쉽게 macOS 네이티브 응용 프로그램으로 포트할 수 있도록 한다는 장점은 있었으나 macOS 본래의 API는 아니었기에 macOS가 제공하는 기능을 모두 사용할 수는 없다는 문제가 있다. 예컨대 macOS의 화면 렌더링 기능을 사용할 수 없어서 글자 등이 더 못생기게(…) 보인다거나 macOS가 제공하는 맞춤법 검사기 기능에 접근하지 못하는 등의 문제가 있다. 물론 하나의 응용 프로그램에 Carbon과 Cocoa를 혼용하는 것이 가능하기 때문에 위의 기능들을 코코아 코드를 통해 구현하여 외형적으로는 Cocoa 응용 프로그램과 거의 동일한 Cabon 응용 프로그램을 만드는 것도 가능하다. 예컨대 macOS의 Finder의 구버전이나 Microsoft Office. 단 그렇게 되면 해당 응용 프로그램을 Mac OS 8.6이나 9에서 실행할 수 없다. 카본으로 작성된 Microsoft Office가 너무 무거운 나머지 카본 응용 프로그램은 코코아보다 느리다는 편견이 존재하지만 사실은 그렇지 않다. 사실 Apple 스스로도 Finder나 QuickTime 같은 macOS의 핵심 구성 요소들을 카본으로 작성했다.[* 원래 68k에서 PowetPC로 옮길 때에도 Apple은 개발 기간의 절약을 위해 운영체제 안에 68k 코드를 남겨두고 에뮬레이션으로 실행시키게 한 바가 있다(…).] 어쨌든 Apple에게 카본은 과도기적 API에 불과하므로 64비트 카본 API는 제공하지 않기로 하였으며 결국 [[macOS/버전#s-19|macOS Catalina]]부터 32비트 프로그램이 구동 불가능해지게 되면서 사용이 불가능해졌다. 이미 Apple은 Finder와 QuickTime 등의 macOS 구성 요소는 물론 [[Final Cut Pro]] 등의 프로용 응용 프로그램 역시 Cocoa로 이전시킨 상태다. 여담이지만 이로 인해 Adobe는 Mac용 64비트 Photoshop을 코코아로 재작성하느라 CS4에서는 Mac용 64비트 버전을 출시하지 않았다.[* 현재는 모두 코코아화하여 Mac용도 64비트 버전을 제공한다.] [[Steam|스팀]] 클라이언트도 방대한 [[C++]] 코드의 재사용을 위해 카본을 사용한다. 덕분에 Mac용 스팀은 (UX 측면에서) 상당히 구리고 다국어 입력도 참 거지같았다.[* 이 때문에 국내 Mac용 스팀 사용자 중 한 명이 Mac용 스팀 포럼에 클라이언트를 코코아로 재작성하라는 [[http://steamcommunity.com/discussions/forum/2/828933455718056042|탄원]]을 올렸지만 상큼하게 묻혔다.] 물론 64비트로의 이주가 완전히 끝난 2021년 현재는 관계 없는 이야기.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기