Objective-C는 왜 Apple의 언어가 되었을까 ?

영모·2023년 4월 14일
20
post-thumbnail

이 문서는 Swift 언어가 나오기 이전의 시기와 Apple의 운영체제인 OS X 주 언어인 Objective-C의 내용을 담고 있습니다.

2007년 iPhone의 등장

뜬금없이 iPhone 얘기를 하는 이유는 APPLE의 OS에서 가장 유명한 OS인 iOS를 짧게 소개해보려고 하기 위함입니다. 살짝 아이스 브레이킷 느낌으로 갑니다.
(😇: 저는 아이폰 12를 사용합니다.)
글은 팩트 기반이지만, TMI나 저의 생각들은 이런식으로 천사 이모지가 설명해드릴거에요 !

최초의 스마트폰 운영체제 iPhone OS 1

APPLE의 가장 유명한 제품인 iPhone은 2007년 스티브 잡스의 연설로 시작합니다. 청바지에 검은색 터틀넥, 이 발표를 시점으로 Apple은 가파른 성장 곡선을 유지하고 있습니다.

iPhone OS 1의 기능으로는 메모, 전화, 사파리, 계산기, 날씨 등 현재까지도 유지되고 있는 앱들과 기본적인 기능이 탑재되어있습니다. 스티브잡스가 빠른 출시를 위해서 "앱스토어는 나중에 넣어도 된다." 라고 말했다고 합니다.

| 😇: 애플을 좋아하는 사람들은 소름이 돋았을 겁니다. 스티브 잡스의 iPhone 공개 프레젠테이션은 먼가 .. 미쳤습니다. |

iPad의 등장으로 iOS로 이름 수정

iPhone OS 라는 이름은 iPad의 등장으로 수정되어야 했습니다. 이제 iPhone OS는 iPhone과 iPad에 모두 사용될 예정이었기 때문입니다.

| 😇: 현재는 iPadOS와 iOS로 분리되었는데, iPadOS는 iOS와는 아주 밀접한 관계를 갖지만, iOS에는 없는 기능들이 존재합니다. Apple은 이 둘의 운영체제를 아예 다르게 가져갈 생각은 없고, 디바이스만의 차별성을 주기 위해 분리를 시켰습니다.|

iOS 16 버전

2022년 6월 7일 WWDC 에서는 iOS 16을 공개 했습니다. 다이나믹 아일랜드, 액티비티킷을 사용한 잠금화면 라이브 위젯, 등 많은 신 기술이 도입되고 있고 APPLE은 매년 새로운 버전을 공개하고 있습니다.

| 😇: 다이나믹 아일랜드와 액티비티킷은 Flutter에서도 제한된 네이티브 영역의 기술입니다. 주의 사항을 Flutter 공식문서에서 확인할 수 있습니다. |

Objective-C는 왜 Apple의 언어가 되었을까 ?

Objective-C언어는 1984년에 등장했고, 아주 옛날로 🕰️ 시간 여행을 해보겠습니다. 저를 따라오세요. 🏃‍♀️ 팩트 기반으로 설명 합니다. 시간 아깝지 않을거에요. 왜냐면 열심히 정리해봤거든요. | _ \

스티브 잡스, APPLE을 창립하다.

부모님의 차고지에서 스티브 워즈니악과 스티브 잡스는 개인용 컴퓨터인 Apple-1을 만들고 Apple Computer Company를 창립합니다.

| 😇: 당시 잡스는 비즈니스 쪽을 담당하고 워즈니악은 개발을 담당했습니다. 특히 Apple-2의 기술력은 뛰어났고, 당시 Apple의 기술은 모두 워즈니악에 의존하고 있었습니다. |

매킨토시의 흥행, 펩시 CEO 존 스컬리 영입

당시 매킨토시는 흥행세를 이어가고 있었습니다. 어느정도 규모가 커진 Apple은 당시 신입사원으로 출발해 본인의 노력으로 11년차 펩시의 CEO 자리까지 올라온 존 스컬리라는 사람을 영입하는 일화가 있습니다.

'남은 평생 설탕물이나 팔겠습니까, 아니면 세상을 바꾸겠습니까?' 아주 유명한 일화인데, 잡스의 이 멘트에 존 스컬리는 혹해서 Apple 사에 영입 당합니다. 당시 잘나가는 펩시의 CEO를 데려온 것 만으로도 이당시 Apple과 스티브 잡스의 영향력을 확인할 수 있습니다.

