본문 바로가기

전체 글156

데이터 바인딩 (DataBinding) 이란? 이번에는 데이터 바인딩(DataBinding)에 대해서 알아보겠습니다. DataBinding이란? 코틀린에서 레이아웃을, 레이아웃에서 코틀린의 데이터를 직접 참조하는 라이브러리. 코틀린에서 레이아웃 파일에 의존적인 부분이 많이 사라지고 MVVM등의 패턴과 함께 사용된다. 인드로이드에서 해당 view에 어떤 값을 변경하거나 그럴때 코드를 계속 작성해야 하는 번거로움 하지만 최근 디자인패턴과같이 코드를 서로 분리시키는 디자인패턴 중 하나인 MVVM에서는 View에 해당되는 코드를 xml에서 처리할 수 있기 때문에 View 자체에서 데이터 변경에 대한 동적 처리가 가능합니다. (ViewModel에 데이터만 남게 함으로서 View-ViewModel 분리가 용이함) 결론적으로 다음과 같이 DataBinding을 .. 2021. 11. 18.
LiveData에서 setValue() / postValue()의 차이점 오늘은 LiveData를 사용하다보면 한번쯤은 생각해보게될 setValue와 postValue에 대해서 알아보겠습니다. 처음에 둘의 차이점은 뭐길래 이렇게 안되고 오류나고 하는것인가 생각해보았었는데요 오늘 내용정리를 통해 한번 더 이해하는 시간을 가져보겠습니다. LiveData는 Android Architecture Components(AAC)에서 제공하는 라이브러리 중 하나 MVVM 패턴을 적용한다면 ViewModel, DataBinding과 함께 많이 사용하는 라이브러리입니다. LiveData는 Observer패턴을 따르며 데이터의 변경이 일어날 때 콜백을 받아 원하는 동작을 수행할 수 있다. LiveData는 값을 변경하게 해주는 함수가 바로 setValue()와 postValue() LiveDat.. 2021. 11. 18.
오버로딩(Overloading) / 오버라이딩(Overriding) 이번에는 java를 조금이나마 접하였다면 가장 기본적?으로 접하는 Overloading, Overriding에 대해서 알아보겠습니다. 용어가 비슷해서 이게 무슨뜻인가~ 헷갈릴 수 있지만! 한번 정확히 내용을 알고 접하면 문제가 없으니 천천히 따라오시면 되겠습니다. * 오버로딩(Overloading) 오버로딩은 한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는 것을 의미 plus()라는 메소드가 있다면 plus(int a), plus(String str)등 메소드 이름은 같지만 호출되는 케이스에 따라 매개변수가 다른 메소드를 만드는 것을 의미합니다. 오버로딩의 조건 1. 오버로딩한 메소드들은 같은 클래스 내에 존재해야하며, 같은 이름을 가져야 함 2. 오버로딩한 메소드들은 형(type)이 서로 다르거.. 2021. 11. 18.
코루틴(coroutine)이란? 코틀린(Kotlin)의 코루틴(coroutine)이란? 코루틴의 coroutine에서 co(함께, 동시에)라는 의미를 가지고 있습니다. 즉 동시성 프로그래밍 개념을 Kotlin에 도입한것인 Coroutine이라고 합니다. 비동기적으로 실행이 되며, 기존 다중 스레드보다 더 효율적으로 동작 *코루틴 스코프 종류 -CoroutineScope: 사용자 지정(ex. 버튼을 눌러 다운로드 하거나 서버에서 이미지 열기 등, 필요할 때만 사용 및 종료할때 CoroutineScope사용) -GlobalScope: 앱의 생명주기와 함께 동작하기 때문에 실행도중 별도 생명주기 관리가 필요없음(실행~종료까지 긴기간 실행되는 스코프) -ViewModelScope: Jetpack 아키텍처의 뷰모델 컴포넌트 사용시 ViewMod.. 2021. 11. 18.