[νλ‘κ·Έλλ° ν¨λ¬λ€μ] νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄λ?
νλ‘κ·Έλλ° ν¨λ¬λ€μ(Programming Paradigm)μ΄λ?
νλ‘κ·Έλλ¨Έμκ² νλ‘κ·Έλλ°μ κ΄μ μ κ°κ² ν΄μ£Όλ μν μ νλ κ°λ° λ°©λ²λ‘ μ λλ€.
μλ₯Ό λ€μ΄ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° : νλ‘κ·Έλλ¨Έλ€μ΄ νλ‘κ·Έλ¨μ μνΈ μμ©νλ κ°μ²΄λ€μ μ§ν©μΌλ‘ λ³Ό μ μκ² νλ λ°λ©΄μ,
ν¨μν νλ‘κ·Έλλ° : μν κ°μ μ§λμ§ μμ ν¨μ κ°λ€μ μ°μμΌλ‘ μκ°ν μ μκ² ν΄μ€λλ€.
μ μΈνκ³Ό ν¨μν νλ‘κ·Έλλ°
μ μΈν νλ‘κ·Έλλ°(Declarative Programming)μ΄λ "무μμ" νμ΄λ΄κ°λκ°μ μ§μ€νλ ν¨λ¬λ€μμ΄λ©°,
"νλ‘κ·Έλ¨μ ν¨μλ‘ μ΄λ£¨μ΄μ§ κ²μ΄λ€"λΌλ λͺ
μ κ° λ΄κ²¨ μλ ν¨λ¬λ€μμ
λλ€.
μλ₯Ό λ€μ΄ JavaScriptλ‘ μμ°μλ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μμ μ΅λκ°μ μ°Ύμλ λ€μκ³Ό κ°μ΄ μ¬μ©ν©λλ€.
const ret = [1, 2, 3, 4, 5, 11, 12]
.reduce((max, num) => num > max ? num : max, 0)
console.log(ret) // 12
- reduce()λ 'λ°°μ΄'λ§ λ°μμ λμ ν κ²°κ³Όκ°μ λ°ννλ μμ ν¨μ
μ΄μ²λΌ ν¨μν νλ‘κ·Έλλ°μ μ΄μ κ°μ μμ 'μμ ν¨μ'λ€μ λΈλ‘μ²λΌ μμ λ‘μ§μ ꡬννλ 'κ³ μ°¨ ν¨μ'λ₯Ό ν΅ν΄ μ¬μ¬μ©μ±μ λμΈ νλ‘κ·Έλλ° ν¨λ¬λ€μμ λλ€.
*FPμ νΉμ§μ μ’λ μμλ³΄κ³ μΆλ€λ©΄ μλμ ν¬μ€ν μ μ°Έκ³ νμΈμ
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
κ°μ²΄λ€μ μ§ν©μΌλ‘ νλ‘κ·Έλ¨μ μνΈ μμ©μ νννλ©° λ°μ΄ν°λ₯Ό κ°μ²΄λ‘ μ·¨κΈνμ¬ κ°μ²΄ λ΄λΆμ μ μΈλ λ©μλλ₯Ό νμ©νλ λ°©μμ λ§ν©λλ€.
- μ€κ³μ λ§μ μκ°μ΄ μμλλ©° μ²λ¦¬ μλκ° λ€λ₯Έ νλ‘κ·Έλλ° ν¨λ¬νμμ λΉν΄ μλμ μΌλ‘ λλ¦Ό
μλ₯Ό λ€μ΄ JavaScriptλ‘ μμ°μλ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μμ μ΅λκ°μ μ°Ύμλ λ€μκ³Ό κ°μ΄ μ¬μ©ν©λλ€.
const ret = [1, 2, 3, 4, 5, 11, 12]
class List {
constructor(list) {
this.list = list
this.mx = list.reduce((max, num) => num > max ? num : max, 0)
}
getMax() {
return this.mx
}
}
const a = new List(ret)
console.log(a.getMax()) // 12
- ListλΌλ ν΄λμ€λ₯Ό λ§λ€κ³ aλΌλ κ°μ²΄λ₯Ό λ§λ€ λ μ΅λκ°μ μΆμΆν΄λ΄λ λ©μλλ₯Ό λ§λ¦
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μΆμν, μΊ‘μν, μμμ±, λ€νμ±μ΄λΌλ νΉμ§μ΄ μμ΅λλ€.
*OOPμ νΉμ§μ μ’λ μμλ³΄κ³ μΆλ€λ©΄ μλμ ν¬μ€ν μ μ°Έκ³ νμΈμ
μ μ°¨ν νλ‘κ·Έλλ°
λ‘μ§μ΄ μνλμ΄μΌ ν μ°μμ μΈ κ³μ° κ³Όμ μΌλ‘ μ΄λ£¨μ΄μ§ ν¨λ¬λ€μμ λλ€.
- μΌμ΄ μ§νλλ λ°©μμΌλ‘ μ½λλ₯Ό ꡬννκΈ°λ§ νλ©΄ λμ μ½λμ κ°λ μ±μ΄ μ’μΌλ©° μ€ν μλκ° λΉ λ₯΄λ€λ μ₯μ
- κ³μ°μ΄ λ§μ μμ λ±μ μ°μ
- λνμ μΌλ‘ ν¬νΈλ(fortran)μ μ΄μ©ν λκΈ° κ³Όν κ΄λ ¨ μ°μ° μμ , λ¨Έμ λ¬λμ λ°°μΉ μμ λ±μ΄ μμ
- λͺ¨λννκΈ°κ° μ΄λ ΅κ³ μ μ§ λ³΄μμ±μ΄ λ¨μ΄μ§λ€λ λ¨μ μ΄ μμ
ν¨λ¬λ€μμ νΌν©
μ¬λ¬ κ°μ§μ νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄ μμ§λ§ μ΄λ ν ν¨λ¬λ€μμ΄ κ°μ₯ μ’μκΉ? λΌλ μ§λ¬Έμ λ΅μ΄ μμ΅λλ€.
λΉμ¦λμ€ λ‘μ§μ΄λ μλΉμ€μ νΉμ§μ κ³ λ €ν΄μ ν¨λ¬λ€μμ μ νκ±°λ μ¬λ¬ ν¨λ¬λ€μμ μ‘°ν©νμ¬ μν©κ³Ό λ§₯λ½μ λ°λΌ ν¨λ¬λ€μ κ°μ μ₯μ λ§ μ·¨ν΄ κ°λ°νλ κ²μ΄ κΆμ₯λ©λλ€.
[μΆμ²] λ©΄μ μ μν CS μ 곡μ§μ λ ΈνΈ
http://www.yes24.com/Product/Goods/108887922