무엇을 할 수 있는가
문서를 저장하는 기능을 사용하는 사람은 저장 장치의 전기 신호를 직접 다룰 필요가 없다. 프로그램도 파일을 읽고 쓰는 연산을 이용하면서 장치의 구체적인 구조 일부를 감출 수 있다. 어떤 동작을 제공하는지와 그 동작을 어떻게 구현하는지를 나누는 것이 핵심이다.
같은 약속과 다른 구현
스택을 사용할 때는 마지막에 넣은 값을 먼저 꺼낸다는 규칙이 중요하다. 내부에서 배열을 쓰는지 연결된 노드를 쓰는지는 이용하는 코드에 드러내지 않을 수 있다. 다만 구현에 따라 메모리 사용량과 연산 비용이 달라지므로 성능까지 모두 같다는 뜻은 아니다.
여러 층으로 보는 시스템
프로그램의 함수, 운영체제의 파일 기능과 하드웨어 명령은 서로 다른 수준의 표현을 제공한다. 각 층의 약속을 이용하면 한 번에 다뤄야 하는 세부 사항을 줄일 수 있다. 문제가 생겼을 때에는 어느 층의 가정이 성립하지 않는지 살펴볼 필요가 있다.
좋은 경계의 조건
세부 사항을 많이 감춘다고 언제나 좋은 추상화가 되는 것은 아니다. 사용하는 쪽에서 꼭 알아야 할 오류와 비용, 제약을 감추면 잘못된 기대를 만들 수 있다. 목적에 맞는 동작을 명확히 드러내고 경계를 넘는 의존성을 줄이는 설계가 중요하다.
관련 문서
자료 구조 / 스택 / 운영체제 / 인터페이스 (컴퓨팅)