"코딩은 알고리즘과 자료구조, 이 두가지로 이루어진다"
- 리누스 토르발스
코딩을 안 해보신 분들도 개발자 채용 프로세스에 '알고리즘 시험'이 있다는 걸 들어본적이 있을 것이다.
그렇다면 과연 자료구조란 무엇일까?
자료 구조(Data Structure)란 데이터에 편리하게 접근하고 변경하기 위해 데이터를 저장하거나 조직하는 방법이다.
어떤 상황에서든 다 통하는 만능 자료 구조는 없으며, 각각의 자료 구조의 장단점을 이해하고 목적에 맞는 자료구조를 사용해야 한다.
말이 약간 어렵다. 실생활로 비유를 들자면 결제 방식과 같다고 볼 수 있다.
어디에서 결제하느냐에 따라 결제 방식이 다를 수 있다. A 서점에서는 체크카드를 써야 페이백을 해주든가, B 음식점에서는 신용카드를 써야 할인을 해준다. 혹은 쿠폰을 가져가면 무료인 곳도 있다. 이 외에도 현금, 체크카드, 신용카드, 카카오페이, 쿠폰 등의 방식이 있으며 각자의 상황에 맞게 결제한다.
자료 구조도 이와 같이 어떤 상황에서 어느 자료 구조가 제일 적합한지 파악해야 하고 사용해야 한다.
자료 구조의 분류
ㅁ Primitive Data Strucure(단순 구조): 프로그래밍에서 사용되는 기본 데이터 타입
(ex. JS의 원시타입인 string, number, boolean, null, undefined)
ㅁ Non-Primitive Data Strucure(비단순 구조): 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조
(ex. JS의 참조타입인 object, array, function)
- Linear Data Strucure(선형 구조): 저장된 자료의 전후 관계가 1:1인 경우
- Non-Linear Data Structure(비선형 구조): 데이터 항목 사이의 관계가 1:n인 경우
(추후 자료구조 관련 글은 모두 자바스크립트 중점으로 쓰겠다)
'■ 프로그래밍 > Front-end' 카테고리의 다른 글
HTTP 기초 (0) | 2020.04.08 |
---|---|
자료 구조(Data Structure) (2) - Array(배열) (0) | 2020.04.07 |
웹 동작 원리 기초 (0) | 2020.04.04 |
Git & GitHub (2) - branch, conflict (0) | 2020.04.01 |
Git & GitHub (1) - 정의, 명령어 (0) | 2020.04.01 |