우선 회사에서 api 통신시 null 값이 오는 부분들이 좀 있었고 null로 인해 굉장히 불필요한 코드들이 적히는 것이 싫었다.. 우선 null 체크같은 것들 이런 것들이 기본적으로 보일러 플레이트가 되었다. 이런 문제로 인해 여러 불편함을 겪으며 고민을 하는 도중
처음 Android 를 개발하면 Viewmodel 에 언제 Data load를 언제하는 게 맞을 지 생각한 적 없이 사용하다 어느정도 개발하고,, 성능을 향상시키는 고민을 하다보면 언제하는게 맞는지 고민을 하게 된다. 무슨 방법이 맞을까? Activity or Fr
hash는 내부적으로 배열을 사용해 데이터를 저장해 빠른 검색 속도특정한 값을 검색 하는데 고유 인덱스로 접근해 평균적으로 시간 복잡도 O(1)collision이 발생하는 경우 O(n) 해시 함수를 이용해 데이터와 연관된 고유한 숫자를 만들어 이를 인덱스로 사용해시 함
정점과 간선의 집합이다.(트리는 싸이클이 없는 그래프) \- 연결되어 있는 객체간의 관계를 표현할 수 있음말 그대로 정점과 간선의 연결관계에서 방향성이 없는 그래프Degree : 각 정점에 연결된 Edge의 개수정점과 간선의 연결관계에서 방향성이 있는 그래프Degre
Room DB 설정과 사용을 쉽게 해줌 어노테이션이 지정된 코틀린 클래스로 DB 구조와 쿼리를 정의할 수 있음 API, 어노테이션, 컴파일러로 구성됨 >API : DB 정의, 인스턴스 생성을 위해 상속받는 클래스들이 포함됨 어노테이션 : DB 테이블을 사용하는 함수들을
코틀린을 사용한지 얼마 지나지 않았다면let, run ,with, apply, also의 차이점을 잘 모를 수 있다.이를 정리해보자..위 Person class는 앞으로 나올 예제 코드에서 공통으로 사용한다.apply는 T(수신 객체)의 프로퍼티를 지정할 수 있고 T를
트리는 스택과 큐와 같은 선형 구조가 아닌 비선형 자료구조트리는 계층 관계를 나타내는 자료구조트리는 노드로 이뤄진 자료구조이다. \- 트리는 하나의 루트 노드를 가짐 \- 루트 노드는 0개 이상의 자식 노드를 갖고 자식 노드들 또한 0개 이상의 자식 노드를 가짐(반
AAC ViewModel, MVVM ViewModel android viewmodel을 공부하다보면 갑자기 AAC ViewModel과 MVVM의 ViewModel은 다른 것이라고 얘기한다.. 무슨 소릴까? 알아보자..
현재 기준 안드로이드 공식 문서에서는 Jetpack Navigation 사용을 권장합니다. 저도 권장합니다..본 글을 쓴 이유는 어플리케이션에서 화면 회전 혹은 중단 상태에 있는 액티비티가 메모리 회수가 된 경우 FragmentManager는 어떻게 fragment 리
ViewGroup의 서브클래스 (데이터에 해당하는 뷰가 포함된 ViewGroup)각 item들은 ViewHolder 인스턴스에 포함되어 있다고 간주(view를 참조하는 ViewHolder)RecyclerView는 자신이 ViewHolder를 생성하지 않고 어댑터에 요청
선형 자료구조의 일종이다.쌓아 올린 형태의 자료구조LIFO : 마지막에 들어간 원소가 가장 먼저 나옴간단한 구현 코드줄을 서는 형태의 자료구조FIFO : 먼저 들어간 원소가 먼저 나옴간단한 구현 코드
프래그먼트는 액티비티의 모듈식 섹션입니다.하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있습니다.(하위 액티비티 개념)자체 생명 주기를 가지고, 자체 입력 이벤트를 수신하고, 액티비티 실행 중 추가 및 삭제가 가능프래그먼트를 액티비티 레이아웃에 추가하면, 해당 프래
안드로이드 어플리케이션의 어떤 객체든 Model, View, Controller가 되어야 한다는 것이 MVC의 주요 관점이다. 모델 모델 객체는 어플리케이션의 데이터와 비즈니스 로직을 가짐 모델 객체는 UI를 모른채 데이터를 보존하고 관리하는 것이 유일한 목적 뷰
레이아웃 앱에서 사용자 인터페이스를 위한 구조를 정의 레이아웃의 모든 요소는 View와 ViewGroup 객체의 계층 구조를 사용해 빌드됨 위젯(widget) 사용자가 화면을 보면서 상호작용하는 뷰 화면에 텍스트나 그래픽 등으로 표현되는 것, 버튼과 같이 터치 이벤
여러 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조논리적 저장 순서와 물리적 저장 순서 일치해당 인덱스로 해당 원소에 접근인덱스는 value에 대한 유일무이한 식별자장점원소의 인덱스를 알면 접근시 O(1)데이터가 모여있기 때문에 cache hit rate
전체 일지를 확인하고 싶으시면 여기 들어가시면 됩니다. 해당 글은 코루틴 정리 글을 읽고 학습한 내용을 정리했습니다. CoroutineContext / CoroutineScope 이전 Coroutine 탐험일지(1)에 정리한 내용을 보면 코루틴 컨텍스트, 코루틴 스코
Android를 개발하다 보면 Coroutine을 사용하게 됩니다.왜 Thread를 안 쓰고 코루틴으로 동시성을 보장하지? 라는 생각이 들었습니다.이를 알아보기 위해 우선 Thread와 Coroutine의 차이를 알아보려 합니다.Thread의 Task 단위는 Threa
개발하다 lateinit을 쓸 지, by lazy를 쓸 지 뭐가 맞는지 이야기가 나왔다.그래서 정리하는 글자 우선 이 코드를 보면 얘도 늦게 초기화 한다. a를생각해보면 kotlin은 nullsafe인데 왜 이렇게 코딩할까그래서 lateinit이나 by lazy를 사용
EVENT 처리하는 공부 TODO 앱. MVVM을 공부하며 맨날천날 LIVEDATA만 사용하니 이거 맞나?.. 라는 생각이 들어 찾아보다 역시 여러 방법들이 있는 것을 알았다… 완성 코드. 공부하는 겸 ROOM, Firebase RealTime DB를 사용해 to