Android/Architecture10 [Android] SAA(Single Activity Architecture)란? SAA(Single Activity Architecture)SAA는 Google I/O 2018 에서 언급된 내용으로,하나의 또는 적은 Activity만을 사용하고 나머지 화면을 Fragment로 구성한 구조로, Jetpack Navigation과 함께 사용되는 구조이다. Jetpack Navigation에 대해 자세한 내용을 알고싶다면 아래 링크를 참고하자https://jtm0609.tistory.com/114 [Android] Jetpack Navigation Component 딥 다이브Navigation ComponentNavigation Component는 안드로이드 JetPack 라이브러리 중 하나로 사용자의 상호작용에 따라 화면간의 이동을 구현하는데 도움을 준다.이를 사용하면 개발자를 대신해.. 2024. 12. 17. [Android] DTO vs DAO vs Entity 안드로이드에서 클린 아키텍처를 공부해보신 분들이면, 아래 용어들에 대해서 자주 접하게 됩니다.DTO, DAO, Entity각각에 대해서 차이는 무엇이며, 어떤 개념을 가지고 있는지 알아보겠습니다. DTO (Data Transfer Object)DTO는 단어 그대로 데이터 전송 객체를 의미합니다. 쉽게 말해서 HTTP 통신시 JSON 타입의 Request Body와 Response Body를 생각하면 된다.계층 간의 데이터 교환을 하기 위해 사용하는 객체API 호출 시 서버로부터 받은 JSON 형태의 데이터를 매핑할 수 있는 data class화면에 노출시키지 않는 data가 포함된다면 domain 모듈의 model에 필요한 data만 mapping 하는 작업이 필요 DAO (Data Access Obj.. 2024. 12. 14. [Android] MVVM 패턴 MVVM 패턴이 필요한 이유예를 들어 메모장 앱을 개발했고 동작에 필요한 모든 코드를 Activity에 때려박았다고 생각해보자. 이 때 사용자로부터 한가지 요청을 받는다.👩 : 민감한 메모에 비밀번호도 설정할 수 있게 해주세요요청을 받고 코드를 수정하다보면 이런 생각이 든다.아니... 이거 추가하다보니 이것도 고쳐야 되고... 이건 어떻게 수정해야 될지 모르겠고...위의 방식으로는 코드간의 결합도가 너무 높아져 유지보수가 어려워진다. 따라서 유지보수와 확장을 용이하게 하기 위해 관심사를 분리해 코드의 결합도를 낮춰야 한다.그러기 위해 채택한 디자인 패턴이 MVVM 패턴이다. MVVM 패턴MVVM 패턴은 Model + View + ViewModel 을 합친 용어이다.Model실제 데이터에 접근하는 데이터.. 2023. 9. 19. [Android] ViewModel 이란? 들어가기전에,,,ViewModel에는 MVVM 패턴 에서 언급되는 ViewModel과,테스트와 유지보수가 쉬운 앱을 만들 수 있도록 도와주는 AAC(Android Architecture Components) ViewModel, 두가지가 있다.MVVM 패턴의 ViewModelView와 Model 사이의 매개체 역할을 하고 View에 보여지게 되는 데이터를 가공하는 역할을 한다.AAC의 ViewModel앱의 Lifecycle을 고려하여 UI 관련 데이터를 저장하고 관리하는 역할을 한다.구글에서는 MVVM 패턴을 사용하여 앱을 만들 것을 권장하고 있고 MVVM의 ViewModel을 구현할 때 AAC ViewModel을 사용해서 구현하는 것이 좋다.이전 포스팅에서 언급한 LiveData와 함께 사용되는 View.. 2023. 9. 19. 안드로이드 Clean Architecture - 예제 (Rxjava) 모듈 생성부터가 시작이다.이러한 방식으로 presentation, domain, data layer에 대한 모듈을 생성하자.물론, 기존에 생성되어있던 app 모듈을 제거해도 상관 없고 위의 3가지 모듈 중 하나로 생각하고(혹은 Refactor를 통해 Rename) 사용해도 무관하다. 그렇게 생성하고 나면 다음과 같은 형태로 프로젝트 구조가 잡힐 것이다.그 후에는 이제 각 계층에 맞춰서 필요한 package를 생성하고, 클래스를 만들어서 넣으면 된다.실제 프로젝트를 진행하게 된다면 패키지를 전부 구분하여 만들어 두고 의존성을 주입하는 등의 작업을 시작하기는 쉽지 않겠지만, 우리는 공부를 위한 예제를 맞드는 것이니 정석대로 만들어 넣어보자. 각 계층에 필요한 것들은 무엇인가 확인해보자.Domain Layer.. 2023. 5. 27. 안드로이드 Clean Architecture - 개념 클린 아키텍처의 등장특정 수준 혹은 복잡도를 가진 애플리케이션을 위한 고품질 코드를 작성하려면 상당한 노력과 경험이 필요하다. 또한, 애플리케이션은 고객의 요구 사항을 충족 할 뿐만 아니라 유연하고 테스트 가능하며 유지 관리가 가능해야 한다.이러한 문제에 대한 해결책으로 Robert C. Martin은 2012년에 Clean Architecture 개념을 제시 하였다. 클린 아키텍처의 개념클린 아키텍처는 계층을 크게 나누어서 관심사를 분리, 각 분리된 클래스가 한가지 역할만 할 수 있도록 구현하는 방식이다. 모든 의존성 규칙은 반드시 외부에서 내부로 향해야 한다.클린 아키텍처는 계층 구조에서 외부에서 내부로 의존성을 가지고 있기 때문에 내부로 갈 수록 의존성은 낮아지는 특징을 가진다. (위 그림에서는 .. 2023. 5. 27. 이전 1 2 다음