Skip to content

Latest commit

Β 

History

History
31 lines (15 loc) Β· 5.24 KB

1.2-python.md

File metadata and controls

31 lines (15 loc) Β· 5.24 KB

1.2. 파이썬(Python)

λ¨Έμ‹ λŸ¬λ‹κ³Ό λ”₯λŸ¬λ‹ 그리고 데이터 뢄석 μž‘μ—…μ€ 반볡 μž‘μ—…μ„ λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•˜κ³  μ†μ‰½κ²Œ μ‘°μž‘ν•  수 μžˆλŠ” 도ꡬ가 ν•„μš” ν•©λ‹ˆλ‹€. κ°€μž₯ μ ν•©ν•œ λ„κ΅¬λ‘œ μ„ νƒλ˜κ³  μžˆλŠ” 것이 λ°”λ‘œ νŒŒμ΄μ¬μž…λ‹ˆλ‹€. λ¨Έμ‹ λŸ¬λ‹, λ”₯λŸ¬λ‹μ„ μ œλŒ€λ‘œ κ³΅λΆ€ν•˜κ³  μ‹Άλ‹€λ©΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° 언어보닀 νŒŒμ΄μ¬μ„ κ³΅λΆ€ν•˜λŠ” 것이 훨씬 μœ λ¦¬ν•©λ‹ˆλ‹€. 파이썬의 λ”₯λŸ¬λ‹/λ¨Έμ‹ λŸ¬λ‹ κ΄€λ ¨ λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ€ λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ λ”°λΌμ˜¬ 수 μ—†λŠ” λΆ€λΆ„μž…λ‹ˆλ‹€.

파이썬(μ˜μ–΄: Python)은 1991λ…„ ν”„λ‘œκ·Έλž˜λ¨ΈμΈ 귀도 반 λ‘œμ„¬(Guido van Rossum)이 λ°œν‘œν•œ κ³ κΈ‰ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, ν”Œλž«νΌ 독립적이며 인터프리터식, 객체지ν–₯적, 동적 타이핑(dynamically typed) λŒ€ν™”ν˜• μ–Έμ–΄μž…λ‹ˆλ‹€. νŒŒμ΄μ¬μ΄λΌλŠ” 이름은 귀도가 μ’‹μ•„ν•˜λŠ” μ½”λ―Έλ”” γ€ˆMonty Python's Flying Circusγ€‰μ—μ„œ λ”°μ˜¨ κ²ƒμž…λ‹ˆλ‹€.

파이썬의 사전적인 μ˜λ―ΈλŠ” κ³ λŒ€ 신화에 λ‚˜μ˜€λŠ” 파λ₯΄λ‚˜μ†ŒμŠ€ μ‚°μ˜ 동꡴에 μ‚΄λ˜ 큰 뱀을 λœ»ν•˜λ©°, μ•„ν΄λ‘œ 신이 λΈνŒŒμ΄μ—μ„œ νŒŒμ΄μ¬μ„ ν‡΄μΉ˜ν–ˆλ‹€λŠ” 이야기가 전해지고 μžˆμŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ 파이썬 μ±… ν‘œμ§€μ™€ μ•„μ΄μ½˜μ΄ λ±€ λͺ¨μ–‘μœΌλ‘œ κ·Έλ €μ Έ μžˆλŠ” μ΄μœ κ°€ 여기에 μžˆμŠ΅λ‹ˆλ‹€.

νŒŒμ΄μ¬μ€ λΉ„μ˜λ¦¬μ˜ 파이썬 μ†Œν”„νŠΈμ›¨μ–΄ μž¬λ‹¨μ΄ κ΄€λ¦¬ν•˜λŠ” κ°œλ°©ν˜•, 곡동체 기반 개발 λͺ¨λΈμ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. Cμ–Έμ–΄λ‘œ κ΅¬ν˜„λœ C파이썬 κ΅¬ν˜„μ΄ μ‚¬μ‹€μƒμ˜ ν‘œμ€€μž…λ‹ˆλ‹€.

