GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • Koroutine-Study
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles

This view

  • Original page
  • New address

GeezerVison is showing github.com โ€” Koroutine Study

README.md

๐Ÿ“š ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋ฃจํ‹ด์˜ ์ •์„ ์™„๋… ์Šคํ„ฐ๋””

๐ŸŽฏ ์Šคํ„ฐ๋”” ๋ชฉํ‘œ

  • '์ฝ”ํ‹€๋ฆฐ ์ฝ”๋ฃจํ‹ด์˜ ์ •์„' ์ฑ…์„ ์™„๋…ํ•˜๋ฉฐ ์ฝ”๋ฃจํ‹ด์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๋ถ€ํ„ฐ ๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ, ์‹ค์ „ ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•๊นŒ์ง€ ๊นŠ์ด ์žˆ๊ฒŒ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœํžˆ API ์‚ฌ์šฉ๋ฒ•์„ ๋„˜์–ด, '์™œ' ๊ทธ๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ทผ๊ฑฐ๋ฅผ ํƒ๊ตฌํ•˜์—ฌ ์ฝ”๋ฃจํ‹ด์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‹ค๋ฌด์— ์ž์‹ ๊ฐ ์žˆ๊ฒŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿš€ ์ง„ํ–‰ ๋ฐฉ์‹

  • ์ฃผ๊ธฐ: ๋งค์ฃผ ๊ธˆ์š”์ผ 21:00 1ํšŒ ๋””์Šค์ฝ”๋“œ์—์„œ ์ง€์ •๋œ ๋ฒ”์œ„์— ๋Œ€ํ•ด ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๊ณ  ํ† ๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐœํ‘œ ๋ฐ ํ† ๋ก : ๋งค์ฃผ ๋ฐœํ‘œ์ž๋ฅผ ์„ ์ •(์Šค์žฅ 1๋ช…, ์Šคํ„ฐ๋””์›1๋ช…)ํ•˜์—ฌ ํ•™์Šต ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๊ณ , ๊ฐ์ž ์Šคํ„ฐ๋””ํ•˜๋ฉฐ ๊ถ๊ธˆํ–ˆ๋˜ ์ ์ด๋‚˜ ๋…ผ์˜ํ•˜๊ณ  ์‹ถ์€ ์ฃผ์ œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ž์œ ๋กญ๊ฒŒ ํ† ๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฐ๊ณผ๋ฌผ: ๊ฐ์ž ํ•™์Šตํ•œ ๋‚ด์šฉ์ด๋‚˜ ํ† ๋ก  ๊ฒฐ๊ณผ๋ฅผ GitHub, Notion, ๋ธ”๋กœ๊ทธ ๋“ฑ์— ์ •๋ฆฌํ•˜์—ฌ PR์„ ์ƒ์„ฑํ•ด ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

    // Repo ์ด๋ฆ„์€ ๋ง˜๋Œ€๋กœ ํ•˜์‹œ์ง€์š”ใ…Žใ…Ž
    ๐Ÿ“‚ week1
    |- README.md
    |- Test.kt (ํ•„์š”ํ•˜๋‹ค๋ฉด)
    ๐Ÿ“‚ week2
    ๐Ÿ“‚ week3
    
    // README ์˜ˆ์‹œ
    
    # 1์ฃผ์ฐจ (1,2์žฅ)
    [1์ฃผ์ฐจ ๋‚ด์šฉ์ •๋ฆฌ](๋งํฌ)
    [1์ฃผ์ฐจ ๋ฐœํ‘œ์ž๋ฃŒ](๋งํฌ)
    
    

๐Ÿ—“๏ธ ์ฃผ์ฐจ๋ณ„ ํ•™์Šต ๊ณ„ํš (๋ณ€๊ฒฝ๊ฐ€๋Šฅ)

