일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RecyclerView Sticky Header
- hilt
- power menu
- 안드로이드 무한 스크롤
- Android Compose
- BOJ
- Android Custom View
- Coroutine
- android compose orbit
- 힐트
- AAC ViewModel
- viewmodel
- Kotlin Serialization
- android orbit
- Thread vs Coroutine
- 백준
- power menu 라이브러리
- Sticky Header RecyclerView
- 코틀린 에러 핸들링
- Hilt 에러
- runCatching
- 스레드 vs 코루틴
- 안드로이드 커스텀 뷰
- Android Compose Navigation
- 안드로이드 컴포즈
- 코루틴 공식문서
- Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException
- 코루틴 공식 문서
- 코루틴
- 백준 2615
- Today
- Total
목록전체 글 (59)
Beeeam

Kotlin In Action 책을 읽고 작성한 글 입니다. Kotlin in Action - YES24 코틀린이 안드로이드 공식 언어가 되면서 관심이 커졌다. 이 책은 코틀린 언어를 개발한 젯브레인의 코틀린 컴파일러 개발자들이 직접 쓴 일종의 공식 서적이라 할 수 있다. 코틀린 언어의 가장 www.yes24.com 코틀린? 자바 플랫폼에서 동작하는 언어이다. 자바가 사용되는 곳에서는 거의 대부분 활용할 수 있다. ex) 안드로이드, 서버 개발 정적 타입 지정 언어 정적 타입 지정: 프로그램의 모든 요소의 타입을 컴파일 시점에서 알 수 있고, 프로그램 안에서 객체의 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻이다. 정적 타입 지정 언어에서는 변수의 타입을 명시적으로 지정해줘야 한다. ..

문제 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 문제에서 원하는 답은 S = A[0] × B[0] + ... + A[N-1] × B[N-1] 에서 S가 최소가 되는 값이다. 이때 A의 수를 재배열 하고, B는 재배열하지 않는 것이 조건이다. 작은 값과 큰 값을 곱해야지 수가 최소가 된다. 따라서 A의 수에서 작은 수와 B의 수에서 큰 값을 곱하는 형식으로 풀어야 한다. 근데 B를 재배열 하지 말라고 했는데 본인은 재배열 하여 풀었다.(이렇게 해도 정답처리 됨) 그래서 A와 B를 오름차순 정렬..
Power Menu 라이브러리는 메뉴나 팝업을 개발자가 원하는 대로 편리하게 커스텀하여 보여줄 수 있게하는 라이브러리이다. 밑의 링크에 들어가면 더 자세히 확인할 수 있다. https://github.com/skydoves/PowerMenu GitHub - skydoves/PowerMenu: :fire: Powerful and modernized popup menu with fully customizable animations. :fire: Powerful and modernized popup menu with fully customizable animations. - GitHub - skydoves/PowerMenu: :fire: Powerful and modernized popup menu with ..
요즘 앱들을 보면 밑에 바가 있고, 이 바의 아이템을 클릭하여 다른 화면으로 이동하는 등의 동작을 하는 것을 볼 수 있다. bottom navigation bar가 있으면 편하게 화면을 이동할 수 있는 장점이 있는 거 같다. (개인적인 생각) 개발을 하면서 몇 번 구현한 적이 있었는데 계속 까먹어서 이번에 기록도 할 겸 정리해봤다. 라이브러리 먼저 라이브러리를 추가해줘야 한다. implementation 'com.google.android.material:material:1.9.0' 메뉴 xml 생성 옵션들을 보여줄 xml을 작성한다. res에 menu Directory를 생성하고 이 안에 xml 파일을 만들면 된다. icon 속성에는 보여줄 아이콘을 넣고, title 속성에는 해당 아이템의 이름을 정의..
Timber Android에서 많이 사용되는 로깅 라이브러리이다. 기존의 Log 클래스보다 더 간결하게 로그를 출력할 수 있고, release할 때 로그가 노출되지 않는 장점이 있다. // Log 클래스 사용 Log.d("TAG", "내용") // Timber 사용 Timber.d("내용") 코드를 보면 더 간결하게 로그를 찍을 수 있는 것을 확인할 수 있다. 사용 https://github.com/JakeWharton/timber GitHub - JakeWharton/timber: A logger with a small, extensible API which provides utility on top of Android's normal Log class. A logger with a small, ext..
Splash 화면 앱을 실행하면 맨 처음에 잠깐 나타났다가 없어지는 화면이다. 단순히 로고를 보여주는 경우도 있지만 필요한 리소스를 다운 받는 것을 대기하기 위한 목적으로 사용되기도 한다. 구현 방법 단순하게 Splash 화면을 위한 Activity를 만들고, 시작 Activity로 설정하고 몇 초 뒤에 메인 화면으로 넘어가게 할 수 있다. 하지만 안드로이드 12가 되면서 모든 앱에 강제적으로 Splash 화면에 앱의 아이콘을 보여주게 되었다. 그래서 앞에서 말한 방법을 사용할 수 없다. Splash screen api를 사용하면 Splash 화면을 간단하게 구현할 수 있다. 구현 app단의 build gradle에 라이브러리를 추가한다. // SplashScreen Api (Android12 뿐만 아니..
OAuth? 위의 사진은 삼쩜삼 앱에 첫 화면이다. 아이디, 비밀번호를 통해서 로그인/회원 가입을 하는 것이 아닌 카카오 계정을 통해서 로그인/회원 가입을 대신한다. 즉, 사용자 인증을 카카오의 사용자 인증 방식으로 사용하겠다는 것이다. 이 때 OAuth가 사용된다. OAuth는 삼쩜삼 앱이 카카오의 특정 유저의 데이터에 접근할 수 있는 권한을 위임 받게 해준다. OAuth는 인증을 위한 개방형 표준 프로토콜로 다양한 플랫폼(구글, 네이버, 카카오)의 특정 사용자 데이터에 접근하기 위해 제 3자 클라이언트(우리 서비스)가 사용자의 접근 권한을 위임 받을 수 있게 한다. 이를 통해서 외부 어플리케이션에서 연동되는 서비스에서 일부 제공하는 기능들을 사용할 수도 있다. OAuth 사용 이유? OAuth를 사용..
작년에 HTTP 스터디를 했었는데 그 때 쿠키에 대해서 공부하고, 발표하면서 연관 지어서 JWT에 대해서도 공부하고, 발표를 했던 경험이 있었다. 그 때는 사용할 일이 없었지만 현재는 최근 시작한 프로젝트에서 사용 하기로 해서 다시 공부하였고, 이 내용을 정리 해보려고 한다. 먼저 왜 사용하는지 알고 사용하는 것이 좋을 것 같아서 왜 사용하는 지 부터 JWT가 무엇 인지, 어떤 구조를 가지고 있는지, 어떤 과정으로 동작하는지 순으로 정리 하였다. Cookie HTTP는 Stateless라는 특징을 가지고 있어서 상태를 유지하지 않는다. 그런데 로그인이 필요한 작업을 처리할 때 해당 사용자가 로그인을 했는지 안했는지 서버는 알 수 없다. 그래서 사용자가 로그인을 하였다는 것을 서버에 알려주기 위해서 쿠키를..