오늘은 자료구조(data structure)의 개념, 특징, 자료구조의 선택기준, 종류에 대해서 적어보려 합니당
개념
컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 집합을 의미
각 원소들 사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것
쉽게 말하면 컴퓨터에서 자료를 효율적으로 관리하기 위해 구조화 시키는 것
자료구조는 데이터를 효율적으로 저장, 관리하며 메모리를 효율적으로 사용하기 위함으로 사용되며
이로써 적절한 자료구조의 사용은 메모리의 용량을 절약해주고 실행시간을 단축시킬 수 있다
자료구조는 선형 구조와 비선형 구조로 구분 되며
선형과 비선형구조로 구분되어 있는 구조들 7개(배열, 리스트, 스택, 큐, 해시 테이블, 그래프, 트리)에 대해서는 추후에 공부 후 작성 예정
자료구조 선택 기준
- 자료의 처리 시간
- 자료의 크기
- 자료의 활용 빈도
- 자료의 갱신 정도
- 프로그램의 용이성
자료의 처리를 효율적으로 하기 위해 위와 같은 사항을 고려해야 함
특징
- 효율성
자료구조를 사용하는 목적은 데이터의 관리 및 사용이다
목적에 맞는 적절한 자료구조를 선택해서 사용한다면 업무의 효율이 올라갈 것
- 추상화
복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념만 간추려 내는 것
자료구조를 구현할 때 중요한 것은 언제 어떻게 데이터를 사용할 것인지에 초점을 맞추는 것으로
자료구조 내부의 구현보다 외적으로 어떻게 사용해야하는지 그 추상적인 개념에 대해서만 이해하고 있다면 사용할 수 있다
- 재사용성
자료구조를 설계할 때 특정 프로그램에서만 동작하게 설계하지는 않는다
다양한 프로그램에서도 동작 할 수 있도록 범용성 있게 설계하기 때문에 해당 프로젝트가 아닌 다른 프로젝트에서도 사용 할 수 있음
출처
https://helloworld-88.tistory.com/82
https://toward-the-future.tistory.com/entry/자료구조-자료구조Data-Structure란
'junior developer :) > CS(Computer Science)지식' 카테고리의 다른 글
API에 대하여(+ REST API, REST 성숙도 모델) (1) | 2022.10.06 |
---|---|
네트워크 기초 1. URL과 URI / IP / PORT / 도메인 / DNS_브라우저 작동원리(보이지 않는 곳) (0) | 2022.10.05 |
[CS] 프레임워크와 라이브러리 개념과 차이점 (0) | 2022.07.28 |
[CS] TDD(Test Driven Development)란? (0) | 2022.07.23 |
[CS] 객체지향 vs 절차지향 (0) | 2022.07.21 |