정보처리기사/소프트웨어 설계
추상화(Abstraction)란?
glorypang
2025. 10. 28. 20:27
728x90
반응형
SMALL
추상화(Abstraction)란?
복잡한 대상에서 본질만 남기고 불필요한 세부를 감추어 다루는 기법/사고방식.
사용자는 “무엇을 할 수 있는가”에 집중하고, “어떻게 구현됐는가”는 신경 쓰지 않게 만든다.
왜 쓰나
- 복잡도 감소: 이해·변경·협업 쉬워짐
- 재사용·확장 용이: 구현 교체/확장해도 외부 계약은 유지
- 결합도↓ 응집도↑: 안정된 인터페이스 뒤로 변화 숨김
어떻게 쓰나 (대표 방식)
- 데이터/ADT 추상화: 상태는 숨기고 연산만 노출 (Money.add)
- 타입/인터페이스 추상화: 계약(인터페이스) 뒤로 구현 교체 (PaymentGateway)
- 객체/상속 추상화: 공통은 상위, 차이는 하위에서 특수화 (Animal ← Dog)
- 절차/제어 추상화: 복잡한 제어를 의미 있는 함수/전략으로 감싸기 (sort(list, cmp))
- 과정 추상화: 업무/서비스 흐름의 단계만 드러내고, 각 단계의 내부 구현·참여 시스템은 감춘다
- 사용 맥락: 활동 다이어그램/BPMN, 사가 오케스트레이션, 마이크로서비스 플로우
- 예시(고수준 단계만): Checkout = 인증 → 장바구니 검증 → 결제 → 재고 차감 → 발송 요청
- 결제 단계는 카드/간편결제/포인트 등 구현 교체 가능, 호출부는 단계 계약만 안다
728x90
반응형
LIST