๐ Book

TDD :: ํํ ์์ (1/2)
๋ฆฌ๋ฌ์ ๋ณด์. ์ด ์ฑ ์ 1๋ถ์์๋ ํ ์คํธ์ ์ํด ์ฃผ๋๋๋ ์ ํ์ ์ธ ๋ชจ๋ธ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ค. ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ๋ฆฌ๋ฌ์ ๋ณด์. ์ฌ๋นจ๋ฆฌ ํ ์คํธ ํ๋ ์ถ๊ฐ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ๊ณ ์๋ก ์ถ๊ฐํ ๊ฒ์ด ์คํจํ๋์ง ํ์ธ ์ฝ๋ ์์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ๊ณ ์ ๋ถ ์ฑ๊ณตํ๋์ง ํ์ธ ๋ฆฌํฉํ ๋ง์ ํตํด ์ค๋ณต ์ ๊ฑฐ ๋ค์ค ํตํ๋ฅผ ์ง์ํ๋ Money ๊ฐ์ฒด ์ด๋ฐ ๋ณด๊ณ ์๊ฐ ์๋ค๊ณ ํ์. ์ข ๋ชฉ ์ฃผ ๊ฐ๊ฒฉ ํฉ๊ณ IBM 1000 25 25000 GE 400 100 40000 ํฉ๊ณ 65000 ๋ค์ค ํตํ๋ฅผ ์ง์ํ๋ ๋ณด๊ณ ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ํตํ ๋จ์๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค. ์ข ๋ชฉ ์ฃผ ๊ฐ๊ฒฉ ํฉ๊ณ IBM 1000 25USD 25000USD Novartis 400 150CHF 60000CHF ํฉ๊ณ 65000USD ๋ ํ์จ๋ ๋ช ์ํด์ค์ผ ํ๋ค. ๊ธฐ์ค ๋ณํ ํ์จ CHF US..

TDD :: TDD ๋ฅผ ์์ํ๋ฉฐ
Clean code that works. (์๋ํ๋ ๊น๋ํ ์ฝ๋) - Ron Jeffries ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ. ๊ฐ์ ๋ง์ ์์ธ๋ค์ ์ฐ๋ฆฌ๋ฅผ ๊น๋ํ ์ฝ๋๋ก๋ถํฐ ๋ฉ์ด์ง๊ฒ ๋ง๋ค๊ณ ์๋ํ๋ ์ฝ๋์กฐ์ฐจ ๋ง๋ค๊ธฐ ์ด๋ ต๊ฒ ํ๋ ํ์ค์ด๋ค. ์ด๋ฐ ๋๋ ค์์ ๋น ์ง์ง ๋ง๊ณ ์๋ํ๋ ํ ์คํธ๋ก ๊ฐ๋ฐ์ ์ด๋์ด๊ฐ์. ์ด๋ฐ ๊ฐ๋ฐ ๋ฐฉ์์ด ๋ฐ๋ก ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ ! ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ์ค์ง ์๋ํ๋ ํ ์คํธ๊ฐ ์คํจํ ๊ฒฝ์ฐ์๋ง ์๋ก์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์ค๋ณต์ ์ ๊ฑฐํ๋ค. ์ด ๋ ๊ฐ์ง ๊ท์น๋ง์ ๋ฐ๋ฅธ๋ค. ์ ๋ ๊ฐ์ง ๊ท์น์ ์ํด ํ๋ก๊ทธ๋๋ฐ ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ฒฐ์ ๋๋ค. ๋นจ๊ฐ - ์คํจํ๋ ์์ ํ ์คํธ๋ฅผ ์์ฑํ๋ค. ์ปดํ์ผ๋ ์ ๋ ์๋ .. ์ด๋ก - ๋นจ๋ฆฌ ํ ์คํธ๊ฐ ํต๊ณผํ๊ฒ๋ ๋ง๋ ๋ค. ๋ฌด์จ ์๋ฅผ ์จ์๋ผ๋ ! ๋ฆฌํฉํ ๋ง - ์ผ๋จ ํ ์คํธ๋ฅผ ํต๊ณผ์..

