Editor’s note
안드로이드 앱 개발자가 되려면 어떤 공부를 해야 할까요. 안드로이드 개발자에 관심 있는 사람이라면 가장 궁금한 질문일 테죠. 이번 글에서는 안드로이드 앱 개발자에 입문해서 취업하기까지 필수적으로 거쳐야 하는 과정을 정리했습니다.
Step 1. 안드로이드 앱 개발 이해하기
안드로이드는 전 세계 1위 모바일 운영체제로, 점유율이 70%를 넘습니다. iOS는 애플에서 만드는 기기에만 탑재되는 반면, 안드로이드는 오픈소스 운영체제이기 때문에 훨씬 다양한 기기에서 작동합니다.
이외에도 안드로이드 앱(어플리케이션) 개발은 다음과 같은 특징들이 있습니다.
운영체제의 커널은 리눅스입니다.
여기서의 리눅스는 PC에서 사용되는 리눅스 배포판과는 조금 다릅니다. 리눅스 배포판은 사용자를 편의를 위해 다양한 소프트웨어까지 포함하지만, 리눅스 커널은 메모리에 상주하는 부분으로 하드웨어와 소프트웨어를 이어주는 인터페이스입니다.
윈도우, 맥, 리눅스 등 어느 기기에서나 개발 가능합니다.
iOS 개발은 오직 맥 컴퓨터에서만 가능하기 때문에 안드로이드보다는 진입장벽이 높습니다.
iOS에서는 불가능한 기능들을 구현할 수 있습니다.
안드로이드는 iOS와 비교했을 때 개발자가 비교적 많은 기능을 구현할 수 있습니다. 대표적으로 안드로이드에서는 멀티태스킹이 가능하죠. 어떤 프로세스가 화면을 점유하고 있어도 앱이 백그라운드에서 동작하여 계속 업무를 수행할 수 있습니다.
Step 2. 안드로이드 앱 개발 언어 습득하기
프로그래밍 언어 선택
안드로이드 앱 개발 언어는 자바와 코틀린으로 나뉩니다. 코틀린은 자바보다 간결하고 직관적이라 작성하는 데 시간이 적게 걸리고, 오류가 날 가능성도 적습니다. 게다가 코틀린은 자바와 100% 호환되죠. 여기서 ‘호환’은 같은 프로젝트 안에 자바와 코틀린 파일이 있을 때 서로가 서로를 불러서 사용할 수 있다는 의미입니다.
2019년 구글은 안드로이드 개발에서 코틀린을 우선시 할 것이라고 선언했습니다. 지금은 자바로 개발된 앱도 코틀린으로 바뀌는 추세이기 때문에 안드로이드 앱 개발자에 막 입문한다면 코틀린을 배우는 것이 좋습니다.
프로그래밍 언어 학습
자바나 코틀린 문법의 기초 개념을 숙달시키고, 알고리즘 문제를 풀면서 활용 방법을 체득하고 문제해결 능력과 컴퓨팅 사고를 길러야 합니다. 안드로이드 앱 개발에 사용되는 자바와 코틀린은 객체 지향 프로그래밍(OOP)이라는 개념을 바탕으로 프로그램을 설계하므로, 이 개념 역시 기본적으로 습득해야 합니다.
Step 3. 안드로이드 앱 개발 도구 익히기
안드로이드 개발에서 필수적으로 사용되는 도구는 다음과 같습니다. 이외에도 개발자, 프로젝트마다 추가로 요구되는 도구들도 있으니 필요에 따라 배우는 것을 추천합니다.
안드로이드 스튜디오
안드로이드 앱을 개발할 수 있는 공식 통합 개발 환경(IDE)입니다. 코드 편집기, UI 디자인, 디버깅 및 테스트 까지 앱 개발자를 위한 다양한 기능을 지원합니다.
Version Control System(VCS) : Git
코드에서 변경 내용을 추적하는 데 도움이 되는 소프트웨어로, 협업 시 필수입니다. 가장 널리 사용되는 Git은 안드로이드 스튜디오와 연동해 사용할 수 있습니다.
Gradle
안드로이드 스튜디오에 작성한 코드와 라이브러리를 묶어서 배포할 수 있는 형태로 패키징 해주는 도구입니다.
Step 4. 안드로이드 앱 개발하기
안드로이드 앱 개발자가 되기 위해서는 ‘제로 투 원’으로 새로운 앱을 탄생시키는 경험이 필요합니다. 하지만 단순히 앱을 개발해본 경험만으로는 취업 시장에서 경쟁력을 가질 수 없습니다. 다음과 같이 현업에서 요구하는 개념과 기능들을 익히는 것이 중요하죠.
디자인 패턴 적용
디자인 패턴은 소프트웨어 아키텍쳐*에 자주 발생하는 문제에 대한 대표적인 솔루션을 의미합니다. 안드로이드 앱에서는 MVVM, MVP, MVC 등이 대표적이죠. 디자인 패턴에 대한 이해는 앱 개발자로 취업하는 데 필수적입니다. 안드로이드 앱 개발자 공고를 둘러보면 디자인 패턴 적용 경험자를 자격요건이나 우대사항에 적어 놓은 기업들이 많죠.
*소프트웨어 아키텍쳐 : 시스템을 구성하는 요소들과 그 요소들이 외부적으로 표현되는 속성, 그리고 이들간의 관계로 구성된 시스템의 구조
프래그먼트를 사용해 UI 구성
안드로이드는 여러 디바이스를 지원하기 때문에 화면의 크기가 제각각이죠. 프래그먼트는 이에 대응할 수 있는 구성요소입니다. 화면을 부분적으로 쪼개 독립적으로 만들 수 있기 때문에 여러 개의 프래그먼트를 조합해 한 화면을 구성할 수 있죠. 프래그먼트를 활용해야 리소스를 줄이면서 다양한 기기에 대응하는 효율적인 개발을 할 수 있습니다.
안드로이드 프래그먼트를 활용한 개발
라이브러리 활용
구글은 Jetpack이라는 라이브러리 모음집을 지원합니다. UI, Behavior, 아키텍쳐, Foundation 기능을 제공하며 안드로이드 개발자들이 고품질 앱을 손쉽게 개발할 수 있도록 돕죠. Jetpack은 개발 리소스를 획기적으로 줄여주기 때문에 회사들은 Jetpack을 활용해서 개발할 수 있는 안드로이드 개발자를 원합니다.
Jetpack에 있는 라이브러리들
테스트, 디버깅, 리팩토링
실전에 강한 개발자로 거듭나기 위해서는 앱을 유지보수한 경험이필수입니다. 앱 기능에 대한 간단한 단위 테스트부터 디버깅 도구를 활용해 코드 문제를 식별하고 수정하고, 내부 논리나 구조를 바꾸는 리팩토링까지 개선 과정을 거치며 문제 해결을 위한 기술적인 의사결정 역량을 키울 수 있습니다.
안드로이드 앱 개발자로 취직하기 위해서는 포트폴리오 작성, 기술면접, 코딩테스트 등의 과정을 거쳐야 합니다. 당연한 이야기지만, 포트폴리오에는 실무에서 활용할 수 있는 경험을 나열하는 것이 좋습니다. 어떤 경험이 실무와 관련이 있는지 모르겠다면 모집공고에 적혀 있는 요건들을 확인해 기업에서 원하는 프레임워크나 라이브러리 정보들을 수집하세요.
기술 면접에서는 프로그래밍 언어 기초, 알고리즘, 자료 구조에 관한 기본적인 지식이나 포트폴리오에서 열거한 기술들에 관한 지식들을 묻습니다. 면접 중 코딩테스트를 하는 경우도 있는데 hackerrank, 백준 등과 같은 사이트에서 기본적인 알고리즘 문제를 자주 풀면 도움이 됩니다.
내일배움캠프와 함께 빠르게 안드로이드 개발자로 거듭나세요
개인의 역량마다 다르겠지만 이 모든 과정을 ‘독학’으로 할 경우 최소 1년부터 최대 1년 6개월의 기간이 걸린다고 합니다. 이마저도 ‘숱한 난관에도 포기하지 않고 끝까지 도전’한다는 전제 하에 성립되는 기간이죠.
내일배움캠프에서는 5개월만에 경쟁력 있는 개발자로 거듭날 수 있습니다. 현업 개발자의 한 사이클을 경험할 수 있는 커리큘럼, 기술적인 성장을 돕는 튜터, 지칠 때마다 동기를 부여해주는 세심한 관리 시스템까지 수료생들이 단기간에 폭발적으로 성장할 수 있는 환경을 지원하죠.
여기서 끝이 아닙니다. 내일배움캠프는 수료생분들의 노력이 헛되지 않도록 수료 후에도 취업을 지원합니다. 이력서 작성과 모의 면접 세션을 진행하고 자체 채용 플랫폼으로 유망한 회사에 지원할 수 있죠. 내일배움캠프와 함께 준비된 개발자로 거듭나세요.
취업 준비, 어디서부터 시작해야 할지 모르겠다면?
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.