안드로이드에서 생명 주기는 매우 중요합니다. 앱의 활성 상태를 알아야 UI나 동작 등의 작업을 할 수 있기 때문입니다. 액티비티나 프래그먼트의 경우, onCreate 메서드나 onStop 메서드와 같이 해당 상태에 따라 호출되는 메서드가 있습니다. 하지만 수명 주기의 현재 상태에 따라 UI와 다른 구성 요소를 관리하는 호출이 너무 많이 발생하면 여러 컴포넌트를 수명 주기 메서드에 상당한 양의 코드를 배치하게 되어 유지하기 어려워집니다. 또한, 장기 실행 작업을 진행해야 하는 경우 onStop() 메서드가 onStart() 전에 종료되어 구성 요소가 필요 이상으로 오래 유지되는 경합 상태가 발생할 수 있습니다. 이를 해결하기 위해 안드로이드에서는 androidx.lifecycle을 지원하고 있습니다. Li..
Android 개발에서 데이터의 변경을 감지하고 이에 따라 UI를 업데이트하는 것은 매우 중요합니다. 이를 위해 다양한 관찰 가능한 데이터 홀더 클래스가 존재하며, 그중에서도 LiveData는 매우 유용한 도구입니다. 이번 글에서는 LiveData의 장점과 특별한 기능, 그리고 실제 사용 예제를 통해 이를 사용하는 상황을 알아보겠습니다. LiveData란 무엇인가?LiveData는 Android Architecture Components(AAC)의 일부로, 관찰 가능한 데이터 홀더 클래스입니다. 데이터의 변경을 감지하고, 이를 통해 로직을 수행할 수 있게 합니다. 최근에는 LiveData 외에도 Flow와 같은 관찰 가능한 데이터 홀더들이 있지만, LiveData만의 특별한 장점이 있습니다. Androi..
AAC 중 DataBinding에 관하여 포스팅을 해볼까 합니다. DataBinding 드로이드 애플리케이션에서 UI 구성 요소를 애플리케이션 데이터 소스에 결합할 수 있는 기술입니다. 이 기능을 사용하면 XML 레이아웃 파일에서 직접 데이터 객체에 접근할 수 있으며, 코드의 간결성과 유지보수성을 크게 향상시킬 수 있습니다. 이렇게 설명한다면 사람들은 ViewBinding과 무슨 차이가 있냐고 의문을 가질수있습니다. 이 둘의 차이는 XML 레이아웃 파일에서 직접 데이터 객체에 접근할 수 있다는 점입니다. 이는 큰차이입니다. ViewBinding의 장점은 더 이상 View를 findViewById를 통하여 가지고 올필요가 없어진 것입니다. 이것만으로 코드의 양이 줄어 좀 더 간결하고 성능의 향상을 볼..
안드로이드 앱 개발자 공고를 보면 우대사항으로 'AAC 경험'이라는 항목을 종종 볼 수 있습니다. 그렇다면 이 AAC는 무엇일까요?AAC란 무엇인가?AAC는 Android Architecture Components의 약자입니다. 이는 안드로이드 앱 개발 시 통일성과 코드 감소 등의 여러 장점을 제공하는 Jetpack 라이브러리 모음 중 하나입니다. AAC에는 DataBinding, Lifecycles, LiveData, Navigation, Paging, Room, ViewModel, WorkManager와 같은 요소들이 포함되어 있습니다. 이들은 앱의 구조나 디자인을 설계할 때 큰 도움을 줍니다. DataBinding은 ViewBinding에 추가로 xml에서도 코드에 접근하여 해당 값들을 사용할수있..
https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연..
https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력 한 줄에 하나씩 문제..