[TIL] 추상화: 모델링

hyo_·2021년 1월 22일
0

JAVA 

목록 보기
13/20

※ 본 글은 아래 도서를 공부한 후 정리한 내용입니다.

📚 스프링 입문을 위한 자바 객체지향의 원리와 이해


추상화 이해하기

추상의 사전적 의미

📌추상(抽象)[명사][심리] 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용

추상화 = 모델링이다.

일단 추상화에 대해 자세히 설명하기 전 클래스와 객체에 대해 다시 짚어보자.

⭐객체(object)

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

  • 이러한 객체는 생물이건 무생물이건 속성과 기능을 가지고 있다.

⭐클래스(class)

분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념

  • 세상에 존재하는 유일무이한 객체를 특성(속성 + 기능)에 따라 분류해 보니 객체를 통칭 할 수 있는 집합적 개념, 즉 클래스가 나오게 됐다.

    EX) 클래스 : 객체 = 펭귄 : 뽀로로 = 사람 : 김연아 = 쥐 : 미키마우스

객체 생성 방법 - 클래스를 사용하여 객체를 생성해준다.

사람 홍길동 = new 사람();

클래스를 이용해 object를 만들었다는 것을 강조할 때

객체(object) = 클래스의 인스턴스라고 한다.

다시 추상화를 이해해보자

만약 사람이라는 클래스를 설계한다고 하자. 사람 클래스를 만들기 위해 주변에서 보이는 실체들, 즉 사람 객체들을 관찰해서 사람 객체들이 가진 공통된 특성을 찾게 된다. 시력, 몸무게, 혈액형 등 명사로 표현되는 특성을 속성이라고 하고, 속성은 값을 가질 수 있다. 먹다, 자다, 일하다 등 동사로 표현되는 특성을 기능/행위라고 한다. 이러한 기능/행위는 수행 절차 또는 로직을 갖게 되는데, 이를 메서드라고 한다.

  • 사람 클래스의 UML

추상화의 일반적 뜻을 다시 새겨보자.

추상화란 구체적인 것을 분해해서 관심 영역에 대한 특성만을 가지고 재조합 하는것

위의 정의를 IT 용어로

📌 추상화란 구체적인 것을 분해해서 관심 영역(애플리케이션 경계, Application Boundary)에 있는 특성만 가지고 재조합 하는것 즉, 모델링이라고 한다. 추상화 = 모델링

애플리케이션 경계 (컨텍스트:Context)

"내가 만들고자 하는 애플리케이션은 어디에서 사용될 것인가?"를 나타내는 것이 애플리케이션 경계이다.

  • 애플리케이션 경계에 따른 사람 클래스의 설계 차이

정리

  • OOP의 추상화는 모델링이다!
  • 클래스 : 객체 = 펭귀 : 뽀로로
  • 클래스 설계에서 추상화가 사용된다!!
  • 클래스 설계를 위해서는 애플리케이션 경계부터 정해야 한다!
  • 객체 지향에서 추상화의 결과는 클래스이다!

👉 추상화의 개념을 넓게 보면

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

자바에서는 객체지향의 추상화를 어떻게 지원하고 있을까?

class 키워드를 통하여 지원!! 꼭! 기억하기

  • 추상화 = 모델링 = 자바의 class 키워드

추가

클래스와 객체 관계를 자바에서 어떻게 표한 할까?

  • 클래스 객체-참조-변수 = new 클래스();

profile
🎓의지적인 삶을 살자!😊

0개의 댓글