전체 글 (95) 썸네일형 리스트형 Android ViewModel 의 onCleared() 는 언제 호출되는가? ViewModel ViewModel 은 이제는 안드로이드 프로그래밍에 있어서 필수 불가결한 존재가 되었습니다. 특히 MVVM, MVI, MVW 등, 관심사의 철저한 분리가 요구되는 아키텍처에는 꼭 필요합니다. 특정 아키텍처를 적용하지 않더라도, View 가 표시할 상태나 데이터를 위해 ViewModel 이 필요하기도 하고요. Rx라이브러리를 이용하거나 ViewModel 내에서 특정 리소스를 Observing 하는 경우에는 메모리 릭에 대한 리스크를 관리하기 위해 ViewModel 의 onCleared() 에서 관련 작업 또는 리소스들을 해제해주어야 합니다. 이는 다소 제네럴한 지식이고요. 문득, onCleared() 가 언제, 또 어떻게 호출되는지 궁금해졌습니다. 내부 동작 방식 ViewModel 의 o.. @Retention 은 어떻게 동작하는가? 동기 DND 8기에 참여하여 프로젝트를 진행했을 때, 팀 동료분께서 먼저 앱 구조를 구축해주셨습니다. 그 때 궁금했던 것이 @Retention Annotation 입니다. CoroutineDispatcher 여러에 대해 서로 다른 Annotation 을 붙여주셔서, 어떤 기준으로 결정하신 건지 여쭤봤었는데 속 시원한 답변을 구하지 못했던 기억이 납니다. 문득 궁금해져, 이번 기회에 이에 관해 학습하고 정리하려 합니다. Hilt 사용 시 사용되는 Annotation 에 관해서는 이미 정리해 둔 포스팅이 있습니다. 심지어 이번 포스팅에서 다룰 @Retention 에 관해서도 간략하게 작성했습니다. [Dagger-Hilt] Dagger-Hilt 의 대표적인 Annotations Dependency Inject.. Kapt, 그리고 KSP GDG Korea 슬랙 채널에서 Dagger 가 KSP 를 지원한다는 소식을 보았고, Kapt 와 KSP 에 대해 제대로 알아보고 정리하고 싶어 포스팅합니다. Kapt Kapt(Kotlin Annotation Processing Tool) 은 어노테이션 프로세싱을 지원하기 위한 Kotlin Compiler Plugin 이며, Java 의 apt(Annotation Processing Tool) 과 유사한 기능을 제공합니다. Kotlin 1.0.5 까지는 Annotation Processing 을 위해 apt 를 사용하였으나, Kotlin 이 널리 사용되기 시작하면서 그다음 버전인 Kotlin 1.0.6 부터는 Kapt 가 제공되었습니다. 특징 호환성 Kapt 는 apt 와 호환 가능합니다. 그러므로, 큰.. DND 9기 운영진 활동 회고 마무리된 DND 9기 활동 DND 8기에 안드로이드 개발자 포지션으로 참여하여 팀원들과 프로덕트를 개발하였고, 그 과정의 경험과 과정 중 만났던 모든 이들이 너무나 좋았어서, 뭔가에 홀린 듯 운영진 지원을 하고 발탁되어 이번 9기에는 운영진으로 활동할 수 있었습니다. 좋았던 점 사람 만나는 걸 좋아하는 편이라, 다양한 사람들과 교류하는 것이 굉장히 즐거웠습니다. 처음 보는 분들, 안면이 있었던 분들 모두 너무나 반가웠어요. 이러한 동아리 특성 상 굉장히 훌륭한 커리어를 쌓아오신 분들이 많기 마련인데, 그런 분들과 허심탄회한 얘기도 나눌 수 있어 더욱 좋았습니다. 스스로도 성장할 수 있는 시간이었습니다. 담당하게 된 조가 개발해 나갈 프로덕트에 대해 함께 얘기하고 의견을 나누면서, 프로덕트 개발 시 어떤 .. 내부 리소스 접근에 왜 Context 가 필요한 걸까? 안드로이드 프로그래밍을 하다 보면, 시간의 흐름이나 사용자 액션에 따라 내부의 특정한 리소스에 접근해야 하는 경우가 왕왕 있습니다. 대체로 꼭 Context 를 요구하는데, 문득 이에 대한 이유가 궁금했습니다. Android Context Details (feat.LocalContext) Context 안드로이드 프로그래밍에 필수불가결한 존재인 Context 는 정말 자주 사용됩니다. 그 경우의 수가 어마무시하게 많은데, 그렇게 자주 사용하고 있으면서도, 'Context 가 정확히 뭐야?' 라는 얘 blothhundr.tistory.com Context 에 대한 간단한 개요에 대해서는 위 포스팅에서 확인하실 수 있습니다. 덤으로 다양한 정보도 함께 작성하였으니, 참고하셔도 좋을 것 같습니다. 해당 포스트.. 네이버 부스트캠프 웹·모바일 8기 챌린지 및 멤버십 합격 후기 회고에 앞서, 챌린지 합격 후기는 따로 포스팅해 두었으니, 궁금하시면 확인하실 수 있습니다. 네이버 부스트캠프 웹·모바일 8기 합격 후기 지원 백준 랭크는 DFS, BFS 로 쉽게 올린 (물)골드2 이며, 문제를 꼼꼼하게 푸는 스타일은 아닙니다. AC 받으면 그냥 넘어가고, 더 좋은 코드를 찾아보거나 하는 경우는 잘 없습니다. 물론 완전 엉망 blothhundr.tistory.com 한 달 간의 챌린지 한 달 간의 챌린지가 끝났습니다. 짧지 않은 시간이었고, 정신 없이 보냈습니다. 깃허브 활동, 블로그 포스팅도 못할 정도로 너무나 바빴습니다. 매일 몰아치는 새로운 미션과 일정들 때문이었습니다. 그래도 정말 즐겁고 행복한 시간들이었습니다. 사실 조금 안일하게 생각했습니다. 어쨌든 '교육' 명목이었으니, 교.. [Dagger-Hilt] Hilt 는 어떻게 ViewModel 을 생성하고 주입하는가? 동기 DND 9기에 운영진으로 참여했는데, 코드 리뷰 요청이 들어왔습니다. 제가 리뷰해야하는 화면은 두 개였는데, 각 화면은 Screen-Level-Composable 로 구현되어 있고, 두 화면을 포함하는 Activity 가 존재합니다. 플래그를 통해 전환이 이루어지고요. ActivityViewModel 을 hiltViewModel() 을 사용하여 각 Screen-Level-Composable 의 파라미터로 넘겨주고 있었습니다. @Composable fun RecordPhase1Screen(viewModel: RecordViewModel = hiltViewModel()) @Composable fun RecordPhase2Screen(viewModel: RecordViewModel = hiltViewMo.. Cerakey V2 세라믹 키캡 및 하우징 도색 후기 세라믹 키캡에 대한 궁금증이 컸습니다. '그야말로 Thock 이다' 라는 이야기가 가장 많았고, 유격이나 스템이 갈리는 등 문제가 많다는 이야기들도 종종 접했습니다. Cerakey V2 로 업그레이드 되면서, 유격이나 스템 갈리는 문제 등은 해결이 많이 되었다고 합니다. 실제로 장착하고 사용해보니, 묵직한 키감과 유니크한 외형이 일품입니다. 아마 키캡 바꿀 일은 없을 것 같습니다. 하우징 도색은 차량용 마카로 했습니다. 도색하실 때는 꼭 집 내부가 아닌 외부에서...! 아예 야외면 제일 좋습니다. 냄새가 심하게 나거든요. 20분 주기로 3번 이상 도색하는 것을 추천드립니다. 아래는 타건음입니다. 이전 1 2 3 4 5 6 7 8 ··· 12 다음