안드로이드 17

최데브의 2021 하반기 목표에 대해

요즘 날도 더워지고 일도 정신없어서 몸이 피곤하다보니 정신적으로 많이 지치는거 같다. 아 물론 내가 뭔가를 하나씩 만들어가는게 뿌듯하고 즐겁긴하다. 즐거운거랑 지치는거랑은 또 다른 이야기니까.. 그냥 마음이 좀 조급한거 같다. 어릴때부터 그랬지만 머리속으로 그리는 이상향은 너무 높은데 내 의지와 정신력이 그걸 따라가주질 못한다. 핑계라면 핑계겠고 주변 사람들은 '그래도 매일매일 뭐를 하면서 열심히 사네.' 라고들 말해주지만 난 항상 부족하다는 느낌이 든다. 본업인 안드로이드도 지금 당장 뭘 만들라고 하면 엄청 복잡한게 아니라면 큰 어려움 없이 만들 수 있지만 더 좋은 방식, 더 효율적인 기술을 이용해서 멋진 프로그램을 만들고 싶은건 개발을 좋아서 하는 개발자라면 누구든 가지고 있는 갈증 같은거 라고 생각..

잡담 2021.06.12

RxJava , RxKotiln 이란?

Rx는 뭔가? 바로 말하자면 Reactive Programming 이다. 반응형 프로그래밍이다. 반응형 프로그래밍이라는 단어가 왜 나오게 됐을까 기존 프로그램은 한번 변화가 있고나서 그것을 다시 알려주려고 부가적인 처리를 해줘야했다. 간단한 동작임에도 여러가지 처리를 해줘야해서 개발자 입장에서 피곤한 점도 많고 예상치 못한 문제가 발생할 위험도 존재했다. 이를 해결하기 위해 나온 프로그래밍 방식이 반응형 프로그래밍인데 프로그램이 자신의 주변과 끊임없이 상호작용하며 프로그램 자체가 주도해서 값이 변화하는것이 아닌 환경에 의해 변하면 이벤트를 받아 반응하는 프로그램을 의미한다. 당장은 와닿지 않을 수 있지만 이 Rx 관련 포스팅을 읽다보면 감이 올거라고 생각한다. 한마디로 즉, 근래에 떠오르고 있는 Reac..

MVVM 패턴 설명 - 2(view Model)

정말 오랜만에 MVVM 패턴의 두번째 글을 쓴다. 그동안 이것저것 바빴는데 다 핑계처럼 들릴거 같아서 그냥 포스팅이나 하겠다. 사실 핑계 맞다. 저번 포스팅은 View에 대해 다뤘는데 오늘은 ViewModel 에 대해서 적으려고 한다. ViewModel은 MVP 패턴에 프레젠터랑 비슷한 느낌이다. 중간에서 데이터를 받고 전달해주는 우편부 역할. 그러나 다른점이 있으니 패턴이름도 달라졌을터 의존성의 문제가 달라졌다. MVP 패턴의 프레젠터는 모델과 뷰에 각각 의존성을 가지고 있었는데 MVVM 은 data Binding 이라는 개념을 통해 Model 파트와의 의존성만 가지고 view와의 의존성은 가지지 않는 구조를 갖게 되었다. 이해가 되지 않는다면 인터넷에 MVVM 패턴이라고만 쳐도 그림으로 그려져 있는것..

Android 2021.03.27

FireStore 데이터 가져오기

FireStroe 는 클라우드 방식의 데이터베이스를 사용하기 쉽게 제공되는 DB 다. 소유한 서버, DB가 없다면 저렴한 가격으로 대여할 수 있는 좋은 서비스다. FireStore 에는 크게 컬렉션 , 문서 , 필드로 이루어져있는데 컬렉션 아래에 문서 여러개 또 문서 아래에 필드 여러개로 계층적인 구조를 가지고 있다. 직접 파이어스토어를 만들어보면 바로 이해가 될 것이다. 웹, 안드로이드 , ios 등 여러 플랫폼에서 제공되고 있는 각각 설치하는 방법은 공식문서나 많은 블로그에 다루고 있으니 따라하면 바로 적용된다. 나는 안드로이드 환경을 기준으로 사용하는 방법에 대해 코드 위주로 정리 해볼까한다. 먼저 가장 상위 계층인 컬렉션(문서 아래의 필드 구간에서도 컬렉션을 만들 수 있다. 뒤쪽에 이게 무슨말인지..

카테고리 없음 2021.03.06

안드로이드에서의 Parcelable vs Serializable

안드로이드를 개발하다보면 다른 액티비티로 데이터를 전달할때 그 데이터가 복잡한 클래스의 객체라면 Serializable 또는 Parcelable 를 사용하여 직렬화 하여 인텐트에 추가해야한다. 그럼 직렬화는 뭘까? 직렬화는 1. 메모리 내에 존재하는 정보를 보다 쉽게 전송 및 전달하기 위해 byte 코드 형태로 나열하는 것이다. 여기서 메모리 내에 존재하는 정보는 즉 객체를 말한다. 2. JVM 의 메모리에 상주 되어있는 객체 데이터를 바이트 형태로 나타내는 기술 역직렬화 라는 개념도 있는데 말그대로 위의 내용의 반대라고 생각하면 된다. Serializable 부터 뭔지 알아보자. Serializable 는 Java 에서 제공하는 interface다 사용하기도 쉽고 직렬화 또한 잘된다. 그러나! 사용하기..

Android 2021.01.28

안드로이드 DI 라이브러리 Koin 에 대해

DI 가 의존성 주입을 의미하는 단어라는것은 알고 있었다. Spring 공부할때 bean 으로 의존성 주입하고 어노테이션으로 썼던 기억이 난다. 안드로이드에서는 사용해보지 않았는데 Dagger2 라는 라이브러리가 그 역할을 해주고 있다는건 알고 있었다. 그렇게 알고만 있다가 새로 공부하고 프로젝트에 적용해보고 싶은 욕심이 생겨서 찾아보던 중 Dagger2와 성능차이도 나지 않는데 훨씬 쓰기 쉽고 직관적인 라이브러리 Koin 이 있다는걸 알고 사용해보기로 했다. 쉽고 좋은데 쓰지 않을 이유는 없지. 먼저 DI를 왜 쓸까? 사용하면 얻는 이점부터 알아보자. - 의존관계 설정이 프로그램 실행시에 이루어지기 때문에 컴포넌트간 결합도를 낮춘다. - 코드 재사용성이 증가한다. - 단위 테스트의 편의성을 높여준다. ..

Android 2021.01.24

안드로이드 MVVM 패턴 - 개요

얼마전부터 공부하고 있는 MVVM 패턴에 대해 정리하기위해 포스팅을 하기로 마음먹었다. 사실 MVVM 패턴 자체만 두고보면 엄청 어렵고 그런 개념은 아닌데 제대로 만들기 위해서 들어가는 여러가지 따라오는것들이 어려운거 같다. LiveData 라던지 RxJava 라던지.. 이런것들도 다음 포스팅에 적을것이다. 일단 MVVM 패턴에 대해서 먼저 알아보자. MVVM 패턴은 예전 MVP 포스팅에서도 언급했듯 MVP패턴의 View와 Presenter , Model 사이이 양방향 의존성이 심해서 이것을 해결하기 위해 만들어졌다. MVVM 은 크게 View - ViewModel - Model 로 이루어져있고 단방향 의존성을 가진다. VIew는 ViewModel 을 참조하지만 ViewModel 은 View 를 참조하지..

Android 2021.01.24