본문 바로가기
카테고리 없음

배열(Array) 구조와 특징 – 자료구조 기초 완전 정복

by 테크정 2025. 5. 11.

📌 목차

  1. 배열(Array)이란?
  2. 배열의 특징
  3. 배열의 장점과 단점
  4. 배열은 어디에 쓰일까?
  5. 배열을 잘 쓰는 팁
  6. 마무리 요약

1. 배열(Array)이란?

배열(Array) 은 가장 기본적인 자료구조(Data Structure) 중 하나로, 동일한 타입의 데이터를 연속된 메모리 공간에 저장하는 구조입니다.

 

예를 들어, 숫자 5개를 저장해야 할 때 int형 변수를 5개 따로 만드는 대신, 배열을 사용하면 한 줄로 관리할 수 있습니다.

int[] numbers = {10, 20, 30, 40, 50};

이렇게 선언하면 numbers[0]부터 numbers[4]까지 총 5개의 데이터를 인덱스로 접근할 수 있게 됩니다.

2. 배열의 특징

배열은 다음과 같은 특성을 가지고 있어요.

✅ 1) 고정된 크기

배열은 처음 선언할 때 크기를 정해줘야 합니다. 중간에 크기를 변경할 수는 없습니다.

int[] arr = new int[5]; // 5개의 공간 확보

✅ 2) 인덱스를 통한 빠른 접근

배열은 메모리상 연속적인 공간에 저장되기 때문에, 특정 위치의 값을 O(1)의 시간 복잡도로 바로 가져올 수 있습니다.

✅ 3) 같은 타입만 저장

배열은 하나의 데이터 타입만 저장할 수 있습니다. 예를 들어 int[]에는 문자열을 넣을 수 없습니다.

3. 배열의 장점과 단점

구분 장점 단점
성능 인덱스로 빠른 접근 가능 (O(1)) 중간 삽입/삭제는 느림 (O(n))
메모리 연속된 공간으로 캐시 성능이 좋음 크기 변경이 불가능
사용성 단순하고 사용하기 쉬움 데이터 양이 가변적일 경우 불편

배열은 간단하지만 동적 데이터 처리에는 불리하다는 점에서 연결 리스트(Linked List) 등 다른 구조와 비교됩니다.

4. 배열은 어디에 쓰일까?

배열은 모든 프로그래밍 언어에서 가장 기본적인 데이터 저장 방식으로, 아래와 같은 곳에 많이 쓰입니다.

  • 리스트/List 구성
  • 정렬/탐색 알고리즘 구현 시 기본 단위
  • 버퍼, 캐시 처리에서 빠른 접근 용도
  • 다차원 배열을 활용한 게임 맵, 이미지 처리 등

예: 게임에서 맵 좌표를 [x][y] 형태로 저장할 때, 이차원 배열을 사용합니다.

5. 배열을 잘 쓰는 팁

🟡 배열 사용 시 주의할 점

  • 크기를 미리 예측해야 함 → 예측이 어려운 경우는 ArrayList 사용 고려
  • 빈칸 채우기 초기값 처리 필요
  • 배열 복사 시 얕은 복사 vs 깊은 복사 주의

🟢 배열을 효율적으로 쓰려면?

  • for문과 함께 반복 작업을 잘 활용
  • 배열 내 최대값, 최소값, 누적합 구하는 로직 익히기
  • 정렬/탐색 알고리즘 연습할 때 가장 많이 쓰이니 반복 활용!

✅ 마무리 요약

  • 배열은 동일한 타입의 데이터를 연속된 공간에 저장하는 가장 기본적인 자료구조입니다.
  • 접근은 빠르지만 크기 변경이 어렵고 삽입/삭제가 느립니다.
  • 정렬, 탐색, 리스트 구현 등에서 가장 많이 쓰이는 핵심 구조입니다.
  • 실무, 코딩 테스트, CS 공부까지 배열은 모든 개발자의 필수 지식입니다.