profile
Android Developer

[용어 기록] GMV란?

GMV는 Gross Merchandise Volume의 약자로, 전자상거래 업체에서 주어진 기간 동안 이뤄진 총 매출액, 총 상품 판매량을 가리킨다. Ref https://test.narangdesign.com/mail/kvca/202109/g1_1.php

2023년 7월 27일
·
1개의 댓글
·
post-thumbnail

[Android] MVI Architecture with Kotlin Flows and Channels 번역

이 글은 해당 글에 대한 번역 및 이해를 바탕으로 작성한다. MVVM은 권장하는 아키텍쳐이며 많은 개발자가 사용한다. 그러나 다른것들과 마찬가지로 아키텍쳐 패턴도 진화하고 있으며, MVI는 MVX 패턴들의 마지막 패턴이다. MVVM과 공통점이 많지만, 보다 구조화된

2023년 7월 17일
·
1개의 댓글
·

[Compose 공식문서 톺아보기] 6. Compose에 UI 상태 저장

상태가 호이스팅된 위치와 필요한 로직에 따라 서로 다른 API를 사용하여 UI 상태를 저장하고 복원할 수 있다. 모든 Android 앱은 Activity 또는 Process 재생성으로 인해 UI 상태가 손실될 수 있다. 이러한 상태 손실은 다음과 같은 이벤트로 인해

2023년 7월 4일
·
0개의 댓글
·

[회고] 상반기 회고와 "취직과 이직 그 중간 어디쯤" 후기

올해 3월을 기점으로 퇴사하고 백수가 되었다. 하지만, 비자발적 퇴사로 실업 급여를 받을 수 있었다. 글을 쓰는 시점인 지금은 6월이고, 상반기 회고 겸 내 얘기를 정리하고자 글을 쓰게 되었다. 1. 퇴사 🫡 핀테크 관련 스타트업에서 안드로이드 개발자로 일을 하

2023년 6월 23일
·
1개의 댓글
·

[취업 후기] 취직과 이직 그 중간 어디쯤

1) 카카오뱅크서류 > 과제 전형 > 1차 면접 > 탈락3월 카카오뱅크 경력 채용을 시작으로 구직 과정이 시작되었다. 그동안 이력서를 업데이트하지 않았기에 이력서를 가다듬고 제출했다. 특이사항이 없다면 서류는 기본적으로 통과하는 것 같았고, 과제 전형을 진행했다. 화면

2023년 6월 23일
·
0개의 댓글
·

[Android] Dagger Hilt Assisted Inject - 런타임 주입

AssistedInject에 대해서 알아보려고 한다. AssistedInject 기존 Hilt를 사용했을 때는 미리 명시된 의존 Graph에서 명시적으로 정의된 Module만을 주입받을 수 있었다. 하지만, AssistedInject를 통해서 런타임에 주입이 가능하

2023년 6월 11일
·
0개의 댓글
·
post-thumbnail

[Compose 공식문서 톺아보기] 5. 상태를 호이스팅할 대상 위치

권장 사항 UI 상태는 UI 상태를 읽고 쓰는 모든 컴포저블의 가장 낮은 공통 상위 요소로 호이스팅해야 한다. 상태는 상태가 소비되는 위치에서 가장 가까운 곳에 유지해야 한다. 상태 소유자로부터 소비자에게 변경 불가능한 상태 및 이벤트를 노출하여 상태를 수정한다. 가

2023년 6월 10일
·
0개의 댓글
·

[Kotlin] inline class

비즈니스 로직을 작성하다보면 어떤 타입의 Wrapper를 작성할 때가 있다. 예를 들어, userName을 표현할 때 단순히 String으로 나타낼 수 있지만 조금 더 도메인적인 의미를 나타내주고 싶을 때는 UserName 타입으로 표현할 수 있다.그러나 이러한 Wra

2023년 6월 4일
·
0개의 댓글
·
post-thumbnail

동시성 제어 방법

멀티 스레드에서 동시성을 제어하기 위한 방법을 알아보도록 하자.volatilesynchronizedAtomic variablevolatile 키워드를 사용하면 멀티 스레드 환경에서 변수를 공유할 수 있다.단, 여러 개의 스레드가 읽을 수 있지만 write 할 수 있는

2023년 6월 4일
·
0개의 댓글
·
post-thumbnail

[Android] stateIn이란?