์ค๋ธ์ ํธ :: Chap4 - ์ค๊ณ ํ์ง๊ณผ ํธ๋ ์ด๋์คํ
์ฑ ์ ์ฃผ๋ ์ค๊ณ๋ผ๋ ์ด๋ฆ์์ ์ ์ ์๋ฏ ์ญํ , ์ฑ ์, ํ๋ ฅ ์ค์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฑ ์ ! ์ฑ ์์ด ๊ฐ์ฒด์งํฅ ์์ฒด์ ํ์ง์ ๊ฒฐ์ ํ๋ ๊ฒ. ๊ฐ์ ์นํฅ ์ค๊ณ๋ ์ฌ๋ฐ๋ฅธ ๊ฐ์ฒด์๊ฒ ์ฌ๋ฐ๋ฅธ ์ฑ ์์ ํ ๋นํ๋ฉด์ ๋ฎ์ ๊ฒฐํฉ๋์ ๋์ ์์ง๋๋ฅผ ๊ฐ์ง ๊ตฌ์กฐ๋ฅผ ์ฐฝ์กฐํ๋ ํ๋ ! ์ค๊ณ๋ ๋ณ๊ฒฝ์ ์ํด ์กด์ฌํ๊ณ ๋ณ๊ฒฝ์๋ ์ด๋ค ์์ผ๋ก๋ ๋น์ฉ์ด ๋ฐ์ํ๋ค. ํ๋ฅญํ ์ค๊ณ๋ ํฉ๋ฆฌ์ ์ธ ๋น์ฉ ์์์ ๋ณ๊ฒฝ์ ์์ฉํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ง๋๋ ๊ฒ์ด๋ค. ๊ฒฐํฉ๋์ ์์ง๋๋ฅผ ํฉ๋ฆฌ์ ์ธ ์์ค์ผ๋ก ์ ์งํ๋ ค๋ฉด ๊ฐ์ฒด์ ์ํ๊ฐ ์๋๋ผ ๊ฐ์ฒด์ ํ๋์ ์ด์ ์ ๋ง์ถ์ด์ผ ํ๋ค. ๊ฐ์ฒด๋ฅผ ๋จ์ํ ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ๋ฐ๋ผ๋ณด๋ฉด ๊ฐ์ฒด ๋ด๋ถ ๊ตฌํ์ ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค์ ๋ ธ์ถ์ํค๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ธฐ ๋๋ฌธ์ ์ค๊ณ๊ฐ ๋ณ๊ฒฝ์ ์ทจ์ฝํด์ง ์ด๋ฒ ์ฅ์์๋ ์ํ ์๋งค ์์คํ ์ ์ฑ ์์ด ์๋ ์ํ๋ฅผ ํํํ๋ ๋ฐ์ด..

์ค๋ธ์ ํธ :: Chap3 - ์ญํ , ์ฑ ์, ํ๋ ฅ
๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์ ๊ด์ ์์ ํต์ฌ์ ์ญํ (role), ์ฑ ์(responsibility), ํ๋ ฅ(collaboration) ! ๊ฐ์ฒด์งํฅ์ ๋ณธ์ง์ ํ๋ ฅํ๋ ๊ฐ์ฒด๋ค์ ๊ณต๋์ฒด๋ฅผ ์ฐฝ์กฐ ํ๋ ๊ฒ ! ํ๋ ฅ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ์ ์ ํ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ , ์ ์ ํ ์ฑ ์์ ํ ๋น ํ๋ ๊ณผ์ ์ด ํต์ฌ์ด๋ค. ํ๋ ฅ ์ํ ์๋งค ์์คํ ๋์๋ณด๊ธฐ ๊ฐ์ฒด์งํฅ ์์น์ ๋ฐ๋ฅด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ด ํ๋ฆ์ ํน์ ํ ๊ฐ์ฒด์ ์ํด ํต์ ๋์ง ์๊ณ ๋ค์ํ ๊ฐ์ฒด๋ค ์ฌ์ด์ ๊ท ํ ์๊ฒ ๋ถ๋ฐฐ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ๊ฐ์ฒด๋ค์ด ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ํํ๋ ์ํธ์์ฉ์ ํ๋ ฅ ์ด๋ผ๊ณ ํ๋ค. ๊ฐ์ฒด๊ฐ ํ๋ ฅ์ ์ฐธ์ฌํ๊ธฐ ์ํด ์ํํ๋ ๋ก์ง์ ์ฑ ์, ๊ฐ์ฒด๋ค์ด ํ๋ ฅ ์์์ ์ํํ๋ ์ฑ ์๋ค์ด ๋ชจ์ฌ ๊ฐ์ฒด๊ฐ ์ํํ๋ ์ญํ ์ ๊ตฌ์ฑํ๋ค. ํ๋ ฅ ๋ ๊ฐ์ฒด ์ฌ์ด ํ๋ ฅ์ ํ๋์ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ..

