기술블로그-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. 요약 정리

추상화란 복잡한 시스템에서 핵심 요소만 뽑아내 단순화하는 기술입니다.

  • 객체지향 프로그래밍의 핵심 원칙 중 하나
  • 유지보수, 코드 품질, 협업 모두에 긍정적인 영향을 줌
  • 실전 코딩뿐 아니라 설계 단계에서도 필수 개념

📌 다음 글에서는 추상 클래스와 인터페이스를 통해 추상화를 어떻게 코드에 적용하는지 예시와 함께 알려드릴게요 😊