이전 포스팅에서 객체지향 프로그래밍이 등장하게 된 배경을 기반으로 OOP 의 핵심 키워드와, 4가지 큰 특징에 대해서 알아보았다. 이번 포스팅에선 객체지향 프로그래밍의 특성과 장점을 최대한으로 끌어올리기 위해 프로그램을 어떻게 설계해야 하는 지에 대한 이야기를 다뤄본다. 객체지향 설계과정 요구사항 (제공해야 할 기능) 을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다. 기능을 구현하는 데에 필요한 데이터를 객체에 추가한다. 해당 데이터를 이용하는 기능을 구현한다. (기능은 최대한 캡슐화) 객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다. 객체지향 설계원칙 흔히 SOLID 라고 부르는 5가지 설계원칙이 존재한다. 솔직히 원문 그대로 해석하면 외계어가 따로 없다. 하나씩 살펴보도록 하자...