추상화는 모델링이다

추상화

  • 복잡한 현실 세계의 개체를 단순화시켜 컴퓨터 프로그래밍에서 표현할 수 있는 형태로 바꾸는 과정임
  • 클래스 라는 개념도 추상화의 결과물임
  • 라는 현실 개체가 있는 경우, 프로그램으로 표현하기 위해 필요한 핵심 속성과 기능만을 뽑아서 Car 클래스로 정의하는 것이 추상화

모델링

  • 현실세계의 개체나 시스템을 단순화시켜 모형으로 만드는 과정임
  • OOP 측면에서
    • 추상화를 통해 얻어진 클래스나 객체나 현실 세계의 모델로 불릴 수 있음.

객체와 모델링

객체 : 세상에 존재하는 유일무이한 사물

객체의 구성은 다음 2가지로 구성됩니다.

  1. 데이터(속성)
  1. 해당 데이터를 처리하는 메서드(기능)
  • 이렇게 객체를 정의하는 과정 자체가 현실 세계의 개체를 모델링하는 것임.
  • 사람 이라는 개체의
    1. 속성
      1. 이름
      1. 나이
      1. 성별 등
    1. 기능
      1. 걷다
      1. 먹다
      1. 말하다

    Person 이라는 클래스로 정의할 수 있음.

  • 위와 같은 과정을 사람 이라는 개체를 모델링하는 것임

    이는 객체 지향의 추상와와 동일한 과정

객체와 클래스

객체

  • 정의
    • 세상에 존재하는 유일무이한 사물
    • 특성(속성) 과 행위(기능) 을 가짐
    • 김연아사람 이라는 객체의 예시이며,
      • 그 특성은 이름, 나이, 성별
      • 행위에는 스케이팅, 노래 부르기 등이 있을 수 있음
    • 뽀로로펭귄 이라는 객체의 구체적인 예
  • 특징
    • 객체는 실제로 메모리 상에 할당되어 동작하거나 값을 가질 수 있음

클래스

  • 정의
    • 같은 특성과 기능을 가진 객체들을 총칭하는 집합적 개념
    • 객체를 생성하는 설계도 혹은
    • 사람 이라는 클래스는 김연아 홍길동 등과 같은 여러 사람 객체를 포함함.
  • 특징
    • 클래스는 동작하거나 값을 가지지 않습니다

      그저 객체를 생성하기 위한 설계도 입니다.

    • 사람 이라는 클래스를 이용하여 김연아홍길동 같은 구체적인 객체를 생성함.

객체와 클래스 관계

  • 객체는 클래스에 기반하여 생성됨.
  • 클래스는 객체의 설계도이자, 객체는 그 설계도를 바탕으로 실체화된 개별 사물이나 대상
  • 클래스: 객체 = 펭귄:뽀로로 의 관계

클래스의 인스턴스

  • 객체를 특정 클래스를 이용해 만들었다고 표현할 때
    해당 객체는 그 클래스의 인스턴스 라고 부름

추상화와 애플리케이션의 경계

  • 애플리케이션의 목적에 따라 클래스 설계가 달라짐
    • 이를 애플리케이션 경계라고 부르며, 컨텍스트 라고 합니다.
  • 예를 들어
    • 병원 APP
      • 사람 환자
      • 일반적인 사람의 특성 중 병원에서 필요한 특성만을 선택해 클래스 설계
    • 은행 APP
      • 사람 고객
      • 고객과 관련된 특성만을 선택해 클래스 설계함

추상화와 모델링

  1. 추상화
    • 구체적인 것을 분해하여 관심 영역에 대한 특성만을 가지고 재조합하는 과정
  1. 모델링
    • 애플리케이션 경계 에 있는 특성만 가지고 재조합하는 것
    • 실제 사물을 100% 반영하는 것이 아니라, 관심있는 특성만 추출하여 표현하는 것!

추상화의 개념의 확장

  1. 상속을 통한 추상화, 구체화
  1. 인터페이스를 통한 추상화
  1. 다형성을 통한 추상화

이렇게 3가지가 존재하는데, 추후 상속과 다형성, 인터페이스 설명할때 추가설명함


Uploaded by N2T