일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- bottomscaffold
- producestate
- 2022 kakao blind
- BottomSheet
- 클린아키텍처
- 2022 KAKAO BLIND RECRUITMENT
- 2989번
- derivedstateof
- compose
- apollo3
- 자바
- ModalBottomSheet
- clean coder
- Java
- snapshotflow
- genarics
- mutableStateOf
- 양과 늑대
- 뷰바인딩
- JCF
- 안드로이드
- rememberupdatedstate
- remembercoroutinescope
- mutablestate
- State
- 선언형 ui
- 선언형ui
- 명령형ui
- viewbinding
- Today
- Total
목록전체 글 (71)
버미
[문제 사이트 링크] [문제 요약] 문자열 관련 구현 문제.문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으료 표현하여 짧은 문자열로 표현하는 문제.예를 들어, "aabbaccc"의 경우 "2a2ba3c"로 나타낸다. 이 때 문자가 반복되지 않은 경우는 생략한다.하나 이상의 문자를 같는 문자열을 반복하여 위의 예시와 같이 표현했을 때, 가장 짧게 나타나는 문자열의 길이를 구하라.예를 들어, "ababcdcdababcdcd"의 경우 문자를 1개 단위로 자르면 전혀 압축되지 않지만, 2개 단위로 잘라서 압축한다면 "2ab2cd2ab2cd"로 표현할 수 있습니다. 다른 방법으로 8개 단위로 잘라서 압축한다면 "2ababcdcd"로 표현할 수 있으며, 이때가 가장 짧게 압축하여 표현할..

인터페이스와 추상 클래스 각각 알아보고 비슷해보일 수도 있는 이 둘은 어떤 차이점이 있는이 알아보자. 🔍 추상 클래스는 abstract 메소드를 사용한 추상 메소드를 하나 이상 가진다. 인터페이스는 abstract 메소드를 가지며 다른 블로그를 살펴 보면 인터페이스도 추상 클래스의 일부분이라고 하는 글도 있다. 과연 인터페이스가 추상 클래스의 일부분일까?라는 의문점을 시작으로 이 글을 작성했다. 인터페이스인터페이스는 다른 클래스를 작성할 때 기본이 되는 틀을 제공해주는 역할이다. 여러 종류의 객체를 만들어야하는 상황에서 작업 대상이 늘어날수록, 코드가 복잡해진다. 이 경우, 확장성과 유지보수성을 위해 인터페이스를 사용한다. 예를 들어, 고양이는 생선을 먹고 강아지는 뼈다귀를 먹는다고 하자. 인터페이스를..
GraphQL을 안드로이드에 적용하기에 앞서, 간단하게 GraphQL이 무엇인지 살펴보고 장단점이 무엇이 있는지 알아보자. GraphQL페이스북이 개발한 QL(Query Language, 질의 언어)이다. 대중적으로 사용되고 있는 Rest API의 경우, 서버 측에서 API의 구조를 정해주고 이를 클라이언트 측에서 사용하는 방식이다. REST API 와 GraphQL의 차이 REST APIGraphQL데이터 요청 방식여러 엔드포인트(/users, /posts)와 HTTP 메서드(GET, POST 등)를 사용하여 요청.하나의 엔드포인트(/graphql)를 통해 클라이언트가 원하는 데이터의 구조를 쿼리(Query) 또는 변경(Mutation) 요청으로 정의.언더페칭 문제필요한 정보를 얻기 위해 여러 API..

Side Effect ( 1 / 2 ) 에서 설명하지 못했던 rememberCoroutineScope, produceState, derivedStateOf, snapshotFlow에 대해 설명하겠다.공식 문서에서는 rememberCoroutineScope를 LaunchedEffect와 비교하여 설명하고 있는데, 코드와 특징을 정리하면 다음과 같다. rememberCoroutineScope LaunchedEffect는 Key 값의 변경에 따라 비동기 작업이 자동으로 트리거된다. 반면, rememberCoroutineScope는 컴포지션 생명 주기에 연동된 CoroutineScope를 제공하며, Key 값은 제공하지 않으며, 외부 이벤트(예: 버튼 클릭, 사용자 입력 등)에 의해 명시적으로 트리거되어 비동기..

명령형 UI와 달리 선언형 UI는 값을 업데이트하는 방식으로 State를 사용한다.명령형 UI와 선언형 UI의 차이를 알고 싶은 독자라면 해당 링크에서 정보를 얻길 바란다. JetPack Compose에서는 이런 State를 안전하고 편리하고 사용할 수 있도록 도와주는 여러 API가 존재한다. 최종적으로는 remember, MutableState에 대해서 알아볼 것이며 그 전에, State가 무엇인지 살펴보자. State 시간이 지남에 따라 변경될 수 있는 모든 값을 말한다. 예를 들어, 다음의 값들은 State가 될 수 있다.네트워크 연결을 설정할 수 없을 때를 표시하는 스낵바.블로그 게시물과 관련 댓글.사용자가 버튼을 클릭하면 재생되는 리플 애니메이션.사용자가 이미지 위에 그릴 수 있는 스티커.어떤 ..

컴포저블의 범위 밖에서 발생하는 앱 상태 변경을 다루기 위한 도구로서 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가 복잡해질수록 명령형으로..