๐Ÿ“š Study

How not to do code reviews - Aviator BlogMany code review processes become bottleneck for the engineering teams. Instead of finding bugs, it hinders progress leading to poor developer experience.www.aviator.coHow not to do code reviews์ „ํ†ต์ ์œผ๋กœ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋Š” ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋™๋ฃŒ์˜ ์ฝ”๋“œ๋ฅผ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๊ณ  ๊ฐ€๋…์„ฑ, ํšจ์œจ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉด๋ฐ€ํžˆ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ–ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ํŒ€์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์œ ๋ฐœํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ ํ•ฉํ•œ ๋ฆฌ๋ทฐ์–ด๋“ค์ด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ์„ ๊ฒ€ํ† ํ•  ์—ฌ์œ ๊ฐ€ ํ•ญ์ƒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. C..
You probably don’t need microservicesMicroservices is a great architectural style that helps to scale the system and the organization. But probably you don’t need microservices...www.thrownewexception.com๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ์‹œ์Šคํ…œ๊ณผ ๊ตฌ์กฐ๋ฅผ ํ™•์žฅํ•˜๋Š”๋ฐ์— ๋„์›€์ด ๋˜๋Š” ํ›Œ๋ฅญํ•œ ๋ฐฉ์‹์œผ๋กœ ์ตœ๊ทผ ๊ต‰์žฅํžˆ ์ธ๊ธฐ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค. ๋งŽ์€ ์„ฑ๊ณตํ•œ ํšŒ์‚ฌ๋“ค(๋„ทํ”Œ๋ฆญ์Šค, Spotify..)์„ ํฌํ•จํ•˜์—ฌ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ๋“ค์ด ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๊ณ„ํš์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ช‡๋ช‡ ํšŒ์‚ฌ๋“ค์€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€์ ธ์˜ค๋Š” ์ถ”๊ฐ€ ๋น„์šฉ์„ ๊ฐ„๊ณผํ•˜๊ณ  ์žˆ๋‹ค.๋ณธ๊ฒฉ์ ์œผ๋กœ ์ด์•ผ๊ธฐ ํ•˜๊ธฐ์ „..
์ฝ”๋ฃจํ‹ด ๋นŒ๋” ํ•จ์ˆ˜์ฝ”๋ฃจํ‹ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ex) `launch`, `runBlocking`…์ฝ”๋ฃจํ‹ด์„ ๋งŒ๋“ค๊ณ  ์ฝ”๋ฃจํ‹ด์„ ์ถ”์ƒํ™”ํ•œ Job ๊ฐ์ฒด ์ƒ์„ฑ → Job ๊ฐ์ฒด๋กœ ์ฝ”๋ฃจํ‹ด์˜ ์ƒํƒœ๋ฅผ ์ถ”์  ๋ฐ ์ œ์–ด Join์„ ์‚ฌ์šฉํ•œ ์ฝ”๋ฃจํ‹ด ์ˆœ์ฐจ ์ฒ˜๋ฆฌ`join()` : ๋จผ์ € ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ฝ”๋ฃจํ‹ด์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ˜ธ์ถœ๋ถ€์˜ ์ฝ”๋ฃจํ‹ด์„ ์ผ์‹œ ์ค‘๋‹จํ•˜๋Š” ํ•จ์ˆ˜๐Ÿ’ก delay ํ•จ์ˆ˜ - `Thread.sleep()` ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ธ”๋กœํ‚น๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ - `delay()` ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์Šค๋ ˆ๋“œ๋Š” ๋‹ค๋ฅธ ์ฝ”๋ฃจํ‹ด์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ŒJoin ํ•จ์ˆ˜ ์‚ฌ์šฉํ•ด ์ˆœ์ฐจ ์ฒ˜๋ฆฌํ•˜๊ธฐfun main() = runBlocking { val updateTokenJob = launch(Dispatchers.IO) ..
Coroutine Dispatcher๋ž€?Coroutine์„ ์Šค๋ ˆ๋“œ๋กœ ๋ณด๋‚ด ์‹คํ–‰์‹œํ‚ค๋Š” ์—ญํ• ์Šค๋ ˆ๋“œ / ์Šค๋ ˆ๋“œ ํ’€์„ ๊ฐ€์ง€๋ฉฐ ์ฝ”๋ฃจํ‹ด์„ ์‹คํ–‰ ์š”์ฒญํ•œ ์Šค๋ ˆ๋“œ์—์„œ ์ฝ”๋ฃจํ‹ด์ด ์‹คํ–‰๋˜๋„๋ก ํ•จ๋™์ž‘ ๋ฐฉ์‹์ž์‹ ์—๊ฒŒ ์‹คํ–‰ ์š”์ฒญ๋œ ์ฝ”๋ฃจํ‹ด์„ ์ž‘์—… ๋Œ€๊ธฐ์—ด์— ์ ์žฌํ•œ ํ›„, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์Šค๋ ˆ๋“œ๋กœ ๋ณด๋ƒ„`CoroutineDispatcher` ๊ฐ์ฒด์— ์ฝ”๋ฃจํ‹ด์˜ ์‹คํ–‰์ด ์š”์ฒญ ๋จ[CoroutineDispatcher] ์‹คํ–‰ ์š”์ฒญ ๋ฐ›์€ ์ฝ”๋ฃจํ‹ด์„ ์ž‘์—… ๋Œ€๊ธฐ์—ด์— ์ ์žฌ[CoroutineDispatcher] ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ์žˆ๋‹ค๋ฉด, ์ฝ”๋ฃจํ‹ด์„ ํ•ด๋‹น ์Šค๋ ˆ๋“œ๋กœ ๋ณด๋ƒ„์—†๋‹ค๋ฉด(๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ฝ”๋ฃจํ‹ด์„ ์‹คํ–‰์ค‘์ด๋ผ๋ฉด), ์ž‘์—… ๋Œ€๊ธฐ์—ด์—์„œ ๋Œ€๊ธฐํ•˜๋„๋ก ๋‘ ์Šค๋ ˆ๋“œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ž์œ ๋กœ์›Œ ์กŒ์„ ๋•Œ, ๋Œ€๊ธฐ์—ด์— ์žˆ๋˜ ์ฝ”๋ฃจํ‹ด์„ ์Šค๋ ˆ๋“œ๋กœ ๋ณด๋ƒ„์—ญํ• ์ฝ”๋ฃจํ‹ด์˜ ์‹คํ–‰์„..
์ ์ด
'๐Ÿ“š Study' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)