일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 양과 늑대
- 명령형 ui
- mutablestate
- State
- 선언형ui
- 명령형ui
- BottomSheet
- NavHost
- clean coder
- ModalBottomSheet
- Java
- JCF
- 2022 kakao blind
- bottomscaffold
- rememberupdatedstate
- 안드로이드
- genarics
- mutableStateOf
- 선언형 ui
- 클린아키텍처
- 2989번
- NavGraph
- 2022 KAKAO BLIND RECRUITMENT
- derivedstateof
- snapshotflow
- compose
- apollo3
- remembercoroutinescope
- 자바
- producestate
- Today
- Total
목록전체 글 (75)
버미

컴포저블의 범위 밖에서 발생하는 앱 상태 변경을 다루기 위한 도구로서 SideEffect를 사용한다. 공식 문서에 따르면, 컴포저블은 이상적으로 Side Effect가 없어야 한다고 한다. 하지만 앱을 설계하면서 UI의 상태 외에도 결국 UI와 긴밀하게 연결되어야하는 부분이 있다. 이를 지원해주는 것이 SideEffect 인데, 어떻게 동작하고 활용되는지 알아보자. Side EffectCompose function 외부에서 발생하는 앱 상태의 변화이다. 위의 설명은 공식 문서에 나와있는 선언형 UI 철학에 어긋날 수 있는 작업을 처리하기 위한 설명이다. 이를 풀어보자면 다음과 같이 말할 수 있다. Compose 내부 상태 변화가 외부 시스템에 영향을 미치거나, 외부 상태 변화를 UI에 반영해야 할 때 ..
2022 KAKAO BLIND RECRUITMENT > 양과 늑대 문제 설명2진 트리 모양 초원의 각 노드에 늑대와 양이 한 마리씩 놓여 있습니다. 이 초원의 루트 노드에서 출발하여 각 노드를 돌아다니며 양을 모으려 합니다. 각 노드를 방문할 때 마다 해당 노드에 있던 양과 늑대가 당신을 따라오게 됩니다. 이때, 늑대는 양을 잡아먹을 기회를 노리고 있으며, 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대에게 잡아먹히지 않도록 하면서 최대한 많은 수의 양을 모아서 다시 루트 노드로 돌아오려 합니다. 제한사항2 ≤ info의 길이 ≤ 17 info의 원소는 0 또는 1 입니다. info[i]는 i번 노드에 있는 양 또는 늑대를 나타냅니다...

KAPT와 KSP가 왜 나왔으며 이 두개의 개념이 무슨 연관이 있는지 알아보고자 한다.KaptKapt은 Kotlin Annotation Processing Tool의 약자이다. Java는 Annotation을 기반으로 컴파일 타임에 코드를 생성하는데, 코틀린에서도 이를 사용할 수 있도록 해주는 도구이다. Kotlin은 Java처럼 자체적인 Annotation 처리 기능이 없기 때문에 kapt가 도입되었으며, Kapt는 Java Annotation 프로세서가 사용하는 javax.lang.model API와 상호작용을 하기 위해, Kotlin 코드를 Java 스텁으로 변환하는 단계를 거친다. Kapt의 특징은 다음과 같다.Annotation 처리 : Kotlin 코드에서 Annotation처리를 해주는 기능..

