객체지향의 등장

  • 객체지향의 개념은 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