본문 바로가기

Kotlin36

Thread Pool 1. Thread Pool Thread를 생성하면 OS가 메모리 공간을 확보하고 그 메모리를 Thread에 할당한다. 하지만, 수행해야 할 작업의 개수에 따라 병렬 작업 처리가 많아지면 그에 필요한 Thread의 개수가 증가하게 된다. 이 경우, Thread의 생성과 스케줄링으로 인해 OS가 바빠지게 되고 작업을 마치고 수거하는 일은 비용이 크기 때문에 어플리케이션 성능에 큰 영향을 줄 수 있다. 이를 방지하기 위해 Thread Pool을 사용할 수 있다. 위에서 설명한 것 처럼 Thread의 생성과 수거는 비용 소모가 많은 작업이다. 미리 Thread를 여러 개 만들어 두고 작업이 들어오는 대로 할당해서 사용하게 하고 작업이 끝나고 난 뒤에도 그대로 뒀다가 나중에 필요할 때 재사용하기 위한 장치가 Th.. 2021. 12. 13.
(Architecture) MVP 효율적인 코드는 개발자가 작성한 코드가 직관적이고 명확하며 단순해야 한다고 생각한다. 개인이 혼자 개발하는 프로젝트가 아닌 이상 내가 작성한 코드를 다른 사람이 한눈에 알아보고 작업을 이어나가는 것이 중요할 것이다. 따라서 코드의 재사용성 또한 중요할 것이고 이에 따른 유지보수가 적거나 쉬워야 한다. 마찬가지로 어떤 시스템을 구성하는 서브 시스템, 모듈, 컴포넌트와 같이 구성요소들 간의 결합도들을 최소화하는 것이 중요할 것이다. 이를 위해 다양한 아키텍쳐 패턴들을 사용하게 되는데, 이러한 패턴들을 적용하여 개발을 하다 보면 가독성 좋은 코드, Unit Test, 원활한 유지보수를 보장한다. 이번 포스팅은 아키텍쳐 패턴 중 MVP (Model View Presenter)에 대한 포스팅이다. 1. MVP 배.. 2021. 11. 30.
Android Component : 2. Service 개요 1. Service 개요 Service는 Android 4대 컴포넌트 중 하나이다. Service는 사용자와의 상호작용 없이 Background에서 장시간 수행되는 어플리케이션 구성 요소이다. 예를 들어, 우리가 Spotify에서 음악을 재생하다가 카카오톡을 실행하여도 음악은 계속 재생되고 있다. 또한, 파일을 다운로드하면서 다른 어플리케이션을 켜 다른 작업을 하고 있어도 다운로드는 중단되지 않는다. 이 예시들이 바로 Service를 사용하는 예시들이다. 또한, 이 모든 작업들은 Background에서 수행할 수 있다. Service 특징 앞서 설명했듯이, Service는 UI 요소 없이 Background에서 장시간 수행되는 컴포넌트이다. 즉, 사용자와 직접적으로 상호작용하는 요소는 아닐뿐더러, Bac.. 2021. 11. 8.
[Room] SQLite에서 Room으로 Jetpack은 2018년 5월 Google에서 발표한 라이브러리 및 도구 모음집이다. Jetpack 이전에 있었던 Support 라이브러리는 여러 가지 한계점을 가지고 있었고, 이를 개선하면서 Jetpack이 출시되었다. Android 9.0 (API Level 28)의 출시와 함께 Jetpack의 일부인 AndroidX 라이브러리가 제공되었고, AndroidX는 기존 Support 라이브러리와 Jetpack 구성요소들을 포함하게 되었다. 현재는 AndroidX 사용을 권장하고 있다. 이번 포스팅은 Jetpack의 Architecture 구성요소 중 하나인 Room에 대한 포스팅이다. 1. What is Room? Room은 디바이스 내의 로컬 데이터베이스에 SQLite보다 더 효과적으로 데이터를 저장.. 2021. 10. 6.