π» [Theory] μ μ°¨μ§ν₯ κ°μ²΄μ§ν₯? Procedural Programming κ³Ό κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
π» [Theory] μ μ°¨μ§ν₯ κ°μ²΄μ§ν₯? Procedural Programming κ³Ό κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
μλ° μΈμ΄μ λνμ μΈ νΉμ§μ΄λΌλ©΄ κ°μ₯ λ¨Όμ λ μ€λ₯΄λ κ²μ΄ κ°μ²΄μ§ν₯μ μΈ μΈμ΄λΌλ κ² μ λλ€. κ·Έλ§νΌ μλ°μΈμ΄μ κ°μ²΄μ§ν₯μ΄λΌλ λ¨μ΄κ° μλΉν μ°κ΄μ΄ κΉμ΅λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μκ³Ό μ μ°¨μ§ν₯ νλ‘κ·Έλλ°μ λ§μ΄ λΉκ΅λ©λλ€.
κ·ΈλΌ μ°μ , μ μ°¨μ§ν₯ νλ‘κ·Έλλ°μ΄λ 무μμΌκΉμ?
Procedural Programming
μ μ°¨μ νλ‘κ·Έλλ°μ μ€ν΄
μμ΄μ¬μ μμμ Proceduralμ βμ μ°¨μμβ λΌλ λ»μ μ§λκ³ μμ΅λλ€.
λ³΄ν΅ μ μ°¨λΌλ λ»μ μ΄λ€ μΌμ νλλ° κ°λ μμλ λ°©λ²μΌλ‘ μκ°νκΈ° λλ¬Έμ Procedural Programming μ΄λΌ νλ©΄ μμλ₯Ό μ€μμνλ νλ‘κ·Έλλ°μ΄λΌκ³ μκ°νκ² λ©λλ€.
νμ§λ§ μ΄λ νκ΅μ΄ λ²μμ μν μ€ν΄λΌκ³ ν©λλ€.
Procedural Programming μμ Procedural βμ μ°¨μ β μΌλ‘ λ²μν΄λ²λ €μ λ§μΉ μ μ°¨μ μΌλ‘ μ€ννλ κ²μ΄
μ€μ μ΄ λλ κ²μ²λΌ 보μ΄κΈ° λλ¬Έμ λλ€. κ·Έλ°λ° μ μ°¨μ μ΄μ§ μμ νλ‘κ·Έλλ°μ΄λ 건 μ μ΄μ μ‘΄μ¬νμ§ μμ΅λλ€.
κ°μ²΄μ§ν₯ μΈμ΄μΈ μλ°λ κ²°κ΅μ μ€μ λ‘ νλ‘κ·Έλ¨μ΄ μ€νλλ κ²μ μμ€μ½λμ μ λΆλΆλΆν° μ μ°¨μ μΌλ‘ μ€νλ©λλ€
β» Proceduralμ Procedureλ βμ μ°¨βλΌλ μλ―Έκ° μλλΌ βνλ‘μμ βμ μλ―Έμ λλ€. μ΄ ν¨λ¬λ€μμμλ
νλ‘μμ μ½, μ¦ ν¨μ νΈμΆμ ν΅ν΄μ μΆμνμ μ¬μ¬μ©μ±μ μ»μ΄λ΄λ κ²μ΄ λ³Έμ§μ΄κΈ° λλ¬Έμ λλ€.
Procedural Programming μ΄λ?
μ μ°¨μ νλ‘κ·Έλλ°μ΄λ λ¨μν μμ°¨μ μΈ λͺ λ Ή μνμ΄ μλλΌ νλ‘μμ (루ν΄, μλΈλ£¨ν΄, λ©μλ, ν¨μ λ±)μ μ΄μ©ν νλ‘κ·Έλλ° ν¨λ¬λ€μμ λ»ν©λλ€. λͺ λ Ήν νλ‘κ·Έλλ°μ μΌμ’ μ λλ€.
- ν¨μλ νλ‘μμ Έλ‘ νλ‘κ·Έλ¨μ ꡬμ±νλ κΈ°λ²μΌλ‘ λ°μ΄ν°λ₯Ό μ€μ¬μΌλ‘ ꡬμ±λ©λλ€.
- λ€μμ νλ‘μμ λ€μ΄ λ°μ΄ν°λ₯Ό 곡μ νλ λ°©μμΌλ‘ λ§λ€μ΄μ§λλ€.
Procedural Programming μ μ₯λ¨μ
μ₯μ
- νλ‘μμ λ₯Ό μ΄μ©νμ¬ νλ‘κ·Έλλ°μ νκ² λλ©΄ κΈ°λ³Έμ μΌλ‘ ν¨μλ₯Ό ν΅ν΄ μ½λμ μ¬νμ©μ±μ΄ λμμ§κ² λ©λλ€.
λ¨μ
- λ°μ΄ν° νμ μ΄λ μλ―Έλ₯Ό λ³κ²½ν΄μΌ ν λ, ν¨κ» μμ ν΄μΌ νλ νλ‘μμ κ° μ¦κ°ν©λλ€.
- μ μ§λ³΄μκ° μ΄λ ΅μ΅λλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object-Oriented Programming)
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ Procedural Programming μ λ¨μ λ 보μν΄μ€λλ€.
μ μ°¨ μ§ν₯κ³Ό λ¬λ¦¬ λ°μ΄ν° λ° λ°μ΄ν°μ κ΄λ ¨λ νλ‘μμ (λ©μλ,ν¨μ) λ₯Ό ν¨κ» κ°μ²΄(object)λΌκ³ λΆλ¦¬λ λ¨μλ‘ λ¬Άμ΅λλ€.
κ°μ²΄ μ§ν₯ κΈ°λ²μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ μμ κ°μ κ°μ²΄λ€λ‘ ꡬμ±λ©λλ€.
κ°μ²΄
- νλ‘μμ (λ©μλ,ν¨μ)λ₯Ό μ€ννλλ° νμν λ§νΌμ λ°μ΄ν°λ₯Ό κ°μ§λ©°, κ°μ²΄λ€μ΄ λͺ¨μ¬ νλ‘κ·Έλ¨μ ꡬμ±
- μμ λ§μ κΈ°λ₯μ μ 곡
- κ° κ°μ²΄λ€μ μλ‘ μ°κ²°λμ΄ λ€λ₯Έ κ°μ²΄κ° μ 곡νλ κΈ°λ₯μ μ¬μ©ν μ μκ² λ¨.
- λ€λ₯Έ κ°μ²΄μ κΈ°λ₯μ μ 곡νκΈ° μν΄ νλ‘μμ (ex μλ° - λ©μλ)λ₯Ό μ¬μ©
κ°μ²΄μ νλ‘μμ (λ©μλ,ν¨μ)
- μμ μ΄ μν κ°μ²΄μ λ°μ΄ν°μλ§ μ κ·Ό κ°λ₯νλ©° λ€λ₯Έ κ°μ²΄μ μν λ°μ΄ν°μλ μ κ·Όν μ μμ
- μ΄ κ°μ²΄μ νλ‘μμ λ₯Ό ν΅ν΄ λ€λ₯Έ κ°μ²΄κ° μμ μ λ°μ΄ν°μ μ κ·Όν μ μκ² ν΄μ€
Procedural Programming κ³Ό λΉκ΅νμ λμ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ₯λ¨μ
μ₯μ
- κ°μ²΄μ λ°μ΄ν°λ₯Ό λ³κ²½νλλΌλ ν΄λΉ κ°μ²΄λ‘λ§ λ³νκ° μ§μ€λκ³ λ€λ₯Έ κ°μ²΄μλ μν₯μ μ£Όμ§ μκΈ° λλ¬Έμ, μꡬ μ¬νμ λ³νκ° λ°μνμ λ μ μ μ§ν₯ λ°©μλ³΄λ€ νλ‘κ·Έλ¨μ λ μ½κ² λ³κ²½ν μ μμ
- νλ‘κ·Έλ¨μ μλμ μΌλ‘ μ½κ² μμ ν μ μλ μ μ°ν¨μ μ 곡νκΈ° λλ¬Έμ, λ³νλ μꡬ μ¬νμ λΉ λ₯΄κ² λ°μν μ μμ
λ¨μ
- λ°μ΄ν°λ₯Ό 곡μ νλ μ μ°¨μ§ν₯κ³Ό λ¬λ¦¬ κ°μ²΄λ³λ‘ λ°μ΄ν°μ νλ‘μμ λ₯Ό μλ§κ² μ μν΄μΌ ν¨
- νλ‘κ·Έλ¨μ κ·λͺ¨κ° μμ λμλ μ μ°¨ μ§ν₯ λ°©μλ³΄λ€ λ³΅μ‘ν ꡬ쑰λ₯Ό κ°κ² λ¨ (λκ·λͺ¨ νλ‘κ·Έλ¨μ μ ν©)
- μ€κ³κ° λ μ΄λ ΅λ€.
μ 리
-
νλ‘μμ λ λμ΄μ¨ λ°μ΄ν°λ₯Ό μ΄μ©ν΄ μ²λ¦¬ν΄μ£Όκ³ λ겨주λ κΈ°λ₯ λ°μ μκΈ° λλ¬Έμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬ν μ μλ 곡κ°μ΄ λ°λ‘ μμ΅λλ€.
-
νλ‘κ·Έλ¨μ κ°λ°νλλ° μμ΄ λ΄μ©μ΄ λ§μμ§κ³ μ½λκ° κΈΈμ΄μ§λ©΄ κ°λ μ± λΏλ§ μλλΌ κΈ°λ₯ ꡬνμ λ§μ λΆνΈν¨μ΄ λ°λ¦ λλ€.
-
κ°μ²΄μ§ν₯ μΈμ΄λ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ field(μμ±)λ₯Ό κ°μ§κ³ μμ λΏλ§ μλλΌ κ°κ³ μλ λ°μ΄ν°(field)λ₯Ό μ΄μ©ν΄ νλ‘μμ (ν¨μ,λ©μλ)λ ꡬνν μ μκΈ° λλ¬Έμ λλ€.
μμ μλ μ μ°¨μ§ν₯ μΈμ΄κ° κ°μ²΄μ§ν₯ μΈμ΄λ³΄λ€ λΉ λ₯΄κ² μ²λ¦¬λμ΄ μκ°μ μΌλ‘ μ 리νκΈ΄ νμΌλ
κΈ°μ μ΄ λ°μ νκ³ μννΈμ¨μ΄ μΈμ΄μ λ°λ¬κ³Ό μ»΄νμΌλ¬μ λ°λ¬λ‘ νλμ¨μ΄κ° μννΈμ¨μ΄μ λ°λ¬μ λ°λΌμ€μ§ λͺ»νλ μν©μ΄ λμ νμ¬λ λλΆλΆμ κ°μ²΄μ§ν₯ μΈμ΄λ‘ κ°λ°λκ³ μλ€κ³ 보면 λ©λλ€.
λ
Procedural Programming κ³Ό κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ λν΄ μμ보μμ΅λλ€.
κ°μ¬ν©λλ€. π
Reference
https://pjh3749.tistory.com/244