전체 글 1664

ViewModel에 대한 Insight

1. ViewModel에서 View(Fragment, Acivity)에 직접 접근하거나 제어 해서는 안된다. 2. ViewModel에서 View를 변경하고 싶으면 LiveData나 Callback 혹은 Function Reference를 사용하면 된다. 예를 들어, 특정 View를 보이지 않게 하고 싶으면 "val enableLayoutVisibility = MutableLiveData()" 같은 변수를 사용하여 Observe 패턴으로 Fragment나 Activity에서 제어 하면 된다. 3. 장점 View와 Business logic을 분리 할 수 있으며, 이것은 많은 장점을 갖는다. View는 오직 View의 처리만 담당하므로 보기가 편하다. 이런 관심사의 분리가 발전하여 Compose UI를 탄생..

HashMap은 call by reference를 사용한다.

HashMap의 리턴 값은 call by ref를 사용하기 때문에, 값을 변경하여도 다시 put을 사용하지 않아도 된다. In this example, the StringBuilder object is modified directly after being retrieved from the HashMap, and the changes are reflected in the value stored in the map. Note that you don't need to use the put method again to update the value in the map because you are working with a reference to the same object. public class HashMap..

답답하네...

그래도 프로그래머라고 돈 벌어 먹고 살고 있는데, 그 동안 노력하지 않았던 것들이 빚이 되어 나를 덮친다. 다른 사람들은 하루, 이틀에 하는 걸 나는 며칠이 걸려도 안되고, 이유를 모르겠던 문제를 잠깐 보고 솔루션을 알고 있는 사람도 있고, 현재 회사에서 연차가 적다 보니 여러가지 모르는 것들도 많고,,, 아무튼 여러가지가 한 번에 쫒아 오는 요즘이다. 문득, 그런 생각이 든다. 내가 이 회사에서 성공할 수 있을까? 살아 남을 수 있을까? Layoff 하면 첫번째로 잘릴 것 같은데,,, 그래도 어쩌겠는가,,, 다른 방법이 있는 건 아닐 것이다. 다른 회사에 간다고 하여도 내가 가진 Tech debt이 사라지는 게 아니니... 어쩌면 지금이 이런 Tech debt를 청산할 수 있는 귀중한 시간이 될 수도 ..

오늘하루 2023.11.30

fragments 에서 view binding을 사용하기 위한 패턴

아래는 google이 보여줬던 기본 패턴이다. 그냥 이것을 바탕으로 살을 붙이면 된다. binding 변수를 사용하는 이유 _binding은 nullable 이라서 매번 _binding?.okButton 같은거 해주기 불편해서이다.(출처) onDestoryView()에서 _binding 에 null을 대입 하는 이유 memory leak 방지 private var _binding: ResultProfileBinding? = null // This property is only valid between onCreateView and // onDestroyView. private val binding get() = _binding!! override fun onCreateView( inflater: Layo..