Fast campus School

Swift iOS 개발

[어디에도 없는 진짜 스타트업 이야기] iOS 개발자

어디에도 없는 진짜 스타트업 이야기

2017.03.15 | 8230 명 읽음


취업을 고민하고 계시는 여러분께 'iOS 앱 개발자'로 스타트업 취업하는 방법을 소개 드리고자 합니다. 먼저 'iOS'가 무엇인지부터 말씀드려야겠네요. 아이폰이 나오기 한참 전에도 애플은 컴퓨터를 만들고 있었고, 이 컴퓨터들은 'Mac'이라는 이름으로 출시가 되었죠. 그리고 이 Mac에 쓰이는 OS(Operating System)은 Mac OS라고 불렸습니다. Mac에 쓰이는 OS가 Mac OS면, iPhone에 쓰이는 OS는? iOS 입니다. iOS는 애플이 만든 모바일 OS로 모든 소스 코드가 공개되어 있는 안드로이드와 달리, 모든 정보와 권리를 애플이 갖고 있는 폐쇄형 OS 입니다.




# 아이폰앱의 어플을 만드는 사람, 'iOS 개발자'


이 iOS 개발자는 다들 아시다시피 아이폰이나 아이패드에 들어가는 애플리케이션을 만드는 사람들이죠. 그럼 iOS 개발자들이 사용하는 도구들부터 알아볼까요? iOS는 애플이 만들고, 애플을 위해서 사용되어야 하는 폐쇄형 OS라고 앞서 말씀드렸습니다. 그래서 iOS 개발자가 되려면 가장 필요한 것이 바로! Mac입니다. 아이맥이건, 맥북 프로건, 맥북 에어건 일단 MAC이 있어야 하죠. 그러면 윈도우를 쓰는 사람은 iOS 개발자가 될 수 없냐고요? 아닙니다. 어떤 상황에도 살아날 구멍은 있는 법! MAC이 아닌 윈도우 컴퓨터라도 마치 Mac OS인 것처럼 만들어서 쓰는 방법이 있습니다. 이를 '가상 개발 환경 구축'이라고 합니다 (자세한 방법까지 여기서 설명드리기 어려울 것 같아요). 그래도 기왕 iOS 개발자가 되어서 스타트업 취업을 하시려면 일단 어떤 종류든 애플의 Mac을 구비하시는 것을 추천합니다.


X code <출처: 애플 공식 홈페이지>


iOS가 폐쇄적이란 걸 익히 아는 사람들은 흔히 애플을 제국에 비유합니다. 개발자나 사용자들에게 애플의 방식을 따르게 하지만, 그만큼 부유하고 거대한(편리하고 사용자가 많은) 제국이라는 거죠. 이 애플 제국은 윈도우나 안드로이드 같은 외부와의 교류는 어렵게 해놨지만, 그 안에서 필요한 모든 것들을 구할 수 있게 되어 있습니다. 당연히 iOS 개발자들이 사용하는 어플리케이션 개발 도구도 애플이 준비를 해놨구요. 이 개발 도구들을 패키지로 묶어놓은 것은 'Xcode'라고 부릅니다. 이 Xcode 하나만 있으면 아이폰용 앱이든, 아이패드용 앱이든, 심지어 Mac OS에 쓰이는 프로그램도 만들 수가 있는 것이지요. Xcode로 애플 제국에 필요한 모든 걸 만들 수 있습니다.


Xcode까지 설치를 완료하셨다면 이제는 iOS로 애플리케이션을 개발할 준비를 마치셨다고 보아도 괜찮습니다. 간단하죠? 물론! 도구만 갖추었다고 모든 걸 할 수 있는 건 아닙니다. Xcode를 깔았다고 iOS 개발자가 되면 스타트업 취업은 아무나 하게요? 그냥 '준비'만 된 거죠. 개발 도구인 Xcode를 사용하려면 개발 언어를 알아야 한다는 것, 이미 지난 포스팅을 읽어오신 여러분들이라면 잘 알고 계실 겁니다. 그 개발 언어가 무엇이냐! Xcode가 공식적으로 지원하는 개발 언어는 'Java, C, Python, Swift, Ruby, Objective-C' 등 여러 가지가 있습니다만, iOS 앱 개발자가 되려면 이 많은 개발 언어 중 'Objective-C'를 잘 알아야 합니다.




