Developing Myself Everyday
article thumbnail
[Kotlin] 코틀린 컬렉션 - week 8
스터디/코틀린 언어 2023. 9. 3. 17:09

Collection 컬렉션은 일련의 객체를 담는 컨테이너로 사용됩니다. 컬렉션은 여러 객체를 저장하고 관리하며, 필요에 따라 데이터를 추가, 삭제, 검색, 정렬하는 등의 작업을 수행할 수 있습니다. Java와 Kotlin에서 제공하는 컬렉션 인터페이스와 클래스는 다양한 형태의 컬렉션을 다룰 수 있도록 다양한 기능을 제공합니다.컬렉션은 크게 List, Set, Map로 분류될 수 있습니다 이 3가지 Collection은 중복을 허용하는지, 순서가 보장되는지에 따라 구분할 수 있습니다. Mutable(가변) vs Immutable(불변) 변수에서의 가변과 불변은 해당 값이 변경될 수 있는가에 따라 나뉩니다. 쉽게 말하자면 ‘read-only’와 ‘read&write’로 보면 됩니다. 컬렉션도 마찬가지입니다...

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 라이브러리의 일부로, 백그라운드에서 주기적인 또는 일회성 작업을 처리하고 관리하는 데 도움이 되는 강력한 도구입니다. 게임을 다운로드하고 실행했을 때 추가적인 다운로드가 필요한 경우가 있습니다. 추가적인 다운로드를 진행하던 중 사용자가 앱을 종료하거나 백그라운드로 보내면 추가적인 다운로드는 종료되게 됩니다. 이런 상황에..

article thumbnail
[AAC] DataStore with SharedPreferences
Android/AAC 2023. 8. 24. 18:53

이 게시글은 아래의 공식 문서를 보고 작성했습니다. 앱 아키텍처: 데이터 영역 - Datastore - Android 개발자 | Android Developers 데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 Preferences DataStore 및 Proto DataStore, 설정 등을 알아보세요. developer.android.com SharedPreferences DataStore를 이야기하기 전에 SharedPreferences를 이야기하는 것은 당연할 것입니다. 왜냐면 2개의 개념 다 안드로이드 애플리케이션에서 데이터를 저장하고 관리하는 방법이고 DataStore가 SharedPreferencesd을 개선한 버전이기 때문입니다. SharedPreferences는 간단한 키-값..

article thumbnail
Android 4대 컴포넌트 - BroadCast receiver
Android 2023. 8. 24. 16:32

이 글에서는 Android의 4대 컴포넌트인 BroadCast receiver에 대해 더 자세하게 알아보고자 합니다. BroadCast Android 앱은 Android 시스템 및 기타 Android 앱에서 브로드캐스트 메시지를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생할 때 이러한 브로드캐스트 메시지가 전송됩니다. 예를 들어 Android 시스템은 시스템 부팅 또는 기기 충전 시작, 배터리 부족과 같은 다양한 시스템 이벤트가 발생할 때 브로드캐스트 메시지를 전송합니다. 이런 브로드캐스트를 시스템 브로드캐스트 메시지라 합니다. 또한 앱은 맞춤 브로드캐스트 메시지를 전송하여 관련 앱에 알릴 수 있습니다. 앱 내에서 정의하고 발송해, 다른 앱이나 시스템에서 이를 수신하여 특정 작업을 수행하도록 유도..

[Kotlin] 클래스 추가 사항 - week 7
스터디/코틀린 언어 2023. 8. 24. 12:09

클래스 관계 클래스 간의 관계는 아래와 같습니다. 상속관계(is a): 클래스를 상속해서 하나의 클래스처럼 사용 연관관계(has a): 클래스를 상속하지 않고 내부적인 속성에 객체를 만들어서 사용 결합관계(약한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계 없이 단순하게 사용하는 관계 조합관계(강한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계가 있어서 분리할 수 없는 관계 의존관계(사용 has a): 필요한 클래스를 매개변수로 받아 필요한 시점에 사용하는 관계 상속관계 (is-a) open class Animal(val name: String) class Dog(name: String) : Animal(name) class Cat(name: String) : An..

article thumbnail
Android 4대 컴포넌트 - Service
Android 2023. 8. 21. 15:11

이 글에서는 Android의 4대 컴포넌트인 Service에 대해 더 자세하게 알아보고자 합니다. Service란? Service의 주된 목적은 오래 걸리는 작업을 백그라운드에서 처리하는 것입니다. 주로 큰 파일을 다운로드하는 것과 같은 작업을 서비스로 처리합니다. 사용자에게 다운로드 진행률을 지속적으로 표시해 사용자를 귀찮게 하고 싶지는 않기 때문에 서비스는 UI가 없이 실행됩니다. Service의 종류 서비스의 종류는 크게 3가지로 나눌 수 있습니다. 1. Foreground 2. Background 3. Bound Foreground와 Background는 Started Service라 불리고 Bound는BoundService라 불립니다. 포그라운드(Foreground) 서비스: 포그라운드 서비스는..

article thumbnail
안드로이드의 부팅과 애플리케이션의 실행
Android 2023. 8. 20. 14:46

이 게시글은 아래의 글을 참고해서 작성했습니다. Android CPU, Compilers, D8 & R8 Imagine you have an important space mission ahead. You need a spacecraft that won’t get you into much trouble on the way. You may opt in a… proandroiddev.com JVM 자바로 작성한 코드를 컴퓨터에 이해시키리면 컴퓨터가 이해할 수 있는 언어로 컴파일해야 합니다. 다만 세상에는 다양한 운영체제가 있고, 각 운영체제에 맞는 언어로 컴파일하는 것은 자바가 말하는 WORA("Write Once Run Anywhere" - 한 번 작성하면 모든 곳에서 돌릴 수 있다)가 아닙니다. 이때 나타..