일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Rxjava Observable
- rxjava disposable
- 객체
- android retrofit login
- 안드로이드 os 구조
- android ar 개발
- 자바 다형성
- jvm 작동 원리
- 안드로이드 라이선스 종류
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 레트로핏 사용법
- 멤버변수
- 플러터 설치 2022
- 서비스 쓰레드 차이
- ar vr 차이
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- jvm이란
- 큐 자바 코드
- 안드로이드 레트로핏 crud
- 스택 큐 차이
- 클래스
- 2022 플러터 설치
- 서비스 vs 쓰레드
- rxjava cold observable
- 안드로이드 유닛테스트란
- ANR이란
- 스택 자바 코드
- 안드로이드 유닛 테스트 예시
- rxjava hot observable
- Today
- Total
목록개인 공부/Kotlin (31)
나만을 위한 블로그
오래 전 자바로 StringBuilder를 쓰는 법에 대해 포스팅했었다. 감사하게도 이 글에 도움을 받은 분들이 많았던 듯하다.틈날 때마다 자바로 썼던 게시글들을 코틀린으로 다시 쓰는 나만의 작은 프로젝트를 진행하려는데, 그 시작으로 StringBuilder부터 시작해 보려고 한다. 먼저 자바에선 아래처럼 사용했었다. public class Main { public static void main(String[] args) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("문자열 ").append("연결");// String str = stringBuilder; // Strin..
대부분 글들에선 var, val의 차이를 말할 때 val은 불변이고 읽기 전용이라고 말한다.틀린 말은 아니다. 공식 문서에서도 val은 읽기 전용이라고 써 있다. https://kotlinlang.org/docs/properties.html Properties | Kotlin kotlinlang.org(중략)...val 키워드를 써서 읽기 전용으로 선언할 수 있다 그러나 불변이라는 말은 없다. 그럼 val은 읽기 전용일 뿐이고 불변은 아닌 건가?Dove Letter라는 곳에서 val이 정말 불변인지, 단순 읽기 전용인지 질문한 내용을 다룬 미디엄 포스팅이 있어서 이를 번역한다. https://proandroiddev.com/the-val-property-immutable-in-kotlin-2e4cf492..
예전에 synchronized를 주제로 자바 예시 코드를 사용한 포스팅을 작성했었다. https://onlyfor-me-blog.tistory.com/251 [JAVA] 쓰레드의 동기화 (synchronized) 요즘 출시되는 컴퓨터는 대부분이 멀티쓰레드를 지원한다. 말 그대로 쓰레드가 여러 개기 때문에 별도의 처리를 하지 않는 이상 종종 여러 쓰레드가 같은 자원에 액세스하려고 시도하고, 그 결 onlyfor-me-blog.tistory.com 지금 와서 다시 보니 설명이 빈약하고 코틀린으로 동작하는 코드로 다시 써보는 것도 좋겠다 싶어 다시 작성한다. synchronized가 뭔지 알아보기 위해 검색하면 나타나는 키워드가 멀티 쓰레딩, 동시성 프로그래밍이다. 그러면서 프로세스와 쓰레드의 차이, 컨텍스트..
이 포스팅은 아래의 코틀린 공식문서를 바탕으로 작성했다. https://kotlinlang.org/docs/collection-filtering.html Filtering collections | Kotlin kotlinlang.org 필터링은 컬렉션 처리에서 가장 많이 사용되는 작업 중 하나다. 코틀린에서 필터링 조건은 조건자라는 컬렉션 요소를 받아서 Boolean 값을 리턴하는 람다 함수로 정의된다. true가 리턴된다면 주어진 요소가 조건자와 일치한다는 뜻이고 false는 일치하지 않는다는 뜻이다. 코틀린 표준 라이브러리에는 한 번의 호출로 컬렉션을 필터링할 수 있는 확장 함수 그룹이 존재한다. 이 함수들은 기존 컬렉션을 바꾸지 않고 유지하므로 가변 컬렉션, 불변 컬렉션 모두에 적용할 수 있다. 필..
마냥 기능을 작동시키는 코드만 짤 수는 없다. 필요하다면 어떤 클래스, 함수가 무슨 일을 하고 왜 이걸 만들었는지에 대한 주석을 써야 할 수 있다. 주석에 대해 찾다가 이 글까지 본 사람이라면 알겠지만, 코틀린의 주석은 3종류 있다. 한 줄 주석(Line comment) 블록 주석(Block comment) KDoc 주석 이 중에서 KDoc 주석에 대해 정리하려고 한다. 먼저 자바를 공부했던 사람이라면 자바독 주석을 알 텐데, KDoc 주석이 바로 자바독 주석이다. 코틀린이라 앞에 'K'가 붙은 걸 빼면 모든 게 자바독 주석과 일치한다. 하지만 자바를 공부한 적 없고 코틀린부터 시작했다면 아래 공식문서부터 보자. https://kotlinlang.org/docs/kotlin-doc.html Documen..
람다를 공부하면 필연적으로 나오는 개념인 함수형 인터페이스에 대해서 정리한다. 아래는 함수형 인터페이스를 설명하는 코틀린 공식문서다. https://kotlinlang.org/docs/fun-interfaces.html Functional (SAM) interfaces | Kotlin kotlinlang.org 추상 메서드가 하나뿐인 인터페이스를 함수형 인터페이스 또는 SAM(Single Abstract Method) 인터페이스라고 한다. 함수형 인터페이스에는 여러 비추상 멤버가 있을 수 있지만 추상 멤버는 하나만 존재할 수 있다. 코틀린에서 함수형 인터페이스를 선언하려면 fun 키워드를 사용한다 fun interface KRunnable { fun invoke() } 함수형 인터페이스는 람다식을 써서 ..
이 포스팅은 아래 글을 바탕으로 작성했다. https://medium.com/simform-engineering/best-practices-for-error-handling-in-kotlin-37a58cb63293 Best practices for error handling in Kotlin Code confidently with Kotlin medium.com 코틀린에는 null safety, let, 엘비스 연산자, 지연 초기화, "as?" 연산자를 통한 안전한 캐스팅(형 변환)과 여러 오류 처리 기능이 있다. 이제부터 코틀린에서 에러를 처리하는 몇 가지 기술을 나열한다. 코루틴의 예외 코루틴은 실패하면 부모 코루틴에 예외를 전달한다. 그 후 부모 코루틴은 스스로를 취소한다 남아있는 자식 코루틴을 취..
suspendCancellableCoroutine(이하 scc)은 코루틴 라이브러리에 속한 API 중 하나로, 취소 가능한 비동기 연산을 가능하게 하고 어떤 코루틴이 취소되면 연산도 취소되게 하는 기능을 지원한다. 물론 코루틴 자체적으로도 cancel()을 지원하고 있다. 그러나 코루틴의 cancel()을 잘못 사용하게 되면 cancel() 호출 후에도 코루틴이 작동을 멈추지 않고 작동할 수 있다. 이것은 코틀린 공식문서에서도 설명하는 내용이다. https://kotlinlang.org/docs/cancellation-and-timeouts.html#cancellation-is-cooperative Cancellation and timeouts | Kotlin kotlinlang.org (중략)...ko..
예전에 이펙티브 코틀린을 읽으면서 use를 써서 리소스를 닫으라는 내용을 봤었다. https://onlyfor-me-blog.tistory.com/489 [이펙티브 코틀린] 아이템 9. use를 써서 리소스를 닫아라 더 이상 필요하지 않을 때 close()를 써서 명시적으로 닫아야 하는 리소스가 있다. Input/OutputStream java.sql.Connection java.io.Reader(FileReader, BufferedReader, CSSParser) java.new.socket, java.util.Scanner 이런 리소스들 onlyfor-me-blog.tistory.com 요약하면 Input/OutputStream, Scanner 등의 요소들은 더 이상 사용하지 않는다면 close()를..
미디엄을 돌아다니다가 7월 10일에 올라온 포스팅을 발견했다. https://medium.com/teknasyon-engineering/kotlin-enums-replace-values-with-entries-bbc91caffb2a Kotlin Enums — Replace values() With entries Make use of Kotlin 1.9.0 updates to improve performance… engineering.teknasyon.com 이 글의 핵심은 코틀린 1.9.0을 사용할 경우, enum을 쓴다면 value() 대신 entries를 사용하라는 것이다. 진짠가 싶어서 구글링해보니 이것과 관련된 내용의 코틀린 공식문서를 찾았다. https://kotlinlang.org/docs/e..