📑 추상화 Abstraction
- 일반적 개념
- 필수적이고 중요한 속성만 골라 단순화시키는 과정
 
 
- Data 측면 개념
- 복잡한 Data를 추상화 개념을 적용시켜 단순화 하는 것
 
- 기존 정의된 개념을 이용하여 표현
 
 
- ⇒ 공통적인 개념을 이용하여 같은 종류의 다양한 객체를 정의하는 것
 
💽 Data Type
- 정의
- Data의 집합 + Data에 적용할 수 있는 연산의 집합
 
- ex) Integer Data Type의 경우에는 “Data : 정수”, “연산자 : +,-.*, /”
 
 
💡 Data : 프로그램의 처리 대상이 되는 모든 것. 값 자체를 의미하기도 함
- 종류
- System-defined Data Type
- 원시자료형(Primitive Data Type)
- 하나의 고정된 저장 공간을 차지하는 데이터
 
- 원시 자료형은 모두 하나의 데이터만을 가짐
 
string, number, bigint, boolean, undefined, symbol, (null) 
 
- 단순자료형(Simple Data Type)
- 어떤 프로그래밍 언어가 기본적으로 제공하는 변수나 상수의 형식.
 
- 일반적으로 정수형, 실수형, 문자형, 불형 포함
 
 
- 복합자료형(Composite Data Type)
 
- 구조화자료형
 
 
- User-defined  Data Type
- 기존의 Data type을 이용해 정의
 
- 정의 후, 시스템 정의 데이터 타입과 똑같이 사용 가능
 
 
 
💾 Abstract Data Type (ADT)
- 데이터 타입의 논리적 정의
 
- 데이터와 연산의 본질에 대한 명세만 정의
 
- 데이터가 무엇인지, 각 연산은 무슨 기능을 수행하는지 정의  ⇒ 필요한 데이터의 구조에 대해서 공통의 특징만 뽑아 정의한 것
 
💡 기존의 데이터 타입을 이용하여 정의할 뿐 데이터의 구조, 연산의 구현방법은 포함하지 않는다
 | 데이터 | 연산 | 
|---|
| 추상화 | ADT | 알고리즘 | 
| 구체화 | 데이터 타입 | 프로그램 |