Developing Myself Everyday
article thumbnail
Gradle의 동작원리 이해하기
Android 2023. 9. 27. 12:09

안드로이드 개발을 한다면 이 코끼리를 지겹게 보게 됩니다. 다만 이 코끼리에 대해서 자세히 공부해보고 알아본적이 없어서 이번 게시글을 통해 Gradle의 원리를 이해해보고자 합니다. Gradle이란? Gradle은 Groovy 언어를 기반으로 한 오픈소스 빌드 도구입니다. 빌드 도구란 애플리케이션 생성을 자동화 하기 위한 프로그램으로 안드로이드에서는 .apk 파일을 만드는 과정을 자동화합니다. Gradle이 나오기 전에는 Ant나 Maven 같은 빌드 도구를 사용했습니다. 다만 xml 형식을 이용해 정적인 설정정보를 구성했기에 구조적인 단점이 존재했습니다. Gradle은 Groovy 언어를 이용해 코드로서 설정 정보를 구성하기 때문에 이러한 단점을 해결했습니다. 안드로이드에서 Gradle은 Gradle ..

article thumbnail
[Deep Dives into Coroutines on JVM] (2) - 코루틴의 Context
Android/Kotlin 2023. 9. 26. 14:53

이 게시글의 내용은 아래의 유튜브를 보고 작성한 내용입니다. 유튜브의 22분부터 마지막까지의 내용을 다루고 있습니다. 코루틴의 Context? 코루틴의 Context에 말해보기에 앞서 Context에 대해 다시한번 말해보자면 안드로이드 애플리케이션의 실행 환경에 대한 전역 정보를 제공하는 클래스라고 할 수 있습니다. 그럼 코루틴의 Context은 바로 코루틴 환경에 대한 전역 정보를 제공하고 있다는 것을 우리는 알 수 있습니다. 코루틴에 Context가 생긴 이유 사실 초기의 코루틴에서는 Context가 없었습니다. 그런데 문제가 생겼습니다. 바로 코루틴이 실행될 Thread에 관련된 사항입니다. 작가 starline 출처 Freepik ❓ 질문을 하나 해보겠습니다. 아래와 같은 Continuation이..

article thumbnail
Android의 의존성 주입
Android 2023. 9. 14. 19:53

이 게시글은 아래의 공식문서를 보고 작성했습니다. Android의 종속 항목 삽입 | Android 개발자 | Android Developers Android의 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 삽입(DI)은 프로그래밍에 널리 사용되는 기법으로, Android 개발에 적합합니 developer.android.com Image by sentavio on Freepik 의존성 주입(Dependency Injection) 안드로이드는 관심사에 맞게 클래스로 코드를 분할하라고 합니다. 다만 이렇게 되면 코드가 여기저기로 흩어지게 됩니다. 보통 우리가 만드는 앱의 구조가 바로 아래의 그림처럼 흩어지게 되죠. 위의 그림에서 집중해서 봐야할 부분..

article thumbnail
[Deep Dives into Coroutines on JVM] (1) - 코루틴과 Callback
Android/Kotlin 2023. 9. 13. 19:54

이 게시글의 내용은 아래의 유튜브를 보고 작성한 내용입니다. 무언가를 잘 사용하려면 그 내부를 들여다 보는 것이 중요하다고 생각합니다. 코루틴은 안드로이드 코틀린 개발자라면 사용해야 하는 비동기 프로그래밍 을 지원하는 방식입니다. 그래서 이번 게시글에서 코루틴이 어떻게 비동기 프로그래밍을 지원하는지 알아보고자 합니다. 이제부터 간단한 함수를 가지고 놀아보겠습니다. 이 함수를 [Direct Style] 이라 하겠습니다. fun postItem(item: Item) { val token = requestToken() val post = createPost(token, item) processPost(post) } 위의 함수에선 requestToken() 함수로 token을 요청하고 이를 계속해서 사용해 다른..

Sealed Class와 Enum Class 뭘 사용해야 하나요?
Android/Kotlin 2023. 9. 4. 15:44

Kotlin은 코드의 생산성과 가독성을 향상시키기 위해 설계된 정적 타입 언어입니다. 이 언어는 개발 프로세스를 단순화하는 여러 기능을 제공하며, 그 중에서도 sealed class와 enum class가 있습니다. 이 두 종류의 클래스는 서로 다른 목적을 가지며 다른 시나리오에서 사용될 수 있습니다. 이 글에서는 Kotlin에서 sealed class와 enum class의 차이점 및 코드의 디자인과 구현을 개선하는 데 어떻게 활용할 수 있는지 탐색해보겠습니다. sealed class와 enum class의 차이 아래는 발생할 수 있는 HTTP 오류를 sealed class와 enum class로 표현한 코드입니다. 두 개의 클래스 모두 2개의 HTTP 오류를 가지고 있으며 `code` 프로퍼티를 통해..

article thumbnail
Android 4대 컴포넌트 - ContentProvider
Android 2023. 9. 3. 19:50

이 글에서는 Android의 4대 컴포넌트인 ContentProvider에 대해 더 자세하게 알아보고자 합니다. ContentProvider란? ContentProvider는 중앙 저장소로의 데이터 엑세스를 관리합니다. ContentProvider를 사용해 다른 애플리케이션과 데이터를 공유하고 관리할 수 있습니다. ContentProvider의 주요 목적은 데이터에 대한 추상화 계층을 제공하고, 다른 애플리케이션에서 데이터에 접근하는 방법을 표준화하는 것입니다. Content Provider를 사용하는 상황은 다음과 같습니다. 다른 애플리케이션에서 ContentProvider에 엑세스하기위한 코드를 구현 나의 애플리케이션에서 ContentProvider를 새롭게 생성하여 다른 애플리케이션과 데이터 공유 ..

article thumbnail
안드로이드의 메모리 관리 부시기
Android 2023. 8. 28. 19:42

안드로이드의 메모리 관리 안드로이드의 ART와 Dalvik 가상 머신은 페이징과 메모리 매핑을 사용하여 메모리를 관리합니다. Android가 앱 프로세스 및 메모리 할당을 관리하는 방법을 이제부터 알아보고 이런 방식이 어떻게 나오게 되었는지도 같이 알아보고자 합니다. 메모리 할당 프로세스는 메모리(RAM)의 빈 공간에 할당되어야 합니다. 아래 그림과 같은 상황이라고 생각해 보겠습니다. 프로세스 C를 메모리에 할당해야 하는데 어디에 넣을지 잘 모르겠습니다. 이를 할당하는 방법은 최초 적합, 최적 적합, 최악 적압이 있습니다. 아래의 그림을 보면 이해가 됩니다. 운영체제가 빈 공간을 순서대로 검색하다 프로세스 C가 들어갈 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식을 최초 적합이라고 합니다...

article thumbnail
[AAC] WorkManager
Android/AAC 2023. 8. 25. 17:33

이 게시글은 아래의 문서를 보고 작성했습니다. 앱 아키텍처: 데이터 영역 - WorkManager로 작업 예약 - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 지속적인 작업 유형과 기능 등을 알아보세요. developer.android.com WorkManager WorkManager는 Android Jetpack 라이브러리의 일부로, 백그라운드에서 주기적인 또는 일회성 작업을 처리하고 관리하는 데 도움이 되는 강력한 도구입니다. 게임을 다운로드하고 실행했을 때 추가적인 다운로드가 필요한 경우가 있습니다. 추가적인 다운로드를 진행하던 중 사용자가 앱을 종료하거나 백그라운드로 보내면 추가적인 다운로드는 종료되게 됩니다. 이런 상황에..