1๏ธโƒฃ์ฃผ์ฐจ: ์ฝ”๋ฃจํ‹ด์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊ณผ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ • (1์žฅ, 2์žฅ)

  • ํ•™์Šต ๋ชฉํ‘œ: ๊ธฐ์กด ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•œ๊ณ„๋ฅผ ์ดํ•ดํ•˜๊ณ , ์ฝ”๋ฃจํ‹ด์ด ์™œ ํ•„์š”ํ•œ์ง€ ๊ทผ๋ณธ์ ์ธ ์ด์œ ๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ฝ”๋ฃจํ‹ด์„ ํ•™์Šตํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ•™์Šต ์ฃผ์ œ:
    • ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์˜ ํ•œ๊ณ„ (์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ, ๋ธ”๋กœํ‚น)
    • ์ฝ”๋ฃจํ‹ด์ด ์Šค๋ ˆ๋“œ ๋ธ”๋กœํ‚น ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•˜๋Š” ์›๋ฆฌ
    • ์ฝ”๋ฃจํ‹ด ๊ฐœ๋ฐœ ๋ฐ ๋””๋ฒ„๊น… ํ™˜๊ฒฝ ์„ค์ • (Dkotlinx.coroutines.debug ์˜ต์…˜)
    • ์ฒซ ์ฝ”๋ฃจํ‹ด ์‹คํ–‰ ๋ฐ runBlocking, launch ๋นŒ๋”์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

2๏ธโƒฃ์ฃผ์ฐจ: ์ฝ”๋ฃจํ‹ด์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ (3์žฅ, 4์žฅ, 5์žฅ)

  • ํ•™์Šต ๋ชฉํ‘œ: ์ฝ”๋ฃจํ‹ด์„ ์‹คํ–‰ํ•˜๊ณ , ์ œ์–ดํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ธ Dispatcher, Job, Deferred์˜ ์—ญํ• ๊ณผ ๊ด€๊ณ„๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ•™์Šต ์ฃผ์ œ:
    • CoroutineDispatcher: ์ฝ”๋ฃจํ‹ด์ด ์–ด๋–ค ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋ ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ•  (IO, Default, Main)
    • Job: ์ฝ”๋ฃจํ‹ด์˜ ์ƒํƒœ(Lifecycle)๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ํ•ธ๋“ค (join, cancel, start)
    • async์™€ Deferred: ์ฝ”๋ฃจํ‹ด์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›๋Š” ๋ฐฉ๋ฒ• (await, awaitAll)
    • withContext๋ฅผ ์‚ฌ์šฉํ•œ ์Šค๋ ˆ๋“œ ์ „ํ™˜ ๋ฐ async-await์™€์˜ ์ฐจ์ด์ 

3๏ธโƒฃ์ฃผ์ฐจ: ์‹คํ–‰ ๋ฌธ๋งฅ๊ณผ ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ (6์žฅ, 7์žฅ)

  • ํ•™์Šต ๋ชฉํ‘œ: ์ฝ”๋ฃจํ‹ด์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” CoroutineContext๋ฅผ ์ดํ•ดํ•˜๊ณ , ์ฝ”๋ฃจํ‹ด์˜ ํ•ต์‹ฌ ์›์น™์ธ '๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ'์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ฝ”๋ฃจํ‹ด์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ•™์Šต ์ฃผ์ œ:
    • CoroutineContext์˜ ๊ตฌ์„ฑ ์š”์†Œ (Job, Dispatcher, CoroutineName, CoroutineExceptionHandler)
    • CoroutineContext์˜ ์กฐํ•ฉ(+)๊ณผ ์žฌ๊ตฌ์„ฑ
    • ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ: ๋ถ€๋ชจ-์ž์‹ ์ฝ”๋ฃจํ‹ด ๊ด€๊ณ„์˜ ์ค‘์š”์„ฑ (์ทจ์†Œ ์ „ํŒŒ, ์™„๋ฃŒ ๋Œ€๊ธฐ)
    • CoroutineScope์˜ ์—ญํ• ๊ณผ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•
    • GlobalScope ์‚ฌ์šฉ์„ ์ง€์–‘ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

