전체보기(74)
-
Mendable(Compose Compiler Reporter) 사용해보기
요약 Compose 구현 영역이 늘어남에 따라 우리 프로젝트의 안정성 문제를 진단하기 위해 Compose Compiler reporter 인 Mendable 을 통해 측정해보고자 합니다 Mendable 이란? 다중 모듈 Jetpack 컴파일러 메트릭을 HTML 및 JSON 보고서로 변환하는 CLI 도구 추가적으로 지속적으로 측정을 진행하여 상태를 추적 가능하게 하고자 합니다 목표 Mendable 를 우리 프로젝트에 동작시켜보고 결과 리포트를 분석합니다 Mendable 를 지속적으로 동작시켜 우리 프로젝트의 상태를 추적 가능하게 합니다 개선여부에 대해 파악하고 개선 방법을 정리합니다 진행 사항 동작 방식 컴파일러는 composable 함수가 skippable 하면서 restartable 할 경우 해당 함수..
2024.02.29 -
Hilt & Dagger Annotation 별 정리
종속 항목 삽입 장점 클래스 재사용 가능 및 종속 항목 분리 : 종속 항목 구현을 쉽게 교체할 수 있습니다. 컨트롤 반전으로 인해 코드 재사용이 개선되었으며 클래스가 더 이상 종속 항목 생성 방법을 제어하지 않지만 대신 모든 구성에서 작동합니다. 리팩터링 편의성: 종속 항목은 API 노출 영역의 검증 가능한 요소가 되므로 구현 세부정보로 숨겨지지 않고 객체 생성 시간 또는 컴파일 시간에 확인할 수 있습니다. 테스트 편의성: 클래스는 종속 항목을 관리하지 않으므로 테스트 시 다양한 구현을 전달하여 다양한 모든 사례를 테스트할 수 있습니다. 종속 항목 수동 삽입 Application에 Container Factory 생성 → 메모리를 확보하기 위해 컨테이너를 최적화 및 삭제 작업을 해야 함 잘못 관리할 경우..
2024.01.28 -
[SOLID principles of Android] SOLID 원칙 정리와 안드로이드에서 사용 예
SOLID 원칙 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩토링 하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. SRP(Single Responsibility Principle): 단일 책임 원칙 class는 오직 하나의 이유만 가져야 한다 즉, 하나의 변경 작업을 가져야 한다는 것을 의미한다 EX) RecyclerView..
2022.07.04 -
DI(Dependency Injection) 정리 (hilt, koin)
의존성 주입 (Dependency Injection) 개념 - 의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 필요한 객체를 받아서 사용하는 것이다. 효과 - 객체간의 결합도를 줄이고 코드의 재활용성을 높여준다 DI 프레임 워크 종류 koin 특징 runtime error 발생 (컴파일 과정을 마친 후 사용자에 의해 실행되어 짐) 컴파일 시 걸러내지 못하고 실행 시점에 오류가 발생 kotlin DSL로 만들어진 안드로이드에서 사용할 수 있는 의존성 주입 라이브러리 AAC ViewModel 사용 시 별도의 라이브러리를 통해 의존성 주입이 가능 Dagger에 비해 복잡하지 않아 러닝 커브가 낮지만 리플렉션을 이용해 의존성을 주입하다 보이 앱 성능이 저하됨 장점 러닝커브가 낮음 Kotlin 개..
2022.06.28 -
[Architecture] MVVM, MVI, MVP, MVC 비교
MVC Model + View + Controller Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 (비즈니스 로직 담당) View : 사용자에서 보여지는 UI 부분 Controller : 사용자의 입력(Action)을 받고 처리하는 부분 동작 사용자의 Action이 Controller에 들어옴 Controller는 사용자의 Action을 확인하고 Model을 업데이트 함 Controller는 Modek을 나타내일 View를 선택 View는 Model을 이용해 화면 출력 특징 Controller는 여러개의 View를 선택할 수 있는 1:n 구조 Controller는 View를 선택할 뿐 직접 업데이트 하지 못함 (View는 Controller를 알지 못함) 장점 비교적 단순한..
2022.06.28 -
Android Interview / CS 정리
Android 4대 컴포넌트 Activity : UI 담당 컴포넌트 Service : 백그라운드 실행 컴포넌트 BroadCastReceiver : 단말에서 발생하는 다양한 이벤트를 받아 반응하는 컴포넌트 ContentProvider : 데이터 공유 컴포넌트 What is the Intent? 컴포넌트 간 정보를 주고받을 수 있음 명시적 Intent : Intent에 클래스나 컴포넌트 이름을 명시, 호출할 대상을 명확히 알 수 있는 것 암시적 Intent : 호출할 대상이 바뀔 수 있는 경우 ANR(application not responding) android 앱의 UI 스레드가 너무 오랫동안 차단될 경우 발생 Context Context : 현재 사용되고 있는 application의 포괄적인 정보를 지..
2022.05.17