티스토리 뷰
추상 자료형(ADT)는 무엇인가?
자료구조를 이해하기 위해서는 추상 자료형(ADT)에 대해 먼저 숙지하는 것이 중요하다. 그렇다면 알아보자 추상 자료형이란 무엇인가.
우선 추상 자료형이라는 단어만 봤을때 느낌은 "추상화 된 자료형" 정도인데, "추상화" 라는 말이 조금 어렵다. 이에 대해서 정리해 보도록 하자.
C++ 에서의 클래스를 생각하면 쉽다. 예를들어 우리가 일상에서 흔히 쓰는 티비를 클래스로 가진다고 생각해보자. 클래스의 이름은 Tv가 될 것이다.
이때 사용하는 기능은 전원 켜기, 전원 끄기, 채널변경, 볼륨변경 이렇게 4가지 기능이 있다고 생각해 보면 이를 인터페이스 함수로 만들 수 있다.
1 2 3 4 5 6 7 8 9 10 | class Tv { private: //생략 public: PowerOn(); //파워 온 PowerOff(); // 파워 오프 ChChange(); // 채널 변경 VoChange(); // 볼륨 변경 }; | cs |
대략적으로 이런 느낌으로 설계 할 수 있을 것이다. 이렇게 각 기능별로 선언, 정의를 해두면 Tv라는 클래스에 대한 사전 지식이 없는 사람이라도 (협업을 하거나, 대학생의 경우 교수님의 과제 채점과 같은 상황) 손쉽게 설계해둔 Tv 클래스의 기능을 사용할 수 있을 것이다. PowerOn 함수를 실행하면 그 안에서 데이터가 어떻게 움직이는지, 어떤 라이브러리를 사용하는지 파악하지 않아도 손쉽게 전원을 킬 수 있다. 기능이 무엇인지 나열하고, 필요한 정보를 포함하여 구성하는 것. 이것이 함수의 추상화이다.
이러한 이유로 우리는 추상 자료형을 사용하는 것이고, 이에 따라 프로그램의 가독성이나 효율 증가를 기대할 수 있다.
'C,C++' 카테고리의 다른 글
정렬(Sort) : 삽입정렬(Insertion Sort) (5) | 2016.03.11 |
---|---|
데이터 캡슐화, 하이딩, 은닉기법 (0) | 2016.03.10 |
C++ : Critical Section [임계영역] (0) | 2015.06.25 |
리틀 엔디안과 빅 엔디안 (Little Endian, Big Endian) (1) | 2015.06.25 |
소켓 프로그래밍 : 소켓을 이용한 채팅 프로그램 만들기 예제(클라이언트) (4) | 2015.06.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- C++
- 액터
- 리눅스
- 파이썬
- 티그널
- 스레드
- 클라이언트
- C/C++
- Sort
- socket
- 안드로이드
- 악보
- 소켓
- 티라노 시그널
- 소켓 프로그래밍
- 라즈베리파이
- 데이터베이스
- 터미널
- 쓰레드
- 파일
- 유즈케이스
- 정렬
- 클래스
- UML
- MFC
- 프로세스
- C
- 파이썬예제
- 자료구조
- 디렉터리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함