일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 디자인패턴
- 메모리
- React
- 액티비티
- CS지식
- 리액트
- 안드로이드
- 리액트네이티브
- Database
- Operating System
- 스레드
- 앱개발
- 개발
- 디자인 패턴
- 앱
- Kotlin
- reactnative
- OS
- 안드로이드 개발
- 안드로이드 디자인 패턴
- cs
- github
- 코틀린
- db
- 앱 개발
- 운영체제
- Android
- 프로세스
- 데이터베이스
- MVVM
- Today
- Total
목록Android/etc (10)
Tech Log
1. Context란? Context라는 단어 자체를 번역하면 문맥이다. 문맥은 논리적인 흐름을 말한다. Context는 애플리케이션의 논리적인 흐름이다. 애플리케이션의 현재 상태를 나타내며, 애플리케이션 환경에 대한 전반적인 정보를 담고 있는 클래스다. 리소스에 접근할 수 있도록 도와준다. 브로드캐스트 리시버, Intent와 같이 메시지를 주고받으며 다른 안드로이드 컴포넌트와 상호작용할 때 필요하다. Context를 잘못사용하면 메모리 누수를 유발하므로 Context를 제대로 이해하고 사용해야 한다. 2. Context의 종류 Context는 주로 두 가지로 나뉜다. Activity Context, Application Context로 나뉜다. Activity Context Activity Contex..
프로젝트에서 안드로이드 SharedPreferences를 사용할 일이 많아서 종종 사용했었는데, 부끄럽지만 SharedPreferences를 싱글톤으로 사용한다는 것을 최근에 깨달았다 ... 지금이라도 싱글톤으로 사용하는 이유를 정리해보려고 한다. 1. SharedPreferences를 싱글톤으로 사용하는 이유 메모리 낭비를 줄이기 위함 : 매번 SharedPreferences 객체를 만들어서 메모리를 낭비하는 것보다 효율적으로 사용할 수 있다. 중복되는 데이터 저장 방지 : 여러 곳에서 SharedPreferences의 데이터에 접근하여 데이터를 저장한다면, 동일한 데이터가 중복으로 저장될 수 있다. 이를 방지하기 위해 싱글톤으로 사용한다. 코드 중복 방지 : SharedPreferences 객체를 생..
MVC와 같은 아키텍처 패턴을 본격적으로 프로젝트에 적용하기 전에, ViewModel이라는 것을 알게 되었다. UI 컨트롤러와 데이터 관리를 분리하기 위해 사용되는 것으로 일단은 알고 있다. 더 정확하게 ViewModel의 개념을 알기 위해 이번에 ViewModel에 대해서 공부하고 블로깅해보려 한다. 또한, ViewModel을 제대로 공부하는 것이 아키텍처 패턴을 알맞게 적용하는데 (당연하지만)큰 도움이 될 것이라 생각한다. 들어가기 전에 앞서서, 구분해야 할 것이 있다. MVVM 패턴에 사용되는 개념 중에 ViewModel 이라는 것이 있다. 그리고 안드로이드 Jetpack에 포함되는 클래스 중에 ViewModel 이라는 것이 있다. (또한 Jetpack 클래스의 ViewModel은 Android A..
Fragment에 대해서 공부하면서, Fragment에도 생명주기가 있다는 것을 알게 되었다. Fragment는 Activity에 종속이 될 텐데 Fragment의 생명 주기는 종속되는 중에 어떻게 돌아갈까 궁금했다. 이번 포스팅에서는 Fragment 생명 주기에 대해서 자세히 알아보고자 한다. 그리고 Activity 생명 주기와는 어떤 다른 점이 있는지 공부해보고자 한다. 1. 배경 Fragment도 Activity와 마찬가지로 UI를 빌드하는 것이므로 Activity가 생명주기를 갖는 것과 같은 이유로 생명주기를 갖고 있다. 생명주기 콜백 함수가 있는 이유는 사용자가 Fragment 화면을 나가거나 돌아올 때 대응하기 위해서였다. 그 외에도 다른 이유들이 있는데 아래 링크에서 생명주기를 사용하는 이유..
안드로이드 개발을 하다보면, Jetpack에 대해서 많이 듣게 된다. Jetpack을 이용해서 개발을 한 적은 많은 것 같은데, Jetpack 정확하게 뭐냐고 물으면 대답을 확실하게 할 자신이 없다. 따라서 Jetpack이 도대체 무엇인지 알아보기로 했다. 1. 정의 먼저 Jetpack이라는 단어 자체의 의미만 생각해보자. 네이버 영어 사전에 의하면 Jetpack의 의미는 다음과 같다. 제트팩 ((등에 메는 개인용 분사 추진기, 우주 유영 등에 사용)) 그래서 안드로이드 Jetpack을 검색했을 때 나오는 이미지가 안드로이드에 부스터가 달린 것인 것을 확인할 수 있다. 이처럼 Jetpack은 안드로이드 개발을 할 때 부스터 역할을 하는 도구라고 볼 수 있다. Android Developers에서는 아래와..
로그인 기능이 있는 어플리케이션을 만들 때, SharedPrefereces를 사용한 적이 있다. SharedPreferences는 DB를 라이트하게 쓰고 싶을 때 그리고 앱이 종료돼도 데이터를 저장하고 싶을 때? 사용하는 것으로 알고 있다. SharedPreferences에 대한 개념에 확신이 없어서 블로그에 글을 쓰면서 공부해본다. 1. SharedPreferences란? SharedPreferences는 데이터를 저장하는 안드로이드 API다. 우리는 보통 데이터를 저장할 때 DataBase를 사용한다. SQLite를 쓰거나 MySQL과 같은 DataBase에 많은 데이터를 보관한다. 이러한 DB들이 있는데도 SharedPreferences를 쓰는 것은, 간단한 저장을 하기 위해서이다. 간단한 설정 값..
안드로이드 프로젝트 파일 내에 이미지가 있다면, ImageView로 drawable 파일 내의 이미지를 가져오면 된다. 그러나 만약 서버에서 이미지를 이미지 주소의 형태로 보내게 된다면 어떤 방식으로 이미지를 불러와야 할까 고민했다. 이미지 로드 라이브러리 중 Glide라는 것을 알게 되었고, 프로젝트에서도 해당 라이브러리를 적용시켜보았다. Glide 사용 내용을 정리하기 위해 포스팅을 작성하게 되었다. 1. Glide란? Glide는 안드로이드에서 이미지를 빠르고 효율적으로 로드(load)할 수 있게 해주는 라이브러리다. 구글에서 공개한 라이브러리다. JPEG과 같은 이미지 뿐만 아니라 Gif와 같은 애니메이션 이미지도 불러올 수 있도록 해준다. 그리고 동영상의 스틸 로딩(loading), 디코딩, 캐..
안드로이드를 공부하면서 안드로이드 내의 스레드 개념을 알게되고, 이때 Handler 라는 것이 있다는 것을 알게 되었다. 근데 당시에는 글을 읽어봐도 Handler에 대한 감이 잡히지 않았다. 그래서 다시 공부하며 직접 글을 쓰면서 정리하고자 한다. 1. 배경 어쩌다가 Handler라는 것이 만들어지게 된 것일까? 그리고 Handler라는 것은 어디에 쓰는 것일까? 앞에서 스레드를 공부하면서 Handler를 알게 되었다고 했다. 여기서 유추할 수 있듯이, Handler는 스레드와 관련된 일을 한다. 안드로이드에는 메인 스레드와 워커 스레드가 있다. 메인 스레드에서는 대게 UI 관련된 작업을 하고, 시간이 오래 걸리는 작업들은 워커 스레드에서 진행한다. 만약, 워커 스레드에서 UI를 처리하는 작업을 하거나..