추상화 ( Abstracion )
2022. 11. 14. 13:26ㆍ책 공부/스프링 입문을 위한 자바 객체 지향의 원리와 이해
반응형
※ 해당 게시물은 스프링을 위한 자바 객체 지향의 원리와 이해 ( 김종민 지음 ) 을 읽고 요약하여 작성한 것입니다.
추상 ( 抽象 ) [ 명사 ]
심리 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용.
추상-화 抽象畫 [ 명사 ]
미술 사물의 사실적 재현이 아니고 순수한 점ㆍ선ㆍ면ㆍ색채에 의한 표현을 목표로 한 그림. 일반적으로는 대상의 형태를 해체한 입체파 등의 회화도 포함한다.
추상-화 抽象化 [ 명사 ]
추상적인 것으로 됨. 또는 그렇게 만듦.
추상화는 모델링이다.
추상화란 구체적인 것을 분해해서 관심있는 특성만 가지고 재조합하는 것이라고 정리할 수 있다.
객체 지향의 특성은 클래스를 통해 구현된다 또는 객체라고 할 수 있다.
클래스와 객체에 대해 잘 모르겠다면 시작하기 전에 간단하게 아래 글을 읽고 오자.
많은 사람들이 클래스와 객체의 관계에 대해서 붕어빵틀과 붕어빵의 관계와 같은 것이 객체 관계의 전부를 표현하는
메타포로 착각하고 있다.
사람이라는 클래스를 설계한다고 생각해보자.
키, 몸무게, 혈액형, 시력 등등 명사로 표현되는 특성을 속성이라고 한다.
속성은 값을 가질 수 있다.
먹다, 자다, 싸다 등등 동사로 표현되는 특성을 기능 이라고 한다.
이러한 기능을 객체 지향에서는 메서드라고 하고 수행 절차 또는 로직이라고 하는 것을 갖게 된다.
만약 병원 또는 은행 애플리케이션을 만들고 있다면 사람은 환자 또는 고객을 의미하는 좀 더 구체적인 이름으로 바꿀 수
있을 것이고 앞서 사람이라는 클래스를 설계했을 때 필요없는 특성들이 보이기 시작한다.
추상화의 일반적인 뜻을 다시 새겨보자.
추상화란 구체적인 것을 분해해서 관심있는 특성만 가지고 재조합하는 것이라고 정리할 수 있다.
이것을 개발자스럽게 바꿔본다면
추상화란 구체적인 것을 분해해서 관심 영역( 애플리케이션 경계 ( Application Boundary ) 에 있는 특성만 가지고 재조합 하는 것
= 모델링
모델링 modelling [ 명사 ]
1.미술 모델을 보고 닮게 만드는 일. 주로 석고상이나 모델을 보고 점토 소조로 만드는 것을 이른다.
2.미술 회화에서, 입체감을 표현하는 일.
3.의학 치과에서 의치를 만들 때 환자의 이빨 모양을 본뜨기 위하여 사용하는 부드러운 물질. 부드러운 상태에서 꽉 깨물어 이빨의 모양을 찍어 낸 뒤 그대로 굳혀 틀로 이용한다.
즉 모델링은 실제 사물을 정확히 복제하는 게 아니라 목적에 맞게 관심 있는 특성만을 추출해서 단순하게 묘사하는 것이다.
이러한 것은 객체 지향에서 클래스를 설계하거나 데이터베이스의 테이블을 설계할 때 필요한 기법이다.
- OOP의 추상화는 모델링이다.
- 클래스 : 객체 = 펭귄 : 뽀로로
- 클래스 설계에서 추상화가 사용된다.
- 클래스 설계를 위해서는 애플리케이션 경계부터 정해야 한다.
- 객체 지향에서 추상화의 결과는 클래스다.
자바는 객체 지향의 추상화를 어떻게 지원하고 있을까?
바로 class 키워드를 통해서 지원하고 있다. 꼭 기억하자!
추상화 = 모델링 = 자바의 class 키워드
클래스와 객체 관계를 자바에서는 어떻게 표현할까?
클래스 객체_참조_변수 = new 클래스();
클래스 | 객체_참조_변수 | = | new | 클래스 | () |
객체_참조_변수의 자료형(Type) |
생성된 객체를 참조할 수 있는 변수 | 할당문 | 새로운 | 만들고자 하는 객체의 분류 |
메서드 |
클래스의 인스턴스 즉 객체를 생성하기 위해 객체 생성자를 호출 | |||||
새로운 객체를 하나 생성해 그 객체의 주소값을 객체 참조 변수에 할당 |
반응형
'책 공부 > 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
다형성 (1) | 2022.11.15 |
---|---|
상속성 (0) | 2022.11.14 |
객체 지향의 4대 특성 (0) | 2022.11.14 |
객체(Object)와 클래스(Class) (0) | 2022.11.11 |
JVM, JRE, JDK 이란 (0) | 2022.11.11 |