전체 글256 [Java] static 블록과 생성자 static 블록을 알아보기 전에 Static이 무엇인지에 대해 알아보겠습니다.Static자바에서는 Static 키워드를 사용하여 정적 변수, 정적 메서드를 만들 수 있습니다. 이 둘을 묶어서 정적 멤버라고 불립니다.Static은 JVM 런타임 데이터 영역 메서드 영역 중 Static 영역에 할당이 됩니다.Static 영역에 할당된 값들은 모든 객체가 공유하여 어디서든지 참조할 수 있습니다.그리고 프로그램이 시작될 때 메모리에 할당이 되는데, Static 영역은 가비지 컬렉터 관리 밖에 존재하여서 프로그램이 종료될 때까지 메모리에 할당된 채로 존재합니다.그래서 무분별하기 사용할 경우 문제가 발생할 수 있습니다. static 블록과 생성자는 각각 클래스와 인스턴스의 초기화를 다루는데 사용되며, 그들의 주.. 2024. 12. 14. [Android] DTO vs DAO vs Entity 안드로이드에서 클린 아키텍처를 공부해보신 분들이면, 아래 용어들에 대해서 자주 접하게 됩니다.DTO, DAO, Entity각각에 대해서 차이는 무엇이며, 어떤 개념을 가지고 있는지 알아보겠습니다. DTO (Data Transfer Object)DTO는 단어 그대로 데이터 전송 객체를 의미합니다. 쉽게 말해서 HTTP 통신시 JSON 타입의 Request Body와 Response Body를 생각하면 된다.계층 간의 데이터 교환을 하기 위해 사용하는 객체API 호출 시 서버로부터 받은 JSON 형태의 데이터를 매핑할 수 있는 data class화면에 노출시키지 않는 data가 포함된다면 domain 모듈의 model에 필요한 data만 mapping 하는 작업이 필요 DAO (Data Access Obj.. 2024. 12. 14. 프레임워크 VS 라이브러리 프레임워크원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 기능을 갖추고 있는 골격, 뼈대를 의미합니다.프레임워크는 애플리케이션 개발 시 필수적인 코드등과 같은 기능을 위해 어느정도 구조(뼈대)를 제공하고, 이러한 구조 위에서 사용자가 코드를 작성해서 애플리케이션을 개발합니다.즉, 개발자가 구현한 메서드가 프레임워크에 의해 호출되며, 이를 제어의 역전(IoC)이라고 합니다. "소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합"이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다. 프레임워크는 전체 어플리케이션의 구조를 정의하여 일정한 개발 패턴을 따르게끔 합니다. 프레임워크 예시안드로이드 앱 개발에 사용되는 AndroidJAV.. 2024. 12. 14. [Android] Doze모드와 대응 방법 1. 서론 API 버전이 마시멜로우인 23이상부터 Doze모드와 AppStand by의 개념이 도입되었습니다. 안드로이드 앱을 개발하는 개발자라면, Doze모드와 AppStand by를 대처해야한다는 말을 들어봤을 것입니다. 그리고 이를 실제로 대응하면서, 껄끄러웠던 경험이 있었을 것이라고 생각합니다. 필자도 '백그라운드에서 시간을 체크하는 작업', '백그라운드에서 네트워크 통신을 하는 작업'등을 경험을 해봤고, 이번에 'FCM에서 네트워크 통신을 사용'하는 경험을 통해서 Doze모드와 각종 백그라운드 정책에 직면을 했습니다. 그래서 이번 포스팅을 통해서 안드로이드의 백그라운드 제한 작업에 함께 알아보려고 합니다. 2. Doze 모드 (Android 6.0) Doze 모드는 충전기 연결이 되지 않은 배터.. 2024. 11. 16. [Android] WorkManager 사용법 (2) - 심화 WorkManager 의 쉬운 사용법을 넘어 이제는 WorkManager 의 상황을 파악하면서 더 잘 사용하는 방법에 대해 알아봅시다. 이번 포스트 에서는 Android Jetpack 의 아키텍처의 구성 요소인 LiveData 에 대한 사전 지식이 약간 필요합니다.1. 작업 상황 파악작업이 동작하고 완료 되고 더이상 할일이 없다면 좋겠습니다만 아쉽게도 그런 경우는 별로 없습니다.완료 된 작업에 대해 사용자에게 알림을 통보해 주거나, 화면에 표시된 프로그래스바를 감춰야 하기도 하고, 사용자의 선택에 따라 이미 처리중인 작업을 취소 해야 하기도 하고, 다시 새로운 작업을 실행 해야 하기도 합니다.이 경우들을 처리하기 위한 기본은, 현재 내가 추가한 작업의 처리 상태를 파악하는 것입니다.예시와 함께 설명하겠습.. 2024. 11. 16. [Android] WorkManager 사용법 (1) - 기본 WorkManager 의 구성WorkManager API 의 주요 클래스는 WorkManager, Worker, WorkRequest, WorkState 입니다.WorkManager : 처리해야 하는 작업을 자신의 큐에 넣고 관리합니다. 싱글톤 인스턴트로 사용 하기 위해서 내부에 WorkManager 객체를 반환하는 getInstance() 함수가 있습니다. 이 메서드를 통해서 WorkManager 의 인스턴트를 받아 사용합니다.Worker : 추상 클래스 입니다. 처리해야 하는 백그라운드 작업의 처리 코드를 이 클래스를 상속받아 doWork() 메서드를 오버라이드 하여 작성하게 됩니다.doWork() 메서드는 작업을 완료하고 결과에 따라 Worker 클래스 내에 정의된 enum 인 Result 의 값중.. 2024. 11. 16. 이전 1 ··· 4 5 6 7 8 9 10 ··· 43 다음