์ •์„์— ๊ฐ€๊น๊ณ  ๊ธฐ๋ณธ์— ์ถฉ์‹คํ•œ ์‹ค์ „ Kotlin Coroutine ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค

์ด ๊ฐ•์˜๋Š” Kotlin์˜ ๐ŸŒบ Coroutine์˜ ์ด๋ก ์  ๊ธฐ๋ฐ˜๋ถ€ํ„ฐ ์‹ค์ „ ํ™œ์šฉ๊นŒ์ง€ ์ •์„์ ์œผ๋กœ ๋ฐฐ์šฐ๋Š” ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ฝ”๋ฃจํ‹ด์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ๊ตฌ์กฐ, ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•„์š”์„ฑ, ์ฝ”๋ฃจํ‹ด ๋นŒ๋”์™€ ์Šค์ฝ”ํ”„, ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์ฑ„๋„, ํ”Œ๋กœ์šฐ(Flow) ๋“ฑ ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ๋“ค์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋…์€ ์‹ค์Šต ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์„ค๋ช…๋˜์–ด, ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋ฐ”๋กœ ์‹ค์ „์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์— ๊ฐ•ํ•œ Coroutine ์—ญ๋Ÿ‰์„ ์Œ“๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์ž…๋ฌธ ๋ฐ ์‹ค์ „ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

(4.9) ์ˆ˜๊ฐ•ํ‰ 12๊ฐœ

์ˆ˜๊ฐ•์ƒ 100๋ช…

๋‚œ์ด๋„ ์ž…๋ฌธ

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์ฝ”ํ‹€๋ฆฐ
์ฝ”ํ‹€๋ฆฐ
์ฝ”๋ฃจํ‹ด
์ฝ”๋ฃจํ‹ด
์ฝ”ํ‹€๋ฆฐ
์ฝ”ํ‹€๋ฆฐ
์ฝ”๋ฃจํ‹ด
์ฝ”๋ฃจํ‹ด
CJ
๋คผ์ด๋“œ
์—”์”จ์†Œํ”„ํŠธ
๋กฏ๋ฐ์‡ผํ•‘ ์ด์ปค๋จธ์Šค์‚ฌ์—…๋ณธ๋ถ€
์นด์นด์˜ค์Šคํƒ€์ผ

์นด์นด์˜ค์Šคํƒ€์ผ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

CJ
๋คผ์ด๋“œ
์—”์”จ์†Œํ”„ํŠธ
๋กฏ๋ฐ์‡ผํ•‘ ์ด์ปค๋จธ์Šค์‚ฌ์—…๋ณธ๋ถ€
์นด์นด์˜ค์Šคํƒ€์ผ

์นด์นด์˜ค์Šคํƒ€์ผ

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.9

5.0

์œ ์พŒํ•œ ์บฅ๊ฑฐ๋ฃจ

62% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ดˆ์‹ฌ์ž๊ฐ€ ๋ณด๊ธฐ์—๋Š” ๋‚ด์šฉ ์ž์ฒด๊ฐ€ ์‰ฝ์ง€๋Š” ์•Š์€๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์–ด๋А์ •๋„ ์ดํ•ด๋„๊ฐ€ ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋ณด๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ ์‹ถ์–ด์š”. ๊ทธ๋ž˜๋„ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์„ ์ ‘ํ•˜๋Š” ๊ฐ•์˜๋กœ์จ๋Š” ์ข‹์€๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

5.0

๋ถ€์Šคํƒ€

62% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ถ€ํ„ฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด์„œ ์‹ค์ œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ฐ•์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๋Š”๋‹ค๊ณ  ๋ชจ๋‘ ๋‹ค ์•„๋Š”๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๋ฌผ๋ก  ์–ด๋А์ •๋„์˜ ๊ฐœ์ธ์ ์ธ ํ•™์Šต๋„ ํ•„์š”ํ•˜๋‹ค๊ณ  ๋А๋ผ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๊ณ  ์‹ค์Šต ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ๋ถ„์„ํ•˜๋ฉด ๋” ๋งŽ์ด ํ•™์Šตํ•˜๊ณ  ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

5.0

๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž

32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • 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์„ ์ ‘๋ชฉํ•˜๊ณ  ์‹ถ์€ ๋ฐฑ์—”๋“œยท๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์ž

์•ˆ๋…•ํ•˜์„ธ์š”
Hong์ž…๋‹ˆ๋‹ค.

8,197

๋ช…

์ˆ˜๊ฐ•์ƒ

527

๊ฐœ

์ˆ˜๊ฐ•ํ‰

149

๊ฐœ

๋‹ต๋ณ€

4.7

์ 

๊ฐ•์˜ ํ‰์ 

27

๊ฐœ

๊ฐ•์˜

์ž๊ธฐ ์†Œ๊ฐœ

