brunch

You can make anything
by writing

C.S.Lewis

by 강종무 Nov 09. 2017

[스타트업 취업 가이드] 7탄.

스타트업 취업직무 네 번째, 안드로이드 개발자 

오늘도 스타트업 취업정보를 들고 온 채용매니저 강종무입니다. 준비하는데 좀 도움이 되시나요? 혹시 더 필요한 정보가 있거나 이런저런 내용을 알고 싶으시다면 댓글로 달아주세요. 답변해드릴 수 있는 한도 내에서 답변해드릴게요~

이번 포스팅은 다시 개발자 직무 소개로 돌아오는데요. 오늘은 그나마 여러분들이 좀 더 친숙하실 만한 '안드로이드 개발자' 이야기입니다. 눈에 보이지도 않는 서버니 뭐니 보다는 매일 보고 쓰는 스마트폰 앱이 좀 더 친숙하시지 않겠어요? 요새는 컴퓨터보다도 스마트폰을 많이 보는 시대니까요. 

안드로이드와 iOS의 차이를 설명드릴 필요는 아마 없겠죠? 갤럭시냐!!! 아이폰이냐!!!의 차이입니당. 안드로이드 같은 경우는 워낙에 많은 분들이 쓰고 있는 운영체제(OS)이기도 하고요. 2016년 기준으로 무려 83.6%가 안드로이드 스마트폰을 사용하고 있다고 하네요. 안드로이드를 사용하는 사람들이 많다는 것은 스타트업의 입장에서는 그만큼 많은 사용자와 연결될 수 있는 창구라는 것이고, 그만큼 안드로이드 개발자가 그 스타트업에 중요한 개발자라는 걸 의미합니다.

갤럭시와 아이폰의 차이는 안드로이드냐?! iOS냐?!


그럼 안드로이드 개발자로 성장해서 스타트업 취업에 성공하려면 알아야 할 기본적인 상식들부터 말씀을 드릴게요. 안드로이드는 정확히 말하면 '구글에서 공개한 모바일 플랫폼 타겟의 OS와 미들웨어 및 중요 애플리케이션이 포함된 소프트웨어 일체'를 말합니다. 안드로이드는 단순히 스마트폰 용으로만 설계된 것이 아니고, OS만을 의미하는 것도 아니며, 앱도 아니라는 거죠. 사용하는 사람에게는 중요한 내용이 아니지만 개발자가 되려면 중요하게 생각해야 하는 부분입니다. 

앱 개발에 대해서 조금 공부해보신 분들은 안드로이드 개발이 '쉽다'라는 생각을 하시는 분들이 많아요. 그래서 안드로이드 개발자로 스타트업 취업을 하시려는 분들도 많구요. 물론, 안드로이드 개발을 시작하는 건 여타 개발자들에 비해 쉬운 편이지요. 한마디로 진입장벽이 낮은 편입니다. 개발자 등록비도 25$면 평생 안드로이드 개발자로 등록할 수 있으니 아주 저렴하죠. 근데 안드로이드 개발 시장은 진입하고 나서부터 그야말로 정글과도 같은 곳입니다.

진입은 쉬운데 정글같은 소리라니... 뭐라는거야 대체


우선 안드로이드의 경우는 라이센스비는 물론이고 소스까지 완전히 무료로 공개된 오픈소스 플랫폼입니다. 그리고 안드로이드 점유율 만큼이나 안드로이드가 탑재된 기기도 많지요. 스마트폰에, 태블릿에, 내비게이션, 각종 E-book들도 안드로이드 기반인 것이 많고, 스마트폰 중에 삼성만 해도 갤럭시, 갤럭시 엣지, 갤럭시 노트가 매년 하나씩 출시되고, LG도 G시리즈를 매년 내놓고 있는 데다가 그 밖의 모든 안드로이드 스마트폰들까지 다 합치면 수천 가지 이상이 될 겁니다. 그리고 이 수천 가지 기기가 각각 다른 버전의 안드로이드를 탑재하고 있지요. 

간단하게 예시를 들어볼게요. 제 내비게이션은 안드로이드 기반의 내비게이션인데 이 아이는 안드로이드 4.0 아이스크림 샌드위치를 사용합니다. 그리고 제 핸드폰은 알카텔에서 내놓은 SKT SOL이에요. 안드로이드 5.0 롤리팝 기반이죠. 저희 아버지의 핸드폰은 갤럭시 s6인데 안드로이드 6.0 마시멜로우가 들어가구요. 아버지의 E-book은 안드로이드 4.0 아이스크림 샌드위치를 탑재하고 있습니다. 저희 어머니는 LG G3를 쓰시는데 이 친구는 안드로이드 4.4 킷캣으로 구동되죠. 한 가족이 상용하는 안드로이드 기기가 5종류인데, 각각 다른 안드로이드를 쓰고 있는 거예요. 또 저희 가족은 셋 모두 텔레그램을 쓰는데요. 텔레그램은 롤리팝과 마시멜로우, 킷캣에서 동시에 구동되는 애플리케이션이 되어야만 하는 거죠. 이게 뭐 그렇게 중요하냐구요? 그냥 쓰면 되는데? 네 쓰는 사람은 그냥 쓰면 되죠. 그렇게 만들려니까 문제가 되는 거죠.  

