본문 바로가기 메뉴 바로가기

개발자 박진 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발자 박진 블로그

검색하기 폼
  • 분류 전체보기 (176)
    • 내 정보 (1)
    • 회고 (1)
    • 개발 언어 (104)
      • 코틀린 (42)
      • 자바 (1)
      • NodeJS (21)
      • 파이썬 (6)
      • 기타 웹개발 지식 (34)
      • Vibe-Coding (0)
    • 프레임워크 (10)
      • 스프링 & 스프링 부트 (7)
      • A2A (3)
    • 개발도구 (6)
      • 도커(Docker) (1)
      • k8s (1)
      • aws (4)
    • 디자인 패턴 (22)
    • 독서 (12)
      • 오브젝트 (5)
      • 객체지향의 사실과 오해 (7)
    • 기타 북마크 (13)
    • 이사 (4)
    • 기타 암거나 (2)
  • 방명록

전체 글 (176)
kotlin - coroutine (6) 코루틴 취소 및 타임아웃

6. 코루틴 취소 및 타임아웃6.1 코루틴 취소 (Cancellation)코루틴은 비동기적으로 동작하므로, 때로는 진행 중인 작업을 중단해야 할 필요가 있습니다. 코루틴을 취소하는 것은 중요한 작업이며, 취소된 코루틴은 즉시 중단되지만 정리 작업(clean-up)을 할 수 있는 기회도 제공합니다.코루틴의 취소는 협력적으로 이루어집니다. 이는 코루틴이 명시적으로 취소 상태를 확인하거나, 취소 가능한 함수(delay, yield 등)를 호출할 때만 취소된다는 뜻입니다.코루틴 취소의 기본 사용 예제import kotlinx.coroutines.*fun main() = runBlocking { val job = launch { repeat(1000) { i -> printl..

개발 언어/코틀린 2024. 9. 5. 14:56
kotlin - coroutine (5) 코루틴 채널(Channels) 및 흐름(Flow)

5. 코루틴 채널(Channels) 및 흐름(Flow)코루틴에서 채널(Channels)과 플로우(Flow)는 비동기 데이터 스트림을 다루기 위한 두 가지 주요 방식입니다. 이들은 모두 비동기적인 작업을 순차적으로 또는 스트림 형태로 처리할 수 있게 해줍니다.5.1 코루틴 채널(Channels)채널(Channel)은 비동기 데이터 스트림을 처리하는 도구입니다. 코루틴에서 데이터를 한 쪽에서 전송하고, 다른 쪽에서 수신할 수 있게 해줍니다. 채널은 파이프처럼 동작하여, 여러 코루틴이 데이터를 주고받는 데 유용하게 사용할 수 있습니다.채널의 주요 특징:한 코루틴에서 데이터를 보내고(send), 다른 코루틴에서 데이터를 수신(receive)할 수 있습니다.데이터는 FIFO(First-In, First-Out) ..

개발 언어/코틀린 2024. 9. 5. 14:53
kotlin - coroutine (4) 비동기 흐름 제어: `suspend` 함수와 `withContext`

4. 비동기 흐름 제어: suspend 함수와 withContext4.1 suspend 함수란?suspend는 코틀린에서 비동기 작업을 정의할 때 사용되는 키워드입니다. suspend 함수는 일시 중단될 수 있는 함수로, 실행 중간에 일시적으로 멈췄다가 다른 작업을 처리한 후 다시 재개될 수 있습니다. 일반 함수와는 달리 코루틴 내에서만 호출될 수 있으며, 비동기 작업을 처리하는 데 최적화되어 있습니다.suspend 함수는 동기적 코드처럼 작성하지만, 실제로는 비동기적으로 실행되어 코드 가독성을 크게 향상시킵니다.suspend 함수의 특징:코루틴 내에서만 호출될 수 있습니다.코루틴 내에서 호출된 suspend 함수는 일시적으로 중단되었다가 재개될 수 있습니다.비동기 흐름 제어를 동기적 코드처럼 간단하고 ..

개발 언어/코틀린 2024. 9. 5. 14:51
kotlin - coroutine (3) 코루틴의 동작 원리 및 구조화된 동시성 (Structured Concurrency)

3. 코루틴의 동작 원리 및 구조화된 동시성 (Structured Concurrency)이제 코틀린 코루틴에서 구조화된 동시성(Structured Concurrency)에 대해 살펴보겠습니다. 이 개념은 코루틴의 안정성과 예외 처리에 중요한 역할을 하며, 코드가 복잡해질수록 필수적으로 이해해야 할 개념입니다.3.1 코루틴의 동작 원리3.1.1 중단 함수(suspend 함수)코루틴은 중단 가능한 함수(suspend 함수)를 통해 비동기 작업을 중단하고 나중에 다시 재개할 수 있습니다. 코루틴 내에서 중단 함수가 호출되면, 해당 코루틴은 중단되며 다른 작업을 계속 진행할 수 있습니다. 코루틴의 핵심은 이러한 비동기 처리를 동기적 코드처럼 작성할 수 있다는 점입니다.예시로, delay 함수는 중단 함수의 한 ..

개발 언어/코틀린 2024. 9. 5. 14:49
kotlin - coroutine (2) 코루틴 스코프 및 컨텍스트

2. 코루틴 스코프 및 컨텍스트2.1 코루틴 스코프(Coroutine Scope)란?코루틴 스코프는 코루틴의 수명을 관리하는 역할을 합니다. 코루틴은 스코프 내에서만 실행되며, 스코프가 종료되면 그 스코프 내에서 실행된 모든 코루틴도 자동으로 취소됩니다. 이는 구조화된 동시성을 구현하는 중요한 개념으로, 비동기 작업이 여러 개 실행되더라도 일정한 흐름 안에서 안전하게 관리될 수 있도록 해줍니다.코루틴은 여러 개의 스코프에서 동작할 수 있으며, 대표적으로 두 가지 스코프를 사용할 수 있습니다:GlobalScope: 앱이 종료되기 전까지 코루틴이 계속 실행됩니다. 하지만 자원을 낭비할 수 있기 때문에 권장되지 않습니다.CoroutineScope: 특정한 범위에서만 코루틴이 실행되며, 해당 범위가 끝나면 코루..

카테고리 없음 2024. 9. 5. 10:59
kotlin - coroutine (1) 코루틴의 기초 개념

1. 코루틴의 기초 개념1.1 코루틴이란 무엇인가?코루틴(Coroutines)은 비동기 작업을 쉽게 처리하기 위한 경량 스레드라고 생각할 수 있습니다. 코틀린의 코루틴은 실제 스레드를 차지하지 않으면서도 비동기 작업을 수행할 수 있습니다. 비동기 프로그래밍의 복잡함을 줄이고, 코드가 동기적으로 실행되는 것처럼 보이면서도 효율적인 비동기 작업을 가능하게 해줍니다.1.2 코루틴의 장점과 스레드와의 차이점경량성: 코루틴은 스레드에 비해 매우 가볍습니다. 수천 개의 코루틴이 실행되더라도 시스템 리소스를 많이 차지하지 않습니다.비동기 처리: 코루틴은 비동기 처리를 단순하게 만듭니다. 기존의 스레드를 사용한 비동기 처리에 비해 코드가 더 직관적입니다.중단 및 재개 가능: suspend 키워드를 통해 코루틴은 일시 ..

개발 언어/코틀린 2024. 9. 5. 10:54
이전 1 2 3 4 5 6 7 8 ··· 30 다음
이전 다음
250x250
최근에 올라온 글
최근에 달린 댓글
TAG
  • structured concurrency
  • 오브젝트
  • CoroutineScope
  • nodejs
  • async
  • 자바스크립트
  • git
  • 파이썬
  • Spring Boot
  • 일기
  • 운동
  • 객체지향
  • 웹개발
  • 디자인패턴
  • 코틀린
  • DevOps
  • kotlin
  • Docker
  • 비동기프로그래밍
  • Coroutine
more
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바