Internet Computing KUT Youn-Hee Han

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
컴퓨터와 인터넷.
Chapter 2 정보시스템 아키텍처 (IS Architecture)
10. 예외 처리.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
Internet Computing KUT Youn-Hee Han
제 9 장 구조체와 공용체.
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
제9장 추상 데이터 타입 및 모듈 (Abstract Data Type & Module)
Internet Computing KUT Youn-Hee Han
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
C++ Programming: Sample Programs
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
[INA240] Data Structures and Practice
사용법 1. NLog 설치 2. Configuration, Rule, Target 3. 기본 API 사용법
공학컴퓨터프로그래밍 Python 염익준 교수.
C#.
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바 5.0 프로그래밍.
2장. 추상 자료형 학습목표 프로그램 설계를 위해 추상 자료형을 정의해야 하는 이유를 이해한다.
27장. 모듈화 프로그래밍.
4th HomeWork Guide (ver2.0)
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
Chapter 01 자료 구조와 알고리즘.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
Internet Computing KUT Youn-Hee Han
Power Java 제11장 상속.
Chapter 02. 소프트웨어와 자료구조.
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
Fucntion 요약.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
데이터 동적 할당 Collection class.
3장,4장 발표 서정우.
뇌를 자극하는 Solaris bible.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
05. General Linear List – Homework
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
3. 모듈 (5장. 모듈).
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
구조체(struct)와 공용체(union)
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
.Net FrameWork for Web2.0 한석수
MST – Kruskal 알고리즘 (추상적)
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
SNU 컴퓨터의 기초 월 14:00-16:00 43동101호 ropas. snu. ac
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
6 객체.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Perspectives on DATA Data Structure

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