우리는 여러 데이터 흐름(flow)를 하나로 합쳐 하나의 데이터 흐름(flow)를 만들어낸다. 아래에서는 3개의 Flow가 있고 이걸 합쳐서 하나의 Flow를 만든다.하나로 만들어진 flow는 UI에서 사용되기 위해서 StateFlow로 변환되어야 한다. UI에서는 S

2023년 6월 3일
·
0개의 댓글
·

[Pattern] Multiton Pattern이란?

최근 면접에서 Multiton 패턴이라는 것에 대해 질문을 받았는데, 처음 들어보는 개념이라 간략하게 정리하려고 한다.Multiton Pattern은 객체를 생성하는 패턴 중 하나로, Singleton Pattern의 확장된 형태이다. Singleton Pattern은

2023년 5월 31일
·
0개의 댓글
·

[Android] Immutablility

불변성(immutability)은 함수형 프로그래밍에서 가장 중요한 부분이다. 불변성이 왜 중요하고 무엇을 의미하는지에 대해서 알아보자.본질적으로 함수형 프로그래밍은 Thread-Safe하다. 그리고 불변성은 스레드를 안전하게 만드는데 큰 역할을 한다. 사전적인 정의로

2023년 5월 31일
·
0개의 댓글
·

[Compose] rememberLazyListState

scrollState로 rememberLazyListState와 rememberScrollState가 있으며, 현재 스크롤되고 있는 상태를 저장한다.이를 이용하여 스크롤을 원하는 위치로 이동할 수 있다.LazyListState는 매우 자주 변경되므로 해당 속성을 읽는

2023년 5월 31일
·
0개의 댓글
·
post-thumbnail

[Android] Image Loading Library Coil

Coil은 Coroutine Image Loader의 약자로 Kotlin Coroutine 기반으로 만들어진 가벼운 Android Image Loading Library 이다.100% kotlin으로 작성되었으며, 자체적으로 코루틴을 사용하고 있다는 특징이 있다.Ima

2023년 5월 31일
·
0개의 댓글
·

[Compose] SideEffect란?

SideEffect(부수 효과)란 Composable 범위 밖에서 발생하는 앱 상태에 대한 변경이다.SideEffect를 이해하기 위해서는 아래의 2가지를 이해해야 한다.Composable은 각각의 Lifecycle을 가지고 있다.Composable은 단방향으로만 St

2023년 5월 31일
·
0개의 댓글
·

[Compose] Surface vs Box

Surface와 Box는 UI 구성 요소를 정의하는데 사용되는 다른 유형의 컨테이너이다.Material Design 시스템에 기반한 Compose의 컨테이너이다. Surface는 일반적으로 카드 또는 패널과 같은 요소를 나타내는데 사용된다. 그림자, 경계선, 배경색 등

2023년 5월 30일
·
0개의 댓글
·
post-thumbnail

[Android] Gradle api vs implementation

implementation과 api는 모두 build.gradle에서 사용하며 라이브러리를 적용시키는 키워드이다. 오래된 Gradle 버전에는 implementation이 없어서 compile을 사용했었고, 새로운 버전(6.x 이후 버전)에서 compile이 depre

2023년 5월 30일
·
0개의 댓글
·
post-thumbnail

[Compose 공식 문서 톺아보기] 4. 상태 관리 개요

앱의 상태는 시간이 지남에 따라 변할 수 있는 값을 의미한다. 이는 매우 광범위한 정의로서 Room 데이터베이스부터 클래스 변수까지 모든 항목이 포함된다.Jetpack Compose를 사용하면 Android 앱에서 상태를 저장하고 사용하는 위치와 방법을 명시적으로 나타

2023년 5월 30일
·
0개의 댓글
·
post-thumbnail

[Compose 공식 문서 톺아보기] 3. 컴포저블 수명 주기

수명주기 개요 컴포지션은 앱의 UI를 설명하고 컴포저블을 실행하여 생성된다. 컴포지션은 UI를 기술하는 컴포저블의 트리 구조이다. Jetpack Compose는 초기 컴포지션시* 처음으로 컴포저블을 실행할 때, 컴포지션에서 UI를 기술하기 위해 호출하는 컴포저블을

2023년 5월 28일
·
0개의 댓글
·

[Android] Coroutine Flow vs Channel

코루틴의 비동기 스트림 API를 지원하는 Flow와 Channel에 대해서 알아보자.채널은 일종의 파이프라인이다. 채널을 열고 한쪽에서 값을 보내면(send) 다른 쪽에서 수신하는(receive) 개념이다.(이렇게 채널을 생성하는 패턴을 파이프라인이라고 한다.) Cha

2023년 5월 26일
·
0개의 댓글
·