Kotlin – “coroutine” : CoroutineBuilder
CoroutineBuilder 를 통해서 알아야할 것: coroutine의 범위(scope)에 대해서 이해하고, coroutineBuilder 의 여러종류의 키워드의 차이점을 이해한다. (launch, async, withContext, runBlocking, actor, produce) CoroutineBuilder 를 사용하여서 coroutine 을 생성하는 기본 키워드는 이미 이전 포스팅에서 다루었기때문에(Kotlin – “coroutine” basic) 이전키워드에 추가하여서알아야할 키워드들을 정리하려고 한다. CoroutineBuilder Return 비고 launch() 리턴없음(Job) 결과가 없는 코루틴을 생성 async() Deferred<T> await 함수를 통해서 […]
Kotlin – “coroutine” : concurrency
scope builder 관련해서 포스팅을 하면서 자료를 찾다보니 정확히 알고있으면 너무나 좋을 만한 포스팅이 있어서 번역해서 올립니다. https://kotlinlang.org/docs/reference/coroutines/basics.html해당 글인데 처음부터 차근히 읽으면 coroutine 을 동시성 프로그래밍 관점에서 이해하는데 도움이 될것으로 보입니다.저는 이중에서 structured concorrency 관련해서 파생해서 알아야하는 내용만 포스팅하겠습니다. structured concurrency prologue : 동시성 프로그래밍은 메인 쓰레드를 blocking 을해서 쓰레드를 생성하는 방법과 메인 쓰레드 블로킹없이(non-blocking) 쓰레드풀에서 […]
Kotlin – “coroutine” coroutineScope, runBlocking :scope builder
scope Builder 를 통해서 알아야할 것 : 동시성 프로그래밍을 하기위해서 사용되는 scope Builder. 기본 키워드(launch, async, runBlocking) 도 scopeBuilder 를 통해서 coroutine Scope 이 설정되어있고, 커스터마이징도 가능하다.또한 runBlocking 블록과 coroutineScope 블록의 차이점도 가져갈 수 있다. coroutine 을 통해서 제공되는 coroutineScope 은 coroutineContext를 상속받으면서 Coroutine의 생명주기를 관리해준다. coroutineScope builder 키워드를 통해서 스콥을 선언해서 사용할수있다. 이것은 코루틴 […]
Kotlin – “coroutine” basic
coroutine 을 통해서 알아야할것 : 각종 키워드들에 대한 정확한 이해.GlobalScope.launch: 새로운 코루틴을 백그라운드에서 실행하고 (기존프로세스들은)진행한다.runblocking: 메인 쓰레드를 블록하고 실행한다. 넌블로킹 비동기 작업을 수행하기 위해 코틀린은 코루틴이라는 개념을 지원한다. 대부분의 언어들은 비동기 작업을 가능하게 하기위해 새로운 쓰레드를 생성하여 프로세스간 문맥 교환(context switching) 을 발생시키지 않고 동시에 작업이 진행될 수 있도록 작업할 수 있다.코틀린은 이것보다 더 간편하게 동시작업을 […]
Kotlin – “Function Reference”
Function Reference 를 통해서 알아야할 것 : 함수타입 변수를 사용하면 이미 선언되어있는 함수나 객체의 멤버 함수를 가르켜서 사용할수있다. 나는 개인적으로 코드에 나에게 익숙하지않은 부호(예를 들면 this@outer 혹은, Class()::outer 등)가 나오면 일단 일시정지가 되버리는 뇌와 마주할수밖에 없다.. 하지만 어려워할 필요가 없다. 0
Kotlin – “Anonymous Function”
Anonymous Function 을 통해서 알아야할 것 : 일반함수와 이름이 없다는것만 빼면 동일하다. 그런데 또 함수 리터럴과 비슷한 느낌이지만 return 값을 지정할수있어서 람다보다 가독성이나 오류가 날 확률이 낮다. 예시는 함수리터럴와 비교할수있게 같게 작성했다. 0
Kotlin – “Function Literal”
Function Literal 을 통해서 알아야할 것 : Functional Programming 에서 많이 쓰이는 기본적인 함수 작성의 방법이다. 이 방법을통해 익명함수 및 first-class function, 고차함수 모두 사용된다. 0
Kotlin – “Inner Class”
inner Class 를 통해서 알아야할 것 : Nested class 와 모습은 같지만( 아우터 클래스 내부에 중첩적으로 클래스가 선언되어서 사용되고있다.) Inner class 의 인스턴스는 (Nested class 와는 다르게) Outer class 의 인스턴스에 완전히 소속된다. 내부 클래스의 인스턴스를 생성하러면 0
Kotlin – “Nested Class”
Nested Class 를 통해서 알아야할 것 : Nested class 와 유사한 Inner Class 와의 차이점과 사용성의 다름을 알고 활용할수 있어야한다. (참고 : Kotlin – “Inner Class”) 클래스 안에 또다른 클래스를 선언하는 방법중 하나이다. 하지만 (어떤 키워드도 사용되지않은- inner 키워드가 사용되지않은) Nested class 는 식별자가 Outer 클래스에 속해있을뿐, 실제 메모리 힙 영역 상으로는 완전히 분리되어있는 장소에 […]
Kotlin – “Interface”
Interface를 통해서 알아야할 것 : 클래스에 어떤 멤버 함수와 프로퍼티가 반드시 존재하는것을 보장하는것이 인트페이스 이다. 인터페이스는 interface 키워드, 상속은 open 키워드를 사용한다. 0