일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 액티비티
- MVVM
- 디자인패턴
- Android
- reactnative
- 운영체제
- 데이터베이스
- cs
- 앱
- github
- 리액트
- 안드로이드 디자인 패턴
- Operating System
- OS
- 안드로이드
- 안드로이드 개발
- React
- 프로세스
- 코틀린
- 리액트네이티브
- 앱 개발
- 메모리
- 디자인 패턴
- 앱개발
- 스레드
- 개발
- CS지식
- Database
- Kotlin
- db
- Today
- Total
목록안드로이드 (17)
Tech Log
안드로이드 개발을 하다보면, Jetpack에 대해서 많이 듣게 된다. Jetpack을 이용해서 개발을 한 적은 많은 것 같은데, Jetpack 정확하게 뭐냐고 물으면 대답을 확실하게 할 자신이 없다. 따라서 Jetpack이 도대체 무엇인지 알아보기로 했다. 1. 정의 먼저 Jetpack이라는 단어 자체의 의미만 생각해보자. 네이버 영어 사전에 의하면 Jetpack의 의미는 다음과 같다. 제트팩 ((등에 메는 개인용 분사 추진기, 우주 유영 등에 사용)) 그래서 안드로이드 Jetpack을 검색했을 때 나오는 이미지가 안드로이드에 부스터가 달린 것인 것을 확인할 수 있다. 이처럼 Jetpack은 안드로이드 개발을 할 때 부스터 역할을 하는 도구라고 볼 수 있다. Android Developers에서는 아래와..
안드로이드 Room DB의 인스턴스를 생성할 때 반드시 싱글톤 패턴으로 생성했던 것 같다. 그때는 강의에서 그렇게 하라고 해서 했었는데, 다른 곳에서도 사용할 일이 있을 것 같아서 싱글톤 패턴에 대해 정리해본다. 1. 정의 위키백과에서는 다음과 같이 싱글톤 패턴을 정의하고 있다. 소프트웨어 디자인에서 싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례에 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 위 정의에서 알 수 있듯이, 싱글톤 패턴에서는 객체(인스턴스)를 메모리에 하나만 생성한다. 그리고 이 객체를 여러 스레드에서 동시에 어디에서든지 참조할 수 있도록 하는 것이다. 전역 범위에서 이 객체에 접근할 수 있도록 하면 어디에서든지..
로그인 기능이 있는 어플리케이션을 만들 때, SharedPrefereces를 사용한 적이 있다. SharedPreferences는 DB를 라이트하게 쓰고 싶을 때 그리고 앱이 종료돼도 데이터를 저장하고 싶을 때? 사용하는 것으로 알고 있다. SharedPreferences에 대한 개념에 확신이 없어서 블로그에 글을 쓰면서 공부해본다. 1. SharedPreferences란? SharedPreferences는 데이터를 저장하는 안드로이드 API다. 우리는 보통 데이터를 저장할 때 DataBase를 사용한다. SQLite를 쓰거나 MySQL과 같은 DataBase에 많은 데이터를 보관한다. 이러한 DB들이 있는데도 SharedPreferences를 쓰는 것은, 간단한 저장을 하기 위해서이다. 간단한 설정 값..
안드로이드를 공부하면서 안드로이드 내의 스레드 개념을 알게되고, 이때 Handler 라는 것이 있다는 것을 알게 되었다. 근데 당시에는 글을 읽어봐도 Handler에 대한 감이 잡히지 않았다. 그래서 다시 공부하며 직접 글을 쓰면서 정리하고자 한다. 1. 배경 어쩌다가 Handler라는 것이 만들어지게 된 것일까? 그리고 Handler라는 것은 어디에 쓰는 것일까? 앞에서 스레드를 공부하면서 Handler를 알게 되었다고 했다. 여기서 유추할 수 있듯이, Handler는 스레드와 관련된 일을 한다. 안드로이드에는 메인 스레드와 워커 스레드가 있다. 메인 스레드에서는 대게 UI 관련된 작업을 하고, 시간이 오래 걸리는 작업들은 워커 스레드에서 진행한다. 만약, 워커 스레드에서 UI를 처리하는 작업을 하거나..
클론 코딩을 하다가 Fragment를 그닥 깊게 생각하지 않고 써왔다. 그러다가 Fragment 용례가 기억이 안나서 다시 찾아보게 되었다. Fragment의 이론 내용을 공부하는 중, 몰랐던 내용이 많아 정리해보고자 한다. 1. 배경 태블릿과 같이 큰 화면이 나오면서, 안드로이드 UI에도 유연성이 요구되었다. 기존의 핸드폰과 같이 작은 화면만 다루었을 때는, Activity 단위로 UI를 구성해도 수월했다. 태블릿의 화면은 핸드폰의 화면보다 훨씬 크기 때문에, UI 구성 요소를 사용할 공간이 더 많다. 따라서 Activity의 레이아웃을 나누자는 아이디어가 나오게 되었다. 기존의 레이아웃들로 Activity를 구분지어도 되지만, Dynamic한 동작(디바이스에 따라 View 감추기, 보이기, 위치 이동..
네트워크 통신을 하면서 동기와 비동기에 대해서 알게 되었다. 비동기를 처리하는 기술 중 Coroutine이 잘 쓰이고 있다는 것을 알게되어, 프로젝트에 적용도 해보았다. 그리고 Coroutine에 대해서 자세히 알아보고 싶어 조사해보았다. 1. Coroutine의 정의 Coroutine 이라는 단어 자체를 보면 알수있듯이, Coroutine은 Co + routine의 합성어이다. 직역하면 '협동(같이하는) 루틴'이 된다. Android Developers에 따르면, 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴이라고 한다. 필자는 사실 이 설명을 보고 Coroutine이 무엇인지 이해할 수 없었다. Coroutine을 이해하려면, 먼저 동기와 비동기가..
개요 : UMC Android 2기에 참여하면서 안드로이드와 관련한 여러 실습을 듣게 되었다. 해당 실습을 진행하면서, Binding이라는 것에 대해 알게되었다. 자주 쓰일 것 같아, 자세히 개념 정리를 하고 싶어서 글을 작성하게 되었다. 정의 및 역할 View binding을 Android Developer 에서 보면 한국어로는 뷰 결합이라고 나온다. bind는 사전적 의미로 '묶다'라는 의미이다. 여기서 결합(묶는) 것은 레이아웃 파일(.xml)과 액티비티(혹은 프래그먼트)이다. 이렇게 결합(Bind)해버리면, findViewById와 같은 특정 뷰를 받아오는 메소드를 사용하지 않아도 된다. 즉, findViewById를 사용해서 일일이 뷰와 변수를 연결해주지 않아도 Binding으로 한 번에 다 연..
개요 : 리액트를 공부할 때도 들었던 의문이었지만, 왜 생명주기란 것이 있는지 궁금했었다. 이번에 안드로이드를 공부하면서 생명주기라는 것이 왜 있는지 알게되었고 각 각의 단계들이 어떤 때에 일어나는지 알아보게 되었다. 액티비티 생명 주기가 필요한 이유 사용자는 앱을 사용할 때 중간에 나갈 수도 있고 다시 돌아갈 수도 있다. 이러한 상황 속에서 액티비티 클래스는 시스템의 상태 변화를 알아차릴 수 있게끔 콜백을 제공한다. 아래와 같은 상황을 예방하기 위해서 생명 주기 콜백을 사용하는 것이다. 앱을 사용하고 있는데 전화가 걸려와서 앱이 비정상 종료되는 문제 앱을 나갔다가 돌아왔을 때 사용자의 진행 상태가 저장되지 않는 문제 앱을 사용하고 있는 도중 다른 앱으로 전환했을 때 앱이 비정상 종료되는 문제 앱의 세로..