안드로이드 [Kotlin] - 프로젝트에 의존성 주입(DI) 적용해보기 - Hilt
2022. 11. 10. 16:16
Android
의존성 주입, 안드로이드에서의 의존성 주입, 그리고 안드로이드 의존성 주입 라이브러리인 Hilt에 대해서 지난번 포스팅에서 다뤘다. https://jminie.tistory.com/180 안드로이드 [Kotlin] - 의존성 주입(DI) 알아보기 - Hilt 📌 들어가며 의존성 주입은 객체지향 프로그래밍의 개념 중 하나이다. 이것을 이해하기 위해서는 객체지향 설계의 5대 원칙으로 불리는 SOLID 원칙에 대해 알아보아야 한다. 바로 직전 포스팅에 jminie.tistory.com 오늘은 Hilt를 프로젝트에 적용해보자 📌 의존성주입 build.gradle(Project) plugins { ... ... id 'com.google.dagger.hilt.android' version '2.41' apply ..
안드로이드 [Kotlin] - 의존성 주입(DI) 알아보기 - Hilt
2022. 11. 7. 19:10
Android
📌 들어가며 의존성 주입은 객체지향 프로그래밍의 개념 중 하나이다. 이것을 이해하기 위해서는 객체지향 설계의 5대 원칙으로 불리는 SOLID 원칙에 대해 알아보아야 한다. 바로 직전 포스팅에 SOLID 원칙에 대해 정리한 글이 있으니 꼭 읽어보고 오기 바란다. https://jminie.tistory.com/179 OOP - SOLID 원칙 SOLID 원칙 단일 책임 원칙 (Single Responsibility Principle, SRP) 개방-폐쇄 원칙 (Open-Closed Principle, OCP) 리스코프 치환 원칙 (Liskov Substitution Principle, LSP) 인터페이스 분리 원칙 (Interface Segregation Principle, ISP) jminie.tisto..
OOP - SOLID 원칙
2022. 10. 27. 21:34
OOP
SOLID 원칙 단일 책임 원칙 (Single Responsibility Principle, SRP) 개방-폐쇄 원칙 (Open-Closed Principle, OCP) 리스코프 치환 원칙 (Liskov Substitution Principle, LSP) 인터페이스 분리 원칙 (Interface Segregation Principle, ISP) 의존성 역전 원칙 (Dependency Inversion Principle, DIP) 📌 단일 책임 원칙 (Single Responsibility Principle, SRP) 클래스는, 오직 하나의 대해서만 책임져야 한다. 만약 클래스가 여러 가지 작업을 책임져야 한다면, 이는 버그 발생 가능성을 높인다. 많은 기능 중 한 가지를 변경할 때, 자신도 모르게 다른 ..
안드로이드 [Kotlin] - WorkManager의 탄생배경과 활용
2022. 10. 24. 16:19
Android
🗒 WorkManager 이론 📌 안드로이드의 백그라운드 작업 실행 시점에 다른 분류 Exact Timing : 즉시 처리되어야 하는 작업 Deferrable : 처리를 위한 조건이 만족될 때까지 기다릴 수 있는 작업 실행 완료 여부에 따른 분류 Best-Effort : 처리를 위해 노력하지만 취소될 수도 있는 작업 Guranteed Execution : 앱이 종료되거나 기기가 재부팅되어도 수행되어야 하는 작업 안드로이드에는 위 표처럼 이미 백그라운드 Task를 처리하기 위한 많은 라이브러리들이 존재한다. WorkManager는 이 중에서 Defferd와 Guaranteed Execution의 작업들을 대체하기 위해서 탄생하였다. 그렇다면 이미 라이브러리가 존재하는데 왜 구글은 WorkManger를 새로..
[코틀린] 백준 - 약수의 합2
2022. 10. 21. 17:20
Algorithm
📌 풀이 1 (시간 초과) 에라토스테네스의 채 방법 사용 에라토스테네스의 채란? n의 약수의 합을 구할 때 나누는 수를 1부터 N까지 모두 검사한다면? // answer에 약수의 개수 저장 var answer = 0 for (i in 0 until N) { if (N % i == 0) answer += i } 위 식은 시간 복잡도는 O(N)이다. 이때 에라토스테네스의 채라는 방법을 이용하면 시간 복잡도가 획기적으로 줄어드는데 합성수는 그 수의 제곱근보다 작거나 같은 약수를 갖는다 즉 N까지 검사할 것을 루트 N까지만 검사하면 된다는 것 -> 시간 복잡도를 O(√n) 로 만들어준다. 예를 들어 N=10000이라면 10000번 검사할 것을 100번만 검사하면 된다는 것 코드 import kotlin.math..