์ง‘์—์„œ ๋นˆ๋‘ฅ๋Œ€๋‹ค ๊ฐœ๋ฐœ์— ํฅ๋ฏธ๋ฅผ ๋А๊ปด ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜์˜€๊ณ  ํ˜„์žฌ๋Š” ํŒ๊ต์—์„œ ํ”Œ๋žซํผ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋˜ ๋ฐฉ๋ฒ•๊ณผ ์‹ค๋ฌด์—์„œ ์ ‘ํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ์ ๋“ค๊ณผ ํ•ด๊ฒฐ์ฑ…์„ ์—ฌ๋Ÿฌ๋ถ„๋“ค์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์–ด ์ง€์‹๊ณต์œ ์ž ํ™œ๋™์„ ์ด์–ด๋‚˜๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ•์˜๋Š” ์˜ค๋กœ์ง€ ์ €๋งŒ์˜ ์ง€์‹์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ•์˜๋Š” ํ•จ๊ป˜ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ๊ณ„์‹ญ๋‹ˆ๋‹ค.

 

์ง€์‹๊ณต์œ ์ž ๊ฒฝ๋ ฅ

[ๅ‰] ์ƒŒ๋“œ๋ฐ•์ŠคIP ๊ด€๋ จ ๋ธ”๋ก์ฒด์ธ ๊ฐœ๋ฐœ์ž

[ๅ‰] ๋ฉ”ํƒ€๋ฒ„์Šค ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

[็พ] ํŒ๊ต์—์„œ ๊ณ ์—ฌ๊ฐ€๋Š” ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž

 

์ธํ„ฐ๋ทฐ ์ด๋ ฅ

๊ธฐํƒ€ ๋ฌธ์˜

  • unduck2022@gmail.com

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

37๊ฐœ โˆ™ (5์‹œ๊ฐ„ 9๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

12๊ฐœ

4.9

12๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์ •์ง„ํ˜•๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์ •์ง„ํ˜•

    ์ˆ˜๊ฐ•ํ‰ 4

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    ์ˆ˜์ •๋จ

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๋„ˆ๋ฌด ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    • Hong
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ์ •์ง„ํ˜•๋‹˜ ์ด๋ ‡๊ฒŒ ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!

  • ๊ฐœ๋ฐœ ์ž˜ํ•˜๊ณ  ์‹ถ๋‹ค...๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๊ฐœ๋ฐœ ์ž˜ํ•˜๊ณ  ์‹ถ๋‹ค...

    ์ˆ˜๊ฐ•ํ‰ 8

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    95% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๋‹ค์–‘ํ•œ ์ฃผ์ œ๋กœ ์žฌ๋ฏธ์žˆ๊ฒŒ ์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋„์›€์ด ๋˜์—ˆ๋„ค์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • Hong
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐœ๋ฐœ ์ž˜ํ•˜๊ณ  ์‹ถ๋‹ค๋‹˜ ์ข‹์€ ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!! ์•ž์œผ๋กœ ๋” ์ข‹์€ ๊ฐ•์˜๋กœ ์ฐพ์•„ ๋ต™๋„๋ก ํ• ๊ฒŒ์š”!! ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!!

  • Hoos๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    Hoos

    ์ˆ˜๊ฐ•ํ‰ 10

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    97% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    Kotlin๋„ ์•Œ๊ณ  ์‹ถ๊ณ  Coroutine๋„ ์•Œ๊ณ  ์‹ถ๋‹ค?? ๊ทธ๋ƒฅ ์ด๊ฑธ ์ฐธ๊ณ ํ•ด๊ฐ€๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋ฉด ๊ฐ€์žฅ ์ข‹์€ ํ•™์Šต ๋ฐฉ๋ฒ•์ด ์•„๋‹๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • Hong
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” Hoos๋‹˜ ์ข‹์€ ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!! ์•ž์œผ๋กœ ๋” ์ข‹์€ ๊ฐ•์˜๋กœ ์ฐพ์•„ ๋ต™๋„๋ก ํ• ๊ฒŒ์š”!! ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!!

  • ๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋ฏธ๋ž˜ 1์ธ ๊ฐœ๋ฐœ์ž

    ์ˆ˜๊ฐ•ํ‰ 8

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

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

    • devHand๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      devHand

      ์ˆ˜๊ฐ•ํ‰ 10

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์žฌ๋ฏธ์žˆ๊ฒŒ ์ž˜ ๋“ฃ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ฐ˜์ด์ง€๋งŒ ๊ฝค๋‚˜ ์œ ์ตํ•œ ๊ฐ•์˜๋„ค์š”.

      • Hong
        ์ง€์‹๊ณต์œ ์ž

        ์•ˆ๋…•ํ•˜์„ธ์š” devHand๋‹˜ ํ‰ ๋‚จ๊ฒจ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์•ž์œผ๋กœ ๋” ์ข‹์€ ๊ฐ•์˜๋กœ ์ฐพ์•„๋ต™๋„๋ก ํ• ๊ฒŒ์š”!

    Hong๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

    ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    ๋น„์Šทํ•œ ๊ฐ•์˜

    ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    ์—ฐ๊ด€ ๋กœ๋“œ๋งต

    ๊ฐ•์˜๊ฐ€ ํฌํ•จ๋œ ๋กœ๋“œ๋งต์œผ๋กœ ํ•™์Šตํ•ด ๋ณด์„ธ์š”!