티스토리 뷰
추상화
추상화란 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합 하는 것으로 객체 모델링 이라고 합니다. 이 말을 이해하려면 일단 클래스와 객체의 의미를 명확하게 정의해 보겠습니다.
● 객체는 유일무이한 사물로써 속성과 기능을 가짐
● 클래스는 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념
김연아, 원빈은 어떠한 속성과 기능을 가지는 객체에 해당이 되고 김연아, 원빈을 총칭하는 개념으로 '사람'이라는 클래스라고 볼 수 있습니다.
다시 모델링이라는 개념을 보도록 하겠습니다. 모델링을 한다는 것은 보통 클래스를 설계를 한다는 것과 같은 의미입니다. 예를 들어 '사람'이라는 클래스를 설계한다고 가정해보겠습니다.
사람의 속성 : 키,몸무게,성별,머리길이,다리길이 ......
사람의 기능 : 걷다, 뛰다, 눕다, 자다 ......
위와 같이 '사람'이라는 클래스는 수백만가지의 속성과 기능을 가질 수 있습니다. 이제 추상화라는 개념을 적용 해보겠습니다. 추상화는 어떤 대상의 '구체적인 것'을 관심 있는 특성만 가지고 와서 재조합 하는 것이라고 하였습니다. 이제 생각 해 볼 문제는 관심 있는 특성을 어떻게 가져오느냐 하는 것입니다. 그것은 바로 어플리케이션 경계를 정하는 것입니다. 어플리케이션 경계란 내가 만들고자 하는 어플리케이션은 어디에 사용 될 것인가? 하는 것입니다. 예를 들어 은행 고객 관리 어플리케이션을 만드는데 '사람' 클래스를 모델링을 한다고 가정해 보겠습니다. 위에서 보았듯이 '사람'이 가질 수 잇는 수많은 속성과 기능 중에서 은행 고객 관리 프로그램을 만들기 위해 필요한 부분의 특성만을 가지고 올 수 있습니다. 고객 관리 프로그램에 사람의 속성으로는 이름,성별,전화번호 등이 올 수 있고 기능으로는 입금하다, 저축한다 등이 올 수 있습니다. 다른 속성(머리길이, 다리길이)이나 기능(걷다,뛰다 등)은 필요가 없게 되는 것입니다.
그럼 이렇게 추상화라는 개념을 정리 해 볼수 있습니다.
추상화란 구체적인 것을 분해해서 관심 영역(어플리케이션 경계)에 있는 특성만 가지고 재조합 하는 것
출처: 스프링 입문을 위한 자바 객체 지향의 원리와 이해
'Programming > JAVA' 카테고리의 다른 글
05 [객체 지향 언어의 이해] 객체 지향의 4대 특성 04 - 다형성과 캡슐화 (0) | 2017.09.12 |
---|---|
04 [객체 지향 언어의 이해] 객체 지향의 4대 특성 03 - 상속 (0) | 2017.09.11 |
03 [객체 지향 언어의 이해] 객체 지향의 4대 특성 - 02 추상화와 메모리 (0) | 2017.09.09 |
자바 (JAVA) getter/setter 메서드 (0) | 2017.09.02 |
01[객체 지향 언어의 이해] 프로그램이 메모리를 활용하는 방법 (0) | 2017.08.31 |