Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
개발 · 프로그래밍

/

백엔드

정석에 가깝고 기본에 충실한 실전 Kotlin Coroutine 마스터 클래스

이 강의는 Kotlin의 🌺 Coroutine의 이론적 기반부터 실전 활용까지 정석적으로 배우는 마스터 클래스입니다. 코루틴의 핵심 원리와 구조, 비동기 프로그래밍의 필요성, 코루틴 빌더와 스코프, 예외 처리, 채널, 플로우(Flow) 등 실무에서 자주 사용하는 주요 기능들을 단계별로 다룹니다. 각 개념은 실습 예제와 함께 설명되어, 초보자도 쉽게 이해하고 바로 실전에 적용할 수 있습니다. 실무에 강한 Coroutine 역량을 쌓고 싶은 개발자를 위한 최고의 입문 및 실전 강의입니다.

(4.9) 수강평 10개

수강생 58명

  • Hong

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • Kotlin의 최소 기본 문법들

  • 멀티 쓰레드의 단점과 장점 그에 따른 코루틴의 활용 방법

  • 코루틴에서의 구조화된 동시성과 실무 패턴

  • 코루틴에서의 기초 예외처리부터 심화된 예외 처리 방법

  • 병렬 프로그래밍 에서의 공유자원 관리

  • Flow를 활용한 이벤트 데이터 스트림 방법

  • Channel을 활용한 경량 쓰레드간에 공유자원 관리

정석을 기반으로 만들어진 대기업 개발자들이 알려주는 코루틴

단순히 코루틴의 동작 원리만 배우는 강의는 이제 필요하지 않습니다. 실제 대기업 개발자들이 현장에서 부딪히며 적용한 다양한 사례와 실무에서 바로 사용 가능한 실전 코드를 해당 강의를 통해 함께 경험해 보세요.


이 강의는 코루틴의 정석적인 개념부터 Flow·Channel·Dispatcher·Scope 등 실제로 많이 쓰이는 도구들을 예제와 함게 직접 다루고 있습니다. 단순히 API 호출이 아닌, 복잡한 비동기 로직, 자식-부모 관계, Job관리, 그리고 예외 상황 대응까지 실습 기능 구현 예제를 통해서 자연스럽게 익힐 수 있습니다.


많은 자료가 이론에 머무리지만, 이 강의는 실무 개발 환경에서 '왜 이렇게 써야 하는지', '어디서 문제가 터지는지' 그리고 '어떻게 풀어나가는지'를 제대로 알려드리고자 합니다.

이론으로만 끝나지 않고, 실제 서비스에 적용 가능한 기술과 실무자들이 실제로 사용하는 패턴과 노하우, 그리고 실수하지 않는 작성법을 알려드릴게요.

coroutine을 왜 배워야 하지..?

단순히 "비동기 처리"라서, 혹은 "트랜드"라서 코루틴을 배우라는 이야기는 의미가 없습니다.

현실적으로 코루틴을 알아야 하는 이유는 바로 "실무의 효율"과 "경쟁력"에 있습니다.


업무를 하다보면 API호출, DB 트랜잭션, 외부 시스템 연동 등 시간이 오래 걸리는 작업이 정말 많습니다.

이걸 전부 스레드로 처리하자니 리소스는 한계가 있고 콜백으로 구성하자니 관리가 어렵습니다.

Android, backend에 국한되지 않고 다양하게 사용되는 coroutine.. RxJava, 콜백 지옥, 복잡한 동기화 이슈... 이미 겪어본 분들은 "이래서 코루틴이 필요하구나" 라는걸 몸으로 느끼셨을 겁니다.

📚 복잡한 비동기 로직도 동기 코드처럼 간단하게

기존에는 여러 작업읇 비동기로 처리하려면 콜백, 스레드, Future 등 다양한 기법을 사용해야 했습니다. 하지만 이런 방식은 코드가 복잡해지고, 'suspend' 키워드 하나만으로 비동기 작업과 동기 작업을 섞어 쓸 수 있어, 가독성과 유지보수성이 크게 향상됩니다.