명령형 UIUI 요소들의 상태 변화와 동작을 명령하여 사용하겠다는 것이다. UI의 요소에 대해 명시적인 변경을 명령하여 조건에 따라 어떻게 업데이트할지 세밀하게 작성해야한다. 명령형 UI의 특징명시적인 상태 관리 : UI의 상태를 수동으로 추적하고 변경한다. 예를 들어 버튼 클릭 시 텍스트를 변경하거나, 특정 뷰의 visibility를 변경하는 동작을 직접 제어해야 한다.단계별 UI 갱신 : UI가 변화할 때 단계별로 어떤 요소가 어떻게 변해야하는지 직접 정의해야한다.예를 들어 리스트의 아이템이 추가되거나 제거될 때, 리스트 전체를 다시 그리거나 개별 아이템에 대해 수동으로 추가/삭제 작업을 처리한다.코드의 복잡성 : UI의 상태와 UI 구성 요소들이 강하게 결합되어있어서, UI가 복잡해질수록 명령형으로..
Dagger 2.50 이상부터 dagger-compiler 내부에서 JavaPoet 라이브러리가 사용되기 시작했다. 이전에는 Hilt와 관련된 클래스 집계 및 코드 생성 작업에서 주로 다른 방식(예: AutoValue 및 직접적인 코드 생성)을 활용했으나, 2.50 버전 이후로 Square의 JavaPoet 라이브러리를 적극적으로 사용하며 내부적인 변화가 발생했다. 2.50 이전의 방식과 비슷하게 사용해서 프로젝트를 빌드한 경우의 Gradle Sync Issue다.> Task :presentation:hiltAggregateDepsDebug FAILEDUnable to find method ''java.lang.String com.squareup.javapoet.ClassName.canonicalName..

Jetpack Compose를 알아보기 전에 Android Jetpack에 대해서 간단하게 살펴보자. JetpackJetpack은 Components, Tools, Guidance로 이루어져 있다. 이를 통해, 기존의 라이브러리와 아키텍쳐 컴포넌트를 제공해준다. 아래의 도표는 JetPack이 제공하는 라이브러리를 4가지 종류로 분류한 것이다. 위와 같이 Android Jetpack에서는 다양한 라이브러리를 지원해주며 이를 통해 얻을 수 있는 장점은 두 가지로 용이성과 호환성이 있다. Jetpack ComposeJetpack의 많은 UI 관련 라이브러리 중 하나이며 구글에서 개발한 모던 안드로이드 개발을 위한 선언형 UI Toolkit이다. 2021년 8월에 1.0.0 stable버전이 정식 출시되었으며..
문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 예제 입력 15 17 예제 출력 12힌트수빈이가 5-10-9-18-17 순으..

MVVM 패턴 개념M(Model) : 데이터V(View) : VM(View Model)을 구독하여 소비하는 객체 (하나의 Layout 파일)VM(View Model) : View를 그리는데 필요한 Model을 View Model이라고 한다.자세한건 MVVM관련 게시글 참고왜 클린 아키텍처가 필요할까?소프트웨어가 가진 본연의 목적을 추구하려면 반드시 ‘부드러워’야 한다. 다시 말해 변경하기 쉬워야 한며, 이해관계자가 기능에 대한 생각을 바꾸면, 이러한 변경사항을 쉽게 적용할 수 있어야 한다.(Robert C. Martin, Clean Coder) 클린 아키텍쳐 개념소프트웨어의 유지보수와 테스트를 쉽게할 수 있도록 설계된 소프트웨어 아키텍쳐이다. 클린 아키텍쳐의 핵심 원칙 중 하나는 '의존성 규칙'이다...

Service 란?백그라운드에서 오랜 시간동안 작업을 수행할 수 있는 어플리케이션 컴포넌트 사용자에게 UI를 제공하지 않는다.어플리케이션 컴포넌트와 Service를 바인딩하여 상호작용할 수 있고, 프로세스간 통신(IPC)도 가능하다.Service는 별개의 프로세스나 스레드가 아니다. (특별히 지정하지 않은 경우 메인스레드에서 실행된다. 따라서 긴 작업을 수행하려는 경우 IntentService, JobIntentService, WorkManager을 고려할 수 있다.)Service는 앱에서 오직 1개의 인스턴스만 생성가능하다Service 종류 1. Foreground Service사용자에게 보이는 작업을 수행한다.알림창을 통해 Service가 실행중인 것을 나타낸다. (이 알림은 서비스가 멈추거나 Fo..