[자료구조] # 01, 02
잘 된 소프트웨어는 컴퓨터 밖의 세상을 최대한 잘 만들어서 컴터에서 실행시켜야 함
thing + action
ex) 동영상(data) + 보다(see)
세상을 잘 모델링해서 잘 가져와 구현시켜야 좋은 프로그래밍이 된다.
- 굳이 데이터 타입을 왜 만들었을까?
사람 x 사람 곱할 순 없으니
미리 성질이 비슷한(ex. 20과 30 , 0.1과 0.002) 애들을 지정한 것
1) Primitive data type
(원시데이터형)
: 내가 안만들어도 이미 존재해서(태초부터) 벌써 만들어져있어서 나한테 준 것
인티져, 실수, 캐릭터 등
2) 사용자 정의 데이터형
: 시스템 정의 데이터형으로 충분하지 않을때 대부분 프로그래밍 언어는 사용자가 직접 데이터형을 정의할 수 있게 해줌
- 데이터 구조는 효율적으로 데이터를 사용하기 위해 컴퓨터에 데이터를 저장하고 정리하는 방법이다.
1) 선형 데이터 구조 (linear)
ex) 연결 리스트, 스택, 큐
2) 비선형 데이터 구조 (non-linear)
ex) 트리, 그래프
- 추상화(abstract)
: 중요한 것을 요약한 것 (abstract)
: 중요하지 않은 것을 지워버리는 것 (verb)
-> 특정 관점에 따라서 '중요성'을 요약하고 그렇지 않은 관점에서 '중요하지 않은 것'은 지워버리는 것
ex) 어떨땐 학생들의 키와 몸무게가 중요하지만 수강신청하는 행위에선 키와 몸무게는 중요하지 않아지는 것처럼
- 추상 데이터형(ADT)
ADT는 두 부분으로 구성
1) 연산의 선언
2) 데이터 선언
ex) 생각해보면 교수(데이터)가 할 수 있는 행위(연산) 이 있고, 학생(데이터)이 할 수 있는 행위(연산)은 따로 있자농
'사용자 관점'에서만 생각하라.
임플리먼트의 입장이 아니라 사용자 관점에서 고려해야 한다.
큰 그림을 그리는 걸 '사용자 관점'에서 생각하라는 것.