분류 전체보기 (169) 썸네일형 리스트형 [Android] Clean Architecture 실전 압축 정리 - Data Flow 필자가 클린 아키텍처에 대한 개념을 공부하고, 예제를 만들면서 가장 헷갈렸던 부분이 데이터의 흐름이 어떻게 되는지에 대해서 이다. 다중 모듈(3개 밖에 되지 않지만) 구조를 처음 만들어 보았기 때문일 수도 있겠지만, 어디에서는 인터페이스, 어디에서는 구현부, 어디에서는 실 사용 하는지 명확하게 이해하지 못했기 때문이다. 그에 따라서, 해당 내용을 복기 할 겸 정리해보고자 한다. 클린 아키텍처에서 데이터의 흐름이라고 하면 Data 모듈에서 Local 혹은 Remote 에서 구해 온 데이터를 어디로 전달하여 어떻게 실제로 사용하는지 에 대한것이 메인이 아닐까 생각한다. 그렇다면, 모듈로 보았을 때 데이터의 흐름은 어떻게 되는 것인가? 필자는 이런식으로 생각하고 이해하였다. 간단하게 생각해 보았을 때, 사용자.. [Android] Clean Architecture 실전 압축 정리 - 예제 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) 해당 게시글에 사용되는 예제 코드는 gitHub 에 업로드 해두었습니다. https://github.com/HeeGyeong/CleanArchitectureSample GitHub - HeeGyeong/CleanArchitectureSample Contribute to HeeGyeong/CleanArchitectureSample development by creating an account on GitHub. github.com 저번 개념 정리 게시글에 이어서, 실제 예제를 보면서 어떤식으로 Clean Architecture 가 구현되는지 확인해보자. 클린 아키텍처의 개념에 .. [Android] Multi Module에서 Gradle 공통화를 해보자. Clean Architecture 관련 예제를 만들며 공부를 하던 도중, 모듈을 여러개로 나누어서 테스트하다보니 gradle 에서 공통된 코드들이 많아서 이것을 하나의 코드로 관리할 수 있는 방법에 대해서 찾아보았다. 생각보다 많은 자료가 나오지 않았고, 다양한 오류가 발생하여 만족스럽게 작업을 하지 못하였으나 기록하기 위해 작성한다. (추후 수정이 된다면 내용도 수정 될 예정입니다. 알고 계신분은 많은 가르침 부탁드립니다.) 우선, 하나의 gradle 파일로 공통된 부분을 관리하기 위한 gradle 파일을 생성해 주어야 한다. gradle 파일의 위치는 편한대로 지정해도 되지만, 필자는 가장 최상위 프로젝트 폴더에 생성해 두었다. 필자처럼 gradle 파일을 한번도 생성해보지 않은 사람은, 어떻게 gr.. [Android] 데이터 바인딩 어댑터 (Data Binding Adapter) 사용 방법 필자가 예전에 DataBinding 관련한 공부를 진행하면서 기본적인 사용 방법에 대해 간단히 작성해 둔 게시글이 있다. 이번에 클린 아키텍처 관련 예제를 작성하다 데이터 바인딩을 사용한 조금 더 심화(?)된 방법으로 사용하고 있는 것을 보고 정리겸 간단하게 사용법을 작성해 보려고 한다. * 2020.06.15 - [AAC] - [DataBinding] 데이터 바인딩 기본 사용 방법 [DataBinding] 데이터 바인딩 기본 사용 방법 DataBinding 적용 최소 사항 Android 2.1 (API 7, Android Nougat) 이상 안드로이드 누가의 경우, 19년 10월을 기준으로 지원 중단. 갤럭시 S6이상의 기기에서 사용 가능. Android Plugin for Gradle 1.5.0-al.. [Android] Clean Architecture - UseCase 란 ? 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) Clean Architecture 를 공부하는 도중에, UseCase 라는 것을 domain layer 에서 사용하는 것을 보았다. UseCase 가 무엇이길래 이것을 사용하는 것인지 알아보자. UseCase 란 ? 서비스를 사용하고 있는 사용자(User)가 해당 서비스를 통해 하고자 하는 것을 의미한다. 즉, 블로그 라는 서비스가 있다고 가정해보자. 사용자는 블로그에 들어와서 보고 싶은 게시글을 '검색' 할수도 있고, '댓글'을 남기거나 '공유' 버튼을 누르는 등 다양한 행동을 수행할 수 있다. 이러한 사용자가 서비스에서 수행하고자 하는 것들이 UseCase 라고 할 수 있.. [Android] Clean Architecture 실전 압축 정리 - 개념 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) 클린 아키텍처를 공부하다 보면 모든 블로그에서 다음과 같은 이미지를 볼 수 있었다. 이게 뭔데 다들 이것만 올리는건데? 이게 뭔데 다들 이것만 올리는건데? 필자는 해당 이미지를 가장 처음 보았을 때 이런 생각이 먼저 들었다. 이는 Clean Architecture 에 대한 개념이 없이 해당 그림만 보면 이해가 안되는 것이 당연한 것이다. (어느정도 공부하고 봐도 헷갈리는건 마찬가지다) 그래서 교과서적인 개념 정리보다는, 필자가 공부하고 예제를 만들어 보면서 이해한 대로 정리해보려고 한다. 교과서적인 개념 정리가 필요하면, 다른 정리가 깔끔하게 된 블로그들이 많으니 참고하길 바.. [Kotlin] 10장. 코루틴과 동시성 프로그래밍 코루틴? 하나의 개별적인 작업을 루틴(routine)이라고 부르는데 코루틴이란 여러 개의 루틴들이 협력(co)한다는 의미로 만들어진 합성어. 프로세스와 스레드 하나의 프로그램이 실행되면 프로세스가 시작되는데 프로세스는 실행되는 메모리, 스택, 열린 파일 등을 모두 포함하기 때문에 프로세스 간 문맥 교환을 할때 많은 비용이 든다. 반면, 스레드는 자신의 스택만 독립적으로 가지고 나머지는 스레드끼리 공유하므로 문맥 교환 비용이 낮아 프로그래밍에서 많이 사용된다. 스레드 스레드 루틴을 만드려면 Thread 클래스를 상속받거나 Runnable 인터페이스를 구현하여 사용한다. 이런식으로 사용이 가능하며, 익명 클래스를 사용하면 다음과 같이 사용이 가능하다. 스레드 풀 사용하기 몇 개의 스레드를 먼저 만들어 놓고 .. [Kotlin] 9장. 표준 함수와 파일 입출력 람다식 람다식은 항상 중괄호로 묶여 있으며 중괄호 안에 매개변수는 화살표 왼쪽에 배치, 오른쪽에는 그에 따른 식을 구현한다. val 변수 이름: 자료형 선언 = { 매개변수[,...] -> 람다식 본문 } sum은 익명 함수로 만들어지며, 람다식의 x + y 값이 반환 된다. 여기서 x, y의 값은 고정된 것이 아닌 사용자가 마음대로 선언이 가능하다. 하지만, 매개변수가 1개인 경우 매개변수를 사용하여 표현할 수 있지만 매개변수를 생략하고 it으로 표기할 수 있다. 이 때, it 은 고정된 변수 이름이므로 변경해선 안된다. 클로저 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념을 말한다. 이 때, 람다식 안에 있는 외부 변수는 값을 유지하기 위해 람다식이 포획한 변수라고 .. 이전 1 ··· 13 14 15 16 17 18 19 ··· 22 다음