νŒŒμ΄μ¬μ€ μ΄ˆλ³΄μžλΆ€ν„° μ „λ¬Έκ°€κΉŒμ§€ μ‚¬μš©μžμΈ΅μ„ λ³΄μœ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 동적 타이핑(dynamic typing)이 κ°€λŠ₯ν•œ λ²”μš© ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, νŽ„ 및 루비와 자주 λΉ„κ΅λ©λ‹ˆλ‹€. λ‹€μ–‘ν•œ ν”Œλž«νΌμ—μ„œ μ“Έ 수 있고, 라이브러리(λͺ¨λ“ˆ)κ°€ ν’λΆ€ν•˜μ—¬, λŒ€ν•™μ„ λΉ„λ‘―ν•œ μ—¬λŸ¬ ꡐ윑 κΈ°κ΄€, 연ꡬ κΈ°κ΄€ 및 μ‚°μ—…κ³„μ—μ„œ 이용이 μ¦κ°€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 또 νŒŒμ΄μ¬μ€ μˆœμˆ˜ν•œ ν”„λ‘œκ·Έλž¨ μ–Έμ–΄λ‘œμ„œμ˜ κΈ°λŠ₯ 외에도 λ‹€λ₯Έ μ–Έμ–΄λ‘œ 쓰인 λͺ¨λ“ˆλ“€μ„ μ—°κ²°ν•˜λŠ” μ ‘μ°© μ–Έμ–΄(glue language)둜써 자주 μ΄μš©λ©λ‹ˆλ‹€. μ‹€μ œ νŒŒμ΄μ¬μ€ Paint Shop Pro, μ˜€ν† λ°μŠ€ν¬ λ§ˆμ•Ό, TORRENT, μΉ΄μΉ΄μ˜€ν†‘ λ“±κ³Ό 같은 λ§Žμ€ μƒμš© μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ 슀크립트 μ–Έμ–΄λ‘œ μ±„μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 도움말 λ¬Έμ„œλ„ 정리가 잘 λ˜μ–΄ 있으며, μœ λ‹ˆμ½”λ“œ λ¬Έμžμ—΄μ„ μ§€μ›ν•΄μ„œ λ‹€μ–‘ν•œ μ–Έμ–΄μ˜ 문자 μ²˜λ¦¬μ—λ„ λŠ₯ν•©λ‹ˆλ‹€.

νŒŒμ΄μ¬μ€ 기본적으둜 인터프리터 μœ„μ—μ„œ 싀행될 것을 염두에 두고 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. νŒŒμ΄μ¬μ€ 컴파일러 μ–Έμ–΄κ°€ μ•„λ‹Œ 인터프리터 언어이기 λ•Œλ¬Έμ— ν•œμ€„ ν•œμ€„ λΌμΈλ³„λ‘œ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ μ‹œν‚€λ©° κ²°κ³Όλ₯Ό 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

C, JAVA, Python λ“±κ³Ό 같은 κ³ κΈ‰μ–Έμ–΄λ‘œ 쓰여진 ν”„λ‘œκ·Έλž¨μ΄ μ»΄ν“¨ν„°μ—μ„œ μˆ˜ν–‰λ˜κΈ° μœ„ν•΄μ„œλŠ” 컴퓨터가 직접 이해할 수 μžˆλŠ” μ–Έμ–΄λ‘œ λ°”κΎΈμ–΄ μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 일을 컴파일이라고 ν•©λ‹ˆλ‹€.

컴파일 언어와 인터프린터 μ–Έμ–΄μ˜ κ°€μž₯ 큰 차이점은 컴파일 μ‹œμ  μž…λ‹ˆλ‹€. μ»΄νŒŒμΌλŸ¬λŠ” ν”„λ‘œκ·Έλž¨ μ „λΆ€λ₯Ό μ‹€ν–‰ 전에 ν•œκΊΌλ²ˆμ— κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­ν•©λ‹ˆλ‹€. κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­λœ μ‹€ν–‰ 파일(.exe)이 μ‘΄μž¬ν•©λ‹ˆλ‹€. μΈν„°ν”„λ¦¬ν„°λŠ” ν•œμ€„μ”© κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­κ³Ό 싀행이 λ™μ‹œμ— 이루어진닀. 즉, λ³„λ„μ˜ μ‹€ν–‰νŒŒμΌμ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλŠ”λ‹€.

