์ด๋ฒ์ ์ปดํจํฐ๋ฅผ ๋ง์ถ๋ฉด์ ๊ทธ๋ํฝ์นด๋ RTX 2060 super๋ฅผ ๊ตฌ๋งคํ์ต๋๋ค. ์ ๋ง์ ๋ฅ๋ฌ๋ ์๋ฒ๋ฅผ ๋ง๋ค์ด ๋์ผ๋ฉด ์ด๋์๋ ์ผ์ธ์์ ๋ ธํธ๋ถ์ผ๋ก ๊ฐ๋ณ๊ฒ ์์ ํ ์ ์์ต๋๋ค. ( ์ผ๋ง๋ ์์ ์ ํ ์ง ๋ชจ๋ฅด์ง๋ง, ์๋ ๊ฒ๋ณด๋จ ๋์ ๊ฒ ๊ฐ์ต๋๋ค. )
์ฒ์ฒํ ๋ฐ๋ผ์ค์๋ฉด ๋๊ตฌ๋ ๊ฐ๋จํ ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์ด์ฉํด ์๋ฒ๋ฅผ ์ด ์ ์์ต๋๋ค.
~ 1. ANACONDA ์ค์น ~
์ฐ์ , ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์ค์นํฉ๋๋ค.
https://www.anaconda.com/products/individual
Anaconda๋ฅผ ์ค์นํฉ๋๋ค. 2021.07.14 ๊ธฐ์ค Python3.8๊ณผ ์ฃผํผํฐ ๋ ธํธ๋ถ์ด ์ค์น๋ฉ๋๋ค.
( ๋ฐ๋ก ๊ฒฝ๋ก๋ ์ค์ ํ ํ์๋ ์๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ณธ ๊ฒฝ๋ก ์ค์ ์ผ๋ก ์ค์นํฉ๋๋ค. )
์ค์น๋ฅผ ์๋ฃํ๋ฉด.
์ ๊ทธ๋ฆผ์ฒ๋ผ ์ค์น๋ ํ์ผ๋ค์ ํ์ธํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฒ์ Anaconda Prompt (anaconda3) ์ Jupyter Notebook (anaconda3)์ ๋๋ค.
~ 2. ์ฃผํผํฐ ๋ ธํธ๋ถ ์ค์ ์ ์ํ ํ์ผ ์์ฑ ~
Anaconda Prompt๋ฅผ ๋ค์ด๊ฐ์ ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ๋๋ค.
jupyter notebook --generate-config
์ ๋ช ๋ น์ด๋ ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์ค์ ํ์ผ(. py)์ ์์ฑํ๋ ์๋ฏธ์ ๋๋ค.
Window User -> C:/Users/"์ฌ์ฉ์ ์ด๋ฆ"/.jupyter
Linux User -> /home/"์ฌ์ฉ์ ์ด๋ฆ"/.jupyter
์ ๋ ์ฃผํผํฐ ๋ ธํธ๋ถ ํ ๋ง, ํ์ฅ ํ๋ก๊ทธ๋จ์ ๊ฑด๋๋ ธ๊ธฐ ๋๋ฌธ์ ๋ง์ ํ์ผ๋ค์ด ์์ง๋ง, ์ฒ์ ์ค์ ํ์๋ ๋ถ๋ค๊ป์๋jupyter_notebook_config.py๋ง ์์ต๋๋ค.
์ ์ฒ๋ผ ์ฝ๋ ํธ์ง๊ธฐ๊ฐ ์์ผ์๋ฉด ๋ฉ๋ชจ์ฅ์ผ๋ก ๋ค์ด๊ฐ์ ์์ ํ์๋ฉด ๋ฉ๋๋ค.
์ฝ๋๋ฅผ ํธ์งํ๊ธฐ ์ ์, ์์ ์ ๋ก์ปฌ(private) IP์ ํฌํธํฌ์๋ฉ์ ์ํ ํฌํธ ๋ฒํธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
~ 3. IP ํ์ธ, ๊ณ ์ , ํฌํธํฌ์๋ฉ ~
3.1. IP ํ์ธ, ๊ณ ์ (๊ณต์ธ IP, ์ฌ์ค IP)
์ฐ์ , ๊ฐ๋จํ IP์ ์ข ๋ฅ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ธ๋ถ์์ ๋ฐ์ ์ค๋ ๊ณต์ธ(Public) IP (์ธ๋ถ), ๊ณต์ ๊ธฐ์์ ๋๋ ์ฃผ๋ ๋ก์ปฌ(private) IP (๋ด๋ถ)๊ฐ ์์ต๋๋ค.
1. ๊ณต์ธ IP
๊ณต์ธ IP๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฐ๋จํ ๋ค์ด๋ฒ์์ ๋ด ์์ดํผ ๋ณด๊ธฐ๋ฅผ ๊ฒ์ํ์๋ฉด ์์ ์ ๊ณต์ธ IP๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ, 192.168.0.1( ๊ณต์ ๊ธฐ ๊ด๋ฆฌ์ ๋ชจ๋ )๋ฅผ url์ ํตํด ๋ค์ด๊ฐ๋ค. ๋ก๊ทธ์ธ ์ฐฝ์ด ๋จ๋๋ฐ, ์ฒ์ ์์ ์ด ์ค์ ํ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ค. ( ์์์ ์, ๋ฆฌ์ )
์ ๋ ipTIME์ ์ฌ์ฉํฉ๋๋ค. ( ๊ณต์ ๊ธฐ๋ง๋ค ํ๊ฒฝ์ด ๋ค๋ฆ ๋๋ค. ) ipTIME์ ์ธ๋ถ IP ์ฃผ์๋ผ๊ณ ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.
๊ณต์ธ IP๋ฅผ ์์์ผ ํ๋ ์ด์ ๋ ๋์ค์ ์ธ๋ถ์์ ์ฃผํผํฐ ๋ ธํธ๋ถ ์๋ฒ๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
( ๊ฐ๋จํ, ์ ๊ณต์ธ IP๋ฅผ ์ฐ๋ฆฌ๊ฐ ๊ตฌ๋งคํ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๊ฐ ๋ค์ด๋ฒ์์ ํ์ธํ ๊ณต์ธ IP๋ ์ ์ผ๋ฌด์ดํฉ๋๋ค. ํ์ง๋ง, ์ฌ์ค IP๋ ๊ณต์ ๊ธฐ๊ฐ ๋๋ค ํ๊ฒ( ํน์ ์ฐ๋ฆฌ๊ฐ ์ง์ ) ๋ง๋ค์ด ์ฃผ๊ธฐ ๋๋ฌธ์, ๊ต์ฅํ ๋ง์ต๋๋ค. )
2. ์ฌ์ค IP
์ฝ๊ฒ ์ค๋ช ํ์๋ฉด, 192.168.0.xx์ ๊ท์น์ ๊ฐ์ง๋ IP๋ ๋ชจ๋ ์ฌ์ค IP์ ๋๋ค. cmd์์ ipconfig๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
ํน์, ๊ณต์ ๊ธฐ ๊ด๋ฆฌ์ ๋ชจ๋๋ฅผ ๋ค์ด๊ฐ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
โ ๋ณดํต ์ฌ์ค IP๋ ์๋์ผ๋ก ํ ๋น๋์ด IP๊ฐ ๋ฐ์ค 1์ IP์ฃผ์ ๋์ฌ ๋ฒ์ ์์์ ์์๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ค๋์ cmd์์ ํ์ธํ ๊ฒ์ฒ๋ผ 192.168.0.15์ด์ง๋ง, ๋ด์ผ์ 192.168.0.16์ผ๋ก IP๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
โก ๋ฐ์ค 2์ ์ฌ์ฉ ์ค์ธ IP ์ฃผ์ ์ ๋ณด๋ฅผ ๋ณด์๋ฉด, ํ์ฌ ์์ดํ์ด ๋ฑ ๊ณต์ ๊ธฐ์ ๋ฌผ๋ ค ์๋ ๊ธฐ๊ธฐ๋ค์ ํ์ธํ ์ ์์ต๋๋ค. ์ ๋ 192.168.0.15๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
โข ํ์ฌ ์ฌ์ฉ ์ค์ธ IP๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ผ๋ก IP, mac ์ฃผ์๊น์ง ์ ๋ ฅ๋๋ ์ค๋ช ์ ์์ ์ด ๊ตฌ๋ณํ ์ ์๊ฒ ์ ๊ณ ์๋ ๋ฑ๋กํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐ์ค 3์์์ฒ๋ผ ๋ฆฌ์คํธ์ ์ ์ฅ๋์ด ๊ณ ์ ๋ฉ๋๋ค.
์ฝ๊ฐ์ ์ดํด๋ฅผ ์ํด ํ๋ธ๋ฆฟ์ผ๋ก ์ ํฌ ์ง ๋คํธ์ํฌ ์ํ๋ฅผ ๊ทธ๋ ค ๋ดค์ต๋๋ค.
์ฐ๋ฆฌ๋ค์ด ์ ๊ทผํ๊ณ ์ ํ๋ ์๋ฒ๋ 50.0.x.x์ 192.168.0.15 ์๋ฒ์ ๋๋ค. ํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ์ IP๋ฅผ ์น๊ณ ๋ค์ด๊ฐ ๋, ์ ๋ฐ ์์ผ๋ก ์ ๋ ฅํ๋์? ์๋๋๋ค.
๊ทธ๋์ ๋์จ ๊ฒ์ด ํฌํธ ๋ฒํธ์ ๋๋ค. ( ์ ํํ๋ ์ด ๋๋ฌธ์ ๋์จ ๊ฒ์ ์๋๋๋ค. IP๋ ๋คํธ์ํฌ(3) ๊ณ์ธต, Port ๋ฒํธ๋ ์ ์ก(4) ๊ณ์ธต์ผ๋ก ๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ์์ธํ ์์์ผ ํฉ๋๋ค. ํต์ ์ ๊ณต์๊ฐ ์๋๋ผ๋ฉด, ์ด ์ ๋๋ง ์ดํดํด๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐ์ด ๋ญ๋๋ค. ) ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์ ํ๋ 50.0.x.x์ 192.168.0.15 ๋์ 50.0.x.x:{port number}๋ฅผ ์ ๋ ฅํฉ๋๋ค. (๋ํ์ ์ผ๋ก ํฌํธ๋ฒํธ http๋ 80, ssh๋ 22, ์ฃผํผํฐ ๋ ธํธ๋ถ ์๋ฒ์ ๋ํดํธ ํฌํธ๋ฒํธ๋ 8888์ ๋๋ค. ์ฃผํผํฐ ๋ ธํธ๋ถ์ ์๋ฌด ์ค์ ์์ด ์คํํ๋ฉด, localhost:8888๋ก ๋ค์ด๊ฐ๊ฒ ๋ฉ๋๋ค. )
8888๋ก ๊ทธ๋๋ก ์ฌ์ฉํด๋ ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ค์ ๋ณด์ ์ ๊ณต์ด ์๋์ง๋ง, ์ ์ด๋ ํฌํธ๋ฒํธ๋ฅผ ๋ค๋ฅด๊ฒ ์จ์ ๊ทธ๋๋ง ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ ์์ ์ ๋๋ค.
3.2. ํฌํธํฌ์๋ฉ
ํฌํธํฌ์๋ฉ์ ๊ณต์ ๊ธฐ์๊ฒ ๋ฌธ์ ์ด์ด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฃผํผํฐ ๋ ธํธ๋ถ ๊ธฐ๋ณธ ํฌํธ๋ฒํธ๊ฐ 8888์ธ ๊ฒ์ ์์ง๋ง, ๊ณต์ ๊ธฐ๋ ์์ง ๋ชปํฉ๋๋ค. ์ด๋ฅผ ๊ณต์ ๊ธฐ์๊ฒ ์ง์ ํ๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ 50.0.x.x์์ ํฌํธ๋ฒํธ 8888์ ๋ง๋ฌ๋ค๋ฉด, ์ฌ๊ธฐ๋ก ๊ฐ์ธ์. ์ ๋๋ก ์ดํดํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ ์ฃผํผํฐ ๋ ธํธ๋ถ ํฌํธ ๋ฒํธ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ง ์๊ณ jupyter_notebook_config.py์์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ค๋๋ค. ํฌํธ๋ฒํธ๋ 0๋ถํฐ 65535๊น์ง ๋ฒ์(16bit = 2^16)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์์ ์ธ๊ธํ๋ฏ์ด, HTTP๋ 80, SSH๋ 22 ๋ฑ ์ด๋ฏธ ์ฌ์ฉ๋๊ณ ํฌํธ ๋ฒํธ๊ฐ ์์ต๋๋ค. Well Known Port Number์ด๋ผ๊ณ ํฉ๋๋ค. ์ด ์ซ์๋ค์ ํผํด ์ ๋ 3333์ด๋ผ๋ ํฌํธ ๋ฒํธ๋ฅผ ์ฃผํผํฐ ๋ ธํธ๋ถ ํฌํธ ๋ฒํธ๋ก ์ฌ์ฉํ๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ์ซ์๋ฅผ ์ฐ๊ณ ์ถ์ผ์ ๋ถ์ ์ ์ ์์ฌํญ์ ํผํด ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
์ ์ ๊ฐ์ ipTIME ๊ณต์ ๊ธฐ๋ผ๋ฉด, ์ ๋ฅผ ๋ฐ๋ผ ํ์๋ฉด ๋ฉ๋๋ค. ํ๋์ฉ ์ค๋ช ํด๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ท์น ์ด๋ฆ : ์ฌ์ฉ์ ๋ง์๋๋ก
IP ์ฃผ์ : ์์ ์ด ๋ฅ๋ฌ๋ ์๋ฒ๋ก ๋ง๋ค๊ณ ์ ํ๋ ๋ก์ปฌ IP
ํ๋กํ ์ฝ : TCP
์ธ๋ถํฌํธ : 7777 ( ๊ทธ๋ฆผ์์ ์ค๋ช ํ๊ฒ ์ต๋๋ค. )
๋ด๋ถํฌํธ : 3333 ( ์ฃผํผํฐ ๋ ธํธ๋ถ ์๋ฒ ํฌํธ ๋ฒํธ)
์ด๋ ต๊ฒ ์๊ฐํ์ค ํ์ ์์ต๋๋ค.
50.0.x.x:7777๋ก ์ ๊ทผํ๋ค๋ฉด...
"7777ํฌํธ๋ 3333ํฌํธ๋ฅผ ๊ฐ๋ฆฌํค๋๊ตฌ๋."
50.0.x.x:3333์ผ๋ก ๊ธธ์ ์๋ดํด์ค๋๋ค. 3333ํฌํธ๋ 192.168.0.15์ ์ฃผํผํฐ ๋ ธํธ๋ถ ์๋ฒ๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
๋ง์ฝ ๋๋ 8888 ๊ทธ๋๋ก ์ฌ์ฉํ๊ฒ ๋ค ์ถ์ผ์๋ฉด, ์ธ๋ถํฌํธ 8888, ๋ด๋ถํฌํธ 8888 ๊ทธ๋๋ก ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. ์์งํ ๋ฌธ์ ๋์ง ์์ต๋๋ค. ๋๊ฐ ๊ฐ์ธ ์๋ฒ๋ฅผ ํธ๊ฒ ์ต๋๊น? ํธ์ด๊ฐ ๊ฒ๋ ์์ผ๋...
~ 4. ์ฃผํผํฐ ๋ ธํธ๋ถ ์ค์ ~
Anaconda Prompt์์ jupyter_notebook_config.py๋ฅผ ์์์ ์์ฑํ์ต๋๋ค. ๊ฒฝ๋ก๋ ์๋์ ๊ฐ์ด
Window User -> C:/Users/"์ฌ์ฉ์ ์ด๋ฆ"/.jupyter
Linux User -> /home/"์ฌ์ฉ์ ์ด๋ฆ"/.jupyter
jupyter_notebook_config.py๋ฅผ ๋ฉ๋ชจ์ฅ ํน์ ์ฝ๋ ํธ์ง๊ธฐ๋ก ์ด์ด ์ค๋๋ค. ์๋ง ์ ์ ์๋ ์ฝ๋๋ค์ด ์์ฑ๋์์ต๋๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ด ์ฃผ์์ด๊ธฐ ๋๋ฌธ์ ์ค์ ์ฝ๋๋ ์ผ๋ง๋์ง ์์ผ๋ ๊ฑฑ์ ์ํ์ ๋ ๋ฉ๋๋ค. ( ํ์ด์ฌ ์ฃผ์์ #์ ๋๋ค. ์ฃผ์์ ์ค๋ช ์ ๋๋ค. )
4.1. ์ฃผํผํฐ ๋ ธํธ๋ถ ํฌํธ๋ฒํธ ์ค์
## The port the notebook server will listen on (env: JUPYTER_PORT).
# Default: 8888
c.NotebookApp.port = 3333 # ์์ ์ด ์ํ๋ ํฌํธ ๋ฒํธ
4.2. ์ฃผํผํฐ ๋ ธํธ๋ถ ๋น๋ฐ๋ฒํธ ์ค์
## Hashed password to use for web authentication.
#
# To generate, type in a python/IPython shell:
#
# from notebook.auth import passwd
# passwd()
#
# The string should be of the form type:salt:hashed-password.
# Default: ''
# c.NotebookApp.password = password
์๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ฐ์ด ์ฃผ์์ฒ๋ฆฌ๊ฐ ๋์์ ๊ฒ์ ๋๋ค. ์๋์ ๊ฐ์ด ์ฃผ์์ ํด์ ํ๊ณ ์์ ์ด ์ํ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํ์๋ฉด ๋ฉ๋๋ค. jupyter_notebook_config.py์ด ํ์ด์ฌ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค.
## Hashed password to use for web authentication.
#
# To generate, type in a python/IPython shell:
#
from notebook.auth import passwd
password = passwd('์์ ์ด ์ํ๋ ๋น๋ฐ๋ฒํธ') # ๊ธฐ๋ณธ์ผ๋ก argon2๋ฅผ ์ฌ์ฉ
# password = passwd('์์ ์ด ์ํ๋ ๋น๋ฐ๋ฒํธ', 'sha256') # option : 'sha1', 'sha256'...
#
# The string should be of the form type:salt:hashed-password.
# Default: ''
c.NotebookApp.password = password
4.3. ์ฃผํผํฐ ๋ ธํธ๋ถ IP ์ค์
## The IP address the notebook server will listen on.
# Default: 'localhost'
c.NotebookApp.ip = '192.168.0.15'
4.4. ์ฃผํผํฐ ๋ ธํธ๋ถ ์ธ๋ถ ์ ์ ํ์ฉ ์ค์
# Takes precedence over allow_origin_pat.
# Default: ''
c.NotebookApp.allow_origin = '*'
4.5. ์ฃผํผํฐ ๋ ธํธ๋ถ ์์์ ๋ธ๋ผ์ฐ์ ์๋ ์คํ ์ํจ
## Whether to open in a browser after starting. The specific browser used is
# platform dependent and determined by the python standard library `webbrowser`
# module, unless it is overridden using the --browser (NotebookApp.browser)
# configuration option.
# Default: True
c.NotebookApp.open_browser = False
4.6. ์ฃผํผํฐ ๋ ธํธ๋ถ ์์ ๊ฒฝ๋ก ์ค์
์์ธ๋ก ์์ ๊ฒฝ๋ก ์ค์ ํ๋ ๊ฒ์ด ๋ณต๋ณ์ด์์ต๋๋ค. ์ฝ๋ ์์์ ์์ ๊ฒฝ๋ก๋ฅผ ์ ๋๋ก ์ ๋ ฅํ๋๋ผ๋ Home ๊ฒฝ๋ก๋ก ์ด๋ํด๋ฒ๋ฆฝ๋๋ค. ์๋ ๋ธ๋ก๊ทธ ๋ถ๊ป์ ์น์ ํ๊ฒ ๋ฌธ์ ์ ์ ์๋ ค์ฃผ์๋ ๊ทธ๋๋ก ๋ณด๊ณ ๋ฐ๋ผ ํ์๋ฉด ๋ฉ๋๋ค.
https://wonderbout.tistory.com/50
## The directory to use for notebooks and kernels.
# Default: ''
c.NotebookApp.notebook_dir = '์์ ์ด ์ํ๋ ๊ฒฝ๋ก'
~ 5. ๋ง๋ฌด๋ฆฌ ~
๋คํธ์ํฌ ์ค์ ๊ณผ ์ฃผํผํฐ ๋ ธํธ๋ถ ์ค์ ์ ๋ชจ๋ ๋ง์ณค์ต๋๋ค. ํ ๋ฒ ํ ์คํธํ๊ฒ ์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์ธ๋ถ IP:ํฌํธ๋ฒํธ์ฒ๋ผ ์ ๋ ฅํด์ ๋ค์ด๊ฐ์๋ฉด ๋ฉ๋๋ค.
ex) 50.0.x.x:7777
๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
์ฃผํผํฐ ๋ ธํธ๋ถ์ผ๋ก ์ธ๋ถ ์ ์์ ์ฑ๊ณตํ์ต๋๋ค. ๋ค์ ๊ธ์ ์ฃผํผํฐ ํ ๋ง, ํ์ฅ ํ๋ก๊ทธ๋จ, DDNS, WoL์ ๋๋ค.
https://coding-yoon.tistory.com/153