- toc {:toc}
Language Selection
๋ด๊ฐ ๊ด์ฌ ๊ฐ๋ ๋ฅ๋ฌ๋, ๋จธ์ ๋ฌ๋์๋ ์ฃผ๋ก ํ์ด์ฌ์ด ์ฌ์ฉ๋๋ค.
Github์์ Deep learning ๊ฒ์์ ๋ํ ์ฌ์ฉ ์ธ์ด ๊ฒฐ๊ณผ๋ค. Jupyter Notebook์ ์ ์ธํ๊ณ ์ดํด๋ณด๋๋ผ๋ Python์ด ๋ง์ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ Python(์ดํ ํ์ด์ฌ)์ผ๋ก ์ ํํด ํ๊ตฌํด๋ณด๊ธฐ๋ก ์ ํํ๋ค.
ํ์ด์ฌ ์ธ์ด ์ญ์ฌ
ํ์ด์ฌ์ ์ ๋ง๋ค์ด์ก์๊น?
ํ์ด์ฌ์ 1980๋ ๋ ํ๋ฐ, ๋ค๋๋๋ Centrum Wiskunde & Informatica(CWI) ๊ตญ๋ฆฝ ์ํ ์ ๋ณด๊ณผํ ์ฐ๊ตฌ์์์ ์ผํ๋ ๋ค๋๋๋ ํ๋ก๊ทธ๋๋จธ Guido van Rossum์ ์ํด ๋ง๋ค์ด์ก๋ค. Van Rossum์ CWI์์ ABC๋ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ๋ฐ์ ์ฐธ์ฌํ๋ค. ์ดํ amoeba๋ผ๋ ๋ถ์ฐ ์์คํ ์ ์ ์ํ๋ ์ผ์ ํ๋๋ฐ, ์์ฑํด์ผํ๋ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์คํฌ๋ฆฝํธ ๋๋ C ํ๋ก๊ทธ๋จ์ด์๋ค. ์ ์คํฌ๋ฆฝํธ๋ ์์ฑ ๋ฐ ์ฌ์ฉ์ด ์ฝ์ง๋ง ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ณ ๋ ํฌ๊ณ ๋ณต์กํ ํ๋ก์ ํธ์๋ ์ ํฉํ์ง ์์๊ณ , C๋ ๊ฐ๋ ฅํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ง๋ง ์์ฑํ๋ ๋ฐ ๋ ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ๊ณ ๊ฐ๊ฒฐํ์ง ์์๋ค. ๋๋ฌธ์ Van Rossum์ ์ ์คํฌ๋ฆฝํธ์ ์ฌ์ฉ ์ฉ์ด์ฑ, C ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ ฅํจ์ ๊ฒฐํฉํ ์ธ์ด๋ฅผ ๋ง๋ค๊ณ ์ ํ๊ณ , ํ์ด์ฌ์ ๋ง๋ค์๋ค.
ํ์ด์ฌ ๋ก๋๋งต
(์ถ์ฒ : https://python.land/python-tutorial)
-
1991๋ ~ - Van Rossum์ด 0.9.0 ๋ฒ์ ์ ์ถ์ํ๋ค.
- ์์, ์์ธ ์ฒ๋ฆฌ, ํจ์, ๋ฐ์ดํฐ ์ ํ์ด ์๋ ํด๋์ค
- ๋ชจ๋ ์์คํ
- ํจ์ ์ฃผ์ ์ง์
-
1994๋ ~ - ํ์ด์ฌ์ ์ฒซ ๋ฒ์งธ ์์ ๋ ๋ฒ์ 1.0 ๊ณต๊ฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ง์
- ์ค์ฒฉ ํ๋ก๊ทธ๋๋ฐ ์ง์
-
2000๋ ~ - ํ์ด์ฌ 2 ๊ณต๊ฐ
- ์ค์ฒฉ ํจ์, garbage collection ์ง์
- ๋ฐ๋ณต์, with๋ฌธ, ํจ์ ๋ฐ ํด๋์ค ๋ฐ์ฝ๋ ์ดํฐ, collections ๋ชจ๋์ ๋ํ ์ง์ ์ถ๊ฐ
-
2008๋ ~ - ํ์ด์ฌ 3 ๊ณต๊ฐ
- ์ ๋์ฝ๋ ์ง์ ๊ฐ์
- ์ค๋ฅ ๋ฐ ์์ธ ์ฒ๋ฆฌ ๊ฐ์
ํ์ด์ฌ 3๊ฐ ๊ณต๊ฐ๋๊ณ ๋ ํ ํ์ด์ฌ 2์ 3์ ๋๋ํ ๊ฐ๋ฐ๋๋ฉฐ ์ ์ง๋๋ค. ์ด๋ ํ์ด์ฌ 3 ์ฝ๋๊ฐ ํ์ด์ฌ 2 ์ฝ๋์ ํธํ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ก ์ธํด ์ ๊ทธ๋ ์ด๋์ ๋ํ ๊ฐ์ ์ด ๋จ์ด์ก๋ค. ์ด๋ฐ์๋ ํ์ด์ฌ 3๊ฐ ํ์ด์ฌ 2๋ณด๋ค ๋๋ ธ๋ค. ํ์ง๋ง ๊ณ์ํด์ ๊ฐ์ ๋๊ณ ์๋ก์ด ๊ธฐ๋ฅ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธฐ๋ฉด์ 2020๋ ํ์ด์ฌ 2๊ฐ ์ฌ๋ผ์ง๊ณ ํ์ด์ฌ 3๋ก ๋์ฒด๋์๋ค.
ํ์ด์ฌ์ ์ ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค์์ ์ฌ์ฉ๋ ๊น?
ํ์ด์ฌ์ด ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค์ ์ฌ์ฉ๋๊ธฐ ์ , ๋ฐ์ดํฐ ๋ถ์์๋ R, MATLAB ๋ฑ์ด ์ฌ์ฉ๋๋ค. R์ ์ง์ํ๋ ํต๊ณ ํจ์์ ๋ฒ์๊ฐ ์์ฃผ ๋์๊ณ ๋ฌธ๋ฒ, ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ค์ด ํต๊ณ ๋ถ์์ ์ต์ ํ ๋์ด ์์๋ค. MATLAB์ ๊ฒฝ์ฐ ์์นํด์, ์ ํธ ์ฒ๋ฆฌ ๋ฑ ๊ฐ์ง๊ณ ์๋ ์ฅ์ ์ด ๋ง์๋ค.
ํ์ง๋ง ๋ฐ์ดํฐ ๋ถ์์ ๊ฐ์ ์ ๋ ๋ 2005๋ NumPy, 2008๋ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ค๋ฉด์ Python์ ์ด์ฉํด ๊ณ ์์ค์ ์ํ์ ํจ์๋ค์ด ์ ๊ณต๋์๋ค. ์ด๋ฅผ ํตํด์ ํฐ ๋ฐ์ดํฐ์ ์ ์ด์ฉํด ๋ณต์กํ ๋ฐ์ดํฐ ๋ถ์ ์์ ์ ์ํํ๋ ์์ ์ด ์ฉ์ดํด์ก๋ค. ๋ํ, ํ์ด์ฌ์ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๊ณ , ํ๋ฐํ๊ณ ๋ฐฉ๋ํ ์ปค๋ฎค๋ํฐ, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋๋ก ์์ฉํด ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ด์ฐ๋ฌ์ง ์ ์๋ค๋ ์ ๋ฑ์ ํตํด ํ๋ฐํ๊ฒ ์์ฉํ๊ณ ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์๊ฒจ๋๋ฉด์ ํ์ด์ฌ์ ์ฌ์ฉ์ด ๋ณดํธํ๋๋ค.
ํ์ด์ฌ์ ์ฅ์ ๊ณผ ๋จ์
์ฅ์
- ์ฌ์ฉ์ ์ฉ์ดํ๋ค.
- ํ์ด์ฌ์ ๋ฌธ๋ฒ์ ์์ฃผ ๊ฐํธํ๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค.
- ๋ฐฉ๋ํ๊ณ ํ์ฑํ๋ ์ปค๋ฎค๋ํฐ๊ฐ ์์ฑ๋์ด ์๋ค.
- ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋๋ฉด์ ๊ฐ๋ ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๊พธ์คํ๊ฒ ๊ฐ๋ฐ๋๊ณ , ์ ์ง ๋ณด์๋๋ค.
- ๋ค์ฌ๋ค๋ฅํ ์ธ์ด์ด๋ค.
- ๋จ์ ๋ฐ์ดํฐ ๋ถ์, ๋ฅ๋ฌ๋๊ณผ ๊ฐ์ ๋ถ์ผ์๋ง ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋ ๋ฐ์ดํฐ ๋ถ์ ์ธ์ ํ์๋ ์ ์๋ ์์ (๋ฐ์ดํฐ ํฌ๋กค๋ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ ๋ฑ)์๋ ํ์ด์ฌ์ ์ฌ์ฉํ ์ ์๋ค.
- ์๋ฆฝ ๊ฐ๋ฅ์ฑ
- ํ์ด์ฌ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ํธํ, ํตํฉ์ด ์ฉ์ดํ๋ค๋ ์ ์์ ์ฅ์ ์ ๊ฐ๋๋ค. ํ์ด์ฌ์ด ๊ฐ์ง๊ณ ์๋ ๋ถ์กฑํ ์ ์ ๋ค๋ฅธ ์ธ์ด์ ์ฅ์ ์ ํ์ฉํ์ฌ ๋ณด์ํ ์ ์๋ค.
๋จ์
-
์๋๊ฐ ๋๋ฆฌ๋ค.

- ํน์ ์์ ์ ์ํํ๋ ์ฐ์ฐ ์๋๊ฐ ์ปดํ์ผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๋ณด๋ค ๋๋ฆฌ๋ค. ์ด๋ ํ์ด์ฌ์ด ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ด๊ณ ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํด ์คํ๋๋ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ปดํ์ผ๋ฌ๋ ์คํ ์ ์ ์ฒด ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ํ๋ฒ์ ๋ณ๊ฒฝํ๋ ์ปดํ์ผ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์คํํ๋ ๋ฐ๋ฉด ์ธํฐํ๋ฆฌํฐ๋ ์ฝ๋๋ฅผ ์คํํ ๋ ํ ์ค์ฉ ์ฝ์ด ๊ธฐ๊ณ์ด๋ก ์ ํํด ์คํ๋๋๋ก ํ๋ค. ์คํํ ๋ ํ ์ค์ฉ ์ ํํด์ผํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆฐ ๋จ์ ์ด ์๋ค.
-
๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ๋ง๋ค.
- ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์คํ๋ ๋๋ง๋ค ๊ณ์ํด์ ์ธํฐํ๋ฆฌํฐ๊ฐ ์๋ํด์ผํ๋ค. ์ด ๋, ์๋ํ๊ธฐ ์ํด์๋ ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ค์ ์ ์ฅํด์ผํ๊ณ ์ด๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ฆ๊ฐํ๋ค.
- ์ถ์ํ, ๋์ ํ์ดํ์ ํน์ง๋ค์ด ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
ํ์ด์ฌ ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
1. NumPy(Numerical Python, ๋ํ์ด)
๋ํ์ด๋ ํ์ด์ฌ์ ๊ณ ์ฑ๋ฅ ์์น๊ณ์ฐ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฒกํฐ, ํ๋ ฌ ์ฐ์ฐ, ์ํ์ ์ฐ์ฐ์ ๊ฐํธํ๊ฒ ํ ์ ์๋ ํจ์๋ค์ ์ ๊ณตํ๋ค. ๋ํ์ด๋ C์ ํฌ๋ฅผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ํ์ด์ฌ ์ฝ๋๋ณด๋ค ๋น ๋ฅธ ์ฐ์ฐ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
๋ฒกํฐ ์ฐ์ฐ๊ณผ ๋ธ๋ก๋์บ์คํ ์ ํตํด ํ๋ ฌ ์ฐ์ฐ์ ํ๋ฒ์ ์๋๋ง์ผ๋ก ์คํ๋๋๋ก ์ง์ํ๋ค. ์ด๋ฅผ ํตํด ์๋๋ฅผ ์ก๋๋ค. ํ๋ ฌ ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ์ ํ ๋์ ๋ฟ๋ง ์๋๋ผ ํธ๋ฆฌ์ ๋ณํ, ๋๋ค ๋ณ์ ์์ฑ ๋ฑ ์ฌ๋ฌ ์ํ์ ์ฐ์ฐ์ ์ง์ํ๋ค.
2. Pandas (ํ๋ค์ค)
ํ๋ค์ค๋ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฐ์ดํฐ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ , ์ ์ , ํ์, ์๊ฐํํ๋ ๊ฒ์ ๊ฐ์ ์ ๊ฐ๋๋ค.
3. Tensorflow (ํ ์ํ๋ก์ฐ), Pytorch (ํ์ดํ ์น)
-
Tensorflow๋ ๊ธฐ๊ณ ํ์ต์ ์ํด Google Brain ํ์์ ์ฐ๊ตฌ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐํ ํ ์คํ ์์ค๋ก ๊ณต๊ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Tensorflow๋ ์ด๋ฆ์ฒ๋ผ ํ ์๋ผ๋ ๋์์ด ์ฐ์ฐ๋๋ ๊ณผ์ ์ ์ผ๋ จ์ ํ๋ฆ์ผ๋ก ์ํํ ์ ์๋๋ก ์ง์ํ๋ค.
-
Pytorch๋ ํ์ด์ค๋ถ AI ์ฐ๊ตฌํ์์ ์ธ๊ณต ์ ๊ฒฝ๋ง์ ํ๋ จํ๊ธฐ ์ํด ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ธ๊ณต์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๊ตฌ์ถ, ํ์ต, ๋ฐฐํฌํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์๋๋ก ์ง์ํ๋ค.
๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ถ ์ปดํจํฐ ๋น์ , ์์ฐ์ด์ฒ๋ฆฌ, ๋ก๋ณดํฑ์ค, ์ถ์ฒ ์์คํ ๋ฑ ์ค์ง์ ์ผ๋ก ๋จธ์ ๋ฌ๋, ๋ฅ๋ฌ๋์ ๋ํ ์์ ์ ์ฌ์ฉ๋๋ ์ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Tensorflow์ Pytorch ๋ชจ๋ ์ธ๊ณต ์ ๊ฒฝ๋ง์ ๊ตฌ์ถํ๊ณ ๊ต์กํ๋๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ์ฆ๊ฐ, ์๊ฐํ, ์๋ ๋ฏธ๋ถ์ ์ง์ํ์ฌ ๋ชจ๋ธ์ ํ์ตํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ ์ค๋ค.
๊ทธ๋ผ ์ด ๋์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?
๊ฐ์ฅ ํฐ ์ฐจ์ด๋ก๋ Tensorflow๋ ์ ์ ๊ณ์ฐ ๊ทธ๋ํ, Pytorch๋ ๋์ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ด๋ค.
-
์ ์ ๊ณ์ฐ ๊ทธ๋ํ๋ ์ฒ์์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๊ฐ ์ ์ ๋ ํ ์ฌ๋ฌ ๋ฒ ์คํ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ค๋ค. ๋ฐํ์ ์ค์ ๊ทธ๋ํ๋ฅผ ์์ ํ๊ธฐ ์ด๋ ต๋ค.
- ๊ทธ๋ํ ๊ตฌ์ถ ์ ๋์ผํ ๊ทธ๋ํ๋ฅผ ๋ฐ๋ณต ์ฌ์ฉํ๋ฏ๋ก ๊ทธ๋ํ์ ๋ํ ์ต์ ํ ๋ฐ ๋ณ๋ ฌํ๋ฅผ ํ ์ ์๋ค.
- ์ต์ ํ ๊ณผ์ ์ ํตํด ์๋๊ฐ ๋๋ ค์ง ์ ์์ผ๋ ํ์ต์ด ๋ฐ๋ณต๋๋ ํ์๊ฐ ๋ง์์ง์๋ก ํจ์จ์ฑ์ด ๊ทน๋ํ ๋๋ค.
- ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ธฐ ๋๋ฌธ์ ํ์ผ๋ก ์ ์ฅํ ์ ์๊ณ ํ์ด์ฌ ์์ ์์ฑํ ์ฝ๋๋ฅผ c++์์ ๋์์ํฌ ๋ ํ์ด์ฌ์์์ ์ฝ๋์ ๋ํ ์์ฒญ ์์ด ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์๋ค.
-
๋์ ๊ณ์ฐ ๊ทธ๋ํ๋ ๊ตฌ์กฐ์ ์ ์๊ฐ ๋ฐํ์ ์ค์ ํจ๊ป ๋์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์ฆ์์์ ์์ ํ ์ ์๋ค.
- ๋ค์ํ ๋ชจ๋ธ ์ํคํ ์ฒ๋ก ์คํํ๊ณ ๋์ ์ผ๋ก ๋ฐ์ํ๋ ์ฌ์ด์ฆ ๋ฌธ์ ๋ฅผ ์๋์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- Tensorflow๋ ๊ทธ๋ํ๋ฅผ ์ ์ํ๋ ๊ณผ์ ๊ณผ ํ๋ จํ๋ ๊ณผ์ ์ ๋ถ๋ฆฌํด์ผ ํ์ง๋ง Pytorch์ ๊ฒฝ์ฐ ํจ๊ป ์๋ํ๋๋ก ํ ์ ์์ด ๋๋ฒ๊น ์ด ํธ๋ฆฌํ๋ค.
๊ฐ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ ์ฅ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ฌ์ฉํ ํ๋ ์์ํฌ๊ฐ ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ๋ชจ๋ธ์ ๋ฐฐํฌํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ชฉ์ ์ธ ๊ฒฝ์ฐ์๋ ์ต์ ํ์ ๋ณ๋ ฌํํ ์ ์๋ Tensorflow๊ฐ, ๋ค์ํ ๋ชจ๋ธ์ ์คํํ๊ณ ์ ์ฐ์ฑ์ ๊ฐ๊ธฐ ์ํด์๋ Pytorch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
์ฐธ๊ณ ๋ฌธํ
- History of Python : https://en.wikipedia.org/wiki/History_of_Python
- Pytorch VS Tensorflow : https://dev-jm.tistory.com/4