전체 글239 [안드로이드] - 클린아키텍처 - 3 이전 편 2탄에서는 밥아저씨가 소개한 클린 아키텍처를 설명하였다. 이번에는 안드로이드 개발자는 어떤식으로 클린 아키텍처를 적용할 것인가? 에 대해서 블로그를 적어보려 한다. 모바일 클린 아키텍처 모바일 환경 자체의 특성에서 오는 문제가 있다. 자원의 한계, 라이프 사이클를 신경써야하는 부분 등 많은 문제가 있으나 가장 큰 문제가 되는 부분은 프리젠테이션 로직 복잡도다. 모바일 앱의 경우 뷰 상태가 매우 복잡하고, 비동기 처리가 많은 특성이 있다. 비동기 처리 없이 순차적인 시간 흐름으로 뷰 로직을 처리하는 것은 불가능한 경우가 많기 때문에 심플하게 코드 짜는 것이 쉽지 않다. 어느 순간 내가 짠 코드조차도 특정 이벤트에 대한 반응 로직이 어찌되어 있는지 코드를 보고 바로 이해하기가 힘든 경우가 흔히 생긴.. 2023. 2. 1. [안드로이드] - 클린아키텍처 - 2 앞에 1탄에서는 아키텍처를 왜 배워야하는 지와 2탄에서 아키텍처는 무엇인지를 정리했다. 이제는 밥아저씨가 말한 클린 아키텍처가 무엇인지를 알아보고자 한다. 클린 아키텍처 지난 수년간 우리는 시스템 아키텍처와 관련된 여러 가지 아이디어를 봐왔다. 헥사고날 아키텍처 : https://mesh.dev/20210910-dev-notes-007-hexagonal-architecture/ 오니온 아키텍처 : https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/ 스크리밍 아키텍처 : https://blog.cleancoder.com/uncle-bob/2011/09/30/Screaming-Architecture.html DCI : https://en.wi.. 2023. 2. 1. [안드로이드 면접] - 9 : 1. 안드로이드 MVC 패턴이란? 더보기 M-model / V-view / C-controller 로 구조를 나눠서 개발을 할수 있는 아키텍처 패턴을 말한다. 해당 패턴을 이용하여 파일 구조를 나누는 이유는 개발자들끼리 협업하는 용이해지고, 유지보수와 확장성에 효율적이다. 그렇지만 흔히 알고있는 MVC 패턴은 안드로이드에 적용할 수 없다. 안드로이드는 내부 API 에 종속적이라 웹과는 살짝 다른 형태를 갖고 있다. MVC 패턴 Flow 1. 뷰(액티비티/프래그먼트)로부터 사용자 이벤트 발생 2. 모델로부터 데이터 갱신이 필요한지 확인 3. 모델로부터 전달받은 데이터를 통해 뷰를 갱신여부 판단 4. 뷰에서 UI 갱신처리 장점 - 직관적이다. - 구현하기 쉽다. - 모델과 뷰가 분리되어 모델 재활용이 가능하.. 2023. 2. 1. [안드로이드 면접] - 8 : 1. recyclerView 와 listView 차이는? 더보기 listView 는 recyclerView 에 유연성 있는 view를 만들기 위해선 recyclerview 에 비해서 뷰 커스텀 작업에 대한 유연성이 떨어지는 단점이 있다. 또한, listView 는 view 를 그릴 때마다 findViewById() 를 호출하기 때문에 성능 저하 문제가 발생한다. 이 점을 ViewHolder 패턴으로 해결할 수 있지만, recyclerview 는 이 부분을 강제하지만, listview 는 강제하지 않아 일일이 ViewHolder 생성코드를 직접 작업해줘야 하고 자칫 깜빡하는 경우가 빈번히 발생한다. 고로 이 부분이 상대적으로 단점이 된다. 💡유연성 있는 view 란? item layout 을 다양하게 적용.. 2023. 1. 31. [안드로이드 면접] - 7 : 1. lateinit, lazy 를 사용하는 이유는? 더보기 보통 클래스에서 변수를 초기화하면 클래스 생성 시 해당 변수도 함께 생성되며 초기화 된다. 그렇게되면 클래스 객체를 생성할 때마다 해당 변수도 함께 초기화되니, 바로 사용할 수 있는 장점이 있다. 하지만, 해당 변수를 바로 사용하지 않거나 꼭 사용하는 경우가 아니라면 오히려 클래스 생성마다 해당 변수를 만들고 초기화 하는 것이 시간과, 메모리 낭비가 된다. 또한, 전역 변수를 선언하기 위해 굳이 null 처리를 해야하는 경우가 있다. 2. Android 와 AndroidX 차이는? 더보기 AndroidX 는 Jetpack 내에 라이브러리를 개발, 테스트, 패키지화, 버전 및 릴리즈를 하기 위해 사용하는 오픈소스 프로젝트이다. 기존 Android.. 2023. 1. 30. [안드로이드] - 클린아키텍처 - 1 이전 블로그에선 아키텍처를 왜 알아야할까? 에 대해 알아봤다면 이번 블로그 글에선 아키텍처가 무엇인지 좀 더 깊게 알아보자. 아키텍처 소프트웨어 아키텍처란? 시스템을 구축했던 사람들이 만들어낸 시스템의 형태이다. 💡시스템을 구축한 사람은 소프트웨어 아키텍트이다. 그 모양은 시스템을 1. 컴포넌트로 분할하는 방법. 2. 분할된 컴포넌트를 배치하는 방법, 3. 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다. 그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽개 개발, 배포, 운영 유지보수 되도록 만들어진다. 이 정의에 놀랐을 수도 있다. 아마도 소프트웨어 아키텍처의 목표가 시스템을 제대로 동작하도록 만드는 데 있다고 생각하고 있었을 것이다. 물론 우리는 시스템이 제대로 동작하기를 바라며, 시스템.. 2023. 1. 29. 이전 1 ··· 6 7 8 9 10 11 12 ··· 40 다음