[1ν/νμμ] 1μ°¨μ νμ΄μ¬ μ€ν°λ - μ μΆλ ₯
μ°Έκ³ μλ£ : λ°μ΄ν° κ³Όνμ μν νμ΄μ¬ νλ‘κ·Έλλ° (μ΅μ±μ² )
νλ‘κ·Έλλ° μΈμ΄μ νμ΄μ¬
νμ΅ λͺ©ν
- νλ‘κ·Έλλ° μΈμ΄μ κ°λ κ³Ό νμμ±μ λν΄ μ΄ν΄νλ€.
- νμ΄μ¬μ νΉμ§κ³Ό νμμ±μ λν΄ νμ΅νλ€.
- νμ΄μ¬ μ½λ νΈμ§κΈ°μΈ Pycharmμ μ€μΉνλ€.
- Pycharmμ μ΄μ©νμ¬ κ°λ¨ν μ½λλ₯Ό μμ±ν΄λ³Έλ€.
01 νλ‘κ·Έλλ° μΈμ΄μ μ΄ν΄
1. νλ‘κ·Έλλ°μ΄λ?
- μ€λ§νΈν° λ©μ μ → νλ‘κ·Έλ¨
π‘ νλ‘κ·Έλ¨(program)μ΄λ μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ»΄ν¨ν°κ° μ€νν΄μΌ νλ λͺ λ Ήμ΄μ μ§ν©μ²΄
ex. μΉ΄μΉ΄μ€ν‘
λͺ©μ : λ€λ₯Έ μ¬λκ³Όμ λν
νμΈμκ² ν μ€νΈλ₯Ό λ³΄λΌ λ, [μ μ‘]λ²νΌ νΉμ μ¬μ§ 첨λΆλ₯Ό μν λλ [μ¬μ§] λ²νΌμ λλ¦
[μ μ‘] → λ΄κ° μ λ ₯ν ν μ€νΈλ₯Ό μλλ°©μκ² μ λ¬νλΌλ λͺ λ Ήμ΄
[μ¬μ§] → λ΄ κΈ°κΈ°μ μ μ₯λ μ¬μ§ μ€ νλλ₯Ό μ ννλΌλ λͺ λ Ήμ΄
μ΄λ° λͺ λ Ήμ΄κ° λͺ¨μ¬ νλ‘κ·Έλ¨μ΄ λλ€. - νλ‘κ·Έλλ°(programming)μ΄λ?
: νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ¬μ©νμ¬ νλ‘κ·Έλ¨μ κ°λ°νλ κ² - νλ‘κ·Έλλ° μΈμ΄(programmin language)λ?
: νλ‘κ·Έλ¨μ κ°λ°ν λ μ¬μ©νλ λꡬ.
→ μΈκ°μ΄ μνλ κ²μ μ»΄ν¨ν°λ‘ μ€νμν€κΈ° μν΄ μ¬μ©νλ, μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ μΈμ΄- μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ μΈμ΄ → μ½λ(code)
- μ½λλ₯Ό μμ±νλ νμ → μ½λ©
2. νλ‘κ·Έλλ° μΈμ΄λ₯Ό λ°°μ°λ μ΄μ
→ νλμ λꡬλ₯Ό μ΅νλ κ³Όμ μ΄κΈ°λ νμ§λ§, μ»΄ν¨ν°κ° λ¬Έμ λ₯Ό μ΄λ»κ² ν΄κ²°νλμ§ λ
Όλ¦¬μ μΈ κ³Όμ μ μ μ°¨μ μΌλ‘ νμ΅νλ€λ κ³Όμ μμ μλ―Έμλ€.
02 νμ΄μ¬ μκ°
1 νμ΄μ¬μ λ±μ₯
- python
λ€λλλμ κ°λ°μ κ·λ λ° λ‘μ¬(Guido van rossum)μ΄ 1991λ κ°λ°ν μΈμ΄λ‘, μ²μμλ CμΈμ΄ κΈ°λ°μΌλ‘ κ°λ°λμμΌλ©° μ΄ν λ€μν κΈ°λ₯μ΄ μΆκ°λμλ€.
2. νμ΄μ¬μ νΉμ§
- νλ«νΌ λ
립μ μΈ μΈμ΄
νλ«νΌ(platform)? νν λ§νλ μ΄μ체μ (Operating System, OS)λ₯Ό λ»νλ€.
→ μλμ°(windows), λ§₯ OS(Mac os), 리λ μ€(Linux)- ‘λ
λ¦½μ ’μ΄λΌλ ννμ ‘κ΄κ³μλ’μ΄λΌλ λ»μΌλ‘,
→ νλ«νΌ λ 립μ μΈ μΈμ΄λ μ΄λ€ μ΄μ체μ λ μκ΄μμ΄ μ¬μ©ν μ μλ μΈμ΄λΌλ μλ―Έ
- ‘λ
λ¦½μ ’μ΄λΌλ ννμ ‘κ΄κ³μλ’μ΄λΌλ λ»μΌλ‘,
- μΈν°νλ¦¬ν° μΈμ΄
- νλ‘κ·Έλλ° μΈμ΄μ μμ€μ½λκ° μ»΄ν¨ν°μ μν΄ ν΄μλλ κ³Όμ
- μμ€μ½λ → νλ‘κ·Έλλ¨Έκ° μμ±ν νλ‘κ·Έλλ° μΈμ΄μ ν
μ€νΈ νμΌ
μ΄λ° μμ€μ½λκ° μ»΄ν¨ν°μμ μ€νλκΈ° μν΄ μΈν°νλ¦¬ν° λλ μ»΄νμΌλ¬μ μν΄ ν΄μλκ³ , μ΄ ν΄μλ κ²°κ³Όκ° μ΄μ체μ μ λ§μΆ° κΈ°κ³μ΄λ‘ λ³νλμ΄ μ»΄ν¨ν°μ νλμ¨μ΄μΈ λ©λͺ¨λ¦¬μ CPUμ μ μ₯λμ΄ μ€νλλ€.
- μμ€μ½λ → νλ‘κ·Έλλ¨Έκ° μμ±ν νλ‘κ·Έλλ° μΈμ΄μ ν
μ€νΈ νμΌ
- μΈν°νλ¦¬ν° (Interpreter)λ μμ€μ½λμ ν΄μμ μν΄ μ¬μ©λλ νλ‘κ·Έλ¨μ μΌμ’
- μ»΄νμΌλ¬ μΈμ΄μ λ¬λ¦¬ μμ€μ½λ μμ²΄κ° λ°λ‘ μ€νλλ νΉμ§μ΄ μλ€.
→ μλλ λ리μ§λ§ κ΅μ₯ν κ°νΈνκ² μ¬μ©ν μ μλ€.
- μ»΄νμΌλ¬ μΈμ΄μ λ¬λ¦¬ μμ€μ½λ μμ²΄κ° λ°λ‘ μ€νλλ νΉμ§μ΄ μλ€.
κ΅¬λΆ μ»΄νμΌλ¬ μΈν°ν리ν°
→ ‘λ²μ’κ³Ό ‘ν΅μ’μ μ°¨μ΄
μλ λ°©μ μμ€μ½λ → κΈ°κ³μ΄λ‘ λ²μνκ³ , ν΄λΉ νλ«νΌμ μ΅μ νλ μνλ‘ νλ‘κ·Έλ¨μ μ€ν λ³λμ κ³Όμ μμ΄ μμ€μ½λλ₯Ό μ€ν μμ μ ν΄μνμ¬ μ»΄ν¨ν°κ° λ°λ‘ μ²λ¦¬ μ₯μ μ€ν μλκ° λΉ λ¦ κ°λ¨ν μμ±λκ³ λ©λͺ¨λ¦¬κ° μ κ² νμ λ¨μ ν λ²μ λ§μ λ©λͺ¨λ¦¬κ° νμ μ€ν μλκ° λλ¦Ό μ£Όμ μΈμ΄ C, μλ°(JAVA), C++ νμ΄μ¬, μ€μΉΌλΌ - νλ‘κ·Έλλ° μΈμ΄μ μμ€μ½λκ° μ»΄ν¨ν°μ μν΄ ν΄μλλ κ³Όμ
- κ°μ²΄ μ§ν₯ μΈμ΄ (object oriented language)
→ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° νκ²½μμ μ¬μ©λλ νλ‘κ·Έλλ° μΈμ΄λ₯Ό λ§νλ€.
ν΄λΉ νλ‘κ·Έλ¨μ΄ ν΄κ²°ν΄μΌ ν λ¬Έμ μ ꡬμ±μμλ₯Ό μμλ³λ‘ μ 리ν λ€μ κ° μμμ κΈ°λ₯κ³Ό μ 보λ₯Ό νλ‘κ·Έλλ°ν λ€μ μμλ€μ κ²°ν©νλ λ°©μμΌλ‘ νλ‘κ·Έλ¨μ μμ±- κ°μ²΄ μ§ν₯ μΈμ΄μ κ°μ₯ ν° νΉμ§, μ¬μ¬μ©μ±!!
: μμ€μ½λλ₯Ό μμ±ν λ μ€ν μμλλ‘ νλλΆν° μ΄κΉμ§ νλ‘κ·Έλλ° - λμ νμ΄ν μΈμ΄(dynamic typing language)
→ νλ‘κ·Έλ¨μ μ€ν μμ μμ κ° νλ‘κ·Έλ¨ λ³μμ νμ μ κ²°μ νλ μΈμ΄
3. νμ΄μ¬μ λ°°μ°λ μ΄μ
→ μ½κ³ κ°λ¨νλ©΄μ λ€μν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νλ€λ μ₯μ - μ½κ³ κ°λ¨ν νλ‘κ·Έλλ° μΈμ΄
μΈκ° μ§ν₯μ μ΄κΈ° λλ¬Έμ νλ‘κ·Έλλ°μ μ²μ λ°°μ°λ μ¬λλ μ½λλ₯Ό μ½κ² μ΄ν΄ ν μ μλ€. - λ€μν λΌμ΄λΈλ¬λ¦¬ μ 곡
- λ€μν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νμ¬ νμ© λ²μκ° λλ€.
- μΈμ΄ μμ²΄κ° μ½κΈ°λ νμ§λ§ κ°λ°μλ€μ΄ λ§λ€μ΄ λμ λ§μ λͺ¨λκ³Ό ν¨ν€μ§λ₯Ό μ½κ² μ¬μ©
- λμ€μ μΈ νλ‘κ·Έλλ° μΈμ΄
μΈκ³΅μ§λ₯κ³Ό λ°μ΄ν° λΆμ, κ³Όν κ³μ° λΆμΌμμ νλ°ν μ¬μ©λκ³ μλ€.
λνμ μΌλ‘ λ°λκΈ°μ¬ μ΄μΈλ 9λ¨μκ² μΉλ¦¬ν μνκ³ λ₯Ό λΉλ‘―ν΄ νμμ νμ μ λ°κ²¬νλ μ€ν, μμΈμνμΈμ μ€λ ₯νλ₯Ό μ¦λͺ νλ μ€ν λ± λ€μν λ°©λ©΄μμ νμ΄μ¬ μ½λκ° μ¬μ©λμλ€.λν, νλ‘κ·Έλλ°κ³μ μ§μμΈμ΄λΌκ³ ν μ μλ Stack Overflowμ μ‘°μ¬ κ²°κ³Ό, νμ¬ κ°μ₯ λ§μ μ§μμλ΅μ λ°λ νλ‘κ·Έλλ° μΈμ΄λ νμ΄μ¬μ΄λ€!
- μ½κ³ κ°λ¨ν νλ‘κ·Έλλ° μΈμ΄
03 νμ΄μ¬ κ°λ° νκ²½κ³Ό μ€μΉ
- νμ΄μ¬ κ°λ° νκ²½ μ€μ
νλ‘κ·Έλλ° κ°λ° νκ²½
: νλ‘κ·Έλλ°ν μ μλ νκ²½
νμ΄μ¬μΌλ‘ νλ‘κ·Έλλ° νκΈ° μν΄μλ νμ΄μ¬ μΈν°ν리ν°μ μ½λ νΈμ§κΈ° νλ‘κ·Έλ¨μ΄ νμ
- μ΄μ체μ μ μ
κ΅λ΄ μ»΄ν¨ν° μ¬μ©μλ€μ λλΆλΆ μ΄μ체μ λ‘ μλμ°λ₯Ό μ¬μ©νμ§λ§, μ μΈκ³ νλ‘κ·Έλλ¨Έλ€μ λλΆλΆ μ λμ€λ₯Ό κΈ°λ°μΌλ‘ ν 리λ μ€μ λ§₯ OSλ₯Ό νλ‘κ·Έλ¨ κ°λ°μ λ§μ΄ νμ©νλ€.
μλμ° κ΅λ΄ μ¬μ©μκ° μ¬μ©νκΈ°μ κ°μ₯ μ¬μ΄ μ΄μ체μ , νλ‘κ·Έλλ°μ μμνλ μ¬λμκ² μλΉν μ’μ μ ν λ€λ₯Έ μ¬μ©μκ° κ°λ°ν λ€μν λͺ¨λμ μ€μΉνκΈ° μ΄λ ΅κ³ , μ°Έκ³ μλ£κ° λΆμ‘± 리λ μ€ λͺ¨λ μ€μΉκ° κ΅μ₯ν μ½κ³ , μΈν°λ·μμ λ€μν λ νΌλ°μ€λ₯Ό κ²μνκΈ° μ¬μ μ²μ μ¬μ©νλ μ¬μ©μκ° λ€λ£¨κΈ°μλ μ΄μ체μ μμ²΄κ° λ§€μ° μ΄λ €μ λ§₯ OS κΈ°λ³Έμ μΌλ‘ 리λ μ€μ μ₯μ μ΄ μμΌλ©΄μ μλμ°μ²λΌ μμ μ μ λ€λ₯Έ μ΄μ체μ λ³΄λ€ μλμ μΌλ‘ κ°κ²©μ΄ λΉμ - νμ΄μ¬ μΈν°νλ¦¬ν° μ μ
νμ΄μ¬ μΈν°ν리ν°λ νμ΄μ¬μΌλ‘ μμ±λ μμ€μ½λμ μ€ν νλ‘κ·Έλ¨
μ£Όμ νμ΄μ¬ μΈν°ν리ν°λ‘λ Python, Anaconda, Canopyκ° μλ€.μ’ λ₯ μ€λͺPython μΌλ°μ μΈ νμ΄μ¬μΌλ‘ κΈ°λ³Έμ μΈ λͺ¨λμ ν¬ν¨νλ€. Anaconda λ€μν κ³Όν κ³μ°μ© λͺ¨λμ λ¬Άμ΄ ν¨ν€μ§λ‘ μ 곡νλ€. Canopy λ€μν κ³Όν κ³μ°μ© λͺ¨λμ λ¬Άμ΄ ν¨ν€μ§λ‘ μ 곡νλ€. (μ΅κ·Όμλ μ¬μ©νμ§ μμ) - μ½λ νΈμ§κΈ° μ μ
ν μ€νΈ λ¬Έμ
: μλ, νκΈκ³Ό κ°μ μλνλ‘μΈμμμ λ§λ κΈμλ‘ μ΄λ£¨μ΄μ§ μΌμ’ μ λ¬Έμλ₯Ό μλ―Έ- νλ‘κ·Έλ¨μ μμ€μ½λλ λμ μλ―Έλ‘ λ³΄λ©΄ νλμ ν
μ€νΈ λ¬Έμ
→ νΈμ§ν νλ‘κ·Έλ¨(μ½λ νΈμ§κΈ°)μ΄ νμ
- λ¨μν λ¬Έμλ₯Ό νΈμ§ν λ μ¬μ©νλ ν μ€νΈ μλν°
- νλ‘κ·Έλ¨μ κ°λ°λΆν° λ°°ν¬κΉμ§ μ κ³Όμ μ μ§μνλ ν΅ν©κ°λ°νκ²½(Integrated Development Enviroment. IDE)
λ©λͺ¨μ₯ μλμ°μ κΈ°λ³Έ λ¬Έμ νΈμ§ λꡬ VI editor 리λ μ€μ κΈ°λ³Έ λ¬Έμ νΈμ§ λꡬ Sublime Text νλ‘κ·Έλλ°μ νΉνλ λ¬Έμ νΈμ§ λꡬ Atom νλ‘κ·Έλλ°μ νΉνλ λ¬Έμ νΈμ§ λꡬ (Githubμμ κ°λ°) PyCharm λ€μν κΈ°λ₯μ κ°μΆ νμ΄μ¬ μ μ© κ°λ° λꡬ (IDE) Visual Studio Code λ§μ΄ν¬λ‘μννΈμμ μ 곡νλ μ½λ μ μ© μλν° - νλ‘κ·Έλ¨μ μμ€μ½λλ λμ μλ―Έλ‘ λ³΄λ©΄ νλμ ν
μ€νΈ λ¬Έμ
- μ΄μ체μ μ μ
- νμ΄μ¬ μΈν°ν리ν°μ μ€μΉ : Python
Welcome to Python.org- μ€μ - μμ€ν - μ 보
- νμ΄μ¬ μ
Έμμ μ½λ μμ±
- μλμ° ν€ + R
- μ€ν μ°½μμ ‘cmd’λ₯Ό μ λ ₯ν ν enter
- cmd μ°½μμ ‘python’ μ λ ₯
- νμ΄μ¬ μ½λ νΈμ§κΈ°μ μ€μΉ : PyCharm
PyCharm λ€μ΄λ‘λ: JetBrainsκ° λ§λ μ λ¬Έ κ°λ°μμ© Python IDE - PyCharmμμ μ½λ μμ±νκΈ°
PyCharm λ€μ΄λ‘λ: JetBrainsκ° λ§λ μ λ¬Έ κ°λ°μμ© Python IDE
www.jetbrains.com
Welcome to Python.org
The official home of the Python Programming Language
www.python.org
++
μ»΄νμΌλ¬μ μΈν°νλ¦¬ν° λ³΄μΆ© μλ£