📚서버 자원 효율 극대화

스레드를 여러 개 만들어서 동시성을 처리하면, 서버 자원이 금방 소진되고 성능 저하로 이어질 수 있습니다. 코루틴은 수천~수만 개의 작업도 소수의 스레드로 처리하므로, 서버 리소스를 효율적으로 활용할 수 있습니다. 예를 들어, 대량의 네트워크 요청이나 데이터 입출력을 동시에 처리할 때, 스레드 기반보다 훨씬 많은 요청을 감당할 수 있습니다.

📚구조화된 동시성으로 안전하게 관리

코루틴은 부모-자식 관계로 작업의 생명주기를 관리합니다. 부모 코루틴이 종료되면 자식 코루틴도 자동으로 정리되어, 리소스 누수나 예기치 못한 동작을 방지할 수 있습니다. 이 구조화된 동시성 덕분에, 대규모 서비스에서도 예측 가능한 동작과 안정적인 서버 운영이 가능합니다.

📚직관적인 에러 처리와 취소

비동기 코드에서 예외가 발생하면 어디서 어떻게 처리해야 할지 난감한 경우가 많습니다. 코루틴은 예외 전파, 에러 처리, 작업 취소(취소 토큰 등)를 일관성 있게 지원하여, 실무에서 흔히 마주하는 에러 상황을 훨씬 더 단순하게, 그리고 안전하게 다룰 수 있게 해줍니다.

📚실시간 데이터 스트림과 이벤트 처리

코루틴의 Flow와 Channel을 활용하면, 실시간 데이터 스트림, 채팅, 센서 데이터, 실시간 알림 등 복잡한 이벤트 처리도 간결하고 읽기 쉬운 코드로 구현할 수 있습니다. 이벤트가 발생할 때마다 콜백을 연결하는 대신, Flow를 통해 선언적이고 반응적으로 데이터를 다룰 수 있습니다.

강의를 듣고 나면 이런 결과물을 만들 수 있어요

실무에 바로 적용 가능한 비동기 처리 코드

복좁한 비동기 흐름을 동기 코드처럼 간결하게 작성 할 수 있습니다.

콜백 지옥이나, 복잡한 스레드 관리 없이 실제 서비스에서 바로 사용할 수 있는 안정적이고 효율적인 코루틴 기반 코드를 만들어 보세요!

구조화된 동시성 아키텍처 설계

단일 작업뿐만 아니라, 여러개의 비동기 작업을 부모-자식 관계로 안전하게 관리하는 구조화된 동시성(Structured Concurrency) 패턴을 프로젝트에 녹여낼 수 있습니다.

이를 통해 대규모 트래픽이나 복잡한 데이터 흐름도 안정적으로 처리하는 방법을 학습해 보세요.

실시간 데이터 스트림 및 이벤트 처리 시스템

Flow와 Channel 등 코루틴 고유의 도구를 활용하여, 채팅, 데이터 파이프라인, 로그 분석기 등 다양한 이벤트 기반 시스템에 들어가있는 필수적인 기능을 함께 구현해보세요!

안정적인 예외 및 취소 처리

실무에서 자주 마주치는 에러 상황, 예외 전파, 작업 취소 등의 문제를 코루틴으로 안전하게 처리하는 실전 코드를 함께 작성하며 학습해보세요!

유지보수가 쉬운, 읽기 좋은 코드

복잡한 비동기/동시성 로직도 한눈에 이해할 수 있는 깔끔하고 일관성 있는 코드 스타일을 제공해 드립니다. 이로써 팀원과의 협업, 코드 리뷰, 기능 확장 등 실무에서 꼭 필요한 역량을 길러보세요!

30개 가량의 실전 예제 코드를 활용한 학습

이론으로만 이루어진 강의가 아닌, 말로만 하는 강의가 아닌 간단한 기능 또는 심화된 기능을 구현하며 배우는 강의로써 준비하였습니다.

지식 공유자들이 중요하게 여기는 4가지 가치관

