일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- ANR이란
- 클래스
- 객체
- jvm 작동 원리
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
- 스택 자바 코드
- rxjava disposable
- 2022 플러터 설치
- 2022 플러터 안드로이드 스튜디오
- jvm이란
- 안드로이드 유닛테스트란
- 플러터 설치 2022
- 서비스 vs 쓰레드
- 스택 큐 차이
- android retrofit login
- 안드로이드 라이선스 종류
- Rxjava Observable
- 큐 자바 코드
- 안드로이드 os 구조
- 서비스 쓰레드 차이
- ar vr 차이
- rxjava cold observable
- rxjava hot observable
- 안드로이드 유닛 테스트 예시
- 멤버변수
- android ar 개발
- 자바 다형성
- 안드로이드 레트로핏 사용법
- Today
- Total
목록전체 글 (878)
나만을 위한 블로그
정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 리턴하는 solution 함수를 완성하라. 음수가 없다면 -1을 리턴한다 정수 리스트 안에서 음수를 찾아야 하기 때문에 find를 쓰고 조건을 0보다 작은 것으로 설정할 수 있다. 또한 음수가 없다면 -1을 리턴해야 하기 때문에 아래와 같이 작성할 수 있다. class Solution { fun solution(numList: IntArray): Int { return if (numList.find { it < 0 } != null) { numList.indexOf(numList.find { it < 0 }!!) } else { -1 } } }
n이 1~4인 경우를 when으로 구분해서 풀면 아래와 같다. class Solution { fun solution(n: Int, slicer: IntArray, num_list: IntArray): IntArray { val a = slicer[0] val b = slicer[1] val c = slicer[2] val answer: IntArray when (n) { 1 -> { answer = IntArray(b + 1) for (i in 0..b) { answer[i] = num_list[i] } } 2 -> { answer = IntArray(num_list.size - a) for (i in a until num_list.size) { answer[i - a] = num_list[i] } } ..
코루틴끼리의 통신을 위한 기본적 방법으로 채널 api가 추가됐다. 채널은 송신자, 수신자 수에 제한이 없고 채널로 전송된 모든 값은 단 한 번만 받을 수 있다. 채널은 서로 다른 2개의 인터페이스를 구현한 하나의 인터페이스다. SendChannel : 원소를 보내거나 더하거나 채널을 닫기 위해 사용 ReceiveChannel : 원소를 받거나 꺼낼 때 사용 public interface SendChannel { public suspend fun send(element: E) public fun close(cause: Throwable? = null): Boolean } public interface ReceiveChannel { public suspend fun receive(): E public fun..
CoroutineScope 팩토리 함수 CoroutineScope는 coroutineContext를 유일 프로퍼티로 갖는 인터페이스다. public interface CoroutineScope { public val coroutineContext: CoroutineContext } CoroutineScope 인터페이스를 구현한 클래스를 만들고 내부에서 코루틴 빌더를 직접 호출할 수 있다. import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlin.coroutines.CoroutineContext class SomeClass: CoroutineScope {..
이 글은 내가 개발자로서 기본기나 능력이 탄탄하다고 생각해서 쓰는 게 아니다. 나 자신도 항상 많이 부족하다고 생각되서 더 잘 하는 개발자가 되고 싶은데, 매번 찾아보긴 귀찮아서 써 두고 필요할 때마다 보려고 적는다. 주기적으로 찾아보고 업데이트할 예정이다. https://goldenrabbit.co.kr/2022/01/05/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EA%B1%B0%EB%93%AD%EB%82%98%EA%B8%B0%E2%8B%AF-%EB%84%A4-%EA%B0%80%EC%A7%80-%EA%B8%B0%EB%B3%B8-%EC%86%8C%EC%96%91%EC%9D%84-%EA%B8%B0%EC%96%B5%ED%95%98%EC%84%B8/ 개발자로 거듭나기⋯ 네 가지 기본..
코루틴의 중요 기능은 코루틴이 실행돼야(시작, 재개 등) 할 쓰레드(또는 쓰레드 풀)를 결정할 수 있는 것이다. 디스패처로 이 기능을 쓸 수 있다. 코루틴이 어떤 쓰레드에서 실행될지 정하는 건 CoroutineContext다. 기본 디스패처 디스패처를 설정하지 않으면 기본 설정되는 디스패처는 CPU 집약적 연산을 수행하게 설계된 Dispatchers.Default다. 이 디스패처는 코드가 실행되는 컴퓨터의 CPU 개수와 같은 수(최소 2개 이상)의 쓰레드 풀을 갖고 있다. 쓰레드를 효율적으로 쓴다고 가정하면 이론적으로 최적의 쓰레드 개수라고 할 수 있다. 기본 디스패처 제한하기 고비용 작업이 Dispatchers.Default의 쓰레드를 다 써서 같은 디스패처를 쓰는 다른 코루틴이 실행될 기회를 제한하고..