# Objective-c만 한다고 iOS 개발자가 되는 건 아닙니다


'Swift'를 제외한 다른 언어들은 Objective-C 만큼 모바일 애플리케이션 구축에 사용하기 편리한 언어가 아니거든요. Swift가 등장하기 전에 거의 모든 iOS 앱 개발자들은 Objective-C를 사용해왔고, Swift가 빠르게 점유율을 늘리고 있음에도 불구하고 아직 많은 iOS 앱 개발자들이 Objective-C로 애플리케이션을 개발하고 있습니다. 무엇보다 여러분의 목적은 스타트업 취업이니까요! 많은 기업에서 가장 많이 사용하는 언어를 알고 있어야 현재 서비스하고 있는 앱들의 유지/보수에도 유리하고, 개발하기에도 수월하답니다. 좀 더 나은, 좀 더 훌륭한 iOS 개발자가 되기 위한 수련은 취업한 다음부터! 그래도 Swift에 대한 설명을 안 할 수 없으니 Swift에 대해서는 잠시 후에 또 말씀드리도록 할게요.



그럼 Objective-C를 배워서 Xcode를 쓸 수 있게 되면 iOS 앱 개발자가 되는 것이냐구요? 어어엄밀히 말하면 그렇다고도 볼 수 있지만, iOS 개발자들에게도 좀 더 앱 개발을 쉽게 해주는 도구들이 존재합니다. 그중에 대표적인 것을 하나만 소개 드리면 'Cocoapods'라는 도구가 있는데요. Cocoapods, 코코아콩꼬투리라는 귀여운 이름의 도구죠. 이 Cocoapods의 역할은 무엇이냐?! 개발자들은 좀 더 빠르고 효율적인 개발을 위해 온라인으로 소스 코드를 공유하고, 수정하여 발달시킵니다. 예를 들어, 네이버 블로그나 페이스북, 싸이월드는 모두 사진을 삽입하는 기능이 있죠? 이렇게 각각 다른 사이트라도 비슷한 기능은 그 기능을 구현하는 소스는 비슷할 때가 많습니다. '컴퓨터에 있는 사진을 서버에 올리고, 서버에서 다시 사이트로 가져와서 표시한다.'는 내용은 겹치니까요. 이렇게 다양한 프로그램에 공통적으로 사용될 수 있는 소스를 온라인에 공개하고, 많은 개발자들이 사용할 수 있도록 한 것을 '오픈 소스'라고 부릅니다. 개발자들은 이렇게 공개된 오픈 소스를 가져다가 본인의 프로그램에 넣기도 하고, 본인이 직접 소스를 사용해보다가 느낀점을 오픈 소스에 반영하여 소스코드 자체가 진화하게 됩니다. Cocoapods는 이런 오픈소스를 가져다 쓰는 개발자들을 위한 도구로, 개발자가 가져온 오픈 소스를 편하게 관리할 수 있게 해줍니다. 




# 모든 개발자에게 중요한 역량은 iOS 개발자도 마찬가지


어떻게 하면 iOS 개발자가 될 수 있는지, 무엇을 배워야 하는지는 이제 다 아셨나요? 이런 장비를 갖추고, 기술을 배우면 누구나 iOS 개발자가 될 수 있습니다. 그러면 어떤 iOS 개발자가 좋은 iOS 개발자일까요? 아무래도 스타트업 취업을 생각하고 있으신 분들이라면, 비록 시작한 지 얼마 안 되어 실력은 부족할지라도 어떤 길을 가야 할지에 대한 방향성 정도는 잡고 가셔야 좀 더 빠르게 발전할 수 있겠죠? iOS 개발자에게, 아니 모든 개발자에게 가장 중요한 역량은 언제나 '커뮤니케이션'입니다. iOS로 앱을 개발하는 사람들은 이 상품의 기획자, 서버개발자, 웹서비스와 연동된 앱이라면 프론트엔드 개발자, 앱을 디자인하는 디자이너 등 해당 앱과 관련된 모든 사람들과 커뮤니케이션을 해야 해요. 커뮤니케이션이 당연히 중요할 수밖에 없겠죠?



