ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 객체지향이란?
    Framework/Spring 2021. 7. 15. 00:06


    객체지향의 등장

    • 객체지향 이전에는 C언어처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 "절차 지향"이 주를 이루었다.
      => 이와 같은 코딩하는 언어들을 "절차지향 언어"라고 지칭한다.
    • 이 당시에는 프로그램의 단위가 크지 않았고, 대체적으로 간단한 로직을 순차적으로 처리하여 결과를 얻는데 그쳤지만, 컴퓨터의 발전과 이로 인한 프로그램의 복잡도가 증가하며 이에 들어가는 유지보수, 개발기간등 다양한 방면에서 비효율이 발생하였다.
    • 위의 비효울적인 부분을 개선하고자 "효과적인 개발방식"을 채택하게 되었고 객체지향의 특성인 추상화, 상속, 은닉, 재사용, 인터페이스등 여러 곳에서 객체지향으로 개발을 시작하였다.
    • 객체지향이란 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의하고 절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하기 시작하였다.
      => 사물은 객체라고 부르며, 해당 사물이 하는 행위는 메소드 해당 사물이 가지고 있는 속성을 변수라고 정의한다.

     

    객체 설계

    • 자동차
      =>속성: 자동차 이름, 자동차 번호, 등록년월, 모델명..
      =>행위: 주행거리, 연비계산, 번호교체, 등록증갱신
    • 계정
      =>속성: 아이디, 패스워드, 이메일, 전화번호..
      =>행위: 계정등록, 계정삭제, 비밀번호변경..
    • 객체의 3가지 요소(객체의 상태, 객체의 책임, 객체의 유일성)
      - 상태 유지: 객체는 상태 정보를 저장하고, 유지되어져야하며 이러한 속성은 변수로 정의되어져야한다. 이러한 속성값이 바뀜으로 인해 객체의 상태가 변경될 수 있어야한다.
      - 기능 제공: 메소드를 통해 기능을 제공해야하고, 외부로 부터 직접 속성에 접근하여 변경하는 것이 아닌 객체가 제공하는 메서드로 기능이 제공되어져야 한다.
      - 고유 식별자 제공: 각각의 객체는 고유한 식별자를 가져야 한다.

     

    물리 객체와 개념 객체

    • 물리 객체
      => 물리적 객체는 실제로 사물이 존재하며, 이를 클래스로 정의한 객체를 의미한다.
      => Ex) 자동차 렌탈 시스템: 자동차, 고객, 직원, 사업장...
    • 개념 객체
      => 웹 시스템에서 Service에 해당되며, Business logic을 처리하는 부분을 의미한다.
      => Business logic에서는 여러 객체를 서로 상호작용하도록 하며 객체가 제공하는 오퍼레이션 메소드를 통하여 객체의 속성을 변경 시킨다.

    댓글

[Everything's gonna be fine]