쉽지만 쉽지 않은 개발자의 길
어떻게 개발을 시작해야 할지 모르겠어요.
멘토링을 하다 보면 전공자이지만 개발을 뒤늦게 시작한 대학생 혹은 비전공자이지만 개발을 경험해보고 싶은 분들이 늘 이런 질문을 한다. 그때마다 나는 이렇게 대답한다.
일단 한번 만들어보세요.
아이디어를 정하고, 그 아이디어를 구현하고 시장에 내놓는 것을 의미한다. iOS 개발뿐 아니라 모든 개발 분야에 해당된다고 생각한다. 나 역시 iOS 개발을 실제 앱 제작으로 시작했고 성공적으로 앱스토어에 등록할 수 있었다. iOS 개발을 1도 모르고 앱스토어에 등록까지 성공한 내 얘기를 한번 해보고자 한다.
2016년 12월, 모든 대학생이 그렇듯 나 역시도 이제 취업을 준비해야 하는 4학년이 다가오고 있었다. 당시 나는 취업 시장에 뛰어들기엔 흔히 말하는 '스펙'이 없었다. 다들 갖고 있는 영어 점수도 없었고 공모전 수상, 대외활동 등도 경험한 적이 없었다. 당시 갖고 있었던 기술 스펙은 Java를 활용한 안드로이드 개발을 하는 정도였다. (물론 전혀 잘하지 않았다. 만들어 본 것이라곤 화면 두 개짜리 단순한 앱)
'안드로이드 개발은 경험해봤으니깐 그럼 이 기술을 활용해서 취업에 도전해볼까?'
나는 박효신이라는 가수를 참 좋아한다. 여자 친구랑 박효신 노래의 후렴 부분만 듣고 어떤 노래인지 맞추는 게임을 하던 도중 후렴만 듣고 어떤 노래인지 맞히는 앱을 만들어보는 건 어떨까 생각했다. 너무 재밌을 것 같았다.
아이디어가 정해졌으니 이제 함께할 사람만 구하면 된다. 난 개발을 잘 못하니깐.
"친구야 나랑 이거 같이 만들래?"
대학 동기이자 박효신을 좋아하고 1초 노래 맞히기라는 주제로 안드로이드 앱을 만들어 시장에도 내놓은 경험이 있던 친구에게 물어봤다. 당연히 안드로이드를 해봤고, 프로젝트를 좋아하는 친구이기에 같이 하자고 할 줄 알았다. 나의 예상과 다르게 친구가 말했다.
"나는 이제 iOS 개발만 할 거야."
'iOS? 그것도 개발하는 사람이 있어?'라는 생각이 들 정도로 당시 우리 학교에는 iOS를 개발하는 선배나 동기가 없었다. 친구한테 '왜 갑자기 iOS 개발을 하냐'라고 물어봤는데, 자기 핸드폰이 아이폰이어서 그런다 했다. 안드로이드는 개발해도 자기가 못쓴다고. 이제 iOS도 Swift라는 언어를 사용해서 개발하기 쉽다고도 해줬다.
그럼 박효신 노래 맞추는 앱, 이거 iOS로 하자.
안드로이드도 못하면서 쥐뿔도 모르는 iOS를 같이하자고 해버렸다. 그랬더니 친구가 맥북부터 사라고 했다.
맥.. 북? 나는 삼성 노트북 밖에 없었고 iOS 개발을 하려면 맥북이 필요하다는 것이었다. 다행히도 명절에 받았던 돈과 아르바이트로 조금씩 모은 통장에 백만 원 조금 넘게 있었다. 꽤나 빠른 실행력으로 과감하게 중고나라 미개봉 맥북을 구입했다. 이제 장비도 있겠다, 겨울 방학 동안 절(?)에 들어가서 공부하는 마음으로 친구가 있는 학교 기숙사를 신청했다. 자 이제 시작이다.
기숙사 생활이 시작되었고 친구가 일주일 정도 바빴기에 나는 그 사이에 iOS 공부가 필요했다. 친구에게 Swift와 iOS에 대해 빠르게 공부할 수 있는 자료를 공유받았고 공부를 시작했다. 애플에서 기본으로 제공하는 컴포넌트만 사용해도 예뻐지는 앱을 보며 iOS라는 플랫폼이 매력적으로 다가왔고 내가 원하는 것을 얼른 만들어보고 싶은 마음이 샘솟았다.
내가 한번 노래 맞추는 부분을 먼저 해볼게!
노래 맞추기 앱의 핵심 기능인 노래를 듣고 사용자가 입력한 게 정답인지 확인하는 부분을 해보고 싶었다. 당연하게도 일주일간 공부했던 내용으로는 해결하지 못하는 문제들이 많았다.
- 노래는 어떻게 틀어야 하지?
- 1초만 어떻게 재생하지?
- 등등..
구글의 도움을 받자.
'iOS audio play', 'iOS audio one second play' 등 문법은 안 맞지만 어떻게든 내가 원하는 해답을 찾기 위해 이틀 밤을 꼬박 지새워 검색하고 구현했다. 이해하지 못하는 것이 있더라도 만드는 것에 초점을 두었고 나름대로 프로토타입(?)을 만들었다.
좋아, 이제 디자인을 입히고 저작권 문제만 해결하면 될 것 같아!
나름의 프로토타입(?)이 완성됐으니 이제 노래 저작권과 예쁜 디자인이 필요했다. 디자인은 여러 앱들을 비교해보며 적용할 수 있을 것 같았지만 노래 저작권은 어떻게 해결해야 할지 고민이었다. 무료로 음악을 들을 수 있는 '사운드 클라우드'라는 서비스를 이용해서 노래를 사용할 수 있었지만, 노래가 몇 곡 없다는 점이 아쉬웠기에 과감하게 메일을 썼다.
당연하게도 답장은 오지 않았다.
저작권 문제를 해결하지 못한다면, 퀴즈로 낼 수 있는 노래가 얼마 없다면 이 앱은 만들 수 없었다. '안 되겠구나, 포기해야겠다.' 하던 중 친구가 가수 상관하지 말고 1초 노래 맞추기 iOS 버전을 만드는 것은 어떻냐고 제안했다. 친구가 제안한 앱은 이미 안드로이드 버전이 있었고, 디자인과 서버가 준비되어있었기에 내 입장에선 땡큐였다.
2주 안에 만들어보자!
본격적으로 개발하기에 앞서 우리는 목표를 정했다. iOS에 대해 잘 모르지만 일단 앱은 빠르게 만들어보자는 것이었다. 하나부터 열까지 모든 것이 어려웠다. 모든 기기에 대응하는 UI를 구현하는 것도 어려웠고, 서버와 통신하는 것도 어려웠고, 발생하는 오류를 해결하는 것도 어려웠다. 모르는 것은 구글 검색과 애플 공식 문서를 찾아보며 목표를 이루기 위해 하루의 절반 이상을 컴퓨터 앞에만 앉아있었다. (실제로 기숙사 공용 공간에서 밥 먹는 동안 TV 보는 것 이외에 모든 시간을 개발에만 집중했던 것 같다.) 그렇게 2주의 시간이 흘렀고 우리는 앱을 완성했다.
이렇게 나의 첫 번째 앱은 당당하게 앱스토어에 등록되었다. 이후 iOS 개발을 본격적으로 시작했고 여러 프로젝트를 통해 나를 발전시켰다. 이런 경험을 토대로 나는 개발을 시작하려는 이들에게 일단 한번 만들어보라고 말한다.
물론 프로그래밍 언어, 개발하고자 하는 플랫폼, 분야가 어려울 수 있다. 목표가 있다면 일단 한번 만들어보라. 구글에서 코드를 그대로 복사해도 좋다. 완성한 후 흩어져 있는 지식을 차곡차곡 모으면 된다.
얼른 머릿속에만 있던 멋진 아이디어를 나의 서비스로 표현해보자.
다음은 iOS 개발에 도움이 되는 몇 가지를 말해보고자 한다.
2편에서 계속.
아래는 제가 공부했을 때 참고했던 링크입니다.
https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/