배열의 기초

Flash Player 9 이상, Adobe AIR 1.0 이상

프로그래밍할 때는 단일 객체보다 여러 개의 항목을 사용하여 작업해야 하는 경우가 많습니다. 예를 들어 뮤직 플레이어 응용 프로그램에서는 재생할 노래 목록을 포함해야 할 수 있습니다. 이 경우 노래 목록에 있는 각 노래에 대해 별도의 변수를 만들기 보다는 모든 Song 객체를 한 그룹으로 묶어 작업하는 것이 좋습니다.

배열이란 노래 목록과 같은 항목 집합의 컨테이너 역할을 하는 프로그래밍 요소를 의미합니다. 대체적으로 배열에 포함된 모든 항목은 동일한 클래스의 인스턴스이지만 ActionScript에서는 반드시 그렇지만은 않습니다. 배열의 개별 항목은 배열 요소라고 합니다. 배열은 변수 보관용 파일 서랍으로 생각할 수도 있습니다. 파일 서랍에 서류철을 넣듯이 변수를 배열의 요소로 추가할 수 있습니다. 서랍 전체를 다른 위치로 옮겨 갈 때처럼 배열을 하나의 변수로 사용할 수 있으며, 여러 서류철을 하나씩 넘기면서 정보를 찾을 때처럼 여러 변수를 하나의 그룹으로 사용할 수 있습니다. 또한 서랍을 열고 하나의 서류철을 선택할 때처럼 각 변수에 개별적으로 액세스할 수도 있습니다.

예를 들어 여러 곡을 선택하여 재생 목록에 추가할 수 있는 뮤직 플레이어 응용 프로그램을 개발한다고 가정해 보겠습니다. 이 경우 ActionScript 코드에서 단일 배열을 매개 변수로 받는 addSongsToPlaylist()라는 메서드를 사용합니다. 목록에 추가할 곡 수가 몇 곡 되지 않든, 아주 많든, 혹은 단 1곡이든 관계없이 addSongsToPlaylist() 메서드는 한 번만 호출하며 이 메서드에는 Song 객체가 들어 있는 배열을 전달합니다. addSongsToPlaylist() 메서드에서는 루프를 사용하여 배열의 요소(노래)를 하나씩 확인하고 이를 재생 목록에 실제로 추가할 수 있습니다.

가장 일반적인 유형의 ActionScript 배열은 인덱스 배열입니다. 인덱스 배열에서 각 항목은 번호가 지정된 슬롯(인덱스)에 저장되며, 항목에 액세스할 때는 번호를 주소처럼 사용합니다. 인덱스 배열은 프로그래밍 시 배열이 필요한 대부분의 경우에 사용할 수 있습니다. Array 클래스는 인덱스 배열을 나타내는 데 사용되는 일반적인 클래스 중 하나입니다.

인덱스 배열은 동일한 유형의 항목(동일한 클래스의 인스턴스인 객체)을 여러 개 저장하는 데 사용되기도 합니다. 그러나 Array 클래스에서는 배열에 포함할 항목의 유형을 제한할 수 있는 방법이 없습니다. Vector 클래스는 단일 배열의 모든 항목이 동일한 유형인 인덱스 배열의 한 종류입니다. 따라서 Array 인스턴스 대신 Vector 인스턴스를 사용하면 성능을 향상시킬 수 있을 뿐 아니라 그 밖에 다른 장점도 있습니다. Vector 클래스는 Flash Player 10 및 Adobe AIR 1.5부터 사용할 수 있습니다.

인덱스 배열을 특수한 형태로 활용한 것이 다차원 배열로, 이는 인덱스 배열이 요소로 포함되고 이 배열에 또 다른 요소가 포함되는 인덱스 배열입니다.

또 다른 배열 유형으로 연관 배열이 있는데, 여기에서는 숫자 인덱스 대신 문자열 를 사용하여 개별 요소를 식별합니다. 마지막으로 ActionScript 3.0에는 Dictionary 클래스가 포함되어 있습니다. Dictionary 클래스는 문자 그대로 사전을 의미하며, 객체 유형을 키로 사용하여 요소를 구별할 수 있습니다.

중요한 개념 및 용어

배열 및 벡터 처리 루틴을 프로그래밍할 때 사용되는 중요한 용어가 아래 참조 목록에 정리되어 있습니다.

배열
여러 객체를 그룹화할 수 있도록 컨테이너 역할을 하는 객체입니다.

배열 액세스([]) 연산자
배열 요소를 고유하게 식별하는 인덱스 또는 키를 묶는 대괄호 쌍입니다. 이 구문은 배열 변수 이름 다음에서 전체 배열이 아니라 배열의 단일 요소를 지정하는 데 사용됩니다.

연관 배열
문자열 키를 사용하여 개별 요소를 식별하는 배열입니다.

기본 유형
Vector 인스턴스에 저장할 수 있는 객체의 데이터 유형입니다.

사전
항목이 객체 쌍(키와 값)으로 구성된 배열입니다. 숫자 인덱스 대신 키를 사용하여 각 요소를 식별합니다.

요소
배열 내의 각 항목을 나타냅니다.

색인
인덱스 배열에 있는 각 요소를 식별하는 "주소"로, 숫자 값을 가집니다.

인덱스 배열
번호가 지정된 위치에 각 요소를 저장하는 표준 유형의 배열이며, 번호(인덱스)로 개별 요소를 식별합니다.

연관 배열 또는 사전의 각 요소를 식별하는 문자열 또는 객체입니다.

다차원 배열
단일 값이 아니라 배열이 항목으로 포함된 배열을 나타냅니다.

T
이 설명서에서 Vector 인스턴스의 기본 유형이 무엇이든 관계없이 이 기본 유형을 나타내는 데 사용되는 표준 표기입니다. T 표기는 Type 매개 변수에 대한 설명에서 언급한 것과 같이 클래스 이름을 나타내는 데 사용됩니다. "T"는 "데이터 유형(data type)"의 "유형(type)"을 의미합니다.

Type 매개 변수
Vector 클래스 이름과 함께 사용되어 Vector의 기본 유형(Vector에 저장되는 객체의 데이터 유형)을 지정하는 구문입니다. 이 구문은 마침표(.)와 각괄호(<>)로 묶인 데이터 유형 이름으로 구성됩니다. 즉, Vector.<T>와 같은 형태가 됩니다. 이 설명서에서는 일반적으로 type 매개 변수에 지정된 클래스를 T로 나타냅니다.

Vector
모든 요소가 동일한 데이터 유형의 인스턴스인 배열의 한 종류입니다.