본문 바로가기
반응형

안드로이드51

안드로이드 Application Class 이번 주제는 어느 정도 규모가 있는 안드로이드 애플리케이션을 제작하다 보면 필수적으로 건들게 되는 Application Class에 대해서 알아보려고 합니다. 사실 이것저것 예제를 따라 많이 사용을 했었던 Class인데, 막상 뭐냐고 물으니 대충 앱 정보를 가지기 위해 전역 변수 등의 정보를 가지고 있는 Class가 아닐까? 하는 정도의 수준에 머물러 있었습니다. 그래서 이번에 한 번 제대로 알아봐야 하지 않을까 하는 생각에 글을 끄적여 봅니다. 일단 Application Class가 언제 실행되는지 알아야 할 필요가 있습니다. 먼저 안드로이드 스튜디오를 통해 안드로이드 앱을 제작하게 되면, 개발자가 볼 필요는 없지만 안드로이드에서도 숨겨진 main 함수가 존재하고 있다는 것을 알 수 있습니다. main.. 2022. 9. 11.
스레드(Thread)란? 얼마전에 여행 관련해서 꽤 괜찮은 회사의 면접을 진행했었습니다. 예전 면접들과는 다르게 나름 준비도 했다면 했고, 이제 어느정도 경력도 쌓여 면접관의 질문에 정확하게는 아니더라도(단어나 그 순서 등이) 내가 알고 있다는 것 정도는 어필할 수 있는 수준으로 대답할 수 있을 것이라는 묘한 자신감도 조금 있었습니다. 그러나 면접은 신기한게 준비를 하면 할수록 더더욱 특이한 곳에서 터지고, 그로 인해 결국 제대로 대답하지 못하고 망하는 경우가 많았습니다. 이번에도 마찬가지로 분명 알고 있는 내용임에도 불구하고 횡설수설 한다던가, 용어가 기억이 안나 모른다고 대답하고 말아서 준비가 덜 된 것이 아닌가 하는 생각이 듭니다. 아무래도 아직도 기초가 부족한 모양이라, 하나하나 기록해둬야겠습니다. 이번 글의 주제는 스.. 2022. 8. 26.
ANR(Application Not Responding)이란? 이번에 모 회사의 코딩 테스트 문제를 풀고 있는데, 객관식 문제에서 ANR에 대해 묻는 문제가 나왔습니다. 아무래도 안드로이드 애플리케이션을 운영하다보면, 구글 플레이에서 보여주는 통계에서 ANR 비율도 보여주기 때문에 ANR이 무엇인지 모를 수는 없지만, 아무래도 정확하게 알지 못할 수도 있겠다 싶어 확실히 정리하고 가려고 합니다. ANR, 그러니까 Application Not Responding은 뭔가 깊은 뜻이 따로 있을 것 같지만 어이없게도 번역 그대로 애플리케이션이 응답하지 않는다는 의미입니다. 일단 이 ANR이 뜨기 위해서는 안드로이드의 mainthread가 5초 이상 동작하지 않아야 한다고 공홈에 적혀 있습니다. 그러니까 이 ANR은 비정상 종료라고 하는 exception이 발생해 애플리케이.. 2022. 8. 6.
LiveData vs RxJava 회사에서 코드 수정을 위해서 처음 프로젝트를 열었던 날, 기상천외한 리액터킷이라는 안드로이드 라이브러리를 발견할 수 있었습니다. 이 친구는 IOS의 부산물로 IOS 개발자가 AOS를 개발하면서 자신이 가지고 있던 개념을 쉽게 AOS에 적용시켜 코드를 작성하려는 의도가 담긴 코드였습니다. 딱히 잘못되었다거나 나쁜 것은 아니지만, 문제는 이 라이브러리가 지원 중단이 된 지 꽤 오래된 코드라는 점입니다. 결국 입사하자마자 라이브러리를 분리하는 작업을 거쳐야 했고, 자연스럽게 ReactorKit + RxJava로 구성되어 있던 코드들을 DataBinding + MVVM으로 전환하는 작업을 했었습니다. 이 작업을 진행하는 중에 RxJava 코드를 완전히 분리하고 제거하는 과정을 거쳤는데, 생각해보니 LiveDat.. 2022. 7. 8.
Coroutine 관련 설명 글 링크 코루틴이라는 친구를 공부해야겠다는 생각을 했었는데, 한 블로그 글이 너무 잘 작성되어 있다는 생각이 들어서 공부한 내용을 블로그에 적을까 하다가 제가 아무리 블로그에 글을 올릴 때 최선을 다해도 이 블로그보다 잘 쓸 수 있을까 싶어 링크로 대체하기로 했습니다. 추후 이 블로그보다 더 코루틴에 대해서 확실히 이해하고 더 잘 설명할 수 있게 될 때까지 링크로 달아놓을 예정입니다! https://wooooooak.github.io/kotlin/2019/08/25/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%BD%94%EB%A3%A8%ED%8B%B4-%EA%B0%9C%EB%85%90-%EC%9D%B5%ED%9E%88%EA%B8%B0/ 코틀린 코루틴(coroutine) 개념 익히기 · 쾌락코딩 코틀린.. 2022. 6. 30.
AAC 데이터 바인딩이란? 오랜만에 면접을 보게 되었습니다. 무조건 '이직을 해야해' 하고 봤던 면접이 아니어서인지, 요즘 너무 공부를 안해서인지는 잘 모르겠지만, 스스로가 생각하기에도 제대로 답변을 못했다는 느낌이었는데, 아니나 다를까 불합격이었습니다. 사실 거기까지였으면 크게 신경 안썼을지도 모르겠습니다만, 면접 이후 피드백을 받은 건 되게 오랜만이라 면접을 복기하게 되었습니다. 확실히 생각보다 요즘은 새로운 트렌드를 따라가야 한다는 생각 때문인지, 기존에 사용하던 코드들을 왜 사용했는지, 그리고 왜 버렸는지 기억이 나지 않더라구요. 그래서 이번에는 이 부분에 대해서 한 번 살펴볼까 합니다. 이 글에 들어가기 전에 안드로이드의 데이터바인딩 라이브러리와 웹이나 다른 곳에서 사용하는 데이터바인딩은 유사하지만 조금씩 다른 측면을 가.. 2022. 5. 25.
728x90