분류 전체보기254 [Java] Weak Refrence란? WeakRefrence에 대한 이해를 돕기 위해 GC 동작에 대해 간략히 알아보자 GC(Garbage Collection) 동작GC(Garbase Collection)는 프로그래머가 명시적으로 메모리를 할당하거나 해제하지 않아도 자동으로 메모리 관리를 제공해주는 편의성을 가지게 해준다. GC의 동작은 매우 다양하지만 아래 핵심 동작은 모든 GC 알고리즘에서 공통적으로 이뤄지고 있는 내용이다.(1) Heap 내의 객체 중 사용되지 않는 객체를 찾는다 (2) 사용되지 않는 객체의 Memory를 회수한다.이에 좀 더 나아가면 GC는 객체가 가비지인지 아닌지를 판별하기 위해서 rechability라는 개념을 사용한다.어떤 객체가 참조되고 있는 곳이 한곳이라도 있을 경우 rechable로 구별되며, 반대로 참조되.. 2024. 12. 17. [Android] SAA(Single Activity Architecture)란? SAA(Single Activity Architecture)SAA는 Google I/O 2018 에서 언급된 내용으로,하나의 또는 적은 Activity만을 사용하고 나머지 화면을 Fragment로 구성한 구조로, Jetpack Navigation과 함께 사용되는 구조이다. Jetpack Navigation에 대해 자세한 내용을 알고싶다면 아래 링크를 참고하자https://jtm0609.tistory.com/114 [Android] Jetpack Navigation Component 딥 다이브Navigation ComponentNavigation Component는 안드로이드 JetPack 라이브러리 중 하나로 사용자의 상호작용에 따라 화면간의 이동을 구현하는데 도움을 준다.이를 사용하면 개발자를 대신해.. 2024. 12. 17. [Android] 왜 Activity 대신 Fragment를 사용해야할까? 유연한 UX/UI 구현태블릿과 같은 큰화면에서 UX/UI를 역동적이고 유연하게 구현할 수 있다.따라서 복잡한 화면 구성에 있어 Fragment를 자주 사용한다. 재사용성 증가View 또는 비즈니스 로직을 Fragment 단위로 분리할 수 있다.아키텍처 원칙에서 가장 중요한 원칙인 관심사 분리를 통해 의존성을 분리하고 독립성을 키우게 되는 것이다.이러한 부분을 잘 이용하면 Fragment로 구현한 내용을 다른 Activity 또는 Fragment에서 재사용할 수 있다. 퍼포먼스Acivitiy는 무겁다. 왜 무거운 것일까? Actiivity의 경우 항상 시스템이 개입하며, 새로운 Acitivity의 생성, 전환, 소멸 등의 과정은 상호작용하는 Acitivity를 직접적으로 참조하지 않고 Intent와 Sys.. 2024. 12. 16. [Android] Fragment Manager Fragment 이동 처리 관련해서는 Jetpack의 Navigation Component를 쓰고 있지만, FragmentMananger의 동작 과정에 대해서 잘 이해하고 있지 못한 것 같아 포스팅을 해본다. FragmentManagerFragmentManager는 앱 프래그먼트에서 프래그먼트를 추가, 삭제, 교체하고 백스택에 추가하는 작업을 실행하는 클래스이다.Activity 또는 Fragment에서 엑세스 할 수 있으며, FragmentActivity 및 서브 클래스에서 접근이 가능하다.getSupportFragmentManager(), childFragmentManager(), parentFragmentManager() FragmentManager 접근Activity에서 접근 방법FragmentaA.. 2024. 12. 16. [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. 이전 1 ··· 3 4 5 6 7 8 9 ··· 43 다음