목록안드로이드 (31)
운기의 블로그
모듈이란?모듈 시스템에서 독립적인 단위로서의 기능을 하는 부분 모듈은 하나의 시스템 안에서 독립적인 단위로서 그 자체로 하나의 완전한 기능을 수행 할 수 있고, 각기 다른 모듈을 합쳐 하나의 시스템으로 동작 할 수 있다.모듈의 역사1950년대에는 단일프로그래밍으로 엄청나게 긴 줄로 코드를 작성했다. 시간이 지나면서 1960년대 서브 루틴 이라는 개념을 도입 하면서 함수들을 분리하면서 코드를 재사용 할 수 있게 진화했다. 1970년대 모듈의 개념이 생기면서 코드의 관리와 재사용을 용이하게 하자는 흐름이 생겼고, 1980년대 들어오면서 객체 지향에 대한 개념이 등장하면서 모듈에 대한 관심이 더욱 커지게 되었고, 현재의 모듈 개념이 정착 된 것이다.모듈을 왜 사용하는 거야? 💡 가구를 구매 할 때, 전체 세..
이전 두편에서는 코루틴이란 무엇인지에 대해서 이름의 정의부터 알아봤다. 이번부터는 안드로이드 개발자 문서 가이드에 따라서 하나하나 알아보도록 하겠다. 안드로이드 개발자 가이드에서는 비동기 프로그래밍에 코루틴을 권장하는 이유는 4가지이다. 경량? 경량은 가벼운 무게라는 뜻을 가지고있다. 그렇다면 뭐가 가벼운지에 대해서 생각해 볼 필요가 있다. 안드로이드 개발자 가이드 문서에서 설명하기로는 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행 할 수 있다고 한다. 여기서 중요한건 스레드를 정지하지 않고, 단일 스레드로 많은 코루틴을 실행한다는거다. 해당 문구에 대해서 알아기 위해서는 우리는 이전편에서 알았단 비동기에 대해서 알아야지 이해를 할 수 있다. 우선 기존에 비동기 처리방법에 ..
이전글 에서는 왜 코루틴이라고 불리는지에 대해서 기본 개념을 알아봤다. 이번글에서는 코루틴이 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴이라고 설명하는지 알아보려고 한다. 그전에 동시성(동시 실행 설계 패턴)이 무엇인지 비동기가 무엇인지 순서대로 알아보자 비동기와 동시성에 대해서 어느정도 알고 있다는 가정하에 작성해보려고 한다. 동시성이란? 동시성이라는 용어에 대해서 찾아보면 꼭 같이 나오는 용어가 있는데 바로 병렬성이다. 예전에는 하나의 프로세스에 하나의 스레드일 때는 상상도 할 수 없던 방법이다. 하지만 나날이 성능이 좋아지면서 멀티 프로세스와 멀티스레드가 등장하면서 해당 기법은 중요한 기법으로 자리를 잡았다. 동시성은 하나의 프로세스에서 여러작..
처음 코루틴을 봤을 때 안드로이드 개발자 가이드 문서에서는 개발자 가이드 문서에서 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴이라고 설명한다. 코루틴의 장점 경량 : 코루틴을 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있습니다. 정지는 많은 동시 작업을 지원하면서도 차단보다 메모리를 절약합니다. 메모리 누수 감소 : 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행합니다. 기본으로 제공되는 취소 지원 : 실행중인 코루틴 계층 구조를 통해 자동으로 취소가 전달됩니다. jetPack 통합 : 구조화된 동시 실행에 사용할 수 있는 자체 코루틴 범위도 제공합니다. 라고 설명되어 있다. 스레드를..
1. 안드로이드 저장소 저번에 쉐어드 프리퍼런스에 대해 소개하면서 안드로이드에서는 앱 데이터나 파일을 저장하는 방법에 대해서 간략하게 설명했다. 쉐어드 프리퍼런스가 키 - 값 쌍 으로 데이터를 저장한다면 ROOM은 로컬 데이터베이스에 저장하는 방식이다. 2. ROOM 사용할 때 ROOM을 사용하는 경우는 안드로이드 가이드에서는 아래와 같이 설명하고 있다. Apps that handle non-trivial amounts of structured data can benefit greatly from persisting that data locally. The most common use case is to cache relevant pieces of data so that when the device ca..
토이 프로젝트로 계산기 앱을 만들고 있었다. tableLayout으로 균일하게 버튼을 배치하려고 했는데 버튼의 크기가 커서 레이아웃 밖으로 나가는 현상이 발생했다. 나누기, x , -, +, = 마지막 버튼들이 레이아웃 밖으로 나간걸 볼 수 있다. ( CosntraintLayout을 사용했다면 제약사항을 주어 레이아웃 배치를 할 수 있었을 거다. ) tableLayout의 경우는 어떻게 해야하는지 알아 본 결과 android:shrinkColumns="*" shrinkColumns를 사용한다. shrink는 수축하다, 줄이다라는 뜻을 가지고 있고 columns는 열 을 뜻하는데 이때 해당 열들을 자동으로 줄여서 레이아웃안에 균일하게 배치되게 된다. 사용법 두 번째 열만 줄이고 싶다면 android:shr..