[자료구조] Array, Tuple

홍예찬·2020년 9월 5일
0
post-thumbnail

Data structure

코딩은 알고리즘과 자료구조로 이루어져 있다.

자료구조가 중요한 이유는 무엇일까?

  • 상황과 문맥에 맞게 데이터를 담을 수 있는 가장 효율적이고 적절한 구조를 의미한다.
  • 데이터에 맞는 적절한 자료 구조를 사용하는 것이 개발 시스템에 큰 영향을 끼친다.

일반적으로 가장 자주 사용되는 자료구조

1.Array

Array는 가장 기초적이고 단순하지만 가장 자주 사용되는 자료 구조 중의 하나이다.
가장 큰 특징은 순차적으로 데이터를 저장한다는 것인데 이는 삽입한 순서대로 저장된다.
가장 앞의 데이터는 index 0값을 가지며 맨 마지막 요소부터 계산하는 경우에는 -1에서 시작한다.

단점

1)자료의 저장과 삭제

그러나 Array는 단점이 존재하기도 하는데 중간의 특정 데이터를 삭제하려는 경우 삭제된 요소의 뒤에 있는 데이터들은 모두 한칸씩 앞으로 이동해줘야 한다.
데이터를 추가하는 경우에도 그 뒤의 요소들이 하나씩 밀리게 된다.
이 때문에 Array 방식은 정보가 자주 삭제되거나 추가되는 데이터를 담기에는 적절하지 않다.

2)resizing

배열이 모두 찰 경우 새로운 크기의 메모리를 생성한 다음
→ 기존의 데이터를 복사하고
→ 그 다음부터 데이터가 순차적으로 추가된다는 단점이 있다.

따라서 사이즈 예측이 되지 않는 데이터의 경우 Array를 사용하기에는 적절하지 않다.

그렇다면 Array는 언제 사용하는 것이 좋을까?

  • 순차적인 데이터를 저장할 때(ex)주식 가격)
  • 특정 요소를 빠르게 읽어야 할 때(index)
  • 데이터의 사이즈가 급변하게 자주 바뀌지 않을 때
  • 요소가 자주 삭제되거나 추가되지 않을 때
  • 다차원 데이터를 다룰 때(다중차원배열)

2.Tuple

  • Array와 마찬가지로 데이터를 순차적으로 저장할 수 있는 자료구조
  • 그러나 한 번 정의되고 나면 수정할 수 없음(immutable)
  • 2-3개 정도 적은 수의 소규모 데이터를 저장할 때 많이 사용된다.

단점

데이터가 무슨 의미인지 명확하지 않음
(객체의 경우 키와 값이 쌍으로 매칭되어 있어서 어떤 데이터인지 파악이 쉽지만 Tuple의 경우 괄호 안에 데이터만 담겨있기 때문에 문맥에 맞게 의미를 추측해야 한다.
따라서 Tuple은 소규모 데이터를 다루기에 적합하다.

profile
내실 있는 프론트엔드 개발자가 되기 위해 오늘도 최선을 다하고 있습니다.

0개의 댓글