Presentation is loading. Please wait.

Presentation is loading. Please wait.

Internet Computing KUT Youn-Hee Han

Similar presentations


Presentation on theme: "Internet Computing KUT Youn-Hee Han"— Presentation transcript:

1 Internet Computing Laboratory @ KUT Youn-Hee Han
2장. 추상자료형 Internet Computing KUT Youn-Hee Han

2 1. 추상 자료형 개념 Data Abstraction Abstract Data Type (ADT)
Separation of a data type’s logical properties from its implementation Abstract Data Type (ADT) a specification of a set of data and the set of operations that can be performed on the data A data type whose properties (data and operations) are specified independently of any particular implementation. LOGICAL PROPERTIES IMPLEMENTATION What are the possible values? How can this be done in C++? What operations will be needed? How can data types be used? Data Structure

3 1. 추상 자료형 개념 ADT의 특징 ADT에 대한 구현 (Implementation)
프로그램의 대상이 되는 사물이나 현상을 추상적으로 정의 추상적 정의이기 때문에 세부 구현내용을 몰라도 사용가능 추상화를 통하여 복잡도를 줄이는 것 추상 자료형을 선언하는 사용자 입장에서는 구체적으로 어떤 방법으로 그 작업이 이루어지는 지는 알바가 아니고 알고 싶지도 않다. ADT에 대한 구현 (Implementation) 자료 구조 (Data Structure) a way of storing data in a computer so that it can be used efficiently 추상 자료형이 자료에 대한 논리적인 성질들을 설명하는 반면에 자료 구조는 자료에 대한 구체적인 구현을 의미한다. Data Structure

4 1. 추상 자료형 개념 단순 자료형 (Primitive Data Type) 추상 자료형 (Abstract Data Type)
Int x, char y;  볼트, 너트, 못 단위로 집을 짓기 추상 자료형 (Abstract Data Type) 리스트  화장실, 침실, 거실 단위로 집을 짓기 Abstraction 단지 추상적으로 그런 것이 있다고 가정하고 집을 설계하라. 구현이 가능할지, 누가 구현할지, 언제까지 될지는 고려치 말라. 추상화 수준을 높임으로써 프로그램 설계가 용이해 짐 추상화의 속성 중 하나  Generalization (일반화) 일반적으로 필요할 것 같은 작업을 정의 특수한 경우의 작업, 구체적 작업은 회피 범용성 (General Usability)이 높아짐 Data Structure

5 1. 추상 자료형 개념 얼음 제조기의 추상화 ADT IceDispenser
      : GetMeChilledWater( );   냉수 주시요.       : GetMeCrushedIce( );     부순 얼음 주시요.       : GetMeCubeIce( );        각진 얼음 주시요. Data Structure

6 1. 추상 자료형 개념 구현 관점 (Implementation View) 얼음 제조기의 구체화 자료구조의 역할
작업을 수행하기 위한 구체적인 방법과 위한 데이터 집합 얼음 제조기의 구체화 ADT IceDispenser - Data       : Water, Motor, Button   물, 모터, 버튼 - Operation        : GetMeChilledWater( ) {   냉수 주시요의 구체적 구현          ……}               : GetMeCrushedIce( ) {     부순 얼음 주시요의 구체적 구현          ……}        : GetMeCubeIce( ) {        각진 얼음 주시요의 구체적 구현          ……} 자료구조의 역할 물, 모터, 버튼 등의 데이터 집합에 대한 구현 데이터는 그 데이터를 가공할 작업을 전제로 설계되어야 함 작업이 가장 효율적으로 수행될 수 있도록 조직화된 데이터 집합 구조체(Structure)로 가져갈지 아니면 배열(Array)로 가져갈지….. 사용자 입장에서는 자료구조에는 관심이 없음 Data Structure

7 1. 추상 자료형 개념 참고: 정수에 대한 자료 추상화 Primitive Data Type 도 관점에 따라서는 ADT 이다.
두 정수를 곱할 때 마다 항상 실제 내부 이진표현까지 고려해야 한다면…? Data Structure

8 1. 추상 자료형 개념 Let’s think ‘Library’ ADT 어떠한 자료구조와 알고리즘을 사용할 것인가?
Data Structure