존 스컬리와의 극단적인 견해차로 인한 스티브 잡스 해고 결정

존 스컬리는 잡스는 "날 쫓아낼 수 없을 것"이라고 말했고, 이에 자신은 "두고 보라"며 그를 해고 했다고 회고 했습니다.

기본적인 견해차는 매킨토시 오피스의 판매부진 해결방안의 의견차로 시작됩니다. 스티브 잡스는 '매킨토시 가격을 낮추고 애플2 광고물량 상당부분을 맥으로 옮기고 싶다.'고 했고 존 스컬리는 이에 '스티브, 그래봐야 별 소용없을 거야. 맥이 안팔리는 건 가격이나 광고와 아무상관이 없어. 만일 그렇게 하면 우리는 회사를 적자에 빠지는 것을 감수해야 될 거야' 라고 했다고 합니다.

스티브 잡스 Apple 주식 정리, NeXT 창립

스티브 잡스는 가지고 있던 Apple 주식을 1주만 남기고 모두 정리합니다. 당시 스티브 잡스가 가지고 있던 Apple의 주식은 전체 주식의 11%에 해당되는 양이었습니다.

스티브 잡스 스탠포드 연설에서 이 해고의 경험이 '그때는 전혀 몰랐지만, 저에게 일어날 수 있었던 일 중 최고의 사건' 이었다고 말하였습니다. 이 연설에서 '지금 잇는 점들이 미래의 어떤 시점에 서로 연결될 것이라는 믿음을 가지라'라는 유명한 말을 남깁니다.

해고된 스티브 잡스가 다시 APPLE의 돌아올 수 있었던 것은 NeXT라는 컴퓨터 회사를 창립했기 때문입니다. 이 시기에 스티브 잡스는 컴퓨터 그래픽 회사인 PIXAR도 인수합니다.

| 😇: 잡스는 '픽사 이미지 컴퓨터'회사를 1000만 달러에 사들였고 이렇다할 수익을 내지 못하는 회사였고 매각을 고민하는 시점에서 '토이 스토리'로 대박을 터뜨리고. 훗날 PIXAR는 디즈니에 인수됩니다. |

자체 운영체제 NeXTSTEP 개발, 주 언어 Objective-C 채택

Objective-C 언어는 스텝스톤이라는 회사에서 일하고 있던 브래드 콕스와 톰 러브라는 두 연구원이 만들었습니다. Objective-C는 C언어의 상위호환 하며, 스몰토크의 객체지향 문법을 차용하여, 객체지향적인 C언어 라고 할 수 있습니다.

NeXT는 스텝스톤에게 Objective-C의 사용 허가를 받고 워크스테이션에 들어갈 자체 운영체제인 NeXTSTEP의 주 언어로 채택합니다. NeXT가 출시한 하드웨어들은 망했지만, 그 안에 들어가있는 소프트웨어의 기술력을 세상에 인정받습니다. NeXT는 하드웨어 사업을 접고 소프트웨어 중심으로 NeXTSTEP를 확장시켜 나갑니다.

모든 출발 선은 NeXTSTEP이라는 운영체제이고, Objective-C와 Apple의 인연은 여기서 부터 시작됩니다.

| 😇: NeXT는 iOS 개발자라면 들어봤을 법한 FoundationKit과 AppKit가 포함되어있는 API를 묶은 OPENSTEP도 개발합니다. |

OS 기술력의 한계를 인정하고 내린 Apple의 결정 🗡️


APPLE은 Windows에 의해 독점이 실패했고 APPLE은 뒤늦게 Windows의 기술력을 따라가야 하는 상황이었습니다. 자체 Mac OS 여러번 개발을 시도하다가 기술 지연 등의 이유로 실패하고 외부에서 Mac OS를 사들이는 특단의 조치를 내리기로 결정했습니다.

당시 후보군이었던 Be와 NeXT 중 NeXT사의 NeXTSTEP을 사들이기로 결정했고 회사를 통째로 인수하기로 결정했습니다.

| 😇: 후에 Be사의 BeOS는 Palm이라는 회사에 인수됩니다. |

