객체지향이란
객체지향의 등장
- 객체지향의 개념은 1970년대에 들어서 용어가 나왔으며 50년이 넘어가는 역사를 가지고 있다.
- 이전에는 C언어 처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 절차지향이 주를 이뤘으며 이러한 방법으로 코딩하는 언어들을 절차지향 언어라고 한다.
- 이 때에는 프로그램의 단위가 크지 않았으며 대체적으로 간단한 Logic을 순차적으로 처리하여 결과를 얻는데 그쳤지만 점점 컴퓨터의 발전과 이로 인하여 프로그램의 복잡도가 증가하면서 이에 들어가는 유지보수, 개발기간 등 다양한 부분에서 비 효율이 발생하였다.
- 이런 어려움을 해결하기 위해 선택한 방법이 효과적인 개발방식을 채택하게 되었고 이는 이전에 사용하던 흐름에 따른 개발 방식에서 벗어나 객체지향의 특성인 추상화, 상속, 은닉, 재사용, 인터페이스 등 여러 곳에서 객체지향으로 개발을 시작했다.
객체 설계하기
객체의 3가지 요소
- 상태 유지 (객체의 상태)
- 객체는 상태 정보를 저장하고 유지되어져야 하며 이러한 속성은 변수로 정의 되어져야 한다.
- 이러한 속성값이 바뀜으로 인하여 객체의 상태가 변경 될 수 있어야 한다.
- 기능 제공 (객체의 책임)
- 객체는 기능을 제공해야 한다. 이 부분은 Method의 제공으로 이루어진다.
- 이 부분은 캡슐화와 연관이 있으며 외부로 부터 직접 속성에 접근하여 변경 하는 것이 아닌 객체가 제공하는 Method로 기능이 제공 되어져야 한다.
- 고유 식별자 제공 (객체의 유일성)
- 각각의 객체는 고유한 식별자를 가져야 한다.
- 예를 들면 카드번호, 계좌번호, 자동차 번호와 같은 속성을 통해서 각각 고유한 값을 줄수 있다.
- 이는 이후 DB에서
Unique Key
또는Primary Key
로도 작성이 가능하다.
물리 객체와 개념 객체
- 물리객체
- 물리적 객체는 실제로 사물이 존재하며 이를 클래스로 정의한 객체를 의미한다.
- 자동차 렌탈 시스템 : 자동차, 고객, 직원, 사업장, 정비소 등
- 급여관리 시스템 : 직원, 월급통장 등
- PC방 관리 시스템 : PC, 직원, 공간, 책상, 의자
- 물리적 객체는 실제로 사물이 존재하며 이를 클래스로 정의한 객체를 의미한다.
- 개념객체
- 웹 시스템에서
Service
에 해당되며 이는business logic
을 처리하는 부분을 의미한다. Business logic
에서는 여러 객체를 서로 상호작용 하도록 하며 객체가 제공하는 오퍼레이션method
를 통하여 객체의 속성을 변경 시킨다.- 사용자 관리 시스템 : 사용자 객체의 마지막 접속일자를 이용하여 계정만료, 비밀번호 초기화, 재등록 처리 등
- ATM 시스템 : 사용자(Object)의 Action에 따라 계좌(Object)의 잔고의 속성을 변경하는 입금/출금 Logic 처리
- 웹 시스템에서
- 객체지향에서의 대부분의 코딩은 각 객체에 기능을 정의하고 이를
business logic
을 처리하는Service
에서 객체의Method
를 활용하여 여러가지 조건을 확인하여 객체의 속성을 변경하는 작업이 주된 코딩이 된다. - 이러한 작업을 하기 위해서는 각 객체의 속성(Variable)을 변경하거나 상태를 변경할 수 있는 오퍼레이션(Method)을 잘 정의 해야 한다.
Leave a comment