전체 글

전체 글

    [안드로이드] MVC, MVP, MVVM 아키텍처 패턴

    아키텍처 패턴은 왜 쓰는 걸까? 위키 백과에 따르면 아래와 같은 이유가 있다. 아키텍처 패턴(architectural pattern)은 주어진 문맥 안에서 소프트웨어 아키텍처의 공통적인 발생 문제에 대한 일반적인, 재사용 가능한 해결책을 의미한다. 아키텍처 패턴은 소프트웨어 디자인 패턴과 비슷하지만 더 넓은 범위에 속한다. 조금 더 자세하게 알아보면 아래와 같은 이점이 있다. 코드의 이해도 증가 복잡한 구조의 단순화 다양한 에러에 대한 해결 방안 도출 용이한 유지보수 및 효율적인 코드 MVC 개요 MVC는 Controller로 모든 입력을 받고 이벤트가 발생한 Controller에 의해 모듈의 정의와 View의 용도가 결정된다. MVC의 장점 빠른 개발 속도와 코드의 이해도가 높다. 일단 view와 mo..

    [안드로이드] Androidx에서 File 공유하기

    1. xml 디렉터리를 만들고, file_provider 파일을 만든다. 파일 내용 2. Manifiest 파일에 해당 내용을 추가한다. 추가할 내용 ..... 3. 파일에 접근하여 필요한 동작을 구현한다.

    [안드로이드] Invoke-customs are only supported starting with Android O (--min-api 26) 에러 해결 방법

    Invoke-customs are only supported starting with Android O (--min-api 26) 여러 라이브러리를 한번에 추가하다가 발생한 에러이다. 해결방법은 build.gradle(Module:.app)에 아래 코드를 추가해주면 해결된다. android { ..// compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

    [안드로이드] 프로세스와 스레드의 차이점

    프로세스와 스레드의 차이점 프로세스는 애플리케이션이 실행될 때 운영체제로부터 자원을 할당받고, 스레드는 한 프로세스 내에서 동작되는 실행의 흐름 단위로써 프로세스가 할당받은 자원을 같은 프로세스 내의 스레드끼리 공유하면서 실행된다. 안드로이드는 한 프로세스당 최소 하나의 메인 스레드를 기본으로 가지고, 서브 스레드를 추가할 수 있다. 여기서 말하는 자원은 CPU 시간, 주소 공간, Stack, Heap, Data, Text의 구조로 되어있는 메모리 영역이다. 스레드는 왜 쓰는걸까 운영체제 입장에서 시스템의 자원을 효율적으로 관리하기 위해 스레드를 사용한다. 멀티 프로세스로 실행되는 것보다 하나의 프로세스에 필요한 자원을 할당하고 실행할 작업을 더 작은 실행 흐름 단위인 스레드로 쪼개는 게 시스템 콜(ca..

    [Java] Scanner와 BufferedReader

    Scanner Java에서 데이터를 입력받을 때, 가장 손쉽고 빠르게 입력받을 수 있도록 도와주는 클래스이다. 이 Scanner 클래스는 java.util 패키지에 포함되어 있으며 문자, 정수, 실수를 입력받을 수 있도록 도와주고, 무엇보다 쓰기 너무 편하다. Scanner의 객체를 만들 때는 System.in을 넣어 만드는데 이 System.in은 입력값을 바이트 단위로 입력받는 것을 의미한다. 한번 코드로 알아보자. Scanner scanner = new Scanner(System.in); 이렇게 객체를 만든 뒤, scanner를 통하여 next() 메서드를 이용하여 입력값을 받을 수 있는데, 공백 이전까지의 값이 입력된다. 또한 각 입력 값을 받을때 원하는 자료형으로 입력받도록 메서드를 지원한다. ..

    [안드로이드] 안드로이드 4대 컴포넌트

    1. 액티비티(Activity) 액티비티(activity)는 사용자 인터페이스 화면을 가지고, 특정한 작업을 담당하는 컴포넌트이다. - UI를 갖는 하나의 스크린을 나타낸다 - 안드로이드 애플리케이션은 최소한 하나의 activity를 가지고 있어야 한다 - 각 액티비티는 매니페스트 파일에 등록되어 있어야 한다 - 하나 이상의 View를 가질 수 있다 2. 서비스(service) 서비스(service)는 백그라운드에서 실행되는 컴포넌트로 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업을 할 때 사용된다. - UI로 표현이 없다. - Service 클래스를 상속받는다. - 한번 시작된 Service는 애플리케이션이 종료되거나 정지상태로 변경되더라도 계속 백그라운드에서 실행된다 3. 브로드캐스트 리시버(..