더북(TheBook)

요약 배열은 거의 모든 프로그래밍 언어에서 할당문, 조건문, 반복문 다음으로 자주 나오는 기본적인 구성자이다. 이번 절에 나온 예제 프로그램을 통해 알아본 것처럼 이 구성자들만 이용해도 거의 모든 문제를 풀 수 있는 프로그램을 작성할 수 있다. 다음 절에서 설명할 다른 프로그램과의 통신 메커니즘까지 배우고 나면 기본적인 프로그래밍 메커니즘은 모두 익히게 되는 셈이다.

우리가 접하는 많은 프로그램에서 가장 눈에 띄는 요소는 배열이며, 여기에서 설명한 기본 연산들은 여러 프로그래밍 작업에서 도움이 된다. 여러분이 작성한 코드에서 배열을 명시적으로 사용하지 않더라도 어디선가에서는 암묵적으로 배열을 사용하고 있다. 모든 컴퓨터에 있는 메모리는 개념적으로 배열과 대등하기 때문이다.

배열이 프로그램에 끼친 핵심적인 영향은 프로그램의 상태(state) 규모가 엄청나게 커질 수 있다는 것이다. 프로그램의 상태는 프로그램이 어떤 일을 할지 판단하기 위해 알아야 할 정보로 정의할 수 있다. 배열이 없는 프로그램에서는 몇 가지 변수의 값과 다음에 수행할 문장들을 보면 대개의 경우 프로그램이 다음에 어떤 작업을 처리할 것인지 판단할 수 있었다. 프로그램을 추적할 때는 본질적으로 프로그램의 상태를 추적하는 것이다. 그런데 프로그램이 배열을 사용하면 너무 많은 값들(문장 하나로도 이 값 모두가 바뀔 수 있다)을 가지고 있어서 변수 전체를 효율적으로 추적할 수 없다. 이런 차이 때문에 배열을 사용하지 않는 프로그램보다 배열을 사용하는 프로그램을 작성하는 것이 훨씬 더 까다롭다.

벡터와 행렬을 직접적으로 표현할 수 있으므로, 배열은 과학과 공학에서의 여러 기본적인 문제와 관련된 계산을 간단히 처리할 수 있다. 게다가 배열은 아주 많은 데이터를 동일한 방식으로 처리할 수 있는 간결한 표기법을 제공하므로, 엄청나게 많은 데이터를 처리하는 애플리케이션에서 핵심적인 역할을 수행한다. 배열의 역할은 이 책의 여러 예제 프로그램에서 볼 수 있다.

무엇보다 중요한 점은 배열은 그저 빙산의 일각이라는 것이다. 배열은 데이터 구조의 첫 번째 사례로서, 데이터 구조는 데이터를 편리하고 효율적으로 처리하기 위해 데이터를 조직화할 수 있게 해준다. 4장에서 가변 길이 배열, 연결 리스트, 이진 검색 트리, 해시 테이블 등 더 많은 데이터 구조를 살펴본다. 그리고 배열은 컬렉션(collection)의 첫 번째 사례로서, 컬렉션은 많은 요소를 하나의 단위로 묶어준다. 4장에서는 고전적인 스택과 큐는 물론이고 파이썬 리스트, 튜플, 딕셔너리, 집합 등 다양한 컬렉션을 알아본다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.