다양한 버전의 안드로이드, 같은 듯 다른 안드로이드


가장 다양하고 많은 기기와 사용자를 보유하고 있다는 안드로이드의 최대 약점은 너무 많은 기기와 사용자가 있다는 점입니다. 진입장벽이 낮은 만큼 개발자도 많고요. "안드로이드로 앱 개발을 한다" 까지는 비교적 쉽게 배울 수 있지만 이것을 상용화해서 서비스하려면 배워야 할 것이 어마무지하게 늘어나거든요. 독학을 하려 해도 관련된 기술 문서가 너무 많아서 뭘 봐야 하는지 초심자 입장에서 고르기엔 정말 난감해집니다. 또, 안드로이드가 이렇게 복잡하다 보니 이를 개발하는 과정이나 앱 유지 보수를 용이하게 하는 여러 가지 툴들이 많이 개발되어 있고, 현재도 계속 진화하고 있습니다. 근데 이걸 다 배우려면 엄청난 노력이 들어가는 거죠. 

제가 만나본 몇몇 안드로이드 개발자들의 표현을 빌리자면 "안드로이드를 배웠다는 사람은 많은데, 안드로이드 개발자는 그 수가 매우 적고, 협업이 가능한 안드로이드 개발자는 더 적다"고 말했습니다. 이제까지 설명드린 안드로이드 생태계의 복잡성이 그 이유 중 하나라고 할 수 있겠죠. 그럼에도 불구하고 안드로이드 개발자가 매력적인 이유가 있으니 다들 안드로이드를 배우려고 하겠죠? 

안드로이드 개발의 매력.. 이거 완전 히트다잉~


우선 안드로이든 완전히 공개된 오픈소스 플랫폼이기 때문에 개발자의 자유도가 매우 높습니다. 만들고 싶은 걸 만들 수 있다는 거죠. 또 안드로이드는 단순히 모바일에서 끝나는 것이 아니라 Android Auto, Android Wear 등으로 끊임없이 진화를 하고 있어요. 복잡성은 곧 다양성이고 그만큼 활용할 곳이 무궁무진하거든요. 그리고 일단! 스타트업 취업을 하기가 쉽습니다. 그만큼 많이 쓰니까요. 

전체적으로 정리를 하자면 안드로이드는 정말 다양하고 복잡해서 발전 가능성도 크고, 활용처도 많지만, 그만큼 제대로 된 안드로이드 개발자가 되기는 어렵다고 할 수 있습니다. 

이런 모든 요건을 감수하고 안드로이드 개발자로서 스타트업 취업을 하고 싶으신 분들이라면, 꼭 제대로 된 강의를 찾아 듣거나 독학을 하더라도 좋은 멘토를 구해서 공부를 하셔야 한다는 점, 잊으시면 안 됩니다. 아까 제가 빌려온 말 중에 '협업이 가능한 안드로이드 개발자는 더 적다'라는 말이 있었죠. 이 부분이 아주 중요하거든요. 안드로이드를 제대로 공부하려면 배워야 할 범위가 아주 넓습니다. 그래서 독학으로 자기가 필요한 부분만 공부하다 보면, 잘못된 버릇이 들거나 방향성이 크게 어긋나서 나중에 바로잡기 아주 힘들 수가 있어요. 특히, 스타트업 취업을 하신 상태라면 안드로이드 개발자 혼자서 서버나 DB, 네트워크까지 다 구현하는 경우는 사실상 거의 없고, 언제나 백엔드 개발자나 동료 앱 개발자와 협업을 해야 되는데, 독학으로 잘못 들인 버릇이 이런 협업에 큰 악영향을 주는 경우가 많거든요. 조심! 또 조심!

어느 직무나 중요하지만 특히나 안드로이드 개발자에게 협업은 매우 중요!!!!!!!!