1. 강의는 인간적이어야 한다.

전문성이 떨어지는 모습으로 여겨질지라도 보여주기 편한 강의는 강의가 아니라고 생각합니다. 디버깅도 진행하는 시간또한 강의의 일부 입니다

2. 실무에 특화되어야 한다

개발은 말로하는것이 아닙니다. 실제 구현을 해보고 동작하는 과정을 함께 하실 수 있습니다.

  • 기획자분들... 살려주세요..


3. 수강생 분들에게 도움이 되어야 한다.

제가 실무에서 적용해서 효과를 보았던 개념들을 녹이고자 하였습니다. 이 과정을 통해서 실무를 간접적으로 체험하시거나 실무자라면 실무 환경에 더 뛰어난 퍼포먼스를 보여주실 수 있습니다.

4. 강의가 끝이 아니다.

강의를 진행하시면서 질의응답을 많이 남겨주시기를 바랍니다. 이 강의는 저 혼자만의 지식을 통해서 만들어지지 않았습니다. 다양한 대기업 개발자분들의 의견또한 취합되어 있습니다.

  • 강의 완성에 도움을 주신분들에 대한 간단한 이력은 다음과 같습니다.

private val supported_one = "카카오페이 플랫폼 백엔드 개발자" private val supported_two = "토스증권 API 서버 개발자" private val supported_three = "비밀로 해달라는 유니콘 스타트업 개발자"

강의 구성도

📚 섹션 1

강의 소개와 함께 여러분들이 그냥 쉽게 사용하시는 경량 쓰레드 즉 코루틴과 OS에서 관리하여 자원이 할당되는 쓰레드를 비교하며 차이점을 알려드리고자 합니다.

print("⚠️ 카카오페이 플랫폼 백엔드 개발자가 생각하는 중요한 포인트!! ⚠️") 스레드와 경량 쓰레드의 차이를 몰라도 개발은 가능합니다. 하지만 이직 또는 취업을 준비하신다면, 면접을 대비하기 너무나도 좋은 주제입니다! 간단한 내용이지만 해당 시간을 통해 간단한 내용을 바로 습득해보세요!

📚섹션 2

아주 기본적인 코루틴 선언 방법과 작동하는 코드를 확인하게 됩니다. 매우 기본적인 항목으로 여러분들에게 몸풀기 시간으로써 제공해 드리고 있습니다.

📚섹션 3

코루틴의 생명주기를 관리하는 방법에 대해서 학습하시게 됩니다. 코루틴의 취소와 Gracefully Shut Down 실전 예시 코드부터 다양하게 접하며 코루틴의 취소에 대한 이벤트를 관리해보세요!

📚섹션 4

동시성 프로그래밍을 사용하는데에 있어서 값을 반환받고, 사용하는 명시적인 코드 형태를 구현하게 됩니다. 추가로 부모-자식 관계라는 기본적인 코루틴 구조를 이해하고 학습 하실 수 있는 시간으로 준비해 보았습니다!

📚섹션 5

코루틴의 내부에서 사용하는 Dispatcher와 Context를 이론적으로 이해하시고 다양한 Dispatcher를 적용하며 배우는 시간 입니다. 필수는 아니지만!! 최적화를 위해서는 반드시 알아야하는 시간으로 준비해 보았습니다.

📚섹션 6

코루틴에서의 부모-자식 관계는 과연 항상 일관될까요?? 실무형 패턴을 통한 생명 주기 관리와 코루틴에서의 부모 자식 관계의 일관성을 무너트리는 방법까지 다양한 주제로 준비를 하였습니다.

📚섹션 7

Flow에 대해서 학습을 시작하시게 됩니다. 해당 섹션에서는 이론적인 부분을 기반으로 다루기 보다는 정말 실무에서 사용가능한 코드와 기능 또는 서비스를 한번 실제로 만들어가며 학습해 보세요. 이 강의에서 가장 큰 실무 예제를 참고하며 비동기 스트림을 다루고 있습니다.

