728x90 분류 전체보기87 [Android JetPack] DataBinding 알아보기 앞서 공부한 ViewModel, LiveData와 함께 유용하게 쓰이는 DataBinding에 대해 공부해 보겠습니다. DataBinding이란? 과거 xml의 뷰에 접근하기 위해서는 findViewById()를 사용했습니다. 하지만 findViewById() 방식은 xml 파일이 많아질수록 뷰의 id가 중복되는 경우가 생기고 성능면에서 속도가 느리다는 단점이 있었습니다. findViewById()의 단점을 보완하기 위해 ViewBinding 개념이 등장합니다. ViewBinding 방식은 xml파일 각각을 컴파일 시 하나의 Binding 클래스로 생성한 후 해당 클래스에서 id를 찾는 방식입니다. 그리고 DataBinding은 위의 ViewBinding에서 나아가 xml 파일에서 뷰의 데이터를 처리해주.. 2023. 1. 5. [Android JetPack] LiveData 기본 Android JetPack 라이브러리 중 하나인 LiveData에 대해 알아보겠습니다. 특히, LiveData는 ViewModel과 DataBinding과 함께 유용하게 사용됩니다. [안드로이드] ViewModel 이란? ( + ViewModelFactory) 이번에 알아볼 ViewModel은 이전 포스팅에서 공부했던 MVVM 디자인 패턴의 구성요소 중 하나인 ViewModel입니다. 이해를 돕기 위해 예제와 함께 작성하겠습니다. 이전 포스팅 [안드로이드] MVVM 디자인 develop-oj.tistory.com LiveData LiveData는 관찰(observe) 가능한 데이터 홀더 클래스입니다. 스스로 수명 주기(LifeCycle)를 인식합니다. LiveData의 장점 UI와 데이터 상태의 일치 .. 2023. 1. 4. [Android JetPack] ViewModel 이란? ( + ViewModelFactory) 이번에 알아볼 ViewModel은 이전 포스팅에서 공부했던 MVVM 디자인 패턴의 구성요소 중 하나인 ViewModel입니다. 이해를 돕기 위해 예제와 함께 작성하겠습니다. 이전 포스팅 [안드로이드] MVVM 디자인 패턴 디자인 패턴 디자인 패턴이란 개발을 보다 체계적이고 효율적인 유지·보수를 위해 큰 틀에서 '이러이러한 형식으로 작성하자'라는 일종의 약속으로 볼 수 있습니다. 안드로이드 개발에 사용되 develop-oj.tistory.com ViewModel을 적용하지 않은 경우 class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding var count = 0 override fun onCrea.. 2023. 1. 3. [Android] MVVM 디자인 패턴 디자인 패턴 디자인 패턴이란 개발을 보다 체계적이고 효율적인 유지·보수를 위해 큰 틀에서 '이러이러한 형식으로 개발하자'라는 일종의 약속으로 볼 수 있습니다. 안드로이드 개발에 사용되는 대표적인 디자인 패턴에는 MVP, MVC, MVVM 등이 있습니다. 몇 차례 프로젝트를 진행하면서 Kotlin Class파일과 xml파일이 많아지다 보니 디자인패턴의 필요성을 절실히 느꼈습니다. 또한, 많은 채용공고에서 MVVM 아키텍처 적용 가능한 개발자를 요구하는 것으로 보아 실무에서도 많은 프로젝트에 MVVM 패턴이 적용되고 있다고 느꼈습니다. 이번 포스팅에서는 MVVM 디자인 패턴에 대해 공부해 보겠습니다. MVVM 디자인 패턴 'MVVM'은 Model - View - ViewModel로 이루어진 디자인 패턴입니다.. 2022. 12. 31. [백준] 2581번 : 소수 (Kotlin) 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 나의 풀이 fun main(args: Array) { val M = readLine()!!.toInt() val N = readLine()!!.toInt() val result = ArrayList() for (i in M..N) { var count = 0 for (j in 1..i) { if (i % j == 0) { count++ } } if (count == 2) { result.add(i) } } if (result.size == 0) { println("-1").. 2022. 12. 28. [백준] 2839번 : 설탕 배달 (Kotlin) 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 나의 풀이 fun main(args: Array) { var N = readLine()!!.toInt() var bag = 0 while (true) { if (N % 5 == 0) { println(bag + N / 5) return } else if (N < 0) { println("-1") return } N -= 3 bag++ } } 제가 작성한 코드입니다. ☞ 5의 배수인지 먼저 체크 → 3씩 감소시킬 때 마다 5의 배수인지 확인 → 결국 N이 음수가 된다면 예외.. 2022. 12. 27. 이전 1 ··· 11 12 13 14 15 다음 728x90 반응형