그리고 iOS와 같이 모바일용 앱들은 100% 고객/유저들이 직접 사용하는 프로그램이기에 예쁘면서도 사용하기 편하게 프로그래밍 되어야 합니다. 거기다가 스마트폰들은 컴퓨터나 태블릿에 비해 화면도 작습니다. 디자이너가 아무리 예쁘게 디자인을 해줘도, 버튼을 터치하기가 어렵다면 그 디자인을 그대로 사용할 수는 없는 겁니다. 그렇지만 개발자로서 이 앱에 필요한 기능을 다 넣기는 넣어야 하겠죠. 심지어 요즘 스마트폰 앱 사용자들은 조금이라도 사용하기 불편하면 바로 그 앱을 지워버립니다. 이렇게 사용성과 디자인 사이에서 UI를 구현하는 것이 앱 개발자의 실력에 달려있는 거죠. 그리고 사용성이 좋은 UI를 만들려면 UX에도 당연히 조예가 있어야겠죠. 예쁘고 간단하고 편리한 앱을 만드는 일은 어렵고 힘들다고 생각하시면 돼요...^^


같은 모바일 개발자라도 iOS 개발자만이 좀 더 신경 써야 하는 부분도 있습니다. 우선은 iOS는 안드로이드에 비해 좀 더 규격화된 프로그래밍을 요구합니다. 힘주면 다른 기능이 나오는 포스터치나, 두 손가락 스와이프같이 이미 정해진 제스처가 있죠. 이런 식으로 정해진 내용을 염두에 두고 앱을 설계해야 하다 보니, iOS와 Mac OS 자체에 대한 이해가 깊어야 하죠. 또, 이렇게 애플이 정해놓는 규격이 변하게 되면 iOS 개발자들도 이런 변화에 발 빠르게 대응해야 합니다. iOS의 버전이 올라감에 따라 더 이상 지원하지 않는다든가, 새롭게 생겨난 기능들을 습득해서 본인의 앱에 적용할 필요가 있거든요. 게다가 애플은 매년 정기적으로 새로운 기술과 변경점들을 발표하다 보니 조금이라도 게으르게 하다 보면 어느샌가 개발 트렌드에 뒤처지고 만답니다. 훌륭한 개발자가 되려면 매년 바뀌는 애플 개발 환경에 대한 빠른 follow-up은 필수에요. 애플이 매년 WWDC에서 발표하는 새로운 기술을 보려 수많은 사람들이 밤을 지새우는 데는 이런 이유도 있습니다. 무엇보다 iOS 개발자로 스타트업 취업을 하려면, 올해의 WWDC에 어떤 기술이 발표되었는지 정도는 필수로 알아놓아야겠죠? 




# iOS 개발자들이 사랑하는 개발 언어계의 멀티플레이어 'Swift'!!!


<출처: 애플 공식 홈페이지>


이렇게 일어나는 변화 중에 현재 iOS 개발자들 사이에서 가장 큰 화두가 되고 있는 것은 바로 개발 언어 'Swift'의 등장입니다. Swift는 2014년 8월 애플이 발표한 언어인데요, 오픈소스로 공개되었습니다. 이는 이제까지 다른 개발 환경에 비해 폐쇄적인 성격을 띠고 있던 애플의 입장에서는 파격적인 내용이었는데요. 그냥 오픈 소스로만 발표된 것이 아니라 Objective-C에 비해서 다른 개발 배경을 가진 개발자들이 훨씬 더 접근하기 쉬운 방향으로 설계되었죠. 이 Swift를 이용해서 iOS 앱뿐만 아니라 안드로이드 앱, 심지어 서버 개발에까지 사용할 수 있도록 범용성 있게 사용할 수 있답니다. 하나의 언어를 배워서 다양한 개발을 진행할 수 있다는 것은 개발자로서는 큰 이익이기에(이전 포스팅의 JavaScript와 Node.JS의 관계를 생각하심 됩니다) 빠른 속도로 그 영역을 넓히고 있습니다. 출시 만 2년이 된 지금, 이미 약 30%가량의 iOS 개발이 Swift로 혹은 Swift와 Objective-C를 혼합하여 제작되고 있거든요. 


자 이렇게 스타트업 취업 직무 시리즈의 개발자 편이 모두 완료되었습니다. 도움이 좀 되셨나요? 어렵거나 궁금하신 내용은 언제든지 문의해 주시면 되어요. 스타트업 취업 직무 시리즈는 다음 포스팅에서 데이터 사이언티스트 편으로 다시 돌아올게요~!




[클릭] Swift로 상상속 앱을 만들고 주니어 iOS 개발자가 되고 싶다면? >>