티스토리 뷰

반응형

추상화

 

추상화란 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합 하는 것으로 객체 모델링 이라고 합니다. 이 말을 이해하려면 일단 클래스와 객체의 의미를 명확하게 정의해 보겠습니다.

 

객체는 유일무이한 사물로써 속성과 기능을 가짐

 

클래스는 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념

 

김연아, 원빈은 어떠한 속성과 기능을 가지는 객체에 해당이 되고 김연아, 원빈을 총칭하는 개념으로 '사람'이라는 클래스라고 볼 수 있습니다.

 

다시 모델링이라는 개념을 보도록 하겠습니다. 모델링을 한다는 것은 보통 클래스를 설계를 한다는 것과 같은 의미입니다. 예를 들어 '사람'이라는 클래스를 설계한다고 가정해보겠습니다.

 

사람의 속성 : 키,몸무게,성별,머리길이,다리길이 ......

 

사람의 기능 : 걷다, 뛰다, 눕다, 자다 ......

 

위와 같이 '사람'이라는 클래스는 수백만가지의 속성과 기능을 가질 수 있습니다. 이제 추상화라는 개념을 적용 해보겠습니다. 추상화는 어떤 대상의 '구체적인 것'을 관심 있는 특성만 가지고 와서 재조합 하는 것이라고 하였습니다. 이제 생각 해 볼 문제는 관심 있는 특성을 어떻게 가져오느냐 하는 것입니다. 그것은 바로 어플리케이션 경계를 정하는 것입니다. 어플리케이션 경계란 내가 만들고자 하는 어플리케이션은 어디에 사용 될 것인가? 하는 것입니다. 예를 들어 은행 고객 관리 어플리케이션을 만드는데 '사람' 클래스를 모델링을 한다고 가정해 보겠습니다. 위에서 보았듯이 '사람'이 가질 수 잇는 수많은 속성과 기능 중에서 은행 고객 관리 프로그램을 만들기 위해 필요한 부분의 특성만을 가지고 올 수 있습니다. 고객 관리 프로그램에 사람의 속성으로는 이름,성별,전화번호 등이 올 수 있고 기능으로는 입금하다, 저축한다 등이 올 수 있습니다. 다른 속성(머리길이, 다리길이)이나 기능(걷다,뛰다 등)은 필요가 없게 되는 것입니다.

 

그럼 이렇게 추상화라는 개념을 정리 해 볼수 있습니다.

 

추상화란 구체적인 것을 분해해서 관심 영역(어플리케이션 경계)에 있는 특성만 가지고 재조합 하는 것

 

 

 

 

 

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

 

 

 

 

 

 

 

반응형