일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 레트로핏 crud
- 스택 자바 코드
- 객체
- jvm 작동 원리
- ar vr 차이
- 멤버변수
- 클래스
- android retrofit login
- 서비스 쓰레드 차이
- Rxjava Observable
- 스택 큐 차이
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- 서비스 vs 쓰레드
- rxjava hot observable
- 자바 다형성
- 안드로이드 레트로핏 사용법
- 플러터 설치 2022
- 안드로이드 유닛테스트란
- ANR이란
- 2022 플러터 안드로이드 스튜디오
- 2022 플러터 설치
- rxjava cold observable
- jvm이란
- 큐 자바 코드
- android ar 개발
- 안드로이드 os 구조
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트 예시
- rxjava disposable
- Today
- Total
목록분류 전체보기 (872)
나만을 위한 블로그
class Solution { fun solution(str_list: Array): Array { val indexL = str_list.indexOf("l") val indexR = str_list.indexOf("r") return when { indexL != -1 && (indexR == -1 || indexL str_list.sliceArray(0 until indexL) indexR != -1 -> str_list.sliceArray((indexR + 1) until str_list.size) else -> arrayOf() } } } l과 r의 인덱스를 가져와서, 조건에 맞게 l 앞의 원소들과 r 뒤의 원소들을 배열에 담아 리턴한다. 문제에는 리스트라고 써 있는데 리..
정수 리스트 num_list, 정수 n이 주어질 때 num_list를 n번째 원소 이후의 원소들과 n번째까지의 원소들로 나눠 n번째 원소 이후의 원소들을 n번째까지의 원소들 앞에 붙인 리스트를 리턴하는 함수를 완성하라 쉽게 말해 n 이상의 인덱스에 있는 값들을 그대로 0번 인덱스 앞에 갖다 붙이라는 뜻이다. 2번째 입출력 예를 보면 순서 변경 없이 그대로 0번 인덱스 앞에 붙인 걸 볼 수 있다. copyOfRange와 subList를 활용하면 풀 수 있다. class Solution { fun solution(numList: IntArray, n: Int): IntArray { val after = numList.copyOfRange(n, numList.size).toList() val before = ..
정수 리스트 num_list와 정수 n이 주어질 때, n번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 리턴하는 함수를 완성하라 n번째 원소~마지막 원소를 모두 가진 리스트를 만들면 되는데, copyOfRange()를 쓰면 단번에 해결된다. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/copy-of-range.html copyOfRange - Kotlin Programming Language kotlinlang.org 원본 배열의 지정된 범위의 복사본인 새 배열을 리턴한다 - fromIndex : 복사할 범위의 시작 부분(inclusive) - toIndex : 복사할 범위의 끝(exclusive) 리턴되는 배열은 시작값, ..
다산의 마지막 질문을 읽고 나서 본 책이다. 최근 바빠서 책 볼 시간을 잡지 못해 지하철에서 틈틈이 읽느라 예상보다 늦게 읽었다. 책 내용은 소학과 논어, 맹자 등 여러 고전의 내용과 예문을 발췌해서 구성됐다. 특히 소학의 내용이 많은데, 이 책 자체가 소학의 주요 구절 57개를 뽑아서 현대의 관점에서 풀어썼기 때문이다. 그렇다고 거창한 내용이 있는 건 아니다. 소학은 사서삼경 전에 읽는 입문서 같은 책이라서 읽다 보면 살면서 당연히 지켜야 하는 내용도 있고, 지키지 못했지만 습관으로 만들어야 하는 내용들이 대부분이다. 책 곳곳에서도 정리, 청소 따위의 사소한 일들을 강조한다. 하지만 매일 해야 한다는 조건이 붙으면 쉽지 않다. 하루쯤은, 오늘 기분이 어때서, 시간이 없어서, 날씨가 좋아서 따위의 변명과..
Flow는 요청이 한 방향으로 흐르고 요청으로 생성된 값이 다른 방향으로 흐르는 파이프라 할 수 있다. Flow가 끝나거나 예외 발생 시 이런 정보가 전달돼 중간 단계가 종료된다. 모든 정보가 Flow로 전달되므로 값, 예외, 시작 / 완료 등 다른 특정 이벤트를 감지할 수 있다. 아래 메서드들을 쓰면 된다. onEach Flow의 값을 하나씩 받기 위해 쓴다. import kotlinx.coroutines.delay import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.onEach suspend fun main() { flowOf(1, 2, 3, 4) .onEach..
※ 이 포스팅은 맥북 기준으로 작성됐다 웹뷰 기반의 하이브리드 앱이라면 유저들은 반드시 플레이 스토어에서 앱을 다운받지 않아도 앱의 대부분의 기능을 쓸 수 있다. 삼성 인터넷이나 크롬 등 브라우저 앱에서 서비스의 도메인으로 이동해 모바일 웹 형태로 서비스를 이용할 수 있기 때문이다. 하지만 특정 브라우저 앱에서 문제가 생긴다면 그 브라우저 앱에서 웹뷰를 실행하고 디버깅해야 하는데, 아무 설정도 안 한 크롬 인스펙터로는 브라우저 앱에서 디버깅할 수 없다. 이 포스팅에선 크롬 인스펙터에서 브라우저 앱에 표시되는 웹뷰를 디버깅하는 방법을 간략하게 확인한다. 먼저 터미널에서 아래 명령어를 실행한다. brew install --cask android-platform-tools 이 명령어를 입력해서 설치해야 브라우..
원시값을 갖는 플로우 Flow를 만드는 가장 간단한 방법은 플로우가 어떤 값을 가져야 할지 정의하는 flowOf()를 쓰는 것이다. listOf()와 비슷하다. import kotlinx.coroutines.flow.flowOf suspend fun main() { flowOf(1, 2, 3, 4, 5) .collect { println(it) } } // 1 // 2 // 3 // 4 // 5 값이 없는 Flow가 필요하면 emptyFlow()를 쓰면 된다. emptyList()와 비슷하다. import kotlinx.coroutines.flow.emptyFlow suspend fun main() { emptyFlow() .collect { println(it) } } // 아무것도 출력되지 않음 컨버..
이 에러가 표시되더라도 VS code나 에뮬레이터에서 작동하는 데는 문제가 없다. 그러나 노란색으로 상단에 계속 표시되기 때문에 거슬려서 해결 방법을 찾아봤다. 내 경우 File > Project Structure > modules 클릭 > 빨간 줄이 표시되는 폴더 클릭 > module sdk가 Android 29로 설정된 걸 33으로 바꾸니 해결됐다. 이 방법 전에는 Settings > Language & Frameworks > Android SDK 클릭 후 29가 설치되어 있지 않았어서 설치했고, 그래도 계속 경고가 표시되서 위 방법대로 하니 해결됐다. 참고한 사이트) https://stackoverflow.com/questions/76982304/android-sdk-android-api-29-pl..
Flow는 비동기적으로 계산해야 할 값의 스트림을 나타낸다. Flow 인터페이스 자체는 떠다니는 원소들을 모으고 Flow의 끝에 도달할 때까지 각 값을 처리한다. Flow의 collect는 컬렉션의 forEach와 비슷하다. 이 함수는 Flow의 유일한 멤버 함수고 다른 함수들은 확장 함수로 정의돼 있다. iterator만 멤버 함수로 가진 Iterable 또는 Sequence와 비슷하다. 플로우와 값들을 나타내는 다른 방법들 비교 Flow 개념은 RxJava, Reactor를 쓴다면 잘 알겠지만 그 외의 사람들에겐 아니다. 여러 값을 리턴하는 함수가 필요하다고 가정한다. 한 번에 모든 값을 만들 때는 List, Set 같은 컬렉션을 쓴다. fun allUsers(): List = api.getAllUs..
record는 Dart 3.0에서 등장했고, 익명이고 불변인 집계(aggregate) 타입이다. 이걸 쓰면 여러 객체를 하나의 객체로 묶을 수 있다. 특징만 보면 컬렉션이 떠오르지만 Dart 공식문서를 보면 레코드와 컬렉션은 별도의 문서로 구분되어 있어서 서로 다른 개념이다. 어떤 것인지 공식문서를 확인해 본다. https://dart.dev/language/records Records Summary of the record data structure in Dart. dart.dev 레코드는 익명의 불변 집계 유형이다. 다른 컬렉션 타입과 마찬가지로 여러 객체를 하나의 객체로 묶을 수 있다. 다른 컬렉션 타입과 달리 레코드는 크기가 고정돼 있고 이질적이며 타입이 지정돼 있다. 레코드는 실제 값이므로 변수..