νŒŒμ΄μ¬μ€ 데이터 κ³Όν•™ λΆ„μ•Όλ₯Ό μœ„ν•œ ν‘œμ€€ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ λ˜μ–΄ κ°€κ³  μžˆμŠ΅λ‹ˆλ‹€. νŒŒμ΄μ¬μ€ λ²”μš© ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μž₯점은 λ¬Όλ‘  MATLABκ³Ό R 같은 νŠΉμ • λΆ„μ•Όλ₯Ό μœ„ν•œ μŠ€ν¬λ¦½νŒ… μ–Έμ–΄μ˜ νŽΈλ¦¬ν•¨μ„ ν•¨κ»˜ κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ νŒŒμ΄μ¬μ€ 데이터 적재, μ‹œκ°ν™”, 톡계, μžμ—°μ–΄ 처리, 이미지 처리 등에 ν•„μš”ν•œ λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ§Žμ€ 도ꡬ가 데이터 κ³Όν•™μžμ—κ²Œ μ•„μ£Ό ν’λΆ€ν•˜κ³  일반적인, 그리고 또 νŠΉμˆ˜ν•œ κΈ°λŠ₯듀을 μ œκ³΅ν•΄μ€λ‹ˆλ‹€.

λ¨Έμ‹ λŸ¬λ‹κ³Ό λ”₯λŸ¬λ‹ 그리고 데이터 뢄석은 데이터 주도 λΆ„μ„μ΄λΌλŠ” μ μ—μ„œ 근본적으둜 반볡 μž‘μ—…μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ 반볡 μž‘μ—…μ„ λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•˜κ³  μ†μ‰½κ²Œ μ‘°μž‘ν•  수 μžˆλŠ” 도ꡬ가 ν•„μˆ˜μΈ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ 이유둜 파이썬이 선택 되고 μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€.

λ²”μš© ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œμ„œ νŒŒμ΄μ¬μ€ λ³΅μž‘ν•œ κ·Έλž˜ν”½ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(GUI)λ‚˜ μ›Ή μ„œλΉ„μŠ€λ„ λ§Œλ“€ 수 있으며 κΈ°μ‘΄ μ‹œμŠ€ν…œκ³Ό ν†΅ν•©ν•˜κΈ°λ„ μ’‹μŠ΅λ‹ˆλ‹€.

λ¨Έμ‹ λŸ¬λ‹, λ”₯λŸ¬λ‹μ„ μ œλŒ€λ‘œ κ³΅λΆ€ν•˜κ³  μ‹Άλ‹€λ©΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° 언어보닀 νŒŒμ΄μ¬μ„ κ³΅λΆ€ν•˜λŠ” 것이 훨씬 μœ λ¦¬ν•©λ‹ˆλ‹€. 파이썬의 λ”₯λŸ¬λ‹/λ¨Έμ‹ λŸ¬λ‹ κ΄€λ ¨ λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ€ λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ λ”°λΌμ˜¬ 수 μ—†λŠ” λΆ€λΆ„μž…λ‹ˆλ‹€. 유λͺ…ν•œ 파이썬 λΌμ΄λΈŒλŸ¬λ¦¬λ‘œλŠ” λ„˜νŒŒμ΄(NumPy), νŒλ‹€μŠ€(Pandas), μŠ€νŽ˜μ΄μ‹œ(SpaCy), 사이킷-런(Scikit-learn)등이 μžˆμŠ΅λ‹ˆλ‹€.

λ”₯λŸ¬λ‹ κ΄€λ ¨ν•˜μ—¬ ν…μ„œν”Œλ‘œμš°(TensorFlow), νŒŒμ΄ν† μΉ˜(PyTorch), μ²΄μ΄λ„ˆ(Chainer), μ•„νŒŒμΉ˜ MXNet(Apache MXNet), ν…Œμ•„λ…Έ(Theano) λ“± 거의 λͺ¨λ“  ν”„λ‘œμ νŠΈμ—μ„œ νŒŒμ΄μ¬μ„ κ°€μž₯ μš°μ„ μ‹œν•©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ λ¨Έμ‹ λŸ¬λ‹κ³Ό λ”₯ λŸ¬λ‹ ν”„λ ˆμž„μ›Œν¬λŠ” 파이썬용으둜 λ§Œλ“€μ–΄μ§€λ©°, AI λΆ„μ•Όμ—μ„œ μΌν•˜λŠ” 거의 λͺ¨λ“  μ‚¬λžŒλ“€μ΄ νŒŒμ΄μ¬μ„ μ΄μ•ΌκΈ°ν•©λ‹ˆλ‹€.