4๏ธโƒฃ์ฃผ์ฐจ: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์ผ์‹œ ์ค‘๋‹จ ํ•จ์ˆ˜ (8์žฅ, 9์žฅ)

  • ํ•™์Šต ๋ชฉํ‘œ: ๊ตฌ์กฐํ™”๋œ ๋™์‹œ์„ฑ ์•ˆ์—์„œ ์˜ˆ์™ธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ „ํŒŒ๋˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ , SupervisorJob, CoroutineExceptionHandler ๋“ฑ์„ ์‚ฌ์šฉํ•ด ์•ˆ์ •์ ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฝ”๋ฃจํ‹ด์˜ ํ•ต์‹ฌ์ธ ์ผ์‹œ ์ค‘๋‹จ ํ•จ์ˆ˜์˜ ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ•™์Šต ์ฃผ์ œ:
    • ์ฝ”๋ฃจํ‹ด ๋นŒ๋”(launch vs async)์— ๋”ฐ๋ฅธ ์˜ˆ์™ธ ์ „ํŒŒ ๋ฐฉ์‹์˜ ์ฐจ์ด
    • SupervisorJob๊ณผ supervisorScope๋ฅผ ์ด์šฉํ•œ ์˜ˆ์™ธ ์ „ํŒŒ ์ œํ•œ
    • CoroutineExceptionHandler๋ฅผ ์‚ฌ์šฉํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
    • try-catch๋ฅผ ์ด์šฉํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์ฃผ์˜์ 
    • *์ผ์‹œ ์ค‘๋‹จ ํ•จ์ˆ˜(suspend function)**์˜ ์ •์˜์™€ ๋™์ž‘ ์›๋ฆฌ

5๏ธโƒฃ์ฃผ์ฐจ: ์ฝ”๋ฃจํ‹ด ์‹ฌํ™” ๋ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ (10์žฅ, 11์žฅ, 12์žฅ)

  • ํ•™์Šต ๋ชฉํ‘œ: ์ฝ”๋ฃจํ‹ด์˜ ๋‚ด๋ถ€ ๋™์ž‘ ์›๋ฆฌ์ธ Continuation๊ณผ ์Šค๋ ˆ๋“œ ์–‘๋ณด(yield) ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ๊ณต์œ  ์ƒํƒœ ๋ฌธ์ œ ๋ฐ ๋™๊ธฐํ™” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ runTest๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋ฃจํ‹ด ์ฝ”๋“œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ•™์Šต ์ฃผ์ œ:
    • ์„œ๋ธŒ๋ฃจํ‹ด๊ณผ ์ฝ”๋ฃจํ‹ด์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด
    • ์ฝ”๋ฃจํ‹ด์˜ ์Šค๋ ˆ๋“œ ์–‘๋ณด (delay, yield)
    • ๊ณต์œ  ์ƒํƒœ(Mutable State) ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์™€ ๋™๊ธฐํ™” ๋ฐฉ๋ฒ•
    • ์ฝ”๋ฃจํ‹ด์˜ ๋™์ž‘ ์›๋ฆฌ์™€ Continuation Passing Style (CPS)
    • ์ฝ”๋ฃจํ‹ด ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (runTest, TestDispatcher)
    • ๊ฐ€์ƒ ์‹œ๊ฐ„์„ ์ด์šฉํ•œ ์ฝ”๋ฃจํ‹ด ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•

Popular repositories Loading

  1. .github .github Public

    1

  2. seungjun-gong-coroutine-study seungjun-gong-coroutine-study Public

  3. jongmyoung-kim jongmyoung-kim Public

  4. sohee-jung sohee-jung Public

  5. minseo-song minseo-song Public

  6. minjae-han minjae-han Public

Repositories

Loading
Type
Sort
Showing 8 of 8 repositories
  • sohee-jung Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/sohee-jung's past year of commit activity
    0 0 0 0 Updated Dec 5, 2025
  • jongmyoung-kim Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/jongmyoung-kim's past year of commit activity
    0 0 0 0 Updated Dec 5, 2025
  • seungjun-gong-coroutine-study Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/seungjun-gong-coroutine-study's past year of commit activity
    0 0 0 0 Updated Dec 5, 2025
  • jihyun-lee Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/jihyun-lee's past year of commit activity
    0 0 0 0 Updated Nov 7, 2025
  • minseo-song Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/minseo-song's past year of commit activity
    0 0 0 0 Updated Nov 7, 2025
  • juwan-son Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/juwan-son's past year of commit activity
    0 0 0 0 Updated Oct 31, 2025
  • minjae-han Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/minjae-han's past year of commit activity
    0 0 0 0 Updated Oct 24, 2025
  • .github Public

    Uh oh!

    There was an error while loading. Please reload this page.

    Koroutine-Study/.github's past year of commit activity
    1 0 0 0 Updated Oct 21, 2025

People

@sonms @seungjunGong @vvan2

Top languages

Loadingโ€ฆ

Uh oh!

There was an error while loading. Please reload this page.

Most used topics

Loadingโ€ฆ

Uh oh!

There was an error while loading. Please reload this page.

You are visitor 01402520 โ€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800ร—600. No cookies required.