추상화. Abstract

 

추상화란 많은 내용을, 또는 많은 양을 한마디로, 또는 적은 양으로 표현하는 것이다.

개념적인, 특징적인 면을 잡아서 나타내는 것. 이것이 추상화다.

 

사전적 의미로는 아래와 같다.

추상화 : [명사]추상적인 것으로 만들거나 되거나 함.

(지금 그 추상적인게 뭔지 알고 싶은건데 장난하시나...)

 

프로그래밍에서 생각할때 추상화란, 프로그래밍 언어의 발전 과정에서 필수적으로 등장하게 된다.

 

처음의 기계어에서부터... 조금씩 조금씩 발전하며, 추상화라는 방법이 제시되었고,

지금의 객체지향 프로그래밍 언어에 이르게 되었다.

 

UML을 보면 추상화에 대해 좀 더 쉽게 이해할 수 있다.

(UML : Unified Modeling Language - 통합 모델링 언어)

UML에서 추상화는 객체와 함께 쓰일 수 밖에 없는데, 여러 클래스, 메소드, 오퍼레이션, 속성들을

객체화 시키고 추상화 시켜서 많은 편리하고도 유용한 "이득"을 얻을 수 있다.

일례로, 축구게임을 만든다고 할때, 선수의 기본적인 속성(이름, 신장, 체중 등)들과

오퍼레이션(메소드 : 드리블(), 슈팅(), 디펜스() 등)등을 Player라는 클래스로 추상화 시켜놓고,

하위 인스턴스를 생성해서 상속 받아 미드필더, 포워드, 골키퍼 등을 구현한다면,

동일한(겹치는) 코드를 여러번 코딩 할 필요도 없을 뿐더러, 이제는 각각의 포지션에 맞는 부분들을

추가로 구현하기만 하면 되는것이다.(물론 중간 과정에서 오퍼레이션의 조정이 있겠지만,,)

Posted by croute

댓글을 달아 주세요