추상화란?
- 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것
- 즉, 복잡한 문제를 단순하게 만드는 것
- 추상화의 반대말은 구체
- 추상의 반대말은 구현이다.
추상화의 예
완벽하게 구체적인 상태
추상화를 거친 상태
추상화란!
- 핵심적인 요소만 추출해서 단순하게 만드는 것
- 복잡한 문제를 단순히 만드는
- 문제를 쉽게 해결하기 위해 핵심적인 요소만 뽑아내는 것
- 중요하거나 꼭 필요한 특징만을 추출하는 것
추상자료형(ADT-Abstract Data Type)
[추상화(abstraction)] 를 통해 정의한 자료형
- 구체적인 기능의 완성 과정은 서술하지 않고 오로지 순수하게 기능이 무엇인지만 나열하는 것
- 어떤 자료를 다루고, 어떤 연산이 필요한지 정의해 보는 것이다.
- 기능으로만 정의한 개
- 흐름을 생각할 때와 같이 구현에 집중할 필요가 없을 때 추상 자료형을 사용한다.
스택(stack)을 예로 들자면 LIFO를 구현하기 위해서
"새로운 요소를 넣어주는 삽입 기능 push(e) 와 가장 위에 요소를 뺄 수 있는 삭제 기능 pop() 이 있어야 하겠네"를 생각하면 됨.
구현 하려는 것이 아니고 기능만 생각해 보는 것이다. push, pop, isEmpty, isFull, peek, size 같은 기능들이 있어야 겠구만 ! 이런느낌