1. 추상화(Abstraction) 이란?
문제 해결에 불필요한 세부 사항을 제거하고, 핵심적인 요소만을 남겨 일반화된 형태로 단순화하는 과정이다. 즉 복잡한 사회적 현실이나 텍스트 자료에서 분석에 필요한 핵심 요소만 선택하여 단순한 형태로 표현하는 사고 과정이다.
사례 1. 삶의 질에 대한 추상화
예를 들어, 사회현상을 '지표'로 표현하기 위해서는 삶의 질을 지표로 작성해 보자. 현실의 삶의 질은 복잡하다. 하지만 연구에서는 복잡한 상황을 단순화시켜 추상화한다. 즉, 삶의 전체를 몇 개의 수치 지표로 나타낼 수 있다. 추상화는 현실을 왜곡하는 것이 아니라, 비교와 분석을 가능하게 하는 도구이다.
| 현실의 삶의 질은 매우 복잡하다. | - 소득 - 건강 - 주거 - 인간관계 - 여가 |
| 삶의 질에 대한 추상화 | - 평균 소득 - 기대수명 - 주거면적 - 만족도 점수 |
사례2. 서울지하철 이미지에 대한 추상화
아래의 두 이미지는 추상화의 개념을 직관적으로 보여주는 대표적인 사례이다. 왼쪽 이미지는 실제 지형과 도로, 강, 건물 위치 등이 상세하게 표현된 현실 세계의 지도이다. 이 지도에는 도로의 굴곡, 거리의 실제 비율, 지형의 형태 등 매우 많은 정보가 포함되어 있다. 이러한 정보는 도시의 전반적인 모습을 이해하는 데는 유용하지만, 지하철을 이용해 이동하려는 사람에게는 오히려 복잡하고 불필요한 정보가 될 수 있다.
반면, 오른쪽 이미지는 지하철 노선도이다. 이 노선도에서는 실제 거리나 방향, 지형의 모습은 거의 반영되어 있지 않다. 대신 다음과 같은 핵심 정보만 남아 있다.
- 역의 이름
- 역과 역 사이의 연결 관계
- 노선의 구분(색상)
- 환승 가능 여부
즉, 지하철 노선도는 “어디에서 어디로 이동할 수 있는가”라는 목적에 맞게, 현실 세계의 복잡한 정보를 과감히 제거하고 이동에 꼭 필요한 정보만 선택하여 표현한 결과물이다. 이처럼 추상화란 현실을 그대로 복사하는 것이 아니라, 문제 해결의 목적에 따라 필요한 정보만 남기고 나머지는 생략하는 사고 과정이다.

서울지하철의 노선을 단순화(추상화)
사례 3. 프로그래밍에서 추상화
프로그래밍에서 **추상화(Abstraction)**란 프로그램의 내부 동작은 숨기고, 사용자나 다른 개발자에게 꼭 필요한 기능만 보여주는 것을 의미한다. 아래의 추상화를 하지 않은 프로그램의 특징은
- 동작은 명확하지만
- 매번 같은 코드가 반복됨
(1) 추상화가 없는 프로그램

2. 추상화 프로그램
(1) 함수로 추상화 코드
함수로 정의하면 함수내부에 어떻게 계산하는지 숨길 수 있고, 무엇을 하는지만 함수이름으로 표현할 수 있다. sum() 함수는 합을 계산하는 기능을 가지고 있어, 필요할 때 호출해서 사용하면 된다.

(2) 객체(Object)을 이용한 추상화
Score_grade 클래스는 현실 세계의 개념을 코드로 추상화한 모델이고, 내부 계산하는 기능은 숨기고 get_grade()만 제공하므로서 필요한 경우 객체를 호출해서 사용할 수 있다.

3. 추상화 정리
- 프로그램을 이해하기 쉬워진다
- 코드의 재사용성이 높아진다
- 수정이 필요할 때 한 부분만 고치면 된다
- 여러 사람이 역할을 나누어 개발하기 쉽다
4. 컴퓨팅 사고의 단계

'파워 파이썬 > 컴퓨팅 사고' 카테고리의 다른 글
| 컴퓨팅 사고 구성요소(패턴 인식) (0) | 2026.01.21 |
|---|---|
| 컴퓨팅 사고 구성요소(분해) (0) | 2026.01.21 |
| 알고리즘 개념과 작성법 (0) | 2024.03.07 |
| 컴퓨팅 사고에 관하여 (0) | 2024.01.16 |