객체 지향 프로그래밍이란? 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호 작용을 통해 프로그램을 만드는 것 객체란? 클래스라는 틀(template)에서 생겨난 실체(Instance) 객체 지향 프로그래밍을 사용해야 하는 이유는? 실세계에 대한 쉬운 모델링 응용 소프트웨어를 하나의 절차로 모델링 하기는 어렵다. 대부분의 응용 소프트웨어 특성상 절차보다는 관련된 여려 객체들간의 상호작용으로 모델링하는 것이 더 쉽고 적합하다 생산성 상속과 다형성으로 이미 만들어진 클래스를 기반으로 재정의해서 사용할 수 있고, 캡슐화로 만든 클래스를 실체화 시킨 객체를 계속해서 만들어낼 수 있다 보안성 캡슐화로 구현된 클래스에서 특정 부분을 은닉할 수 있다 SOLID (객체 지향 설계 원칙) 1. 단일 책임 원칙..