λ°˜μ‘ν˜•
객체지ν–₯이 λ‚˜μ˜€κ²Œ 된 λ°°κ²½

 1970λ…„λŒ€ μ΄μ „μ—λŠ” 섀계없이 ν•„μš”ν• λ•Œλ§ˆλ‹€ κ°œλ°œν•˜λŠ” λ°©μ‹μœΌλ‘œ 진행
    → μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ μ€‘λ³΅μ½”λ“œ 증가, μœ μ§€λ³΄μˆ˜μ˜ 어렀움 λ°œμƒμœΌλ‘œ 신뒰도 λ°”λ‹₯ 및 μ„±λŠ₯ μ €ν•˜ λ“±μ˜ μ΄μŠˆκ°€ λ°œμƒν•˜κ²Œλ¨

 1970λ…„λŒ€ 이후, ν”„λ‘œκ·Έλž¨μ„ μͺΌκ°œμ–΄ κ°œλ°œν•˜λŠ” ꡬ쑰적 개발 방법이 많이 μ‚¬μš© (뢄석 - 섀계 - 개발 - ν…ŒμŠ€νŠΈ)
    → μ‚¬μš©μž μš”κ΅¬μ‚¬ν•­μ΄ λͺ…ν™•ν•˜κ³  λ³€ν™”κ°€ 많이 μ•Šμ€ ν™˜κ²½μ—μ„œλŠ” νš¨μœ¨μ μ΄λ‚˜, 생λͺ…μ£ΌκΈ° 각 단계별(ex. λ¬Όν’ˆκ΅¬λ§€..λ¬Όν’ˆμ‘°νšŒ..λ¬Όν’ˆμ‚­μ œ..)둜 μžμ—°μŠ€λŸ½κ²Œ μ„œλ‘œ μ—°κ²°λ˜μ§€ μ•Šκ³ , ν”„λ‘œκ·Έλž¨ λ‚΄λΆ€ κΈ°λŠ₯듀은 데이터와 λ³΅μž‘ν•˜μ—¬ μ–½ν˜€μžˆμ–΄ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ³€κ²½ν•˜λŠ”κ²Œ 쉽지 μ•ŠμŒ
     μœ μ§€λ³΄μˆ˜ λΉ„μš© 증가
     κ°μ²΄μ§€ν–₯이 λ‚˜μ˜€κ²Œλ¨

 κ°μ²΄μ§€ν–₯은 ν˜„μ‹€μ„Έκ³„μ— μ‘΄μž¬ν•˜λŠ” 싀체 및 κ°œλ…λ“€μ„ κ°μ²΄λΌλŠ” λ…λ¦½λœ λ‹¨μœ„λ‘œ ꡬ성 & λ©”μ„Έμ§€λ‘œ μƒν˜Έμž‘μš© & 객체지ν–₯ μ‹œμŠ€ν…œμ„ κ°€μ‹œν™”ν•˜κ³  λͺ…μ„Έν™”ν•˜κ³  λ¬Έμ„œν™”ν•œκ²ƒμ΄ UML

 

객체지ν–₯ μš”μ†Œ

• 객체(Object) : 속성과 행동을 가지고 μžˆλŠ”κ²ƒ
     (자료(=속성(λ³€μˆ˜) + κ°’(λ³€μˆ˜κ°’)=ν΄λž˜μŠ€μ—μ„œ μ •μ˜) 및 μ˜€νΌλ ˆμ΄μ…˜(=ν΄λž˜μŠ€μ— ν¬ν•¨λ˜μ–΄μžˆλŠ” λ©”μ†Œλ“œ))

 ν΄λž˜μŠ€(Class) : 객체λ₯Ό 생성할 수 μžˆλŠ” ꡬ쑰와 정보λ₯Ό 가지고 μžˆλŠ” ν‹€ 

 λ©”세지(Message) : μ–΄λ–€ ν•œ 객체가 λ‹€λ₯Έ κ°μ²΄μ—κ²Œ νŠΉμ • μž‘μ—…μ„ μš”μ²­ν•˜λŠ” μ‹ ν˜Έ
     μˆ˜μ‹ κ°μ²΄ 이름 + μˆ˜ν–‰ν•  μ˜€νΌλ ˆμ΄μ…˜ 이름 + μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜ 

 