print("⚠️ 유니콘 스타트업 개발자가 생각하는 중요한 포인트!! ⚠️") DB에 대한 빅데이터 스트림 작업을 진행하거나, 일반적인 로그성 데이터를 처리하는데에 있어서 반드시 필수로 들어가야 하는 주제가 아닌가 싶습니다. 예제 코드가 갑자기 어려워지는 부분도 있지만 그만큼 더 많이 재미있게 다룰 수 있게 준비하였습니다. 꼭 꾹꾹 씹어가며 이해하시고 학습해보시면 정말 큰 도움이 되실겁니다!

📚섹션 8

코루틴간에 소통은 어떻게 할까요?? 동시성 프로그래밍에서 병렬적으로 동작하는 시스템간에 데이터 이관 작업이나, 이벤트 기반의 데이터를 추가적으로 전송하며 처리해야 하는 경우, 경량 쓰레드 간에 데이터를 공유하는 자원을 만들어야 하는 경우!! 이런 다양한 경우에 대해서 처리 할 수 있는 Channel에 대해서 학습하시게 됩니다.

print("⚠️ 강의 촬영하고, 판교에서 플랫폼 개발하는 서버 개발자가 생각하는 중요한 포인트 ⚠️") 경량 쓰레드간에 데이터 전송을 아토믹하게 보장하는 행위는 굉장히 많이 사용이 됩니다. Golang에서의 채널을 Kotlin에서 동일하게 구현하고 병렬성 프로그래밍에서의 데이터 공유 자원을 함께 관리하시며 코루틴에 좀 더 빠져드시는 시간이 되시기를 바라겠습니다.

📚섹션 9

코틀린에서의 예외처리는 얼마나 중요할까요?? 자원이 누수되어 발생하는 OOM을 예방하기 위해서 반드시 들어가야 하는 항목입니다. 이 섹션에서는 예외 처리에 대해서 좀 더 Deep Dive하며 더 견고한 시스템을 만들 수 있게 준비해 보았습니다!

📚섹션 10

동시성 프로그래밍에서 가장 중요한 부분은 공유 자원에 대한 제어 입니다. 이런 부분을 무시하게 된다면, Race Condition, Dead Lock등 정말 아찔해지는 상황이 너무 쉽게 발생합니다. 이 시간에서는 이런 문제를 해결하기 위한 대표적인 기법들을 학습 하실 수 있습니다.

print("⚠️ 토스 개발자가 생각하는 중요한 포인트 ⚠️") 은행 계좌 및 출금 서비스에 대한 기능을 구현하다보면, 이런 공유 자원에 대한 접근 제어는 정말 상당히 중요한 주제입니다. 이 강의에서 제가 개인적으로 가장 중요하게 생각하는 주제로써 코루틴이 아니더라도 일반 프로그래밍에서 이런 주제를 반드시 도입하고 고려하며 사용해야 할 필요가 있습니다. 마지막 섹션인 만큼 굉장히 중요하게 생각하는 주제이니 꼭 집중해서 습득하시길 바라겠습니다.

타임 캡슐 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

  • JetBrains의 최대 오픈소스인 Ktor을 통해서 웹 서비스를 구축하는 Kotlin 마스터 클래스 강의 입니다. 이 강의를 통해서 Kotlin의 기본적인 문법과 실전 암호화 방식에 대해서 학습하시게 됩니다.

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

  • 폴리그랏 퍼시스턴스 전략 및 Kafka등을 활용하여 트래픽 유형에 맞는 데이터 처리 방법과 DB 고려사항 및 이벤트성 데이터 활용방법에 대한 모든것을 학습하실 수 있습니다.

수강 전 참고 사항

