객체향 프로그래밍이란?

작은 문제들을 해결할 수 있는 객체들을 만들고, 이 객체들을 조합하여 큰 문제를 해결하는 방식

좋은 객체지향 설계는 코드의 재사용, 유지보수의 용이성 등의 장점이 있고 개발기간/비용을 절역할 수 있다

항상 코드는 유연하고 확장할수 있고 유지보수가 용이해야하고 재사용할 수 있어야 한다

OOP의 4대원칙

1. 추상화 (Abstraction) - [모델링]

2. 캡슐화 (Encapsulation) - [모델링 / 정보은닉 / 데이터 캡슐화]

3. 상속성 (Inheritance) - [재사용 / 확장]

다향성 (Polymorphism) - [사용편의 / 동적바인딩]