2025-08-03 09:46

Status:

Tags: 소프트웨어 공학

추상화(Abstraction)

추상화는 복잡한 시스템의 불필요한 세부사항을 숨기고 본질적 특징만을 드러내는 소프트웨어 공학의 핵심 원리이다. 이를 통해 복잡성 관리재사용성 향상유지보수성 증대를 달성할 수 있다.

첫 번째 의미: 일반화(Generalization)

개별 요소들의 공통된 특징을 추출하여 상위 추상 개념을 만드는 과정이다. 예를 들어, Dog 클래스와 Cat 클래스의 공통 특징을 뽑아내 Animal 클래스를 만드는 것이다13. 이는 위계 구조 와 밀접한 관련이 있으며, 현실 세계의 일반 명사와 개념들도 이미 추상화된 결과물이다.

두 번째 의미: 캡슐화(Encapsulation)

내부 구현을 숨기고 사용자에게는 인터페이스만 제공하는 과정이다. 라이브러리, 클래스, API 등을 통해 “바퀴를 다시 발명할 필요가 없는” 환경을 만든다45. 사용자는 입력과 출력 형식만 알면 복잡한 내부 구현 을 이해하지 않고도 기능을 활용할 수 있다

References

분할 정복 추상화(Abstraction) 핸드북 추상화(Abstraction) 핸드북2