프로그래밍
-
[자료구조] 트리(Tree)프로그래밍/Algorithm 2024. 3. 12. 21:39
트리(Tree)는 계층형 트리 구조를 시뮬레이션하는 추상 자료형(ADT, Abstract Data Type)으로, 루트값과 부모-자식 관계의 서브 트리(Subtree)로 구성되며, 서로 연결된 노드의 집합을 말한다. 트리는 하나의 뿌리에서 위로 뻗어나가는 모양으로 생겼기에 트리(나무)라는 명칭이 붙게 되었는데, 실제 트리 구조를 표현할 때는 나무 형상과는 반대 방향으로 표현한다. 트리의 속성 재귀로 정의된 자기 참조 자료구조(Recursively Defind Self-Referential) 트리는 자식도 트리이고, 그 자식도 트리이기 때문에 여러 개의 트리가 쌓아 올려져 큰 트리가 된다. 그래서 트리 아래에 있는 트리를 서브트리라고 표현한다. 트리의 명칭 루트(Root) - 트리의 최상단 간선(Edge)..
-
[Retrofit] NumberFormatException 해결방법 - 레트로핏으로 자료형 두 개 처리하기프로그래밍/Android 2023. 2. 23. 11:38
Data Class에 Double로 정의를 해놨는데 Json으로부터 오는 값의 자료형이 String으로 올 때도 있어서 NumberFormatException이 발생하는 이슈가 있었다. Double이거나 Null이었다면 Nullable 처리를 해주면 그만이었겠지만 값이 없을 경우 Empty String을 내려주니 Exception이 발생할 수 밖에 없었던 것이다. 해결방법은 GsonConverter에 예외처리를 담당하는 Adapter를 추가함으로써 해결할 수 있었다. 구글링해서 찾은 것이므로 다른 분들과 코드가 중복될 수도 있다. package com.tenfingers.core.network import com.google.gson.JsonSyntaxException import com.google.g..
-
[Android] Paging 라이브러리 구성요소프로그래밍/Android 2022. 5. 21. 16:04
Paging 정보를 Pagination (페이지 나누기) 하여 점진적으로 데이터를 로드하도록 하는 방식 Paging 라이브러리의 핵심 구성요소 Paging 라이브러리의 핵심 구성요소는 다음과 같습니다. PagingSource: 특정 페이지 쿼리의 데이터 청크를 로드하는 기본 클래스입니다. 데이터 레이어의 일부이며 일반적으로 DataSource 클래스에서 노출되고 이후에 ViewModel에서 사용하기 위해 Repository에 의해 노출됩니다. PagingConfig: 페이징 동작을 결정하는 매개변수를 정의하는 클래스입니다. 여기에는 페이지 크기, 자리표시자의 사용 설정 여부 등이 포함됩니다. Pager: PagingData 스트림을 생성하는 클래스입니다. PagingSource에 따라 다르게 실행되며 V..
-
[Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (4) with EntryPoint프로그래밍/Android 2022. 5. 19. 21:42
@EntryPoint 주석 Codelab의 이 섹션에서는 Hilt에서 지원하지 않는 클래스에 종속 항목을 삽입하기 위해 사용하는 @EntryPoint 주석의 사용법을 알아봅니다. 앞에서 본 바와 같이 Hilt는 가장 일반적인 Android 구성요소를 지원합니다. 그러나, Hilt에서 직접 지원하지 않거나 Hilt를 사용할 수 없는 클래스에 필드를 삽입해야 할 수 있습니다. 이러한 경우에는 @EntryPoint를 사용하면 됩니다. 진입점은 종속 항목을 삽입하는 데 Hilt를 사용할 수 없는 코드에서 Hilt가 제공하는 객체를 가져올 수 있는 경계 지점입니다. 이는 Hilt에서 관리하는 컨테이너에 코드가 처음 진입하는 지점입니다. 사용 사례 애플리케이션 프로세스 외부로 로그를 내보내려고 합니다. 이를 위해 ..
-
[Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (3) with 한정자/UI테스트프로그래밍/Android 2022. 5. 16. 21:31
https://zerodeg.tistory.com/61 [Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (2) https://zerodeg.tistory.com/60 [Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (1) https://developer.android.com/codelabs/android-hilt#0 Android 앱에서 Hilt 사용 | Android 개발자 | Android De.. zerodeg.tistory.com 지난 시간에 이어 오늘은 구글의 코드랩을 통해 한정자와 UI테스트, EntryPoint Annotation에 대해 알아봅니다. 한정자 이 섹션에서 설명하는 내용은 액티비티 컨테이너로 범위를 지정하는 방법과 한정자의..
-
[Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (2)프로그래밍/Android 2022. 5. 10. 21:28
https://zerodeg.tistory.com/60 [Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (1) https://developer.android.com/codelabs/android-hilt#0 Android 앱에서 Hilt 사용 | Android 개발자 | Android Developers 이 Codelab에서는 Hilt를 사용하여 종속 항목 삽입을 실행하는 Android 앱을 빌드.. zerodeg.tistory.com 지난 시간에 이어서 Hilt Codelabs Tutorial을 마무리 해보겠습니다. 해당 글은 제 공부목적으로 작성하고 있는 글입니다 :) 지난 포스팅에서 Hilt를 통해 LoggerLocalDataSource 인스턴스 제공 방법을 알고 있는 ..
-
[Codelabs Tutorial] Android 앱에서 Hilt 사용해보기 (1)프로그래밍/Android 2022. 5. 10. 20:08
https://developer.android.com/codelabs/android-hilt#0 Android 앱에서 Hilt 사용 | Android 개발자 | Android Developers 이 Codelab에서는 Hilt를 사용하여 종속 항목 삽입을 실행하는 Android 앱을 빌드해 보겠습니다. developer.android.com 코드랩에서 제공하고 있는 학습을 따라하며 Hilt에 대해 공부를 하려고 에디터를 켜게 되었습니다. 의존성 주입이라는 것에 대해 책으로도 공부를 해보고 실습도 몇 번 해보았지만 이해하기가 쉽지 않았고 가장 근본있는 튜토리얼을 따라해보면서 이해를 해보고자 합니다. DI를 사용하면 코드를 재사용할 수 있으며, 리팩토링이 편해지고, 테스트에 용이해지는 효과를 볼 수 있습니다..
-
Jetpack Compose Tutorial 영상 정리프로그래밍/Android 2022. 5. 6. 22:24
기존에는 Android Views를 사용하려면 XML에 UI를 선언해야 했습니다. 데이터가 변경될때마다 UI를 변경해주어야 하고 이 과정에서 오류가 많아질 수 밖에 없었습니다. 앱 시장이 성숙해짐에 따라 UI는 점점 더 요구사항이 많아지고 복잡해졌습니다. 이 과정에서 개발자는 버그가 생기지 않도록 굉장한 노력을 들이게 되었으며, 관리하기는 점점 어려워지고 있습니다. 여기서 나온 것이 Jetpack Compose 입니다. Compose는 선언적 UI라고 불리고 있는데요. 상태를 UI로 변경하는 방식입니다. UI는 변경할 수 없고 한 번 생성하면 업데이트가 불가능합니다. 대신 앱상태가 변경되면 새로운 상태를 새로운 표현으로 변환합니다. 즉 UI 전체를 다시 생성합니다. 이렇게 되면 UI 동기화에 대한 문제가..