안드로이드 개발자의 어려움만을 말씀드려서는 안드로이드 개발자가 되려는 분들이 너무 낙담하시겠죠. 그렇지만 처음부터 말씀드렸듯이 안드로이드로 앱을 개발하는 과정은 비교적 쉽습니다. 기존에 개발 경력이 없으시거나 프로그래밍을 잘 모르시는 분들이 스타트업 취업을 개발자로 하시려면 가장 쉽게 접근할 수 있는 분야에요. 구인을 하는 회사도 많구요. 위에서 말씀드린 각종 어려움들은 일단 직장을 들어가서 개발자 동료들과 함께 개발하고 성장하는 과정에서 걱정하실 내용들이에요. 섣부른 염려는 No No! 무엇보다 안드로이드 개발을 쉽게 만들어주는 도구들도 요즘에는 많이 나와있으니 이런 도구들을 잘 활용하시면 금방 좋은 안드로이드 개발자로 성장하실 수 있을 거예요.

우선 안드로이드 개발은 'Java'가 기본이구요. 네, 백엔드 개발자 편에서 말씀드렸던 그 Java가 맞습니다. 이 Java 위에 안드로이드 문법을 조금만 배우시면 기본은 갖춰진 거예요. 그리고 프론트엔드 개발자 편에서 말씀드렸던 'Angular JS'와 같이 안드로이드에도 안드로이드 스튜디오라는 개발도구가 갖춰져 있어서 좀 더 쉽게 개발을 할 수가 있습니다.

특히나 올해 구글에서 발표한 'Firebase'라는 게 있는데요. 이 도구는 안드로이드, iOS, 모바일 웹을 모두 지원하는 통합 앱 개발 플랫폼이에요. 무엇이 좋으냐고 물으신다면 대답해 드리는 것이 인지상정! 안드로이드 개발자는 주로 애플리케이션을 개발하는 사람이다 보니 백엔드 개발자와 협업을 해야 하는데요. 이 서버개발자가 해줘야 할 일들을 Firebase가 모두 대신해준답니다.

예를 들면 'Notification'이나, 'Dynamic link', 'Analytics', 'Real time Database'에 'Crash Reporting'이나 'Authentication'까지 대신해 준다니깐요! 물론 실제 서버 개발자가 만들어 놓은 서버를 쓰는 것과 똑같지는 않지만, 어차피 여러분은 안드로이드 개발자가 되실 준비를 하시는 거니까요. 이 Firebase를 이용해서 안드로이드 개발을 잘 공부하다 보면 회사에 들어가서 백엔드 개발자를 만나기 전에도 제대로 된 앱을 직접 만들 수 있는 거죠. 

kotlin이 궁금하다면? 이미지 클릭!


또, 'Glide'라고 앱에 들어가는 미디어나 이미지를 불러오는 과정을 빠르게 만들어주는 프레임워크도 있으니 훌륭한 안드로이드 개발자가 되려면 이 Glide도 꼭 공부해보시는 편이 좋아요. 요즘에는 안드로이드 앱의 유지 보수에 큰 도움을 주는 RXJava가 안드로이드 개발자들 사이에서 화두가 되고 있는데요. RxJava는 ReactiveX를 Java에서 사용할 수 있도록 개발된 라이브러리인데요, 이벤트를 발생시키는 부분과 일어난 이벤트를 처리하는 형태로 이루어졌다고 볼 수 있어요. 부상하고 있는 최신 트렌드인 만큼 꼭 알아 둘 필요는 있습니다만, 배우기가 좀 어려워요. 또한 기본적으로 Java 언어를 이용해 제작되는 안드로이드지만 이를 Kotlin이라는 언어로 개발하면 더 효율적으로 개발할 수 있다는 움직임도 있습니다. 한 개발자가 Kotlin으로 전환해서 개발한 경험을 인터넷에 올렸었는데, '최고였다.'라는 표현을 써가면 글을 손수 쓴 적도 있습니다. iOS 개발에 활용하는 '스위프트'라는 언어가 있는데, Kotlin이 스위프트와 상당히 비슷하다고 해요. iOS에 대해서는 다음에 쓸 예정이지만, 상 호간의 차이가 점점 줄어들게 된다면 개발자의 개발 영역이 더 확장될 수도 있겠죠? RXJava나 Kotlin, Firebase와 같은 것들은 거의 올해 들어서 부각되기 시작한 언어/도구들이라 아직 시장 전체에 일반적으로 퍼져있는 내용은 아니지만, 알아두시면 좋을 내용들이니, '이걸 몰랐다니' 하면서 고민하실 필요는 없어요. 

아무튼 안드로이드 개발자에 대한 소개는 여기까지 하고, 다음 포스팅에서는 iOS 개발자에 대한 이야기로 돌아오겠습니다. 그럼 이만~!              

작가의 이전글 [스타트업 취업 가이드] 6탄.
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari