마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android 공부방법 질문

0 추천
현재 android를 배운지 2달째 정도됬는데,무작정 이론부터 시작한것이 아닌 실습 위주로 공부를 하면서 모르는 것을 찾아보는 방식?으로 공부를 하고있습니다.현재는 커뮤니티앱 채팅앱 같은 수준까지는 만들수있고,토이 프로젝트도 해봐서 어느정도 감은 잡은거같습니다.그래서 이제 어떤 공부를 해야 맞는걸까요?spark님이 추천하시는 공부 로드맵이 있으면 가르쳐주실수있나요?
2달째 코린이 (380 포인트) 님이 2021년 7월 29일 질문

1개의 답변

0 추천
랭귀지: 자바와 코틀린을 배우세요(코틀린을 필요하시다면). 코틀린은 functional programming. 개념이 들어가 있기 때문에 functional programming이 기본적인 개념에 대해 알아두시면 도움이 될 것 같구요. 스레딩에 대해서 잘 아시면 정말 좋구요. 코틀린을 하실거면 Coroutine 을 배우셔도 좋습니다. 자바의 경우는 Rx를 많이 쓰기 때문에 라이브러리지만 한번 익혀두면 두고 두고 사용하실 수 있습니다.

Data Structure + Alorithm: 기본적인 부분에 대해서는 공부를 하는 게 좋습니다. Data Structure는 자주 쓰는 Array, List, Map, Set, Linked List 정도는 잘 알아두는 것이 좋구요. Conconrrency를 지원하는 타입들에 어떤 것들이 있는 지 정도는 알아두시면 좋죠.

OOP: 기본적인 OOP의 원칙. 추상황, 일반화, 캡슐화 등등과 디자인 패턴 MVC, MVP, MVVM 등등의 개념. Clean Architecture까지 보시면 좋구요. 많이 사용되는 개념인 SOLID, 기본적으로 사용하게 되는 Dependency Injection 등도 봐두시면 좋겠네요.

Gang of Four의 25가지 디자인패턴까지 한번 봐두시면 금상첨화겠죠. 그리고 Gang of Four, Clean Code, Clen Architecture, Refactoring. 등등 많은 훌륭한 책들이 있습니다. 여력이 되신다면 읽어보시면 좋을 것같습니다.

안드로이드: 기본 컴포넌트, 액티비티, 프레그먼트, 서비스 등에 대해 잘 살펴보세요. 특히 라이프사이클은 복잡하면서도 꼭 알아야 되는 부분이므로 짚고 넘어가세요. 또한 안드로이드의 기본적인 특성들 (메인스레드, 백그라운드 스레드, 라이프사이클 등) 에 대해서 깊이 있게 파시면 좋을 것 같구요. 테스트 작성법도 익혀두시면 쓸모가 있을겁니다.

멀티모듈 프로젝트는 가능하시면 나중에 한번 해보시구요. 좀 더 최근 경향을 배우고 싶으시면 Kotlin을 이용한 Multiplatform Mobile이나 Jetpack Compose를 한번 경험해 보시면 좋겠지만, 이 둘은 나중에 천천히 하셔도 될 것 같습니다.

이외에  모든 개발자에게 요구되어지는 Git 사용법이라던가, SSL 동작원리, REST API 등등에 대해서

코드 측면에서느 Github같은데서 오픈소스 라이브러리의 소스코드와 안드로이 SDK의 소스코드를 보면서 공부하는 것도 좋은 방법이라고 생각합니다. 가능하시다면 오픈소스 프로젝트에  참여해 보는 것도 아주 좋은 방법이리라 생각합니다.

첫번째, 두번째는 기초에 해당하니까 마지막 보다 좀 더 많은 시간을 투자하셔서 공부하시길 바래요. 공부할거는 아주 많습니다.
spark (227,830 포인트) 님이 2021년 7월 29일 답변
spark님이 2021년 7월 30일 수정
넵 알겠습니다.감사합니다!
...