기술블로그-Django편
📘 추상화(Abstraction)란 무엇이며, 프로그래밍에서 왜 중요할까?
Chansman
2025. 5. 12. 10:36
📘 추상화(Abstraction)란 무엇이며, 프로그래밍에서 왜 중요할까?
1. 추상화란?
여러 행위나 개념에서 공통된 핵심만 뽑아내는 과정
프로그래밍에서 추상화는 복잡한 기능 중 필요한 부분만 노출하고 나머지는 숨김으로써, 코드의 이해도, 재사용성, 유지보수성을 높이는 핵심 개념입니다.
2. 일상 예시로 이해하는 추상화
구체적인 행위 추상화된 개념
밥 먹기, 국 먹기, 반찬 먹기 | "식사하기" |
지하철 타기, 버스 타기 | "대중교통 이용" |
신용카드 결제, 계좌이체 | "결제하기" |
🟢 복잡한 동작들을 한 단어로 묶어 단순화하는 것이 바로 추상화입니다.
3. 프로그래밍에서의 추상화 예시
class Animal:
def eat(self):
pass
class Dog(Animal):
def eat(self):
print("강아지가 사료를 먹는다")
class Cat(Animal):
def eat(self):
print("고양이가 생선을 먹는다")
- Animal이라는 공통 부모 클래스가 있고, 각 동물은 구체적인 eat() 메서드를 구현합니다.
- 이처럼 공통된 틀은 유지하고, 구체적인 동작만 하위 클래스에서 다르게 구현하는 것이 추상화입니다.
4. 추상화가 중요한 이유
이유 설명
✅ 복잡성 감소 | 내부 동작을 감추고 필요한 부분만 보여줘서 코드가 깔끔해짐 |
✅ 재사용성 향상 | 공통 코드를 묶어 여러 곳에서 재사용 가능 |
✅ 유지보수 용이 | 수정할 코드가 한 곳에만 있으면 됨 |
✅ 협업 효율 증가 | 구조가 명확해져 팀원 간 커뮤니케이션이 쉬워짐 |
✅ 확장 용이 | 새로운 기능 추가 시 기존 코드를 쉽게 활용 가능 |
5. 실생활 비유로 본 추상화
사례 추상화 포인트
전기 스위치 | 내부 회로 몰라도 스위치만 누르면 불이 켜짐 |
커피머신 | 버튼만 누르면 복잡한 과정 없이 커피 제공 |
자동차 운전 | 엔진 원리 몰라도 핸들과 페달로 조작 가능 |
→ 사용자에게 필요한 인터페이스만 보여주는 것, 이것이 바로 추상화의 힘입니다.
6. 요약 정리
✅ 추상화란 복잡한 시스템에서 핵심 요소만 뽑아내 단순화하는 기술입니다.
- 객체지향 프로그래밍의 핵심 원칙 중 하나
- 유지보수, 코드 품질, 협업 모두에 긍정적인 영향을 줌
- 실전 코딩뿐 아니라 설계 단계에서도 필수 개념
📌 다음 글에서는 추상 클래스와 인터페이스를 통해 추상화를 어떻게 코드에 적용하는지 예시와 함께 알려드릴게요 😊