고등학교 정보교과서 3. 문제해결과 프로그래밍 (1) 추상화 - 씨마스
추상화 Abstraction
어떤 대상을 표현할 때, 중요하다고 생각되는 부분들만 가려내는 것입니다.
모듈, 시스템 등에서 핵심 요소만 추출하는 것이죠.
상대적으로 덜 중요한 부분은 걸러내므로 간결하여 원본 대상보다 추상화한 모델이 그 대상을 분석/파악하기 훨씬 빠르고 쉽습니다.
추상화는 문제 분석 + 문제 분해 + 모델링의 과정을 거칩니다.
1. 문제 분석
해결해야 하는 문제(일, job)이 주어졌을 때, 문제를 해결하기 위해 지금 처한 상황을 이해하고 원하는 결과가 어떤 것인지 정확히 아는 것이 중요합니다.
▶ 현재 상태
해결해야 하는 문제가 발생한 상태
▶ 목표 상태
문제가 해결된 상태
문제 정의
문제가 발생했을 때 현재 상태를 파악하기 위해
- 문제가 무엇인지
- 어떤 문제인지
- 정말 문제인지
- 누구의 문제인지
- 어디에서 발생하였는지
- 정말 해결하고 싶은지
를 점검하여 문제를 정의합니다.
같은 문제라도 사람에 따라 다른 분석을 할 수 있으므로
- 문제는 정확하고 간결하게
- 조건을 동일하게 설정
해야 합니다.
아침에 집에서 등교해야 하는데, 셔틀버스가 운행하지 않는 경우
현재 상태 | 목표 상태 | 조건 | 문제 정의 |
집 | 학교에 등교 | 👉 셔틀버스가 아닌 대중교통으로 이동 👉 지각하지 않기 |
집에서 학교까지 가장 빠르게 대중교통으로 이동할 수 있는 방법 |
2. 문제 분해 Decomposition
위와 같은 단순한 문제는 바로 해결할 수 있죠.
복잡한(큰) 문제들은 한번에 파악하거나 해결할 수 없습니다.
따라서 복잡한(큰) 문제들을 단순한(작은) 문제들로 분해하여 해결한 결과들을 종합한다면 수월하게 해결할 수 있습니다.
문제를 분해하여 해결한 후 종합할 때, 분해된 작은 문제들의 순서, 관계, 포함관계를 고려해야 합니다.
분할정복 Divide and Conquer
나눠 정복하기
문제들을 해결하기 쉬운 작은 단위로 분할하여 다시 합친다.
3. 문제 모델링
문제를 분석하면서 추상화하고 그 대상들과 관계를 표현해야 하죠.
대상의 핵심 요소만을 추출하여 구조화하는 모델링을 통해 대상들을 표현할 수 있습니다.
문제를 분석하는 과정에서 문제 정의시 나오는 반복적인 패턴들을 시각적으로 글, 표, 그래프 등으로 구조화할 수 있습니다.
현실에 존재하는 모든 대상들은 모델링이 가능합니다.
지하철 노선도가 대표적인 모델링이죠.
'정보교과서' 카테고리의 다른 글
[고등학교 정보교과서] 3-3-1. 파이썬(Python)과 환경설정 - 씨마스 (1) | 2024.04.13 |
---|---|
[고등학교 정보교과서] 3. 문제 해결과 프로그래밍 (2) 알고리즘 Algorithm ② - 씨마스 (1) | 2024.04.11 |
[고등학교 정보교과서] 3. 문제 해결과 프로그래밍 (2) 알고리즘 Algorithm ① - 씨마스 (1) | 2024.04.10 |
[고등학교 정보교과서] 2. 자료와 정보 평가하기 풀이 + 해설 - 씨마스 (3) | 2024.04.08 |
[고등학교 정보교과서] 1. 정보문화 평가하기 풀이 + 해설 - 씨마스 (4) | 2024.04.07 |