Apple의 NeXT 인수, 스티브 잡스 12년 만에 CEO 복귀, OS X 출시

Apple의 입장에서 스티브 잡스는 사실 운영체제를 인수하면서 딸려온 인물이었습니다. 하지만, 이 이후에 스티브 잡스는 엄청난 업적들을 세우게 되고 훗날 APPLE의 회사를 1위 기업으로 만들 iPhone 이라는 하드웨어 제품을 만들게 됩니다.

애플은 NeXTSTEP을 기반으로 새로운 Mac OS인 OS X를 출시합니다. 이 OS X에는 여러 개발 툴들이 포함되어있었습니다. 그 중 프로젝트 빌더(Project Builder)라는 개발 환경을 제공했고 이는 나중에 Xcode라는 이름으로 변경됩니다.

| 😇: 하하. 그 엑스코드 맞습니다. |

오늘날 애플의 Cocoa의 시작점도 여기서부터 출발합니다. Cocoa API는 macOS 전용이고 iPhone, iPad, iPod의 API인 Cocoa Touch API (Cocoa Touch Layer)로도 파생됩니다.

| 😇: Cocoa Touch Layer은 iOS의 Architecture의 4 Layer 중 하나입니다. (Core OS, Core Services, Media, Cocoa Touch) |

| 😇: mac OS는 1버전부터 9버전까지 출시가 되었고, 이후 부터는 mac이라는 단어가 제거된 OS X로 출시 되었습니다. OS X 치타, OS X 퓨마 ... OS X 시에라를 발표 하면서 macOS로 다시 이름이 변경되었습니다. 현재는 macOS Ventura 이런 식으로 이름이 붙습니다. |

OS X 로부터 파생된 OS 들의 등장

iOS, iPadOS, watchOS, tvOS, macOS 모두 OS X의 기술력을 기반으로 파생된 OS 들입니다. 그 OS X는 바로 NeXTSTEP의 기술력으로 만들어졌습니다.

어쩌면, Objective-C의 언어는 이렇게까지 많은 OS의 기반이 될거라고 상상이나 했을까요 ? 아마도 아닐겁니다.

| 😇: 다음에는 어떤 OS가 등장할까요. WWDC가 두 달 남은 시점에 글을 작성하고 있습니다. |

Swift 언어의 등장

Apple은 Objective-C를 버리고 새로운 프로그래밍 언어인 Swift를 발표합니다. 정이 많이 들었지만 이제는 떠나보내야할 때가 된 것 같네요. 그동안 고마웠어. 🙇‍♀️ 여기서는 짧게만 소개해보려고 해요.

2014년 WWDC에서 애플은 새로운 프로그래밍 언어인 Swift를 발표합니다.
Swift 언어의 장점으로는 Safe(안정성), Fast(신속성), Expressive(더 나은 표현성)이 있습니다.

| 😇: 언어 설명은 블로그에 너무너무 정리하고 싶지만, PPT로만 만들었어서 조만간 꼭 정리하려고 합니다.. |

마치며

이 글을 쓰게된 이유

| 😇: 제가 사실 이번에 18학번 화석이지만, 앱 동아리에 들어갔습니다. (ㅎㅎ..) 동아리 활동 1주차때 아득바득 우겨서 모든 사람이 들을 법하게 iOS를 소개해보겠다 라고 회장님께 말씀드려서 60명 정도 앞에서 발표를 했는데, 너무 좋은 경험이었어요.

블로그로 동아리를 홍보하는건 아니었고 응원은 자유니깐 왜냐면 블로그는 기록용이니깐 저도 한컷 기록해보았습니다. 하하. 알고싶지 않은 정보셨겠죠 .. 지나쳐주세요. 아니면 깃허브도 놀러와주세요. |

참고문서

https://zdnet.co.kr/view/?no=20130910095414
https://macclub.tistory.com/5
https://ko.wikipedia.org/wiki/%EC%95%A0%ED%94%8C
https://ko.wikipedia.org/wiki/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8B%B0%EB%B8%8C-C

profile
iOS Developer

2개의 댓글

comment-user-thumbnail
2023년 4월 16일

알아가는 내용이 많아서 배워갑니다

답글 달기
comment-user-thumbnail
2023년 4월 21일

정말 유익하네요!

답글 달기