컴퓨터 프로그램은 데이터를 입력받아 조작하고 반환하는게 전부다. 계산기 프로그램이든, 회사 전체를 관리하는 프로그램이든 소프트웨어는 데이터에 관한 것이다.
데이터
는 일반적으로 모든 유형의 정보를 망라하는 용어다. 그리고 가장 기초적인 수와 문자열로 이뤄진다. 우리가 개발환경을 조성하고 가장먼저 출력하는 것이 바로 "Hello Wolrd"인데 이 문자열이 바로 데이터다.
자료구조
는 이 데이터들을 조직하는 방법이다. 아래와 같은 코드가 있다고 가정해보자
x = "나는"
y = "왜이리"
z = "잘생겼나"
print(x+y+z)
문자열 세 개를 하나의 문자열로 출력하는 간단한 프로그램이다. 위 프로그램은 다음과 같이 데이터를 조직했다.
데이터를 어떻게 조직하느냐에 따라 각 프로그램의 실행 속도는 천지차이로 차이가 난다. 위 프로그램은 아주 간단해서 그리 차이는 안나겠지만 복잡한 프로그램을 다룬다면 이야기는 달라진다.
정확히는 소프트웨어가 문제없이 빠르게 실행할 수 있는 코드를 작성하는 능력을 갖추고 소프트웨어 공학자가 가져야 하는 전문성을 키우기 위해서다.
그러니 각각의 자료구조가 어떤 역할을 하는지 모두 알고 있어야 하겠다.