추상화와 추상 자료형

스택을 쓰는데, 그 속이 어떻게 생겼는지는 왜 몰라도 될까?

화면을 누르면 다음 장으로 넘어갑니다

추상화

중요한 것만 남기고 감춥니다

추상화(abstraction)는 대상의 가장 중요한 속성만 담고 나머지는 감추는 관점입니다. 1강에서는 속을 몰라도 이름만으로 쓰는 것이라고 했습니다.

프로그래밍과 컴퓨터 과학 전체에 깔려 있는 생각입니다.

프로세스 추상화

일하는 방법을 감춥니다

서브프로그램은 함수처럼 이름을 붙여 부르는 코드 묶음입니다. 부르는 쪽은 이름과 넘길 값만 알면 됩니다. 어떻게 하는지는 안에 감춰져 있어서, 속을 바꿔도 부르는 코드는 그대로입니다. 이것이 프로세스 추상화(process abstraction)입니다.

sortInt는 정수 배열을 정렬하는 서브프로그램을 가정한 예시입니다. 배열은 값 여러 개를 줄지어 담은 것입니다.

이 강의 예

스택에 할 수 있는 일은 넷

스택(stack)은 나중에 넣은 것을 먼저 꺼내는 구조입니다. 할 수 있는 일은 넣기(push), 꺼내기(pop), 맨 위 보기(top), 비었는지 묻기(empty)입니다. 이번 강은 이 스택 하나를 끝까지 예로 씁니다.

3과 7은 예시 값입니다. 이렇게 값에 할 수 있는 일을 연산이라고 부릅니다.

데이터 추상화

데이터의 표현을 감춥니다

스택의 속은 배열 하나와, 맨 위가 몇 번째 칸인지 적어 둔 번호(첨자) 하나입니다. 이것을 스택의 표현이라고 합니다. 표현을 벽 안에 넣고 겉에는 타입 이름과 연산만 남기는 것이 데이터 추상화(data abstraction)입니다.

5강은 객체를 값과 기능을 묶은 덩어리라고 했습니다. 값이 표현이고 기능이 연산입니다. 타입은 값의 종류입니다.

두 가지 추상화

방법을 감추거나, 데이터를 감추거나

프로세스 추상화는 서브프로그램으로 하고, 거의 모든 언어가 지원합니다. 데이터 추상화는 1980년 이후에 설계된 언어 대부분이 지원합니다. 그 수단이 다음 편에서 볼 추상 자료형입니다.

다음 편

속을 감춘 타입이 되려면 조건이 둘 있습니다

2편속을 감추면 무엇이 좋아질까? 10강 목록