Chater 3-1. 추상 자료형, 캡슐화, 추상화
카테고리: DataStructure2
태그: C Data Structure Algorithm
홍정모 교수님의 강의 홍정모의 따라하며 배우는 C언어(부록) 를 듣고 정리한 필기입니다. 😀
Chapter 3. 추상화
🚀 자료형
자료형은 (데이터)객체의 모음과 그 객체들에 대해 작동하는 연산들이다. A data type is a collection of objects and a set of operations that act on those objects.
- 메모리를 차지하고 있는, 실존하는 모든 것은 다 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)만 다룬다.
- 정수 (int, long, short 등등으로 실존하는 정수 객체들의 추상화)
- 정수라면 더하기, 빼기, 비교 연산을 가짐
- 목록 (영화 평점 목록, 책 평점 목록, 환자 리스트 등등의 추상화)
- 목록이라면 출력, 삽입, 삭제, 편집 연산을 가짐
🔥 인터페이스
- 인터페이스 👉 프로그래밍 언어로 쓰여진 자료형의 명세서
- “추상 자료형”과 “실제 구체화된 구현”의 다리 역할
- 어떤 어떤 기능들을 구현해야 한다고 고지하는 명세서 역할을 함.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기