추상화
추상화(abstraction)란?
- 복잡한 시스템, 데이터, 또는 프로세스를 간결하게 표현하고 이해하기 쉽게 만드는 것
- 실세계의 복잡한 상황을 단순화하여 관리하기 용이하게 만드는 것 <-> 구체화
- 추상화를 통해 모델링이 가능하게 됨
추상화 방법
- 모델화(Modeling):
- 추상화의 핵심은 모델을 만드는 것입니다. 모델은 원본 시스템, 데이터 또는 개념을 단순화된 형태로 표현한 것입니다.
- 예를 들어, 자동차의 모델은 자동차의 주요 기능과 특징을 요약하여 표현한 것이며, 데이터베이스의 모델은 데이터의 구조와 관계를 간략하게 표현한 것입니다.
- 세부사항의 숨김(Hiding of Details):
- 추상화는 중요하지 않거나 현재 상황에서 필요하지 않은 세부사항을 숨기는 역할을 합니다. 이렇게 하면 복잡성이 줄어들고 개념적 이해가 쉬워집니다.
- 예를 들어, 사용자 인터페이스(UI)의 추상화는 사용자에게 오직 필요한 기능만 표시하고, 내부 작동 방식을 숨깁니다.
- 단순화(Simplification):
- 추상화는 복잡한 문제를 간소화하고, 핵심적인 부분에 집중함으로써 문제 해결을 단순화합니다. 이를 통해 개발 및 유지 관리가 더 쉬워집니다.
- 예를 들어, 프로그래밍 언어에서 변수를 사용하는 것은 복잡한 메모리 관리 작업을 단순화하고, 개발자가 변수를 사용하여 데이터를 다룰 수 있게 합니다.
- 일반화(Generalization):
- 추상화는 일반적인 개념을 도출함으로써 다양한 상황에서 적용 가능한 원칙을 찾습니다. 이를 통해 유사한 문제에 대한 일반적인 해결책을 개발할 수 있습니다.
- 예를 들어, 객체 지향 프로그래밍에서 클래스와 상속을 사용하여 다양한 객체를 일반화하고 코드의 재사용성을 높일 수 있습니다.
정리
추상화란 복잡한 시스템, 프로세스 등을 단순화하는 것을 말합니다. 추상화의 방법으로는 대상의 주요 특징을 통해 모델을 만들어 단순화하는 모델화, 복잡한 부분을 제거하고 핵심만을 남기는 단순화, 유사한 업무에 대해 일반적으로 사용 가능한 코드를 만들어 코드 재사용성을 높이는 일반화 등이 있습니다.
참고
ChatGPT-4.0
보완/복습
- 2023.10.30 보완
- 2023.11.24 보완