νλ‘κ·Έλλ° ν¨λ¬λ€μμ λν΄ κ°λ¨νκ² μ 리ν΄λ³΄κ³ , 볡μ΅νκΈ° μν λͺ©μ μΌλ‘ ν¬μ€ν μ νκ² λμλ€.
- νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄λ
νλ‘κ·Έλλ°μ κ΄μ μ κ°κ² ν΄μ£Όλ μν μ νλκ°λ° λ°©λ²λ‘
ν¬κ²μ μΈν νλ‘κ·Έλλ°(ν¨μν),λͺ λ Ήν νλ‘κ·Έλλ°(κ°μ²΄ μ§ν₯, μ μ°¨ μ§ν₯)μΌλ‘ λλκ² λλ€.
C++, νμ΄μ¬, μλ°μ€ν¬λ¦½νΈ, jdk 1.8 μ΄μμ μλ°μ κ°μ νΉμ μΈμ΄λ€μ μ¬λ¬ ν¨λ¬λ€μμ μ§μνλ€.
μ μΈν νλ‘κ·Έλλ°(declarative programming)μ 무μμ νμ΄λ΄λκ°μ μ§μ€νλ ν¨λ¬λ€μμ΄λ€.
μ μΈν ν¨λ¬λ€μμ μΌμ’
μΈ ν¨μν νλ‘κ·Έλλ°(functional programming)κ³Ό κ°μ΄ νλ‘κ·Έλ¨μ ν¨μλ‘ μ΄λ£¨μ΄μ§ κ²μ΄λ€.λΌλ λͺ
μ κ° λ΄κ²¨ μλ€.
#javascript
const pure = (a, b) => {
return a + b
}
μμ κ°μ λ§€κ°λ³μμλ§ μν₯μ λ°κ² λλ μμ ν¨μλ€μ λΈλ‘μ²λΌ μμ λΉμ¦λμ€ λ‘μ§μ ꡬννκ³ , ν¨μκ° ν¨μλ₯Ό λ§€κ°λ³μλ‘ λ°μ λ‘μ§μ μμ±ν μ μλ κ³ μ°¨ ν¨μλ₯Ό ν΅ν΄ μ¬μ¬μ©μ±μ λμΈ νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄λ€.
μλ°μ€ν¬λ¦½νΈλ ν¨μκ° μΌκΈ κ°μ²΄μ΄κΈ° λλ¬Έμ ν¨μν νλ‘κ·Έλλ° λ°©μμ΄ λ μ ν©νλ€.
- μΌκΈ κ°μ²΄
- λ³μλ λ©μλμ ν¨μλ₯Ό ν λΉν μ μλ€.
- ν¨μ μμ ν¨μλ₯Ό λ§€κ°λ³μλ‘ λ΄μ μ μλ€.
- ν¨μκ° ν¨μλ₯Ό λ°νν μ μλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(OOP, Object-Oriented Programming)μ κ°μ²΄λ€μ μ§ν©μΌλ‘ νλ‘κ·Έλ¨μ μνΈ μμ©μ νννκ² λλ©° λ°μ΄ν°λ₯Ό κ°μ²΄ μ·¨κΈνμ¬ κ°μ²΄ λ΄λΆμ λ©μλλ₯Ό νμ©νλ λ°©μμ΄λ€.
μ€κ³μ ꡬνμ λ§μ μκ°μ΄ μμλκ³ μ²λ¦¬ μλκ° μλμ μΌλ‘ λ리λ€λ λ¨μ μ΄ μμ§λ§, μ½λλ₯Ό μ¬μ¬μ©νκ±°λ μ μ§λ³΄μνκ³ νμ₯μ μ©μ΄νλ€λ μ₯μ μ΄ μλ€.
μΆμν, μμ, λ€νμ±(μ€λ²λ‘λ© => μ μ (μ»΄νμΌ) λ€νμ±, μ€λ²λΌμ΄λ© => λμ (λ°νμ) λ€νμ±), μΊ‘μν(μ 보 μλ)λΌλ νΉμ§μ κ°μ§λ€.
SOLID μ€κ³ μμΉμ κ°μ§λ€. => μ ν¬μ€ν
μ°Έκ³
μ μ°¨μ§ν₯ νλ‘κ·Έλλ°μ λ‘μ§μ΄ μνλμ΄μΌ ν μ°μμ μΈ κ³μ° κ³Όμ μΌλ‘ μ΄λ£¨μ΄μ§λ λ°©μμ΄λ€.
μΌμ΄ μ§νλλ λ°©μμΌλ‘ μ½λλ₯Ό ꡬννκΈ° λλ¬Έμ κ°λ
μ±μ΄ μ’κ³ , μ€ν μλκ° λΉ λ₯΄λ€λ μ₯μ μ΄ μλ€.
κ·Έλ κΈ° λλ¬Έμ κ³μ°λμ΄ λ§μ΄ μꡬλλ μμ
μμ μ°μ΄κ² λλ€.
(ex) ν¬νΈλμ μ΄μ©ν λκΈ° μ°μ° μμ
, λ¨Έμ λ¬λ λ°°μΉ μμ
)
νμ§λ§ μ μ°¨μ μΌλ‘ νλ‘κ·Έλλ°μ μ§ννλ―λ‘ λͺ¨λννκΈ° μ΄λ ΅κ³ μ μ§λ³΄μμ±μ΄ λ¨μ΄μ§λ€λ λ¨μ μ΄ μ‘΄μ¬νλ€.
#python
ret = [1, 2, 3, 4, 5, 11, 12]
a = 0
for i in range(0, len(ret)):
a = max(ret[i], a)
return a
μμ κ°μ μ½λκ° μ μ°¨μ§ν₯ νλ‘κ·Έλλ°μ λνμ μΈ μμμ΄λ€.
νΉμ νλ‘κ·Έλ¨μ΄λ μννΈμ¨μ΄λ₯Ό κ°λ°νλ λ°μ μμ΄ λΉμ¦λμ€ λ‘μ§κ³Ό μλΉμ€μ νΉμ§μ κ³ λ €ν΄μ ν¨λ¬λ€μμ μ νλ κ²μ΄ μ’λ€.
νλμ ν¨λ¬λ€μμ κΈ°λ°μΌλ‘ μλΉμ€λ₯Ό ꡬμΆν΄λ λμ§λ§, μ¬λ¬ ν¨λ¬λ€μμ μ‘°ν©νμ¬ μν©κ³Ό λ§₯λ½μ λ§μΆ° ν΄λΉ ν¨λ¬λ€μλ§μ μ₯μ λ§ μ·¨ν΄ κ°λ°νλ κ²μ΄ κ°μ₯ μ’λ€.