Page 16 -
P. 16
1.1 자료 구조 DATA STRUCTURES AND ALGORITHMS 1
데이터란 무엇일까. 자료 구조가 중요한 까닭
데이터는 일반적으로 모든 유형의 정보를 망라하는 용어이며 가장 기초적인 수와 문자열로 이뤄진
다. 간단하지만 고전적인 “Hello World!” 프로그램을 떠올리면 "Hello World!" 문자열이 바로
데이터다. 매우 복잡한 데이터라도 대개는 수와 문자열 묶음으로 나뉜다.
자료 구조란 데이터를 조직하는 방법이다. 같은 데이터를 어떻게 다양한 방식으로 조직할 수 있는
지 배우겠다.
다음의 코드를 살펴보자.
x = "Hello! "
y = "How are you "
z = "today?"
print x + y + z
문자열 세 개를 하나의 메시지로 이어 출력하는 매우 간단한 프로그램이다. 위 프로그램이 데이터
를 어떻게 조직했는지 다음과 같이 설명해 볼 수 있다. 문자열 세 개가 있고, 각 문자열에 변수가
하나씩 연결되어 있다.
하지만 같은 데이터를 다음과 같이 배열에 저장할 수도 있다.
array = ["Hello! ", "How are you ", "today?"]
print array[0] + array[1] + array[2]
이 책은 단순히 데이터를 조직하는 방법이 아니라 데이터 조직이 코드의 실행 속도에 미치는 영향
이 크다는 것을 가르치고자 한다. 데이터를 어떻게 조직하는가에 따라 프로그램은 수십 수백 배
더 빠르게 혹은 더 느리게 실행될 수 있다. 대량의 데이터를 처리해야 하는 프로그램이나 수천 명
이 동시에 사용하는 웹 앱을 개발한다고 가정하자. 선택한 자료 구조가 소프트웨어가 잘 실행될지
혹은 처리량을 감당할 수 없어 멈춰버릴지를 결정할지도 모른다.
소프트웨어를 문제없이, 빠르게 실행할 수 있는 명쾌한 코드를 작성하는 능력을 갖추고 소프트웨
어 공학자가 가져야 하는 전문성을 키우려면 다양한 자료 구조를 알고, 각각의 자료 구조가 개발
중인 프로그램의 성능에 어떤 영향을 미칠지 확실히 이해하고 있어야 한다.
029