함수형 프로그래밍을 지원하는 코틀린

코틀린은 함수형 프로그래밍을 지원한다. 이전에도 다른 학습을 통해 코틀린은 함수형 프로그래밍을 지원한다는 것은 알고 있다. 그러나 여전히 함수형프로그래밍에 대한 질문을 받으면 제대로 대답하기 어려운 것 같다. 이번 기회에 확실하게 정리하고 가자 함수형 프로그래밍 함

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

Retrofit을 사용한 통신에서 에러처리-1

나는 항상 레트로핏을 사용한 API 통신 과정에서 다양한 에러(대표적으로 네트워크 에러)에 대해 어떻게 처리해야 할지 감이 잘 잡히지 않았다.지금까지는 단순히 앱이 터지지 않게 runCating으로 막아두는 방식으로 에러를 다루는 것을 피해 왔지만 이번에 프로젝트를 잠

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

String? 타입의 isNullOrBlank 동작 | !연산자와 .not()의 사용

문제 발견 개발을 진행하다가 예상치못한 에러를 발견했다. String? 타입인 query와 String타입을 매개변수로 받는 getBookList() 매서드를 사용하기 위해 조건문을 사용해서 query의 타입을 확인하는 작업을 수행하던 중이었다. 이렇게 코드를 작성

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

Retrofit2를 사용해 JWT 토큰 인증하기 -2

레트로핏은 안드로이드에서 서버와 REST API 통신을 위해 주로 사용되는 라이브러리이다. OkHttp를 기반으로 동작하며 높은 성능과 뛰어난 가독성, 쉬운 유지보수 등의 이유로 가장 많이 사용되는 통신 라이브러리이다.라이브러리의 특징과 사용법에 관해서는 나중에 따로

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

ViewPager2 - addOnPageChangeListener

뷰페이저를 사용하면서 currentItem을 변경하거나 화면을 스크롤 하는 것으로 다른 아이템으로 이동하는 경우에 사용할 수 있는 리스너이다. registerOnPageCHangeCallback을 통해 뷰페이저에 할당할 수 있다.사용자가 화면을 스크롤하거나 프로그래밍을

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

BOJ_16928_뱀과 사다리 게임

BFS, 해쉬크게 의미 없을것 같긴 하지만 뱀과 사다리의 해쉬맵을 구분하였다 조금이라도 시간을 줄일수 있을 것 같았다.우선 큰틀은 bfs였다. 결국 1번에서 100번 까지 가기위한 최단 경로였으니 같은 깊이에서 주사위를 굴려 1~6까지의 범위 만큼 더 간 상태에서 해당

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

[Android 4대 컴포넌트] Service

백그라운드에서 오래 실행되는 작업을 수행할 수 있는 어플리케이션 구성요소서비스는 안드로이드의 4대 컴포턴트 중 하나로 사용자에게 인터페이스를 제공하지 않으면서 작업을 수행할 수 있는 구성 요소이다. 액티비티와 비교해보면 화면에 직접보이는 화면은 액티비티 보이지 않고 뒤

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

ANR의 발생 원인과 방지 방법

ANR (Application Not Responding) > 안드로이드 앱의 UI 스레드가 너무 오래 차단되면 ANR 오류가 발생한다. 안드로이드의 Main스레드는 UI를 담당하는 스레드로 해당 스레드가 차단되면 UI업데이트를 처리하지 못해 사용자의 불만을 초래할

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

BOJ_2405_세 수, 두 M

그리디문제에서 복잡하게 얘기 했지만 결국 a,b,c가 크기별로 정렬되어있을 때 a - 2b + c의 절대값이 가장 큰 경우를 찾는 문제였다.처음 문제를 접했을 때에는 완전탐색으로 판단하여 배열을 정렬하고 for문을 3번돌아 a,b,c를 선택하여 값을 구하는 것으로 시도

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

BottomSheet 스타일 지정, 값 전달하기

위 사진 처럼 bottomSheet의 윗쪽 모서리가 둥글게 표현되어야 할 필요가 있었다.bg_white_radius_15dp배경이 될 drawable 파일을 하나 생성해 둔다.styles.xmltheme.xml어플리케이션 Theme에 추가BottomSheetDialog

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

BottomSheet 구현하기

공식 문서Material Design(https://m2.material.io/components/sheets-bottom/androidBottomSheet는 이름 그대로 화면의 하단에서 나타나는 모달 UI이다. 기존의 내용에서 연관된 컨텐츠를 제공하거나 작업

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

BOJ_1504_특정한 최단 경로

다익스트라 최단경로 탐색문제에서 주어진 2개의 정점은 무조건 거치고 1번 노드에서 n번 노드로 가는 최단 경로를 구하는 문제였다.따라서출발지 -> 정점1 -> 정점2 -> n 또는 출발지 -> 정점2 -> 정점1 -> n 의 경우로 정리할 수 있다. 그사이에 어떤 점을

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

BOJ 18111_마인크래프트

부르드포스 완전탐색우선 입력받으면서 최대, 최소를 저장해 두었다.이후 최소부터 하나씩 target으로 지정 후 해당 비용을 계산하였다.먼저 전체 맵을 돌면서 목표보다 높은 블럭의 경우 블럭을 깎아내고 그만큼 인벤토리에 넣고 시간 비용을 추가해 주었다.이후 다시 맵을 탐

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

BOJ 21940_가운데서 만나기

최단거리 탐색 / 플로이드 워셜플로이드 워셜 알고리즘을 사용하여 각 도시에서 다른 모든 도시까지의 최단 거리를 구하였다.하나의 도시를 선택하여 친구가 있는 각 도시까지의 왕복거리를 계산한 후 그중 가장 큰 값을 가지는 왕복거리를 저장 한 후 다른도시의 결과와 비교하며

2023년 3월 30일
·
1개의 댓글
·
post-thumbnail

BOJ 9019_DSLR

bfs를 통해 탐색을 진행했다.문제를 분석하고 코드를 작성하는 것에는 오래걸리지 않았지만 제출하고 보니 런타임에러라는 결과나 나타났다.메모리 초과 1처음에는 bfs를 탐색하던 도중 target을 발견하면 그대로 return 해버리고 넘어갔다. 이렇게 되니 queue에

2023년 3월 29일
·
0개의 댓글
·
post-thumbnail

BOJ 16398_행성연결

문제를 보고 최소신장트리 유형인 것은 알았으나 알고리즘이 떠오르지 않아 관련 내용을 다시 학습 후 구현했다.크루스칼알고리즘을 사용했다.우선 입력된 간선들을 정렬한 후 작은 것부터 하나씩 확인한다.이후 간선으로 연결된 두 노드의 뿌리(root 노드)를 확인하여 서로 다른

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