Python
ํ์ด์ฌ(Python)์ด๋?
- Python(์ดํ ํ์ด์ฌ)์ ์ง๊ด์ ์ด๊ณ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ผ๋ก, ํ๋ก๊ทธ๋๋จธ๋ค์ ๋ฌผ๋ก ๋น์ ๊ณต์๋ค ์ฌ์ด์์๋ ์ต๊ทผ ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๋ ์ธ์ด
- ๊ฐ๋จํ ์ ํธ๋ฆฌํฐ ์ ์์ ๋์ด ์น ํ๋ก๊ทธ๋๋ฐ๊ณผ 4์ฐจ ์ฐ์
ํ๋ช
์ ์ค์ฌ์ธ ๋จธ์ ๋ฌ๋, ์ฌ๋ฌผ ์ธํฐ๋ท(IoT)๊ณผ ๋ฐ์ดํฐ ๋ถ์ ๋ฑ ๋ค์ํ ๋ถ์ผ์ ํ์ฉ๋๋ฉฐ ์ต์ ํธ๋ ๋์ ๊ฐ์ฅ ๋ง๋ฟ์ ์๊ธฐ ๋๋ฌธ
- ํ์ด์ฌ์ 1991๋
๊ท๋ ๋ฐ ๋ก์ฌ(Guido van Rossum)์ด๋ผ๋ ํ๋ก๊ทธ๋๋จธ์ ์ํด ๊ฐ๋ฐ๋ ์ธ์ด๋ก, ๊ฐ๋
์ฑ์ด ๋๊ณ ์ฌ์ด ๋ฌธ๋ฒ ๋ํ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณด๋ค ๋น ๋ฅธ ์ต๋์ด ๊ฐ๋ฅํ๋ค๋ ํน์ง์ด ์์
- ๊ทธ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ณตํ์ง ์์ ๋น์ ๊ณต์ ์ค์ฌ์ผ๋ก ์ธ๊ธฐ๋ฅผ ์ป์ด ๋ฐ์ดํฐ ๋ถ์๊ณผ ๋ชจ๋ธ๋ง์ ๋ค๋ฃจ๋ ํต๊ณํ๋ถํฐ ๋ฅ๋ฌ๋๊ณผ ์ธ๊ณต์ง๋ฅ์ ํ์ฉํ๋ ์ํ์๊น์ง ๋ค์ํ ๋ถ์ผ์ ๋๋ฃจ ํ์ฉ๋๊ณ ์์
- ๊ฒ์๋์ ๊ธฐ์ค์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ ํธ๋๋ฅผ ์กฐ์ฌํ๋ TIOBE index์์ 2021๋
2์ ๊ธฐ์ค ํ์ด์ฌ์ ์ ํธํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด 3์(10.86%)๋ฅผ ์ฐจ์งํ์ผ๋ฉฐ, ์ค๋ผ์ผ๋ฆฌ ๋ฏธ๋์ด๊ฐ ์จ๋ผ์ธ ํ์ต ํ๋ซํผ์ ํ์ต ๊ณผ์ ๋ฐ ์ฌ์ฉ์ ์ ํธ๋๋ฅผ ๋ถ์ํด ๋ฐํํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์์์์๋ ํ์ด์ฌ์ด Java์ C++์ ์ ์น๊ณ ๊ฐ์ฅ ๋์ ์ฌ์ฉ๋ฅ ์ ๋ณด์์
ํ์ด์ฌ์ ํน์ง
๐ง ํน์ง 1. ์คํฌ๋ฆฝํธ ์ธ์ด (Script language)
- ํ์ด์ฌ์ ์ปดํ์ผ ๊ณผ์ ์์ด ์ธํฐํ๋ฆฌํฐ(Interpreter, ํด์๊ธฐ)๊ฐ ์์ค์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ์ด ๋ค์ฌ ๊ณง๋ฐ๋ก ์คํํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด(Script language). ๊ทธ ๋๋ฌธ์ ์ปดํ์ผ ๊ณผ์ ์ด ํ์ํ์ง ์์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ํ์ธํ๊ณ ์์ ํ๋ฉด์ ์์ฝ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์
Tip! ์ปดํ์ผ์ด๋? : ์ปดํ์ผ์ด๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ์์ค์ฝ๋๋ฅผ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ๋ณํํ๋ ๊ณผ์
- ์ปดํ์ผ ๊ณผ์ ์ ์ปดํ์ผ๋ง์ด๋ผ๊ณ ํ๋ฉฐ, ์์ค์ฝ๋(์ฌ๋์ด ์ฝ์ ์ ์๋ ํํ์ ํ๋ก๊ทธ๋จ)์ ์ปดํจํฐ ํ๋ก์ธ์์ ์ธ์ด๋ก ๋ณ๊ฒฝํ๋ ์ ์ฐจ
- ์ปดํจํฐ ํ๋ก์ธ์๋ ์คํ ์ ๊ธฐ๊ณ์ด๋ก ์คํ๋๋ ๋ฐ์ด๋๋ฆฌ(์ด์ง๋ฒ 0,1)์ด๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ C์ธ์ด ๋ฐ C++์ธ์ด ๊ทธ๋ฆฌ๊ณ C#, Objective-C, JAVA, Javascript, Swift, Perl, Ruby, Python, PHP ๋ฑ์ด ์กด์ฌ
- ์ปดํ์ผ ์์
์ ํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ๋ฌ(Compiler)๋ผ๊ณ ํจ. ์ปดํ์ผ๋ฌ๋ ์์ค์ฝ๋๋ฅผ ์ฝ์ด์ ์ฆ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์ธํฐํ๋ฆฌํฐ(Interpreter)์ ๊ตฌ๋ถ๋จ
- ์ปดํ์ผ ์์ด ์ง์ ์คํ๋๋ ์คํฌ๋ฆฝํธ or ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ก ์๋ ค์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์ ์ง์ ์คํ๋จ. ์คํฌ๋ฆฝํธ ์ธ์ด๋ ์ธํฐํ๋ฆฌํฐ๋ก ๋ถ๋ฆฌ๋ ํน์ํ ํ๋ก๊ทธ๋จ์ ์ํด ์คํ. ์ธํฐํ๋ฆฌํฐ๋ ์์ฑ๋ ๋ช
๋ น์ด๋ค์ ํ๋ฒ์ ํ ์ค ์ฉ ์ฝ์ผ๋ฉด์ ์คํํ๋ ํ๋ก๊ทธ๋จ
๐ง ํน์ง 2. ๋์ ํ์ดํ (Dynamic typing)
- ํ์ด์ฌ์ ๋์ ํ์
์ธ์ด
- ๋ณ์์ ์๋ฃํ์ ์ง์ ํ์ง ์๊ณ ๋จ์ํ ์ ์ธํ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฐ์ ์ง์ ํ ์ ์๋๋ฐ ์ด๋ ๋ณ์์ ์๋ฃํ์ ์ฝ๋๊ฐ ์คํ๋๋ ์์ ์ ๊ฒฐ์
- ์๋ฃํ ๋ณํ ์ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๊ฑฐ์น์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ์ฝ๋ ์คํ ๋์ค ์์ํ์ง ๋ชปํ ํ์
์ผ๋ก ์ธํ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ ํน์ง์ด ์์
Tip! ์ ์ ํ์
์ธ์ด : ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ณ์์ ๋ค์ด๊ฐ ์ปดํ์ผ ์ ๋ณ์์ ํ์
์ด ๊ฒฐ์ ๋๋ ์ธ์ด. ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ณ์์ ๋ค์ด๊ฐ ๊ฐ์ ํํ์ ๋ฐ๋ผ ์ง์ ๋ณ์์ ํ์
์ ๋ช
์ํด์ค์ผ ํจ
- ์ ์ ์ธ์ด๋ผ๋ ๊ฒ์ ์์์ ์ธ๊ธํ 'ํ์
' ์ฆ ์๋ฃํ์ ์ปดํ์ผ ์์ ๊ฒฐ์ ํ๋ ๊ฒ. ์ปดํ์ผ ์์ ์๋ฃํ์ ๋ง์ง ์๋ ๊ฐ์ด ๋ค์ด์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์
- ์ ์ ํ์
์ ์ธ์ด๋ก๋ Java, C, C++, C#, Scala, Fortran, Haskell, ML, Pascal ๋ฑ์ด ์กด์ฌ
Tip! ๋์ ํ์
์ธ์ด : ๋ณ์์ ํ์
(์๋ฃํ)์ ์ฌ์ ์ ์ ์ธํ ํ์ ์์ด ๋ณ์๋ง ์ ์ธํด ๊ฐ์ ์ง์
- ๋์ ํ์
์ธ์ด๋ก๋ Groovy, Python, JavaScript, Ruby, Smalltalk, Lisp, Objective-C, PHP, Prolog ๋ฑ์ด ์กด์ฌ
๐ง ํน์ง 3. ํ๋ซํผ ๋
๋ฆฝ์ (Platform-independent)
- ํ์ด์ฌ์ ๋ฆฌ๋
์ค(Linux), ์ ๋์ค(Unix), ์๋์ฐ์ฆ(Windows), ๋งฅ(Mac) ๋ฑ ๋๋ถ๋ถ์ ์ด์์ฒด์ (Operating System, OS)์์ ๋ชจ๋ ๋์
- ์ด์์ฒด์ ๋ณ๋ก ์ปดํ์ผํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ ๋ฒ ์์ค ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ด๋ค ์ด์์ฒด์ ์์๋ ํ์ฉ์ด ๊ฐ๋ฅ
ํ์ด์ฌ์ ์ฅ์
๐ฐ ์ฅ์ 1. ๊ฐ๊ฒฐํ๊ณ ์ฌ์ด ๋ฌธ๋ฒ
- ํ์ด์ฌ์ ์ธ๊ฐ์ ์ฌ๊ณ ์ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ง๋๊ณ ์์ผ๋ฉฐ ๊ทธ ๋๋ฌธ์ ๋ง์ ์๊ฐ์ ๋ค์ด์ง ์๊ณ ๋ ํ์ด์ฌ ๋ฌธ๋ฒ์ ํ์ตํ ์ ์๊ณ , ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ณต์ผ๋ก ํ์ง ์์ ์ฌ๋๋ ์์ผ ๋ด์ ํ์ด์ฌ์ ์ตํ ํ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅ
๐ฐ ์ฅ์ 2. ๋น ๋ฅธ ๊ฐ๋ฐ ์๋
- ์ฝ๊ณ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ ๋ํ์ ํ์ด์ฌ์ ๋์ ์์ฐ์ฑ์ ๋ณด์ด๋๋ฐ ํ์ด์ฌ์ ํ์ฉํ ๊ฒฝ์ฐ ๋ ์ ์ ์ฝ๋๋ก ๋ ๋ง์ ์์
์ ์ํํ ์ ์์ผ๋ฉฐ, ๋ณต์กํ ๊ตฌ๋ฌธ์ผ๋ก ์ธํ ์ค๋ฅ ๋ฐ์์ ์ค์ฌ ๊ทธ ์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณด๋ค ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅ
๐ฐ ์ฅ์ 3. ๋์ ํ์ฅ์ฑ ๋ฐ ์ด์์ฑ
- ํ์ด์ฌ์ ๋ํ์ ์ธ ๊ธ๋ฃจ(Glue) ์ธ์ด(ํน์ ์ ์ฐฉ์ ์ธ์ด)์ ํด๋นํ๋๋ฐ ๋ค๋ฅธ ์ธ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ๊ฒ ์ ๊ทผํด ์ฐ๋ํ ์ ์๊ธฐ ๋๋ฌธ
- ๋์ ์ฑ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ด ํ์ํ ๊ฒฝ์ฐ C/C++๊ณผ ๊ฐ์ ์ธ์ด๋ฅผ ํ์ด์ฌ๊ณผ ๊ฒฐํฉํด ์ฌ์ฉํ ์ ์๋๋ฐ, ์ด ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ๋ณด์ฅํ ์ ์์ผ๋ฉด์ ๋์์ ๋ณ๋ ์ค์น๋ ๊ตฌ์ฑ๊ณผ์ ์์ด ์คํฌ๋ฆฝํธ ์ธ์ด์ ์ฅ์ ๋ํ ํจ๊ป ๋๋ฆด ์ ์์
๐ฐ ์ฅ์ 4. ํ๋ฐํ ์ํ๊ณ
- ํ์ด์ฌ์ ์๋ง์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณต. ๊ทธ ๋์ ํ๋ก๊ทธ๋๋จธ๋ ๋ชจ๋ ์ฝ๋๋ฅผ ์ผ์ผ์ด ์์ฑํ ํ์๊ฐ ์๋๋ฐ, ์๋ฅผ ๋ค์ด ํน์ DB์ ์น ์๋ฒ๋ฅผ ์ฐ๊ฒฐํด์ผ ํ๋ค๋ฉด ๊ธฐ์กด์ ์์ฑ๋ ํ์ด์ฌ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉ ๊ฐ๋ฅ. ๋ํ ํญ๋์ ์ํ๊ณ์ ํ๋ฐํ ์ปค๋ฎค๋ํฐ ํ๋์ผ๋ก ์ธํด ๋น ๋ฅด๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ํ์
ํ ์ ์๋ค๋ ๊ฐ์ ๋ ์กด์ฌ
- ๋ํ์ ์ผ๋ก PyPI์ ๊ฐ์ ์น์ฌ์ดํธ๋ฅผ ํตํด ํ๋ก๊ทธ๋๋จธ๋ค์ด ์ค์ค๋ก ์์ฑํ ํ์ด์ฌ ํจํค์ง๋ฅผ ๊ณต์ ํ๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ฐฐํฌํ ํจํค์ง๋ฅผ pip ๋ช
๋ น์ด๋ฅผ ํตํด ๊ฐ๋จํ๊ฒ ์ค์น ๊ฐ๋ฅ
Python ํ์ฉ ์ฌ๋ก
- ๋ง์ ๊ธฐ์
์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊ตฌํํจ์ ์์ด ํ์ด์ฌ์ ์ ๊ทน ํ์ฉํ๊ณ ์์ผ๋ฉฐ, ์ด์ ์ค์ธ ์๋น์ค์ ํ์ด์ฌ์ ํ์ฉํ๋ ๋ํ์ ์ธ ๊ธฐ์
์ ์๋ ๋ฆฌ์คํธ์ ๊ฐ์
๐ฏ Google(๊ตฌ๊ธ)
- Google(๊ตฌ๊ธ)์ ๋ฐฑ์๋์ C++๊ณผ ํ์ด์ฌ์ ๊ฒฐํฉํด ํ์ฉ. ์งง์ ๋๊ธฐ ์๊ฐ๊ณผ ์๊ฒฉํ ๋ฉ๋ชจ๋ฆฌ ์ ์ด๊ฐ ์ค์ํ ์คํ์๋ C++๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ํ๋ก๊ทธ๋จ์ ๋น ๋ฅธ ์ ๋ฌ๊ณผ ์ ์ง ๊ด๋ฆฌ๊ฐ ํ์ํ ๋ถ๋ถ์๋ ํ์ด์ฌ์ ํ์ฉํด ์ฝ๋๋ฅผ ์์ฑ
๐ฏ Instagram(์ธ์คํ๊ทธ๋จ)
- Instagram์ ํ์ด์ฌ์ผ๋ก ์์ฑ๋ ์คํ ์์ค ์น ํ๋ ์์ํฌ Django๋ฅผ ๊ธฐ๋ณธ ์๋ฒ ์ธก ์ธ์ด๋ก ์ฌ์ฉ
๐ฏ Netflix(๋ทํ๋ฆญ์ค)
- Netflix๋ ๋ฐฉ๋ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฐ๊ฒฐํ๊ณ ๊น๋ํ ๊ตฌ๋ฌธ, ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ, ํ๋ถํ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ด์ ๋ก ํ์ด์ฌ์ ์์ฌ ์๋น์ค์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๊ณ ์์
๐ฏ Spotify(์คํฌํฐํ์ด)
- ์์
์คํธ๋ฆฌ๋ฐ ๋ฐ ๋ฏธ๋์ด ์๋น์ค ์ ๊ณต ์
์ฒด Spotify์ ์ฑ์ Python์ ํ์ฉํด ๋น๋. Spotify ์์ง๋์ด๋ Spotify ๋ฐฑ์๋์ 80%๊ฐ ํ์ด์ฌ์ผ๋ก ์์ฑ๋์ด ์๋ค๊ณ ๋ฐํ
๐ฏ Dropbox(๋๋กญ๋ฐ์ค)
- ํด๋ผ์ฐ๋์ ์ฌ์ง, ๋ฌธ์, ๋ฑ์ ํ์ผ ๋ณด๊ด ๋ฐ ๊ณต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋ซํผ Dropbox๋ ์ธ๋ถ ์คํ ์์ค ์ฝ๋์ ์์ฒด ์์ฑํ ์ฝ๋ ๋ชจ๋์ ํ์ด์ฌ์ ์ฌ์ฉ
- Dropbox๋ ํฌ๋ก์ค ํ๋ซํผ ์ง์, ๊ฐ๋
์ฑ, ํ์ต ์ฉ์ด์ฑ ๋ฑ ํ์ด์ฌ์ด ์ง๋ ์ฅ์ ๋์ ๋น ๋ฅด๊ฒ ์๋น์ค๋ฅผ ๊ตฌํํ ์ ์์๋ค๊ณ ๋ฐํ์ผ๋ฉฐ ํ์ด์ฌ์ ์ฐฝ์์์ธ ๊ท๋ ๋ฐ ๋ก์ธ์ 2012๋
๋ถํฐ 2019๋
๊น์ง Dropbox์์ ๊ฐ๋ฐ์๋ก ์ฌ์งํ์์