객체지ν–₯ νŠΉμ„±

 μΊ‘μŠν™”(Encapsulation) : ν•΄λ‹Ή κΈ°λŠ₯의 λ™μž‘μ— λŒ€ν•œ 흐름을 μžμ„Έν•˜κ²Œ μ•Œν•„μš” 없이, μ™ΈλΆ€μ—μ„œ μ›ν•˜λŠ” κΈ°λŠ₯듀을 μˆ˜ν–‰ν•˜λ„λ‘ μ§€μ‹œν•˜λŠ”κ²ƒ. 
     μ™ΈλΆ€μ—μ„œ 객체 λ‚΄ 직접 μ ‘κ·Ό X
     μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” μ˜€νΌλ ˆμ΄μ…˜μ„ 톡해 κ΄€λ ¨ 데이터에 μ ‘κ·Ό (이둜써 λ‹¨μˆœν•˜κ³  λͺ…ν™•ν•˜κ²Œ ν‘œν˜„κ°€λŠ₯)
     μ •λ³΄μ€λ‹‰μ΄ κ°€λŠ₯ 

 μƒμ†(Inheritance) : ν”„λ‘œκ·Έλž¨μ„ ν™•μž₯ κ°€λŠ₯ν•˜λ„λ‘ ν•΄μ£ΌλŠ” μˆ˜λ‹¨
     μž¬μ‚¬μš© 및 ν™•μž₯μ„± 
     μΌλ°˜ν™”(Generalization) : ν•˜μœ„ν΄λž˜μŠ€μ˜ 곡톡적 νŠΉμ„±μ„ μΆ”μƒν™”ν•˜μ—¬ μƒμœ„ 클래슀둜 μ •μ˜ν•˜λŠ”κ²ƒ (ν•˜μœ„ -> μƒμœ„)
     νŠΉμˆ˜ν™”(Specialization) : μƒμœ„ 클래슀의 속성을 상속받아 ν•˜μœ„ ν΄λž˜μŠ€μ— 싀체화 (μƒμœ„ -> ν•˜μœ„)

 μΆ”상화(Abstraction) : νŠΉμ •μΈ‘λ©΄μ„ κ°•μ‘°ν•˜μ—¬ λ‚˜νƒ€λ‚Έκ²ƒ. 싀세계상황을 κ°„κ²°ν•˜κ³  λͺ…ν™•ν•˜κ²Œ λͺ¨λΈλ§ν•˜μ—¬ 이것을 ν”„λ‘œκ·Έλž¨μœΌλ‘œ κ΅¬ν˜„(=싀체화)

 λ‹€ν˜•μ„±(Polymorphism) : μ—¬λŸ¬ν΄λž˜μŠ€μ— 같은 λ©”μ†Œλ“œλͺ…을 μ‚¬μš©ν•˜λ‚˜, λ™μž‘μ΄ λ‹€λ₯Έ μΌ€μ΄μŠ€ (μ˜€λ²„λΌμ΄λ”©)

 

>>> μΊ‘μŠν™”μ™€ 좔상화λ₯Ό 헀깔리면 μ•ˆλ λ“―!
μΊ‘μŠν™”λŠ” 결과의 ν–‰λ™λ§Œ λ°”λΌλ³΄λŠ”κ²ƒμ΄λ©΄(ν˜ΈμΆœν•˜λŠ”μžμ˜ μž…μž₯에선 내뢀사정은 μ•Œν•„μš” μ—†λ‹€!), μΆ”μƒν™”λŠ” ꡬ체화λ₯Ό ν•˜κΈ° μœ„ν•œ μˆ˜λ‹¨μ˜ μ‹œμž‘μœΌλ‘œ 봐야할듯

λ°˜μ‘ν˜•

+ Recent posts