ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

정적 배열(Array)

 

정의

데이터를 순서대로 연속된 메모리 공간에 저장합니다.

컴퓨터가 대량의 데이터를 처리할 때, 데이터를 개별 변수로 다루면 메모리 낭비와 유지 관리가 복잡해집니다.

메모리 용량은 제한되어  있으므로 개발자들은 데이터를 효율적으로 관리하고 순차적으로 접근할 방법을 고민해 왔습니다.

연속적인 메모리 할당, 순차적인 데이터 관리, 빠른 임의 접근(random access)을 충족시키기 위해 고안되었습니다.
같은 타입의 데이터를 일렬로 저장하며, 각 요소에 대해 단순한 주소 계산만으로 빠르게 접근할 수 있습니다.


특징

기본적이고 강력한 자료구조 중 하나입니다.

💡 메모리 구조와 일치

  • 컴퓨터의 연속 메모리 모델과 가장 잘 맞아 컴퓨터 하드웨어와 메모리 접근 방식에 최적화되어 있어서 성능상 큰 이점을 가집니다.

💡 같은 타입 자료형 저장

  • 기본형 데이터와 참조형 데이터를 모두 넣을 수 있으나, 하나의 타입으로만 이루어진 데이터들의 모음입니다.

💡 순서대로 저장

  • 배열의 요소들은 메모리 상에 논리적으로나 물리적으로 연속된 공간에 순서대로 저장됩니다.
  • 이 순서는 각 요소의 위치를 나타내는 인덱스의 기준이 됩니다.

💡 인덱스를 통한 직접 접근

  • 각 요소는 0부터 시작하는 고유한 인덱스를 가집니다.
  • 인덱스를 사용하여 O(1) 시간 복잡도로 원하는 위치의 데이터에 빠르게 접근할 수 있습니다.
  • 이는 배열의 가장 큰 장점 중 하나입니다.

💡 고정된 크기

  • 생성할 때 크기를 미리 지정하므로 추후에 크기를 변경 할 수 없습니다.
  • 정해진 크기의 배열을 쓸 때나 고정 크기의 버퍼, 테이블을 만들 때 사용됩니다.

 

시간 복잡도

Index를 통한 빠른 조회가 가능합니다.
연산 시간 복잡도 비고
조회 O(1) 인덱스를 통해서 매우 빠르게 접근이 가능합니다.
검색 | 탐색 O(n)
O(log n)
정렬되지 않은 배열의 경우,  특정 값을 찾기 위해 전체 탐색 (for 문)
정렬된 배열의 경우, 중간값을 기준으로 범위를 좁힘 (이진 탐색)
삽입(중간) O(n) 중간에 끼워넣으면 뒤 요소들 이동 필요
삭제(중간) O(n) 중간 요소 삭제 시 뒤 요소들 이동 필요

728x90