안드로이드/개념

안드로이드/개념

[Android] Clean Architecture

Clean Architecture (클린 아키텍처) 클린 아키텍처는 계층을 크게 나누어서 각 분리된 클래스가 한 가지 역할만 수행하도록 구현하는 방식입니다. 계층 구조를 보면, 외부에서 내부로 의존성을 가지고 있기 때문에 내부로 갈수록 의존성을 낮아지게 됩니다. 즉, 어떠한 동작을 할 때 자기보다 내부에 있는 계층이 변화하면 동작을 행하는 계층에도 영향이 있을 수도 있지만, 자신의 외부에 있는 계층이 변화하는 것 때문에 동작을 행하는 계층에 영향이 있어서는 안 됩니다. 쉽게 패키지 구조 탐색이 가능해집니다. 프로젝트의 유지 보수가 편리해집니다. 새로운 기능을 추가할 때, 안정적으로 빠르게 적용이 가능합니다. 테스트가 용이합니다. Clean Architecture는 모바일 개발을 어떻게 도와주는가? - (..

안드로이드/개념

[Android] Flow

Flow 코루틴에서 Suspend 함수를 사용하면 작업이 모두 완료된 후에 단일 값만 반환받을 수 있습니다. 하지만 Flow를 사용하면 중간중간 진행되는 코루틴 작업 중에 갱신되는 값까지 반환받을 수 있습니다. 단일 값만 반환하는 정지 함수와 달리 여러 값을 순차적으로 내보낼 수 있는 유형입니다. 코루틴을 기반으로 빌드되며 여러 값을 제공할 수 있습니다. 비동기식으로 계산할 수 있는 데이터 스트림의 개념입니다. 내보낸 값은 동일한 유형이어야 합니다. 예를 들어, Flow는 정수 값을 내보내는 Flow입니다. Android의 Kotlin 흐름 | Android Developers Android의 Kotlin 흐름 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 코루틴에서 흐름..

안드로이드/개념

[Android] 코루틴

코루틴 (Coroutine) 코루틴은 '동시'를 뜻하는 co와 '작업들의 집합'을 뜻하는 routine이 합쳐져 만들어진 단어입니다. 일반적으로 루틴은 단 하나의 입구점과 출구점을 가지는 반면, 코루틴은 여러 개의 입구점과 출구점을 가질 수 있습니다. 따라서, 코루틴은 이전에 실행이 중단된 지점에서 다시 실행을 재개할 수 있는 기능을 가집니다. 코루틴을 적용하면 데이터베이스 또는 네트워크 작업 같은 장시간 작업으로 인한 메인 스레드 블로킹 현상을 줄일 수 있으며, 비동기 작업 중 예외 발생에 따른 메모리 누수를 방지할 수 있습니다. 즉, 비동기적으로 실행되는 코드를 간소화하기 위해 동시성 프로그래밍 개념을 코틀린에 도입한 것을 코루틴이라고 합니다. Android의 Kotlin 코루틴 | Android D..

안드로이드/개념

[Android] Rx와 Observable

Rx Rx란 ReactiveX(Reactive Extensions)의 약자로, 리액티브 프로그래밍을 위한 라이브러리입니다. ReactiveX는 비동기 프로그래밍과 Observable 시퀀스를 이용해 이벤트를 처리하기 위한 반응형 프로그래밍 기법입니다. 효율적으로 신속하게 비동기 처리를 도와줍니다. 함수형 프로그래밍을 일부 지원합니다. 옵저버 패턴을 사용합니다. 콜백에서 또 콜백을 하는 콜백 지옥에서 벗어날 수 있습니다. ReactiveX Reactive Extensions for Async Programming. ReactiveX has 42 repositories available. Follow their code on GitHub. github.com ReactiveX에는 다음과 같이 여러 가지가 존..

안드로이드/개념

[Android] 앱 아키텍처 패턴 (MVC, MVP, MVVM, MVI)

아키텍처 패턴 아키텍처 패턴은 디자인 패턴과 소프트웨어공학에서 발생하는 문제를 해결한다는 점에서 비슷합니다. 하지만 디자인 패턴은 특정 문제를 해결하기 위한 방법이고, 아키텍처 패턴은 전체적인 소프트웨어에서 발생하는 문제들을 해결하기 위한 방법입니다. 앱 아키텍처 패턴에는 MVC, MVP, MVVM, MVI 등 다양한 패턴이 존재합니다. 각 앱의 특성에 맞게 알맞은 패턴을 적용해 앱을 설계해야 합니다. MVC 패턴 MVC 패턴은 Model, View, Controller로 구성되어 있습니다. Model : 앱의 데이터를 저장하고 처리하는 역할을 담당합니다. SQLite, File, Content Provider 등이 포함됩니다. View : 화면 구성을 담당하는 영역입니다. 이 영역은 View 클래스를 ..

안드로이드/개념

[Android] 정규표현식

정규표현식 (Regular Expressions, Regex) 정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어입니다. 정규표현식을 사용할 때에는 java.util.regex 패키지 안에 있는 Pattern 클래스와 Matcher 클래스를 주로 사용합니다. 정규 표현식 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 노란색 강조 부분은 다음 정규식을 사용했을 때 매치된 것이다. 스티븐 클레이니는 정규 표현식의 개념을 설립한 공로자이다. 정규 표현식(正規表現式, 영어: r ko.wikipedia.org 정규표현식 문법 정규표현식 설명 ^ 문자열 시작 $ 문자열 종료 . 임의의 한 문자 (단, \는 넣을 수 없음) * 앞 문자가 없을 수도 무한정 많을 수..

안드로이드/개념

[Android] LiveData

LiveData LiveData는 Data의 변경을 관찰할 수 있는 Data Holder 클래스입니다. 이는 일반적인 Observable과는 다르게 LifeCycleOwner를 통해 안드로이드 생명주기를 알고 있습니다. 즉, 액티비티나, 프레그먼트, 서비스 등과 같은 안드로이드 컴포넌트의 생명주기를 인식하며 그에 따라 LiveData는 활성 상태일 때만 데이터를 업데이트 합니다. 또한, LiveData 객체는 Observer 객체와 함께 사용됩니다. LiveData가 가지고 있는 데이터에 어떠한 변화가 일어날 경우, LiveData는 등록된 Observer 객체에 변화를 알려주고 Observer의 onChanged() 메소드가 실행되게 됩니다. LiveData 개요 | Android 개발자 | Andro..

안드로이드/개념

[Android] ViewBinding과 DataBinding

ViewBinding ViewBinding을 사용하면 각 XML 레이아웃 파일의 Binding 클래스가 자동으로 생성됩니다. Binding 클래스의 인스턴스를 통해 상응하는 레이아웃의 모든 뷰를 직접 참조할 수 있습니다. Null 안정성 : 유효하지 않은 id를 사용하는 null exception를 방지할 수 있습니다. Type 안정성 : view 타입을 잘못 캐스팅하는 cast exception를 방지할 수 있습니다. 속도 : findViewById()보다 빠릅니다. 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모..

damon-911
'안드로이드/개념' 카테고리의 글 목록