κ°μ²΄ μ§ν₯
μ μ°¨ μ§ν₯μ κ²½μ°μλ κΈ°λ₯μ΄ μ€μ¬μ΄ λλ€. 무μμ μ΄λ€ μ μ°¨λ‘ ν κ²μΈκ°? κ° ν΅μ¬μ΄ λλ€.
κ·Έλ¬λ, κ°μ²΄ μ§ν₯μ κΈ°λ₯μ΄ μλ κ°μ²΄κ° μ€μ¬μ΄ λλ€. λκ° μ΄λ€ μΌμ ν κ²μΈκ°? κ° ν΅μ¬μ΄ λλ κ²μ΄λ€.
κ°μ²΄λ₯Ό λμΆνκ³ κ°κ°μ μν μ μ μν΄ λκ°λ κ²μ μ΄μ μ λ§μΆλ€.
λν νλ‘κ·Έλλ°μ κ²½μ°, λ§μ κΈ°λ₯μ μλ°νκΈ° λλ¬Έμ κ°μ²΄ μ§ν₯μ΄ μ ν©νλ€. κ° κ°μ²΄κ° νλ μν μ΄ λ§λλΌλ, λ§μ μν μ κ°μ²΄λ‘ λ¬Άμ μ μκΈ° λλ¬Έμ΄λ€. λ°λλ‘, μν νλ‘κ·Έλλ°μ κ²½μ°μλ μ ν©νμ§ μμλ°, μμ κΈ°λ₯μ κ°μ²΄λ³λ‘ λλκ² λλ©΄ μ€νλ € 볡μ‘ν΄μ§ κ°λ₯μ±μ΄ μκΈ° λλ¬Έμ΄λ€.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μ΄λ?
κ°μ²΄ μ§ν₯μ λν΄μ μμλ΄€λ€λ©΄, κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λν΄μ μμ 보μ.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ νλ‘κ·Έλλ°μμ νμν λ°μ΄ν°λ₯Ό μΆμνμμΌμ μνμ νμλ₯Ό κ°μ§ κ°μ²΄(ν΄λμ€)λ₯Ό λ§λ λ€. κ·Έ κ°μ²΄λ€ κ°μ μ κΈ°μ μΈ μνΈ μμ©μ ν΅ν΄ λ‘μ§μ ꡬμ±νλ νλ‘κ·Έλλ° λ°©λ²μ΄λ€.
ν΄λμ€μ κ°μ²΄(μΈμ€ν΄μ€)
- ν΄λμ€
- κ°μ²΄λ₯Ό λ§λ€κΈ° μν ν λλ μ€κ³λ
- κ°μ²΄μ μνλ₯Ό λνλ΄λ νλ => ν΄λμ€μ ν¬ν¨λ λ³μ
- κ°μ²΄μ νλμ λνλ΄κ³ νΉμ μμ μ μννκΈ° μν λͺ λ Ήλ¬Έμ μ‘ν© => λ©μλ
- κ°μ²΄(μΈμ€ν΄μ€)
- ν΄λμ€μμ μ μν κ²μ ν λλ‘ μ€μ λ©λͺ¨λ¦¬μ ν λΉλκ³ , μ€μ νλ‘κ·Έλ¨μμ μ¬μ©λλ λ°μ΄ν°
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μ₯μ
- μ½λ μ¬μ¬μ© μ©μ΄
- λ¨μ΄ λ§λ ν΄λμ€λ₯Ό κ°μ Έμ μ΄μ©ν μλ μκ³ , μμμ ν΅ν΄ νμ₯λ κ°λ₯
- μ μ§λ³΄μκ° μ¬μ
- μ μ°¨ μ§ν₯μ κ²½μ°, μ½λλ₯Ό μμ ν΄μΌ ν κ²½μ°μ μ°Ύμ μμ ν΄μΌ νλ λ°λ©΄, κ°μ²΄ μ§ν₯μ μμ ν΄μΌ ν λΆλΆμ΄ ν΄λμ€ λ΄λΆμ λ³μλ λ©μλλ‘ μ‘΄μ¬νμ¬ ν΄λΉ λΆλΆλ§ μμ ν μ μμ΄ μ μ§ λ³΄μκ° μ¬μ
- λν νλ‘μ νΈμ μ ν©
- ν΄λμ€ λ¨μλ‘ λͺ¨λννμ¬ κ°λ°ν μ μμ΄, μ¬λ¬ λͺ λλ μ¬λ¬ νμ¬μμ νλ‘μ νΈλ₯Ό κ°λ°ν λ μ 무 λΆλ΄μ΄ κ°νΈν¨
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λ¨μ
- μ²λ¦¬ μλκ° μλμ μΌλ‘ λλ¦Ό
- κ°μ²΄κ° λ§μμ§λ©΄ μ©λμ΄ μ»€μ§
- μ€κ³ μ, λ§μ μκ°κ³Ό λ Έλ ₯μ΄ νμ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ νΉμ§
- μΊ‘μν
- μ€μ λ‘ κ΅¬νλλ λΆλΆμ μΈλΆμ λλ¬λμ§ μλλ‘ νμ¬ μ 보λ₯Ό μλ
- κ°μ²΄κ° λ 립μ μΌλ‘ μν μ ν μ μλλ‘ λ°μ΄ν°μ κΈ°λ₯μ νλλ‘ λ¬Άμ΄ κ΄λ¦¬
- μΊ‘μνλ‘ μΈν΄ μ½λλ₯Ό μ¬μμ μμ΄ μ¬νμ© κ°λ₯
- μΆμν
- κ°μ²΄λ€μ 곡ν΅μ μΈ νΉμ§μ λμΆνλ κ²
- ν΄λμ€ μ μλ μΆμν κ³Όμ μ κ±°μΉ¨
- μμμ±
- νλμ ν΄λμ€κ° κ°μ§ νΉμ§μ λ€λ₯Έ ν΄λμ€κ° λ¬Όλ €λ°λ κ²
- λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό κΈ°λ₯μ κ·Έλλ‘ λ¬Όλ €λ°μ μ¬μ© κ°λ₯νλ©°, μμ ν΄λμ€μμ κΈ°λ₯ μΌλΆλΆμ μμ νμ¬ μ¬μ©ν μ μμ
- λ€μ€ μμμ λΆκ°λ₯
- λ€νμ±
- νλμ λ³μλͺ , ν¨μλͺ λ±μ΄ μν©μ λ°λΌ λ€λ₯Έ μλ―Έλ‘ ν΄μ κ°λ₯ν κ²
- μ€λ²λΌμ΄λ©κ³Ό μ€λ²λ‘λ©μ΄ κ°λ₯
- μ€λ²λΌμ΄λ©: λΆλͺ¨ ν΄λμ€μ λ©μλμ κ°μ μ΄λ¦, λ§€κ°λ³μλ₯Ό μ¬μ μ
- μ€λ²λ‘λ©: κ°μ μ΄λ¦μ ν¨μλ₯Ό μ¬λ¬ κ° μ μ, λ§€κ°λ³μ νμ κ³Ό κ°μλ₯Ό λ€λ₯΄κ²νμ¬ λ§€κ°λ³μμ λ°λΌ λ€λ₯΄κ² νΈμΆ κ°λ₯
- λμ λ°μΈλ©
- κ°μ ν¨μλ₯Ό νΈμΆνλ μ½λλ₯Ό μ»΄νμΌν λ, λ°μΈλ© μ€ν μκ°μ κ²°μ νλ κ²
- ν¨μλ₯Ό νΈμΆνλ©΄, λμ λ°μΈλ©μ ν΅νμ¬ ν΄λμ€μ μ€λ²λΌμ΄λ©λ ν¨μκ° μ€ν
CμΈμ΄, C++μΈμ΄μ JavaScriptμ μ°¨μ΄μ
- class κΈ°λ° / prototype κΈ°λ°
- CμΈμ΄μ C++μΈμ΄λ ν΄λμ€ κΈ°λ° κ°μ²΄μ§ν₯μΈμ΄μ΄μ§λ§, JavaScriptλ νλ‘ν νμ κΈ°λ° κ°μ²΄μ§ν₯μΈμ΄λ‘ ν΄λμ€λΌλ κ°λ μ΄ μμ
- class κΈ°λ° μΈμ΄λ classλΌλ κ°λ μ κ°μ§κ³ κ°μ²΄λ₯Ό μ°μ΄λ΄μ§λ§, prototype κΈ°λ° μΈμ΄λ classλΌλ κ°λ μ΄ μμ΄ κ°μ²΄ prototypeμ μμ κ³Όμ μ ν΅ν΄ μμμ΄ μ΄λ£¨μ΄μ§
- class κΈ°λ° μΈμ΄λ classλ₯Ό μ΄μ©ν΄ μλ‘μ΄ κ°μ²΄λ₯Ό λ½μλ΄κ³ , prototype κΈ°λ° μΈμ΄λ κ°μ²΄λΌλ¦¬μ chainingμ ν΅ν΄ λμ μΌλ‘ νν
- λκΈ° / λΉλκΈ°
- CμΈμ΄μ C++μΈμ΄λ λΉλκΈ°μ μ€ν
- JavaScriptλ λκΈ°μ μΈ νΉμ±μ κ°μ Έ μμ±ν μμλλ‘ μ€ν
- JavaScript μμ§μ λ¨μΌ μ€λ λμ΄κΈ° λλ¬Έμ ν λ² λμν λ, νλμ ν¨μλ§μ μ²λ¦¬ν μ μμ
μ°Έκ³
- https://jeong-pro.tistory.com/95
- http://www.incodom.kr/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5
- https://velog.io/@hidaehyunlee/JavaScript-C-%EB%AC%B8%EB%B2%95-%EB%B9%84%EA%B5%90
'Study > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] Restful API (0) | 2022.07.08 |
---|---|
[JavaScript] MVC / MVP / MVVM ν¨ν΄ (0) | 2022.07.08 |
[JavaScript] μ±κΈν€ ν¨ν΄(Singleton Pattern) (0) | 2022.07.08 |
[JavaScript] νΈμ΄μ€ν (Hoisting) (0) | 2022.07.08 |
[JavaScript] λΈλΌμ°μ μ μ₯μ (0) | 2022.07.08 |