MY
-
안필버그
안녕하세요, 안드로이드 개발하는 안필버그 입니다.
최신글
-
[Android/CS] 안드로이드 아키텍처 컴포넌트 AAC 에 대해 알아보자!
이번 시간에는! 이번 시간에는 안드로이드 아키텍처 컴포넌트, AAC(Android Architecture Component) 에 대해 알아보려고 해요. AAC 가 뭐야? AAC(Android Architecture Component) 는 테스트와 유지보수가 쉬운 앱을 디자인할 수 있도록 돕는 라이브러리의 모음이에요. AAC에는 안드로이드와 아키텍처에 대한 고민이 많이 담겨있기 때문에, 필수로 공부해야 한다고 생각해요. 구글은 2017년에 새로운 라이브러리들을 AAC로 묶어 발표했으며 크게 5가지로 분류하였어요. Lifecycles / LiveData / ViewModel / Room / Paging 이렇게 크게 다섯 가지로 분류되어 있어요. 이제 순서대로 알아보도록 하겠습니다. Lifecycles Lif..
-
[Android/CS] 동기와 비동기, 블로킹과 논블로킹에 대해 알아보자!
면접 준비를 하다 동기와 비동기에 대해 알아보려다 블로킹과 논블로킹에 대해서도 알아보게 되었다. 동기 (Synchronous) 어떤 작업을 요청한 즉시 바로 그 작업의 완료 여부와 처리 결과를 확인할 수 있는 방식이다. 요청한 작업의 완료 여부와 결과를 바로 알 수 있다는 장점이 있다. 하지만 요청한 작업의 완료여부와 작업 결과를 반환받는 데 필요한 시간이 긴 경우 문제가 발생할 수 있다. 해당 작업이 완료되어 결과가 반환될 때 까지 무조건 기다려야만 하기 때문에 짧은 시간이 엄청 많은 대량의 데이터를 요청해 작업을 진행하게 되는 경우, 문제가 발생할 수 있어 주의를 해야 한다. 비동기 (Asynchronous) 동기와 다르게 비동기는 작업을 요청한 즉시 바로 그 작업의 완료 여부와 작업 결과를 바로 확..
-
[Android/Design Pattern] MVVM 디자인 패턴에 대해 알아보자!
전에 MVP 에 대해 알아보았습니다. 이번에는 각각의 디자인 패턴의 단점을 보완하기 위해 만들어진 MVVM 에 대해 알아보겠습니다. MVVM 이란? MVVM 패턴은 Model - View - ViewModel 를 합친 용어입니다. Model 과 View 가 존재하고, Controller, Presenter 대신 ViewModel 이 존재합니다. MVVM 의 핵심은 화면을 만드는 코드와 뒤에 데이터를 처리하는 코드를 분리합니다. 이렇게 되면 하나의 소프트웨어를 최대한 기능적으로 작은 단위로 나누어 개발하므로 테스트가 쉽고, 큰 프로젝트도 상대적으로 관리하기 좋은 구조입니다. 구조 1. Model 데이터에 대한 상태 처리나 비즈니스 로직을 처리합니다. UI 에 대한 로직은 가지지 않습니다. DB 나 API ..
-
[Android/Design Pattern] MVP 디자인 패턴에 대해 알아보자!
지난번에는 MVC 에 대해 알아보았습니다. 이번에는 이를 보완한 MVP 에 대해 알아보겠습니다. MVP 란? MVP 패턴은 Model + View + Presenter를 합친 용어입니다. Model 과 View 는 MVC 패턴과 동일하고, Controller 대신 Presenter 가 존재합니다. MVP 의 핵심 설계는 MVC 와 다르게 UI(View) 와 로직(Model)을 분리하고, 서로 간에 상호작용을 다른 객체(Presenter)에 그 역할을 줌으로써, 서로의 영향을(의존성)을 최소화하는 것에 있습니다. 구조 1. Model Model 은 APP 에서 사용되는 data를 처리합니다. (비즈니스 로직) View 또는 Presenter 등 어떤 요소에도 의존적이지 않고 독립적이다. 2. View Vi..
-
[Android/Error] Parcel: unable to marshal value data class 에러 해결방법
안녕하세요! Parcel: unable to marshal value Image 라는 에러를 마주했습니다. 여기서 Image는 data class 이름이에요. value 다음에 나오는 이름은 여러분들의 data class 이름일 겁니다. 이러한 에러가 생긴 이유는 Serializable 이라는 키워드를 넣어주지 않았기 때문입니다. 직렬화를 사용했기 때문에 개발할 때 여러분들은 "직렬화 할거에요!" 라는 얘기를 data class에도 전달해주어야 합니다. 이를 해결하는 방법은 간단합니다. 저의 기존 data class와 변경 data class를 보여드리겠습니다. 기존 data class data class Image( @SerializedName("created_at") val createdAt: Str..
-
[Android/TIP] value의 strings.xml에 공백 추가하는 방법
경로 res/values/strings.xml 공백 추가하는 방법?? 텍스트 " 안 녕 하 세 요 "로 예시를 들어보겠습니다. (제일 앞과 뒤에 있는 공백도 함께) 태그 사용하기 안 녕 하 세 요 결과
인기 글
-
[Android/Kotlin] ViewModelFactory를 사용하자!
저번 시간에 ViewModel에 대해 알아보았는데요, 이전 시간 게시글을 보지 못한 분들을 위해 아래에 이전 시간에 작성한 게시글 링크를 달아놓겠습니다. https://minhyuuk.tistory.com/6 [Android/Kotlin] 예제를 통해 ViewModel에 대해 알아보자! ViewModel이란? ViewModel이란 Android Jepack의 구성요소 중 하나로, Activity와 Fragment 같은 UI Controller의 수명 주기를 관리합니다. 또한 본래 ViewModel이란 이름은 소프트웨어 개발 디자인 패턴 중 하나.. minhyuuk.tistory.com 일반적으로 ViewModel을 만들어 사용하는 건 매우 간단합니다. 하지만 생성자나 매개 변수를 사용하지 않고 ViewM..
-
[Android/Design Pattern] MVVM 디자인 패턴에 대해 알아보자!
전에 MVP 에 대해 알아보았습니다. 이번에는 각각의 디자인 패턴의 단점을 보완하기 위해 만들어진 MVVM 에 대해 알아보겠습니다. MVVM 이란? MVVM 패턴은 Model - View - ViewModel 를 합친 용어입니다. Model 과 View 가 존재하고, Controller, Presenter 대신 ViewModel 이 존재합니다. MVVM 의 핵심은 화면을 만드는 코드와 뒤에 데이터를 처리하는 코드를 분리합니다. 이렇게 되면 하나의 소프트웨어를 최대한 기능적으로 작은 단위로 나누어 개발하므로 테스트가 쉽고, 큰 프로젝트도 상대적으로 관리하기 좋은 구조입니다. 구조 1. Model 데이터에 대한 상태 처리나 비즈니스 로직을 처리합니다. UI 에 대한 로직은 가지지 않습니다. DB 나 API ..