#1 κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μ μ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(Object Oriented Programming)μ΄λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μ»΄ν¨ν° νλ‘κ·Έλλ° ν¨λ¬λ€μμ€ νλλ‘, νλ‘κ·Έλλ°μμ νμν λ°μ΄ν°λ₯Ό μΆμνμμΌ μνμ νμλ₯Ό κ°μ§ κ°μ²΄λ₯Ό λ§λ€κ³ κ·Έ κ°μ²΄λ€ κ°μ μ κΈ°μ μΈ μνΈμμ©μ ν΅ν΄ λ‘μ§μ ꡬμ±νλ νλ‘κ·Έλλ° λ°©λ²μ΄λ€.
OOPμμ κ°μμ λ»μ
* Object : 1) κ°μ²΄, 2) ν΄λμ€μμ μ μν κ²μ ν λλ‘ λ©λͺ¨λ¦¬(μ€μ μ μ₯곡κ°)μ ν λΉλ κ²
* Oriented : μ§ν₯ ( μ΄λ€ λͺ©νμ λ»μ΄ μ λ € ν₯νλ κ². )
* Programming : μΆμ μκ³ λ¦¬μ¦μ νΉμ ν νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ΄μ©ν΄ ꡬ체μ μΈ μ»΄ν¨ν° νλ‘κ·Έλ¨μΌλ‘ ꡬννλ κΈ°μ
#2 κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ μ₯-λ¨μ
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° μ₯μ )
1. λν νλ‘μ νΈμ μ ν©
ν΄λμ€λ¨μλ‘ λͺ¨λνμμΌμ κ°λ°ν μ μμΌλ―λ‘ λν νλ‘μ νΈμ²λΌ μ¬λ¬λͺ , μ¬λ¬νμ¬μμ κ°λ°μ΄ νμν μ μ 무 λΆλ΄νκΈ° μ½λ€.
2. μμ°μ μΈ λͺ¨λΈλ§
κ°μ²΄, ν΄λμ€, μμ± μμ λ° λ€νμ± λ±μ μ°λ¦¬μ μΌμμνμμ λ³΄ν΅ μ¬λλ€μ΄ λνκ³ μκ°νλ λ°©μμ κ·Έλλ‘ νλ‘κ·Έλ¨ μΈμ΄λ‘ ννν μ μκ² ν΄μ€λ€.
3. μ½λ μ¬μ¬μ©
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ½λμ μ¬μ¬μ©μ κ·Ήλννλ€. ν νλ‘κ·Έλ¨ λ΄μμ νμ ν΄λ μ€λ€μ΄ μμ ν΄λ μ€μ μμ±μ ννν μ½λλ₯Ό μ¬μ¬μ©νλ©°, μλ‘μ΄ νλ‘κ·Έλ¨ κ°λ° μ κΈ°μ‘΄ νλ‘κ·Έλ¨μ΄ κ°κ³ μλ ν΄λμ€ μμ ꡬ쑰μμ λ§μ ν΄λμ€λ€μ μννΈμ¨μ΄ ICλ‘ μ¬μ¬μ©ν μ μλ€.
4. μ μ§λ³΄μμ μ©μ΄μ±
κ°μ²΄μ§ν₯ νλ‘κ·Έλ¨μ κΈ°μ‘΄μ κΈ°λ₯μ μμ νκ±°λ μλ‘μ΄ κΈ°λ₯μ μΆκ°νκΈ°κ° μ©μ΄νλ€. κΈ°μ‘΄ κΈ°λ₯μ μμ μ ν¨μλ₯Ό μλ‘κ² λ°κΎΈλλΌλ μΊ‘μνμ κ·Έ ν¨μμ μΈλΆμ λ³΄κ° μνλμ΄ μμ΄ μ£Όλ³μ λ―ΈμΉλ μν₯μ μ΅μν νλ€. μλ‘μ΄ κ°μ²΄μ μ’ λ₯λ₯Ό μΆκ° μμλ μμμ ν΅νμ¬ κΈ°μ‘΄μκΈ°λ₯μ νμ©νκ³ μ‘΄μ¬νμ§ μμ μλ‘μ΄ μμ±λ§ μΆκ°νλ©΄ λλ―λ‘ λ§€μ° κ²½μ μ μ΄λ€. μ΄μΈμλ μ μ§μ νλ‘κ·Έλ¨ κ°λ°μ μ©μ΄μ±, μꡬμ¬ν λ³νμ λν΄ μμ λ νλ‘κ·Έλ¨ κ΅¬μ‘° λ±μ λ³Ό μ μλ€.
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° λ¨μ )
1. κ°μ²΄κ° λ§μμ§λ©΄ μ©λμ΄ μ»€μ§λ€.
2. μ²λ¦¬μλκ° μλμ μΌλ‘ λλ¦Ό.
3. μ€κ³μ λ§μ μκ°κ³Ό λ Έμ€λ ₯μ΄ νμν¨.
#3 κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° ν€μλ 5κ°μ§
1) ν΄λμ€ + μΈμ€ν΄μ€(κ°μ²΄)
ν΄λμ€ : μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²°νλ € λ°μ΄ν°λ₯Ό 2)μΆμνλ₯Ό μμΌ μ§λ¨μ μνλ μμ±κ³Ό νμλ₯Ό λ³μμ λ©μλλ‘ μ μν κ²
μΈμ€ν΄μ€(κ°μ²΄) : ν΄λμ€μμ μ μν κ²μ ν λλ‘ μ€μ λ©λͺ¨λ¦¬μμ ν λΉλ κ² (μ€μ νλ‘κ·Έλ¨μμ μ¬μ©λλ λ°μ΄ν°)
2) μΆμν
: λΆνμν μ 보λ μ¨κΈ°κ³ μ€μν μ 보λ§μ ννν¨μΌλ‘μ¨ κ³΅ν΅μ μμ±μ΄λ κΈ°λ₯μ λ¬Άμ΄ μ΄λ¦μ λΆμ΄λ κ²μ΄λ€.
3) μΊ‘μν : κΈ°λ₯κ³Ό νΉμ±μ λͺ¨μμ "ν΄λμ€"λΌλ "μΊ‘μ"μ λΆλ₯ν΄μ λ£λκ²
μΊ‘μνμ λͺ©μ : μ½λλ₯Ό μ¬μμ μμ΄ μ¬νμ©νλ κ².
=> νλ‘κ·Έλ¨ μ½λμμ λ³μμ ν¨μλ₯Ό μ¬νμ©νκΈ°μλ λΆμ°λμ΄ μκΈ° λλ¬Έμ μ¬νμ©μ΄ μ΄λ €μ μΌλ μΊ‘μνλ₯Ό ν΅ν΄ κ΄λ ¨λ κΈ°λ₯κ³Ό νΉμ±μ ν κ³³μ λͺ¨μΌκ³ λΆλ₯νκΈ° λλ¬Έμ μ¬νμ©μ΄ μνν΄μ‘λ€.
4) μμ
λΆλͺ¨ν΄λμ€μ μμ±κ³Ό κΈ°λ₯μ κ·Έλλ‘ μ΄μ΄λ°μ μ¬μ©ν μ μκ²νκ³ κΈ°λ₯μ μΌλΆλΆμ λ³κ²½ν΄μΌ ν κ²½μ° μμλ°μ μμν΄λμ€μμ ν΄λΉ κΈ°λ₯λ§ λ€μ μμ (μ μ)νμ¬ μ¬μ©ν μ μκ² νλ κ²μ΄λ€.(λ€μ€μμ X)
μμ λμ μ΄μ :
μ μ μ§ν₯ νλ‘κ·Έλλ°μμλ "λΌμ΄λΈλ¬λ¦¬"λ₯Ό ν΅ν΄μ λ¨μ΄ μ§λμ μμ€ μ½λλ₯Ό κ°μ Έμ μ¬μ©ν μ μμλ€.
νμ§λ§ λ΄ μλμ λ§κ² μμ νκ²λλ©΄ λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬κ° λμ΄ λ²μ μ λ°λΌ λμνμ§ μμ μ μκ³ λΆνμν μ½λμ μμ μμ μ ν΄μΌνλ€λ κ²μ΄λ€.
5) λ€νμ±
νλμ λ³μλͺ , ν¨μλͺ λ±μ΄ μν©μ λ°λΌ λ€λ₯Έ μλ―Έλ‘ ν΄μλ μ μλ κ²μ΄λ€.
μ¦ μ€λ²λΌμ΄λ©, μ€λ²λ‘λ©μ΄ κ°λ₯
1) μ€λ²λΌμ΄λ©(Overriding) : λΆλͺ¨ν΄λμ€μ λ©μλμ κ°μ μ΄λ¦, 맀κ°λ³μλ₯Ό μ¬μ μ νλκ².
2) μ€λ²λ‘λ©(Overloading) : κ°μ μ΄λ¦μ ν¨μλ₯Ό μ¬λ¬κ° μ μνκ³ , 맀κ°λ³μμ νμ κ³Ό κ°μλ₯Ό λ€λ₯΄κ² νμ¬ λ§€κ°λ³μμ λ°λΌ λ€λ₯΄κ² νΈμΆν μ μκ² νλ κ².
μ°Έκ³ μλ£ : https://jeong-pro.tistory.com/95# [κΈ°λ³ΈκΈ°λ₯Ό μλ μ μλ§μΆμ΄ μ½λ©λΈλ‘κ·Έ]
'Development > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Rest API λ (0) | 2020.12.29 |
---|