Page 23 -
P. 23
이번 장에서는 애플리케이션을 개발할 때 널리 사용되는 핵심적인 데이터 타입을 살펴보겠다. 일부
는 파이썬에 내장되어 있지만 구현 코드 전체를 살펴봄으로써 이 데이터 타입이 어떻게 작동하는지,
왜 중요한지 명확히 알게 될 것이다.
객체는 다른 객체에 대한 참조를 가질 수 있으므로 연결된 구조(linked structure)라고 하는 구조체를 만
들 수 있는데, 이 구조체는 아주 복잡한 구조도 만들 수 있다. 연결된 구조와 배열, 그리고 이 구조
체와 관련된 알고리즘을 이용하면 정보를 효율적으로 구조화하고 처리할 수 있는 데이터 구조(data
structure)를 만들 수 있다. 데이터 타입이 정의되면 일련의 값을 채워 넣어 데이터 구조를 만들고, 알
고리즘을 구현한 메서드를 이용해 이 값에 연산을 수행한다.
이번 장에서 살펴볼 알고리즘과 데이터 구조는 지난 수십 년간 다양한 분야에서 컴퓨터를 효율적으
로 활용하기 위해 개발된 지식 체계에 대해 눈을 뜨게 해준다. 지금까지 우리가 설명한 기본적인 방
법은 물리학의 n-체 시뮬레이션 문제에서부터 생물학의 유전자 서열 문제에 이르기까지 과학 연구
에서의 중요하게 사용되고 있으며, 데이터베이스 시스템에서 검색 엔진에 이르기까지 상용 컴퓨팅에
서도 밑바탕이 되고 있다. 컴퓨팅이 응용되는 범위가 계속 확대되고 있으므로 이 기본적인 방법이 미
치는 영향도 계속 커지고 있다.
알고리즘과 데이터 구조 자체도 과학적 탐구의 대상이다. 그러므로 알고리즘의 성능을 분석하는 과
학적인 방법을 먼저 살펴보자. 이 방법은 우리가 구현한 코드의 성능을 분석하기 위해 이번 장에서
계속 사용된다.
476