프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법을 말한다.
추상화는 크게 두 가지로 나뉜다.
공통점을 모으고 차이점은 버린다.
예를들어 고양이, 강아지, 원숭이 등의 객체들의 공통적인 특징을 묶어 동물이라는 카테고리로 카테고리화 시키는 것이다.
어떠한 내부 프로세스를 숨기는 것을 말한다.
예를 들어 데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 단순하게 insert, upset 등의 쿼리로 데이터를 저장할 수 있다.
MySQL 내부의 로직을 알지 못해도 SQL문을 통해 쉽게 데이터를 저장하고, 읽고 쓸 수 있다.
출처 : 인프런 강의 CS 지식의 정석