실습 환경

  • Macos M3를 사용하여 촬영되었습니다.


  • java --version : 17.0.12 2024-07-16 LTS

  • JetBrain 계열의 IDE를 사용합니다.

  • Gradle을 사용하여 빌드 합니다.

  • 인프라에 대해서는 다루지 않습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 코루틴 개념을 제대로 배우고 싶은 분

  • 실전 예제를 통해 코루틴을 익히고 싶은 분

  • 복잡한 코루틴 구조를 설계·디버깅하고 싶은 분

  • 성능 최적화 및 병렬 처리에 관심있는 분

  • Kotlin 기반의 백엔드·모바일 개발자

  • Spring 기반에서 Kotlin을 접목하고 싶은 백엔드·모바일 개발자

안녕하세요
입니다.

2,375

수강생

169

수강평

73

답변

4.5

강의 평점

13

강의

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

커리큘럼

전체

37개 ∙ (5시간 9분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

10개

4.9

10개의 수강평

  • 미래 1인 개발자님의 프로필 이미지
    미래 1인 개발자

    수강평 5

    평균 평점 5.0

    5

    32% 수강 후 작성

    강의에 함께 참여하여 촬영하는데에 도움을 준 토스에서 개발하고 있는 개발자 입니다. 이 강의를 준비하면서 꽤나 많은 부분을 고민하였습니다. 아무래도 경량 쓰레드라는 주제가 쉽지 않은 주제이기도 했고, 어떤 식으로 다루어야 하는지도 고민을 하였습니다. 하지만 강의 촬영해주시는 분의 의견에 따라서 최대한 다양한 예제를 제공해드리며, 짜임새 있는 강의보다는 친숙한 강의가 되자는 목표를 가지고 진행하였습니다. 그만큼 단점도 있는 방식이지만 장점도 있는 방식이라고 생각을 합니다. 이 강의가 여러분들에게 완벽하게 코루틴을 사용하는 사람을 만들어드리지는 못합니다. 어디까지나 강의이기 때문입니다. 이 강의를 기준으로 다양하게 실제로 활용해보시면 완벽하게 코루틴을 사용하는 사람이 되실 수 있지 않을까 싶습니다. 이 강의가 여러분들을 만족시키지 못한다면, 부족한 만큼 많이 배우고 개선하고자 하는 의지가 있으니 피드백 해주시면 감사하겠습니다.

    • Hoos님의 프로필 이미지
      Hoos

      수강평 9

      평균 평점 5.0

      5

      97% 수강 후 작성

      Kotlin도 알고 싶고 Coroutine도 알고 싶다?? 그냥 이걸 참고해가면서 공부하면 가장 좋은 학습 방법이 아닐까 싶습니다. 감사합니다.

      • Hong
        지식공유자

        안녕하세요 Hoos님 좋은 평 남겨주셔서 감사합니다!! 앞으로 더 좋은 강의로 찾아 뵙도록 할게요!! 좋은 하루 보내세요!!

    • 개발 잘하고 싶다...님의 프로필 이미지
      개발 잘하고 싶다...

      수강평 7

      평균 평점 5.0

      5

      95% 수강 후 작성

      다양한 주제로 재미있게 잘 봤습니다. 많은 도움이 되었네요. 감사합니다.

      • Hong
        지식공유자

        안녕하세요 개발 잘하고 싶다님 좋은 평 남겨주셔서 감사합니다!! 앞으로 더 좋은 강의로 찾아 뵙도록 할게요!! 좋은 하루 보내세요!!

    • 최병현님의 프로필 이미지
      최병현

      수강평 4

      평균 평점 5.0

      5

      62% 수강 후 작성

      • Hong
        지식공유자

        안녕하세요 최병현님 평 남겨주셔서 감사합니다. 앞으로 더 좋은 강의로 찾아뵙도록 하겠습니다! 좋은 하루 보내세요!

    • devHand님의 프로필 이미지
      devHand

      수강평 9

      평균 평점 5.0

      5

      32% 수강 후 작성

      재미있게 잘 듣고 있습니다. 초반이지만 꽤나 유익한 강의네요.

      • Hong
        지식공유자

        안녕하세요 devHand님 평 남겨주셔서 감사합니다! 앞으로 더 좋은 강의로 찾아뵙도록 할게요!

    ₩69,300

    Hong님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!