Product Design, Manufacturing & Innovation Resources
» 추상화 (객체지향 프로그래밍)

추상화 (객체지향 프로그래밍)

1970
  • Barbara Liskov
소프트웨어 엔지니어가 최신 IDE 환경에서 추상 클래스를 코딩합니다.

(설명을 위한 생성된 이미지입니다)

추상화 OOP 추상화는 복잡한 구현 세부 사항을 숨기고 객체의 핵심 기능만 보여주는 개념입니다. 객체가 어떻게 작동하는지가 아니라 무엇을 하는지에 초점을 맞춥니다. 이는 추상 클래스와 인터페이스를 통해 구현되는데, 이들은 완전한 구현을 제공하지 않고 다른 클래스의 설계도를 정의하여 복잡한 시스템을 단순화합니다.

추상화는 복잡성을 관리하는 과정입니다. 프로그래밍에서 추상화는 시스템이나 구성 요소를 단순화하여 표현하는 것을 의미합니다. 객체 지향 프로그래밍(OOP)에서는 주로 추상 클래스와 인터페이스를 사용하여 이를 구현합니다. 추상 클래스는 자체적으로 인스턴스화할 수 없으며, 서브클래싱을 위해 만들어진 클래스입니다. 추상 클래스는 서브클래스가 구현해야 하는 추상 메서드(메서드 본문이 없는 메서드)를 포함할 수 있습니다. 인터페이스는 이와 유사한 개념이지만 순수하게 추상적입니다. 인터페이스는 메서드 시그니처만 정의할 수 있으며 구현은 정의할 수 없습니다. 클래스는 인터페이스를 '구현'하여 인터페이스에 정의된 기능을 제공할 것을 약속합니다.

이를 통해 프로그래머는 여러 클래스가 준수할 수 있는 공통 계약 또는 API를 정의할 수 있습니다. 예를 들어, 'Storable' 인터페이스는 'save()' 및 'load()' 메서드를 정의할 수 있습니다. 'Document', 'Image', 'UserSettings'와 같은 여러 클래스는 모두 'Storable' 인터페이스를 구현하고, 각 클래스는 저장 및 불러오기를 위한 자체 로직을 제공할 수 있습니다. 'Storable' 객체를 다루는 코드는 해당 객체의 특정 유형을 알 필요가 없으며, 'save()' 메서드를 호출할 수 있다는 것만 알면 됩니다. 그리고 'load()'를 사용합니다. 이렇게 하면 클라이언트 코드가 특정 구현에서 분리되어 시스템이 더욱 모듈화되고 유연해지며 높은 수준에서 이해하기 쉬워집니다.

UNESCO Nomenclature: 1203
컴퓨터 과학

유형

추상 시스템

분열

기초적인

용법

널리 사용됨

전구체

  • 수학적 추상화
  • 서브루틴과 함수의 개념은 절차적 추상화의 한 형태이다.
  • 추상 데이터 타입(ADT) 이론
  • 대규모 엔지니어링 프로젝트에서 복잡성을 관리해야 할 필요성

응용 프로그램

  • 특정 SQL 쿼리를 숨기는 데이터베이스 액세스 계층(DAL)
  • 장치 드라이버는 하드웨어의 복잡성을 운영 체제로부터 추상화합니다.
  • graphical user interface (GUI) libraries providing high-level widgets
  • network protocols like HTTP abstracting the underlying TCP/IP communication
  • C++의 표준 템플릿 라이브러리(STL)

특허:

NA

잠재적 혁신 아이디어

현재 하루 4만 건이 넘는 봇 트래픽을 차단하기 위해 이 콘텐츠는 커뮤니티 회원만 이용할 수 있습니다.
> 로그인 < 또는 >등록 < 이 콘텐츠를 비롯한 모든 제한된 콘텐츠와 도구는 (100% 무료로) 이용할 수 있습니다.

관련 개념: 추상화, 인터페이스, 추상 클래스, API, 정보 은닉, 복잡성, 객체 지향 프로그래밍, 계약, 결합도 감소, 모듈성.

역사적 맥락

추상화 (객체지향 프로그래밍)

1967
1967
1970
1970
1970
1970-01-01
1975-06-01
1960
1967
1970
1970
1970
1970
1973
1980

(날짜를 알 수 없거나 관련이 없는 경우, 예를 들어 "유체역학"의 경우, 주목할 만한 등장 시기를 대략적으로 추정하여 제공합니다.)

관련 발명, 혁신 및 기술 원칙

고화질 이미지 및 다운로드는 등록된 회원에게만 100% 무료로 제공됩니다.

> 로그인 <