์ค๋ธ์ ํธ :: Chap2 - ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
๊ฐ๋จํ ์จ๋ผ์ธ ์ํ ์๋งค ์์คํ ์ ํตํด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ ํด๋ณด์ ์ํ ์๋งค ์์คํ ์ฉ์ด ์ํ : ์ํ์ ๋ํ ๊ธฐ๋ณธ ์ ๋ณด (์ ๋ชฉ, ์์์๊ฐ, ๊ฐ๊ฒฉ ์ ๋ณด) ์์ : ์ค์ ๋ก ๊ด๊ฐ๋ค์ด ์ํ๋ฅผ ๊ด๋ํ๋ ์ฌ๊ฑด ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ์๋งคํ๋ ๋์์ ์ํ๊ฐ ์๋๋ผ ์์ ! ์๊ตฌ์ฌํญ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋งค์๋ ์๊ธ ํ ์ธ๋ฐ๊ธฐ ๊ฐ๋ฅ ํ ์ธ์ก์ ๊ฒฐ์ ํ๋ ๋ ๊ฐ์ง ๊ท์น ํ ์ธ ์กฐ๊ฑด ์์ ์กฐ๊ฑด : ์์ ์๋ฒ์ ์ด์ฉํด ํ ์ธ ์ฌ๋ถ ๊ฒฐ์ ์์) ์๋ฒ์ด 10์ธ ๊ฒฝ์ฐ ๋งค์ผ 10๋ฒ์งธ ์์ ์ํ ํ ์ธ ๊ธฐ๊ฐ ์กฐ๊ฑด : ์์ ์์ ์๊ฐ์ ์ด์ฉํด ํ ์ธ ์ฌ๋ถ ๊ฒฐ์ ์์) ์์์ผ, ์์์๊ฐ ์ค์ 10์, ์ข ๋ฃ์๊ฐ ์คํ 1์์ธ ๋ชจ๋ ์ํ ํ ์ธ ํ ์ธ ์ ์ฑ ๊ธ์ก ํ ์ธ ์ ์ฑ : ์๋งค ์๊ธ์์ ์ผ์ ๊ธ์ก ํ ์ธ ์์) ์ํ 9000์, ๊ธ์กํ ์ธ์ ์ฑ 800์ โ ..

์ค๋ธ์ ํธ :: Chap1 - ๊ฐ์ฒด, ์ค๊ณ
๋ฌด์ง์ฑ์ผ๋ก ๊ฐ๋ฐ๋ง ํ๋ค๊ฐ, ์ค๊ณ์ ์ค์์ฑ์ ๋๊ปด ์ดํด๋ณด๊ฒ ๋ ์ฑ . ๊ฐ์ฒด์งํฅ์ ๋ฌด์์ผ๊น? ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ์ค๊ณํ๋ค๋ ๊ฒ์ ๋ญ์ง? ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ๋ ์ด๋ค ์ฅ์ ์ ๊ฐ์ ธ๋ค์ฃผ๋๊ฐ ๋ฑ๋ฑ์ ๋ํ ํด๋ต์ ์ด ์ฑ ์์ ์ฐพ์๋ณด๋ ค๊ณ ํ๋ค ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์ ํ๋ก๊ทธ๋๋ฐ์์ ํจ๋ฌ๋ค์์ด๋, ํน์ ์๋์ ์์ฉ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ๊ณผ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ, ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ ์๋ฏธํ๋ค๊ณ ๋ณผ ์ ์๋ค. ์ด๋ค ํจ๋ฌ๋ค์์ ๋ฐ๋ฅด๋๋์ ๋ฐ๋ผ์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณด๋ ๋ฐฉ์๊ณผ ํด๊ฒฐํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค. ์ ์๋ ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์ ์ ์ค๋ช ํ๊ณ ์ ์ด ์ฑ ์ ์งํํ๋ค๊ณ ํ๊ณ ์๋ค. ๊ฐ์ฒด์งํฅ์ ๋ํ ์ด๋ ์ ๋ ์ ์ฌํ ๊ทธ๋ฆผ์ ๊ฐ์์ ๋จธ๋ฆฟ์์ ๊ทธ๋ฆฌ๊ณ , ๊ฐ์ฒด์งํฅ์ ์คํด๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ชฉ์ ! ์์ด์์ ์๋ค - ํ๋ ๋ ๋ธ๋ฃฉ์ค ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ์์ด์์ด ์๋๋ค. ์ธ์ ๋ผ๋ ๋ค๋ฅธ ..

