CodeSpaces ๋ ํ์ฌ ๋ฒ ํ ๋ฒ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ณง ์ถ์๋ ์์ ์ ๋๋ค(์ ํํ ์๊ธฐ๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค). Repo2Docker์ ์ด ์์ ์ ํด๋น ํ๊ฒฝ์์ Jupyter ๋ ธํธ๋ถ์ ์ฝ๊ฒ ์์ํ ์ ์๋๋ก ํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์ฐธ๊ณ : ์ฝ๋์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด Jupyter ๋ ธํธ๋ถ๊ณผ ๊ฐ์ ์์์ ์ฑ์ ๋ค๋ฅธ ํฌํธ์์ ์์ํ๊ณ ํด๋น ํฌํธ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ณด์ผ ๊ฒ์ ๋๋ค. https://www.youtube.com/watch?v=Hpt1Xs96C74&feature=youtu.be
์ถ์ : CodeSpaces ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/jupyterhub/repo2docker-action/blob/master/.devcontainer/devcontainer.json
์ฐธ์กฐ: @betatim @choldgraf
์ด๊ฒ์ ๋ ์ด๋์ ์ฌ๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฝ๋ ๊ณต๊ฐ์ ๋ฐ์ธ๋์ ์ด๋ป๊ฒ ๋ค๋ฆ ๋๊น? vscode ๋๋ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ง ํ์ฉํฉ๋๊น?
์ข์ ์ง๋ฌธ Codespaces๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ Dockerized ์น ์์ฉ ํ๋ก๊ทธ๋จ์ VSCode ์ธ์ ๋ชจ๋ ํฌํธ์์ ์คํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ด๊ฐ ์ ํธํ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ Jupyter Lab์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค ๐
๋๋ Binder๊ฐ ํ์ฌ CodeSpaces์ ๋ฌด๋ฃ ๋ฒ์ ๋ณด๋ค ๋ ๊ด๋ํ ์ปดํจํ ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์๊ฐ - ๋๋ repo2docker๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ ์ํ๊ณ์ ํ๋ฌ๊ทธ์ธํ ์ ์๋์ง, ๋ฐ์ธ๋ ์ธ๋ถ์ ์ํฌํ๋ก์์ ์ฌ์ฉ๋ ์ ์๋์ง ๋ณด์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋์คํ์ด์ค!
์ฆ, codespaces๋ "vendor products" ๋ฒ์ฃผ์ ๋ ๋ง์ด ์ํ๊ณ ์ผ๋ฐ์ ์ผ๋ก ๋ ์ค ํ๋๋ฅผ ์ ํธํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์: codespaces / gitpod / colab / cocalc / codeocean / ๋ฑ). ์ฆ, codespaces๊ฐ repo2docker์ ๊ฐ์ ๊ฐ๋ฐฉํ ํ์ค๊ณผ ํจ๊ป ์๋ํ๋ ๊ฒ์ด ๋งค์ฐ ๊น๋ํ๋ฏ๋ก ๊ฐ์กฐ ํ์ํ๊ณ ์ธ์ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ ํ์ ์ด๋ป๊ฒ ๊ฑธ์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค! ๐ค๐ค๐ค
ํฅ๋ฏธ๋ก์ด ์ ์ ๋๋ค! ๋ํ repo2docker๋ฅผ ์ฌ์ฉํ์ฌ ์ ํํ ํด๋ผ์ฐ๋์์ ๋ ธํธ๋ถ VM์ ์์ํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์์์ต๋๋ค. ์ด๋ GPU์ ๊ฐ์ ์ปดํจํ ์ด๋ mybinder.org๊ฐ ์ ์ ํ์ง ์์ ์ ์๋ ๊ธฐํ ๊ณผ์คํ ์ํฌ๋ก๋์ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ ์ธํ๋ผ๊ฐ ๋ฌด๋ฃ๊ฐ ์๋๋ฏ๋ก ํด๋ผ์ฐ๋ ๊ณต๊ธ์(AWS, GCP, Azure)์ ํตํฉํ๋ ์ด ๊ณต๊ธ์ ์ฒด ์์ญ์์๋ ์ค์ผ์ดํธ๋ฅผ ํ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฆ, ์ค์ฉ์ ์ธ ๋ฌธ์ ๋ก ์ฌ๋๋ค์ ์๋ฅผ ๋ค์ด @hugobown ์ด ํ์์์ Dask ๊ต์ก์ ์ํํ๋ ๋์ ์ฌ์ฉํ ๊ด์ฌ ์ ํฅ๋ฏธ๋กญ๊ฒ ์๊ฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ ๋ง์ ์๊ฐ๊ณผ ์๊ฒฌ์ ๊ตฌํ๊ธฐ ์ํด ๋ด๋ก ์ค๋ ๋๋ฅผ ์ด์์ต๋๋ค.
์ค "XXX์ ์ฐ๊ฒฐ๋ repo2docker"์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ๊ฐ์กฐํ ๋งํ ๋ฉ์ง ์ฌ๋ก๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํฉ์ ์ฌ : ๋นจ๋ฆฌ (์ฐ๋ฆฌ๋ ๋ํ ์ ์ฌํ ์์ด๋์ด์ ์ฃผ์์ ์
์ง ํ ์ ๋ง ๋ฉ์ง ๊ฑฐ๋ผ๊ณ ๋น์ ์ด repo2docker๋ก ๋ง๋ค ์์๋ ํ๊ฒฝ์ ์ํด ์ ๊ณต๋ฉ๋๋ค ํด๋ผ์ฐ๋,์ ๊ณ ์ ํ์๊ธฐ ์ฉ๊ธฐ๋ฅผ ํ์ ํ๋ ์ฉ๋ the littlest jupyterhub
๋น์ ๋๋ฌธ์ repo2docker ํ์ผ๋ก ์ ์๋ ํ๊ฒฝ์ ์ฌ์ฉํ์ฌ ๋น ๋ฅธ ํ๋ธ๋ฅผ ๋ง๋ค ์ ์์)
์ค๊ธฐ์ ์ผ๋ก๋ ํน์ ๊ณต๊ธ์ ์ฒด์ ์ํ๊ณ์์ repo2docker๋ฅผ ๊ฐ์กฐ ํ์ํ๋ ๊ฒ์ด ๋ ํธํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ฅธ ๋ง์ ์ํ๊ณ(์ผ๋ถ ๊ณต๊ธ์ ์ฒด, ์ผ๋ถ ๊ณต๊ธ์ ์ฒด ์๋)์์๋ repo2docker ์ฌ์ฉ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค๋ฉด
์ด ๋ฌธ์ ์์ ์์ด๋์ด ๋ฑ์ ์์งํ๋ ๋ฐ ๋์์ด ๋ ๋๋ถ์ ์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค.