티스토리 뷰
이 글은 단순히 <깡샘의 안드로이드 프로그래밍> 책의 내용을 제 입맛에 맞게 요약 정리한 글에 불과합니다. 고로 이 글로 안드로이드를 공부하겠다는 생각은 접어두시는 걸 추천하는 바입니다.
<깡샘의 안드로이드 프로그래밍> 책 좋아요!! 추천합니다!!
1. 안드로이드의 특징
- 안드로이드는 공개 운영체제인 리눅스 기반이다.
- 안드로이드 앱 개발은 자바(Java) 및 코틀린(Kotlin)을 이용해 개발한다.
- 운영체제의 핵심 코드, 라이브러리 코드, 스마트폰에 기본으로 탑재된 구글에서 만든 앱 코드 등 대부분 코드가 오픈되어 있다.
- 개발자가 만든 앱은 구글 Play 스토어뿐만 아니라 다양한 방법으로 사용자에게 배포될 수 있다.
- 안드로이드 플랫폼 기반의 스마트폰을 여러 제조업체에서 만들 수 있다.
- 안드로이드 기반의 모든 애플리케이션은 평등하다는 사상으로 스마트폰에 기본 탑재된 앱과 개발자들이 만드는 앱이 같은 환경에서 같은 API를 이용한다.
특히 주목해볼만한 특징
- 많은 부분이 오픈되어 있다는 점은 소프트웨어 개발자 관점에서 장점일 수 있다. 오픈 된 기술을 바탕으로 한 오픈소스 그룹이 활동하기 좋은 생태계이며, 그런 오픈소스 그룹에서 만든 다양한 라이브러리를 이용할 수 있다.
- 안드로이드 플랫폼 기반의 스마트폰을 여러 제조업체에서 만들 수 있다보니 기기의 파편화(Fragmentation)은 큰 단점으로 손꼽힌다. 다양한 업체에서 만들다 보니 크기가 다양하다는 특징이 있다. 개발자 관점에서 보면 개발자가 모르는 기기에서 의외의 에러가 계속 발생할 수 있어 신경 쓸게 많아진다.
- 안드로이드는 iOS에서 허용하지 않는 다양한 기능을 허용한다. ex) 멀티 태스킹(백그라운드 동작)
이 사실은 개발자 관점에서는 이점일 수 있지만 사용자 관점에서는 단점이 될 수 있다. 백그라운드에서 너무 많은 앱이 동작하면 배터리 소비, 네트워크 트래픽 증가, 메모리 부족 등의 현상이 발생할 수 있기 때문이다. 백그라운드 동작 외에도 사용자가 모르는 부분에서 개발자가 제어할 수 있는 부분이 많아진다는 것은 사용자도 모르게 피해를 볼 가능성이 늘어나기 때문이다.
느낀 점
어떤 언어, 플랫폼, 프레임워크를 배울 때마다 느끼는 점은 그 분야의 특징을 이해하고 사용하는 것과 아닌 것에 커다란 차이가 있음을 느꼈다.
- 오픈 소스
- 기기의 파편화
- 다양한 기능 허용
반응형
'Programming > 안드로이드(Android)' 카테고리의 다른 글
[Android] 안드로이드 4대 컴포넌트 - 초간단 (0) | 2020.12.20 |
---|---|
[Android] 안드로이드 플랫폼 아키텍처 (0) | 2020.12.20 |
[Android] RecyclerView는 왜 쓰나요? DiffUtil은 뭐고 ListAdapter는 또 뭔가요? (0) | 2020.12.13 |
Room 라이브러리 적용하기! (0) | 2020.12.03 |
[Android] 데이터 바인딩이 효과적인 이유 (0) | 2020.11.15 |
댓글