인성개발자

Programming Language/Kotlin

[Kotlin] Kotlin에서 Flow Api

코틀린 Flow Api에 대해서 공부를 해보자. Kotlin Flow Api란 비동기적인 연산을 처리하기 위한 새로운 프로그래밍 모델을 제공하는 Kotlin의 라이브러리이다. Flow는 비동기적인 작업을 쉽게 처리하고 조절할 수 있도록 설계되었으며, 주로 비동기 스트림(Asynchronous Streams)을 다루는데 사용된다. Flow API의 핵심 개념은 데이터의 비동기적인 흐름(Flow)을 나타내는 것이다. Flow는 값을 생성하고 소비하는 비동기적인 프로시저로, 여러 개의 값을 비동기적으로 생산하고 소비할 수 있다. 이는 코루틴과 함께 사용되어 비동기 코드를 더 간결하게 만들고 복잡성을 줄일 수 있다. Flow의 주요 구성 요소 Flow Builder 작업을 수행하고 아이템을 방출하는데 도움이 된..

Programming Language/Kotlin

[Kotlin] Kotlin Coroutines에서 Launch 와 Async

오늘은 Kotlin Coroutines에서 Launch 와 Async에 대해서 알아보자. launch와 async는 모두 Kotlin에서 코루틴을 시작하는 기능이다. 차이점은 launch는 실행하면 결과 값을 전달하지 않는 반면 , async는 반환 결과 를 얻기 위해 Java에서 future를 사용하는 것처럼 코루틴의 결과를 반환하는 함수가 Deferred있는 의 인스턴스를 반환한다는 것이다. Launch val job = GlobalScope.launch(Dispatchers.Default) { // do something and do not return result } 작업 상태를 가져오거나 취소하는 데 사용할 수 있는 작업 개체를 반환한다. 위의 실행 예에서 우리는 무언가를 해야 하고 결과를 반환..

Android/Study

[Android] abstract class를 이용하여 ViewBinding을 쉽게 사용하기

지난 프로젝트에 대한 회상 겸 정리할 겸 작성을 해보았다. (물론 너무 오랜 시간이 지나긴했지만...) 프로젝트를 진행하였을 때 ViewBinding을 일일히 Activity마다 혹은 Fragment마다 설정하는 것이 너무나도 귀찮았다. 그래서 추상화 클래스를 이용하여 ViewBindingActivity 그리고 ViewBindingFragment을 개발하였다. 결과적으로 효율적으로 ViewBinding을 사용할 수 있었으며, 문제가 생긴다면 위 2 클래스를 확인하면 되는 효율적임이 생겼다. 우선 ViewBinding이란 아래 포스팅 링크를 남기겠다. https://superohinsung.tistory.com/239 [Android] ViewBinding(뷰 바인딩) 정리 ViewBinding(뷰 바인딩..

Android/Study

[Android] ListAdapter에서 DiffCallBack 정리

블로그에 지난 졸업프로젝트에서 했던 주요 기능부분을 기록으로 남기려고한다. 조금? 오랜 시간이 지났지만 기억을 되살려서 기록을 해보자 저번에 RecyclerView에 대해서 포스팅을 하였을 때 https://superohinsung.tistory.com/314 [Bong#] RecyclerView에서 onCreateViewHolder와 onBindViewHolder의 차이 블로그에 지난 졸업프로젝트에서 했던 주요 기능부분을 기록으로 남기려고한다. 조금? 오랜 시간이 지났지만 기억을 되살려서 기록을 해보자. 졸업 프로젝트에서는 다른 여타 프로젝트와 달리 superohinsung.tistory.com 아래와 같은 코드를 본 적이 있을 것이다. companion object { private val diffC..

Android/Study

[Android] ComposeUi 도입기

지난 프로젝트에 대한 회상 겸 정리할 겸 작성을 해보았다. (물론 너무 오랜 시간이 지나긴했지만...) 우리가 ComposeUi를 도입한 이유 선언형 프로그래밍: Compose는 선언적인 구문을 사용하므로 UI의 현재 상태를 더 직관적으로 표현할 수 있습니다. XML의 경우 계층적인 구조를 가지기 때문에 UI 구조를 이해하기 어려울 수 있지만, Compose는 코드의 순서대로 UI를 정의하여 가독성을 높입니다. 간편한 실시간 미리보기: Compose는 실시간 미리 보기(Real-time Preview)를 제공하여 UI 변경 사항을 즉시 확인할 수 있습니다. 이는 빠른 반복 및 디자인 작업을 도와줍니다. (XML또한 볼 수는 있지만....) 상태 관리의 편의성: Compose는 내부적으로 상태를 자동으로 ..

Android/Study

[Android] 포스팅 업로드 구현 (4) - Repository

전체 코드 data class PostDto( val uuid: String = "", val writerUuid: String = "", val content: String = "", val imageUrl: String = "", val dateTime: Date = Date() ) @RequiresApi(Build.VERSION_CODES.O) suspend fun uploadPost( content: String, imageUri: Uri ): Result { val currentUser = Firebase.auth.currentUser require(currentUser != null) val db = Firebase.firestore val storageRef = Firebase.storage..

BaekJoon

[BaekJoon] 2589번 보물섬 (Java) 문제 풀이 [Gold 5]

문제 https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 어떻게 풀 것인가? 문제는 간단한 BFS 문제이다. 다만 매번 Visit 2차원 배열을 초기화하여 가장 긴 거리를 찾아야한다. 그렇기에 이 부분만 주의하여 푼다면 어렵지않다. 풀면서 놓쳤던점 X 이 문제를 통해 얻어갈 것 기본적인 BFS 풀이 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt..

Android/Study

[Android] 포스팅 업로드 구현 (3) - 화면 XML

이번에는 화면 구현 XML에 대해서 리뷰해보자. 사실 크게 어려운 부분은 없다. XML을 통해서 화면을 구현할 때마다 느끼는 것이지만 사실 디자인적인 재능도 있어야하나 싶다.. 전체코드 실제 구현 화면

Tenacity_Dev
'분류 전체보기' 카테고리의 글 목록 (6 Page)