컴퓨터 과학에서 추상화(영어: Abstraction)는 데이터와 프로그램을 의미론적으로 표현하지만 구현 세부 사항을 숨기는 프로세스입니다. 추상화는 프로그래머가 몇 가지 중요한 부분에 집중할 수 있도록 프로그램의 복잡성을 줄이는 데 사용됩니다. 컴퓨터 시스템은 프로그래머가 개별적으로 처리할 수 있도록 여러 추상화 계층으로 분할될 수 있습니다.
추상화는 문제나 모델에 대한 다양한 솔루션을 얻기 위해 다양한 규칙이나 방법을 사용하는 것입니다(해결 방법과 솔루션 자체가 추상화 계층입니다). 이러한 다양한 솔루션을 결합하여 문제 또는 문제로 축소할 수 있습니다. 모델 자체.
추상화의 의미는 솔루션 과정에서 필요하지 않은 솔루션은 무시할 수 있다는 것입니다. 예를 들어, 컴퓨터 프로그램을 사용하여 사람의 행동(먹기, 생각하기, 움직이기 등)에 대한 설명이 설계 요구 사항(예: 앉을 때의 "사람"의 행동)을 충족한 후 완전히 표현될 수 있음), 필요한 기능에 초점을 맞추고 프로그램의 복잡성을 줄이기 위해 다른 "사람"의 세부 사항(몸통, 장기, 세포 활동, 심지어 대인 관계까지)을 무시할 수 있습니다.
추상된 완제품(알고리즘)에 문제가 발생하지 않도록 추상화 과정에서 중요한 기능이 누락되지 않았는지 주의를 기울여야 한다.