본문 바로가기
반응형

분류 전체보기91

애자일(Agile) 방법론 - 오늘의 애자일 이 포스팅은 "애자일 조직은 이렇게 일합니다" 도서를 읽고 작성한 글입니다. 여러 스타트업부터 네카라쿠배 중 어느 대기업까지, 개발자로 일한지도 6년이 다 되어갑니다. 대부분의 회사에서 애자일 방법론을 기반으로 한 개발 프로세스를 가져가고 있었는데, 생각해보니 애자일 방법론에 대해 공부한 적은 딱히 없는 것 같습니다. 그저 "짧은 주기로 개발을 반복하는 것" 정도로 이해했던게 아닐까 합니다. 그럼 그저 2주 정도의 단위로 개발하고 배포하고 버그를 수정하는 것을 반복한다면 우리는 애자일 방법론을 잘 지키고 있는걸까요? 잘 하고 있을수도 있겠지만, 뭔지도 모른채 잘 하고 있다면 썩 좋은 것만은 아닐겁니다. 또한 스타트업이든 대기업이든 애자일 방법론을 잘 수행하고 있다고는 장담할 수 없습니다. 돌이켜봤을 때 .. 2023. 11. 4.
Android - 상태관리, LiveData 대신 StateFlow를 사용하자. 현재 안드로이드 생태계는? 현재 안드로이드 생태계는 MVVM 아키텍처, 클린아키텍처가 대세가 되고, MVI 아키텍처가 점점 핫해지고 있다. 그만큼 개발 기술이 빠르게 발전하고 있고, 더욱 강력한 도구들이 생겨나고 있다는 것이다. Google에서 Android Architecture Compoenent로 여러가지 도구를 제시하고 있고, 그 중에 ViewModel과 LiveData는 정말 핫하고 유용하며, 현재 안드로이드 앱 개발에 있어서 가장 기본적인 도구로 몇년동안 자리잡고 있다. 그러나 시간이 지나면서 이들도 구시대의 기술이 되어가는 것은 당연하다. 영원히 최고의 도구는 없으니까. 오늘은 그 중 하나인 LiveData에 대해, 그리고 이를 대체할 StateFlow에 대해서 얘기해본다. 상태관리, 그리고.. 2023. 8. 3.
Android - DataStore로 SharedPreferences를 대체하자. 어플리케이션을 개발하다보면 앱 내부에 데이터를 저장해야 할 때가 있다. 그 중에서 어떤 유저가 특정 기능을 활성화 했는지 여부와 같이 굉장히 작은 규모의 데이터가 저장되어야 할 때가 있다. 이럴때 우린 SharedPreferences를 사용해서 저장하곤 했다. 하지만 SharedPreferences는 여러가지 단점이 있다. UI쓰레드에서 호출하기에 안전하지 않고, 예외나 런타임 안정성 등이 있다. 그리고 비동기 API에 대한 대응도 부족한 편이다. 이런 단점 때문인지, 구글에서 이를 보완하기 위해 Jetpack DataStore를 개발하였다. https://developer.android.com/topic/libraries/architecture/datastore?hl=ko 앱 아키텍처: 데이터 영역 -.. 2023. 7. 7.
Android - ProcessLifecycleOwner 로 앱의 Foreground/Background 상태 처리하기 간혹, 앱이 Foreground인지 Background 상태인지에 따라 처리를 해 주어야할 때가 있다. 이를테면 Background에 빠졌을 때 UI와 관련된 작업을 멈춘다던지, 다시 Foreground로 돌아왔을 때 어떤 작업을 활성화해준다던지 등이 있을 수 있다. 이럴때, 특정 Activity/Fragment에서의 처리라면 해당 화면의 Lifecycle의 이벤트를 수신해서 처리할 수 있지만, 화면 레벨이 아닌 앱 레벨에서의 처리가 필요할때도 있다. 이럴때 마다 모든 Activity/Fragment의 이벤트를 수신받아 처리하기엔 과한 부분이 있다. 이를 해결하기 위해 ProcessLifecycleOwner를 사용할 수 있다. https://developer.android.com/reference/and.. 2023. 6. 19.