์ฝํ๋ฆฐ ์ค์ฝํ ํจ์ ๋น๊ต: let, run, with, apply, also
let, run, with, apply, also์ ์์ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฐฉ์๊ณผ ๋ฐํ๊ฐ ์ฐจ์ด๋ฅผ ์ค๋ฌด ์์๋ก ๋น๊ตํ๊ณ , ์ธ์ ์ด๋ค ํจ์๋ฅผ ์ ํํด์ผ ํ๋์ง ๊ธฐ์ค์ ์ ๋ฆฌํ๋ค.
let, run, with, apply, also์ ์์ ๊ฐ์ฒด ์ฐธ์กฐ ๋ฐฉ์๊ณผ ๋ฐํ๊ฐ ์ฐจ์ด๋ฅผ ์ค๋ฌด ์์๋ก ๋น๊ตํ๊ณ , ์ธ์ ์ด๋ค ํจ์๋ฅผ ์ ํํด์ผ ํ๋์ง ๊ธฐ์ค์ ์ ๋ฆฌํ๋ค.
์์ธ ๋ถ๋ฅ, ์ฝ๋ฃจํด ํ์์์, ์ฌ์๋ ์ค๊ณ, ๋จ์ ํ ์คํธ, runCatching, lazy๋ฅผ ํ์ฉํ ์ฝํ๋ฆฐ ์คํจ ์ฒ๋ฆฌ ์ ๋ต์ ์ ๋ฆฌํ๋ค.
์ฝ๋ฃจํด์ ๋์ ์๋ฆฌ, CoroutineScope, Dispatcher, async/await, ๊ตฌ์กฐํ๋ ๋์์ฑ, Flow๊น์ง ์ฝํ๋ฆฐ ์ฝ๋ฃจํด์ ํต์ฌ ๊ฐ๋ ๊ณผ ์ค์ ํจํด์ ์ ๋ฆฌํ๋ค.
๋ ์์ ์ฑ, ์ค์ฝํ ํจ์, ์ปฌ๋ ์ ์ฐ์ฐ, ๋๋ค, ๊ณ ์ฐจ ํจ์, inline ํค์๋๊น์ง ์ฝํ๋ฆฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํต์ฌ ํจํด์ ์ ๋ฆฌํ๋ค.
์์ฑ์ ๊ฒ์ฆ, ์ ๊ทผ ์ ์ด, ์ธํฐํ์ด์ค, sealed class, ์ ๋ค๋ฆญ, by ์์, enum/value class๋ฅผ ํ์ฉํด ์์ ํ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.