Experience Paper : Danaus - Isolation and Efficiency of Container I/O at the Client Side of Network Storage
Middleware'21 ๋ ผ๋ฌธ ์ ์ : Giorgos Kappes, Stergios V. Anastasiadis Abstract ์ปจํ ์ด๋๋ ์๊ตฌ์ ์ธ ์คํ ๋ฆฌ์ง๋ฅผ ํตํด stateful ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฐ์ํ ๊ธฐ์ ์ด๋ค. ํ์ฉ๋ฅ ์ด ๋์ multi-tenent ํธ์คํธ์์๋ ์์คํ ์ปค๋์์ ๋ฆฌ์์ค ๊ฒฝํฉ์ผ๋ก ์ธํด ์ข ์ข ์ปจํ ์ด๋ I/O ๋ฅผ ๋นํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค. ํ์ฅ์ฑ์ ์ํด ๋ถ์ฐ ์คํ ๋ฆฌ์ง ์ํคํ ์ฒ๋ฅผ ๊ฐ์ ํ ๊ฒฝ์ฐ ๋ฆฌ์์ค ๊ณต์ ๋ ๊ฒฝ์ ํ ๋ํธ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ง์ํ๋ ํด๋ผ์ด์ธํธ ํธ์คํธ์์ ํนํ ๋ฌธ์ ๊ฐ ๋๋ค. ์์คํ ์ปค๋์ ํ์ฅ์ฑ์ ๋์ด๋ฉด ๋ฆฌ์์ค ํจ์จ์ฑ์ด ํฅ์๋ ์ ์์ง๋ง ์์คํ ์๋น์ค์ ๋ํ ๊ณต์ ํ ์ ๊ทผ์ ์ํด ์ปค๋์ ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต๋ค. ํ์ค์ ์ธ ๋์์ผ๋ก user-level ์์ ์ค..

FAASM : Lightweight Isolation for Efficient Stateful Serverless Computing
USENIX ATC'20 ๋ ผ๋ฌธ ์ ์ : Simon Shillaker, Peter Pietzuch Abstract ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ์์ฒ ๊ฐ์ ๋ณ๋ ฌ ๊ธฐ๋ฅ์ผ๋ก ๋น ๋ฅด๊ณ ์ ๋ ดํ๊ฒ ํ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋งค์ฐ ์ ํฉํ๋ค. ๊ธฐ์กด ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์ function ์ ์์ stateless ์ปจํ ์ด๋๋ก ๋ถ๋ฆฌํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ๊ณต์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋ณต์ ํ๊ณ ์ง๋ ฌํํด์ผ ํ๋ฏ๋ก ๋ถํ์ํ ์ฑ๋ฅ ๋ฐ ๋ฆฌ์์ค ๋น์ฉ์ด ์ถ๊ฐ๋๋ค. ์ฐ๋ฆฌ๋ function ๊ฐ์ ์ง์ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๋ฅผ ์ง์ํ๊ณ ๋ฆฌ์์ค ์ค๋ฒํค๋๋ฅผ ์ค์ด๋ ์๋ก์ด ๊ฒฝ๋ ๊ฒฉ๋ฆฌ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ณ ์ฑ๋ฅ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ์ํ ์๋ก์ด ๊ฒฉ๋ฆฌ ์ถ์ํ์ธ Faaslets๋ฅผ ์๊ฐํ๋ค. Faaslet ์ WebAssembl..