Chater 3-1. 추상 자료형, 캡슐화, 추상화

Date:     Updated:

카테고리:

태그:

홍정모 교수님의 강의 홍정모의 따라하며 배우는 C언어(부록) 를 듣고 정리한 필기입니다. 😀

Chapter 3. 추상화

🚀 자료형

자료형은 (데이터)객체의 모음과 그 객체들에 대해 작동하는 연산들이다. A data type is a collection of objects and a set of operations that act on those objects.

image

  • 메모리를 차지하고 있는, 실존하는 모든 것은 다 object (객체)라고 볼 수 있다.
  • 자료형이 객체와 연산으로 이루어진다고 생각하면 될 것이다.
    • 예시
      • 자료형 👉 영화 평점 목록 리스트
        • 객체 👉 영화 이름과 평점
        • 연산 👉 삽입, 삭제, 수정, 출력 등등..
  • 자료형을 클래스, 객체를 멤버변수, 연산을 멤버 함수로 빗대어 생각해보면 될 것 같다.


🚀 추상화, 캡슐화

추상화 Abstraction

  • 데이터 추상화는 데이터 객체의 명세(스펙, 사양)와 구현을 분리하는 것이다.
    • Data Abstraction is the separation between the specification of a data object and its implementation.
  • TV 가 어떠한 기능들을 수행할 수 있는지는 알지만 구체적으로 그 기능이 어떻게 구현되는지는 소비자가 알 필요가 없다. 그냥 이 TV가 어떤 기능들이 있는지만 알면 됨!

캡슐화 Encapsulation

  • 데이터 캡슐화는 데이터 객체가 어떻게 구현되었는지를 상세한 내용을 외부로부터 감추는 것이다.
    • Data Encapsulation of Information Hiding is the concealing of the implementation details of a data object from the outside world.
  • 캡슐로 깔끔하게 감싸서 정리!
  • 생산자는 TV 의 내부 구조에 대해 알 필요가 있지만 소비자는 TV의 내부 구족에 대해 알 필요도 없고 볼 필요도 없다. TV를 사용할 수는 있지만!

캡슐화, 추상화의 장점

  • 이해하기 쉽고 수정하기 쉽다.
    • 즉, 관리하기가 편하다.
    • 복잡한 부분은 분리되고 숨겨져 있으니 이해하기 쉽고 정확하게 어떤 기능들이 있는지만 명시되어 있으니 수정하기도 쉽다.
  • 재사용이 편리하다.
  • 프로그래밍의 효율을 높여준다.


🚀 추상 자료형 (ADT : Abstract Data Type)

“추상 자료형”은 객체와 연산의 사양(스펙)이 객체의 표현과 연산의 구현으로부터 ⭐분리⭐되도록 구성된 자료형이다.

추상화 단계에서는 오직 "스펙"(specification)만 다룬다.

image

  • 정수 (int, long, short 등등으로 실존하는 정수 객체들의 추상화)
    • 정수라면 더하기, 빼기, 비교 연산을 가짐
  • 목록 (영화 평점 목록, 책 평점 목록, 환자 리스트 등등의 추상화)
    • 목록이라면 출력, 삽입, 삭제, 편집 연산을 가짐

🔥 인터페이스

image

  • 인터페이스 👉 프로그래밍 언어로 쓰여진 자료형의 명세서
    • “추상 자료형”과 “실제 구체화된 구현”의 다리 역할
    • 어떤 어떤 기능들을 구현해야 한다고 고지하는 명세서 역할을 함.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

DataStructure2 카테고리 내 다른 글 보러가기

댓글 남기기