전체 글(134)
-
[안드로이드 - 코틀린] ViewModel을 이용한 Fragment간 데이터 공유
앞에서는 기본적인 ViewModel에 대해 학습하였다. 이번에는 이번 프로젝트에서 사용하게된 Fragment간 데이터 공유 방법에 대해 알아보자 우리가 개발을 하다 Fragment간 데이터를 공유할 때는 일반적으로 bundle을 이용한다 bundle을 생성해 내부에 데이터를 넣어주고 arguments를 이용해 데이터를 받아준다. 하지만 이번에는 ViewModel를 이용해 공유하는 방법에 대해 설명해보겠다. private lateinit var viewModel: MapViewModel viewModel = ViewModelProvider(this)[MapViewModel::class.java] 현재 사용하는 기본적인 ViewModel 작성 방식이다. + 하나의 Activity에서 생성된 Fragment ..
2023.04.30 -
[안드로이드 - 코틀린] ViewModel 역할 및 사용법
예전 프로젝트는 하나의 View에 모든 기능이 들어가 있어 View와 기능의 결합도가 매우 높은 스파게티 코드로 짜인 프로젝트였다. 요즘 공부하는 MVVM 아키텍처를 적용해보고자 코드 변경을 하고 있는데 그중 중요한 부분인 ViewModel에 대해 설명하는 시간을 가지겠다. ViewModel - 사용 이유 viewModel은 Activity Fragment와 같은 View들의 데이터를 보관하고 관리하는 역할을 수행합니다. 또한 데이터를 ViewModel에서 관리하기 때문에 UI와 데이터 간의 응집도 또한 낮출 수 있게 된다. Activity와 Frgament의 View들에 데이터가 담겨있다면 해당 View가 재생성될 때 초기화가 되는 상황이 발생하게 되고 그러면 데이터의 손실이 발생하게 됩니다. 하지만 ..
2023.04.14 -
[파이썬 - 7785] 회사에 있는 사람
문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성하시오. 해당 문제는 데이터를 입력해 로그 작성해서 해당 직원이 회사에 남아있나 퇴근했나를 확인하는 문제이다. 처음 작성한 코드 해당 코드의 문제점은 log 값이 리스트로 작성되어 있고 문제에서 요구한 문자열 제한 5글자또한 들어가있지 않았다 때문에 제출..
2023.04.11 -
[파이썬 - 14425번] 문자열 집합
문제 해당 문제는 n, m에 문자열 개수를 할당하고 개수만큼 문자열을 입력한다. n 개수만큼 's 집합'에 문자열을 넣고 해당 값과 같은 문자열이 있는 경우를 count를 통해 몇개 겹치는지를 구하는 문제이다. 처음 이 문제를 접했을 때는 아무생각도 없이 풀어 리스트에 문자열들을 넣어주고 해당 값의 교집합을 구해 개수를 구했다. n, m = map(int, input().split()) nlist = [] for i in range(n): nlist.append(str(input())) mlist = [] for i in range(m): mlist.append(str(input())) intersection = list(set(nlist) & set(mlist)) print(len(intersectio..
2023.04.11 -
[안드로이드 - 코틀린] Room DataBase 활용 1
써야지 써야지하다 이제야 도전해보는 Room 솔직히 지금까지는 크게 필요하지 않아서 사용하지 않았는데... 아니 미뤘는데 필요하게되서 사용하며 공부했던걸 정리해본다. 발생했던 문제점 - 원치 않았던 데이터까지 데이터베이스에 저장됨 -> 잘못된 아이디와 비밀번호가 자꾸 디비에 저장되는 일 일단 시작하기전 build.gradle 세팅 plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'com.google.gms.google-services' id 'kotlin-kapt' } // room def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_..
2023.04.01 -
[안드로이드 - 코틀린] Internet Connect Check 인터넷 연결 실시간 확인
프로젝트를 진행하다 실시간 인터넷 연결확인하는 작업이 필요해 찾아보다 딱 알맞은 코드를 발견하였다 https://onlyfor-me-blog.tistory.com/654 해당 링크에 있는 코드를 참고해 만들어봤다. Manifest build.gradle def lifecycle_version = "2.6.1" // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" // LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation 'androidx.activity:activity..
2023.03.28