9 1. 추상 자료형 개념 Viewing a library from 3 different levels
Application (or user) level Library of Congress, or Baltimore County Public Library. Logical (or ADT) level domain is a collection of books; operations include: check book out, check book in, pay fine, reserve a book. Implementation level representation of the structure to hold the “books”, and the coding for operations. Data Structure

10 2. 추상 자료형과 C 인터페이스 파일과 구현파일의 분리 헤더 파일의 예
헤더 파일(.h): 인터페이스 파일, 소스 파일(.c): 구현 파일 헤더 파일의 예 typedef struct { int Water;    물의 양             int Motor;    모터 회전수     int Button;   버튼 1, 2, 3 } materialType; void GetMeChilledWater( );     냉수 주시요 void GetMeCrushedIce( );      부순 얼음 주시요 void GetMeCubeIce( );          각진 얼음 주시요 Data Structure

11 2. 추상 자료형과 C 헤더 파일 But, c는 철저한 절차적 언어!!! 함수 프로토타입(Prototype)만 보여 줌
블랙 박스 (구현을 볼 수 없음 - 정보의 은닉을 약간 실현함) 계약서(Specification) 역할 작업의 정의를 자세하고 정확하게 기술 But, c는 철저한 절차적 언어!!! 독자적 추상 자료형(ADT)을 인정하지 않으며 ADT를 올바르게 정의할 여지가 없음 따라서 추상 자료형 이름(e.g., Ice Dispencer)을 선언할 수 없음 필요한 작업명과 작업이 가해지는 데이터 타입을 헤더 파일에 분리하여 명시 코드의 단위성 (Modulality)이 떨어짐 Data Structure

12 3. 추상 자료형과 C++ 개념적 일치 선언의 일치 Encapsulation
Object-oriented Concept의 “사용과 구현의 분리”라는 개념이 일치함 Class 작업을 기준으로 작업과 데이터가 함께 정의된 데이터 타입 사용자에게 구현방법을 숨김 선언의 일치 추상 자료형 선언 = 클래스 선언 추상 자료형의 작업 = 객체 클래스의 메시지 (=객체의 메소드) Encapsulation 밖에서 안을 들여다 볼 수 없음 구체적 자료구조 및 알고리즘을 알 수 없음 하나 이상의 데이터 및 작업을 캡슐이 둘러싸고 있음 Capsule =Wall =Barrier 추상 자료형 Interface View Message Return Value Implementation View 구현방법 자료구조 Data Structure

13 3. 추상 자료형과 C++ 추상 자료형 “얼음 제조기” 멤버 함수는 멤버 데이터의 상태를 바꿔가면서 원하는 기능을 수행
class IceDispenser {                     클래스 얼음 제조기       public:        void GetMeChilledWater( );  냉수 주시요        void GetMeCrushedIce( );      부순 얼음 주시요        void GetMeCubeIce( );           각진 얼음 주시요   private:        int Water, Motor, Button;        메시지 실행을 위한 데이터 집합 } 멤버 함수는 멤버 데이터의 상태를 바꿔가면서 원하는 기능을 수행 GetMeCrushedIce( )는 Water가 얼음으로 바뀌도록 상태 변화를 유도 멤버 함수와 멤버 데이터가 하나의 클래스 안에 함께 선언 Tight Coupling!!! (P. 63) 소프트웨어 공학 관점에서의 Loose Coupling과 Tight Coupling과는 다른 개념 Data Structure

14 Message(Interface View) or Method(Implementation View)
객체지향 관련 용어 정리 객체지향 관련 용어 정리 Declaration vs. Definition 추상 자료형 ADT = Operation + Collection of Data 일반 용어 Program Algorithm Data Structure 객체지향 방법론 Class Message(Interface View) or Method(Implementation View) State Variable or Instance Variable C++ Member Function Member Data Data Structure

15 Perspectives on DATA Data Structure

16 Homework P.67~68 연습문제 6번 8번 10번 14번 Data Structure


Download ppt "Internet Computing KUT Youn-Hee Han"

Similar presentations


Ads by Google