더북(TheBook)

1.1 들어가며

응용 프로그램을 설계할 때 가장 중요하게 고려해야 할 항목 중에 하나는 데이터 관리입니다. 모든 응용 프로그램은 데이터를 입력으로 받아 연산을 하거나 또는 처리한 후, 그 결과를 다시 데이터로 내보냅니다. 예를 들어 병원 관리 시스템을 생각해보겠습니다. 병원 관리 시스템이라면 의사와 환자, 그리고 보관 기록 등의 데이터가 있을 것입니다. 병원 관리 시스템은 환자를 입원시키는 처리를 할 수 있어야 하고, 새로운 의사를 고용하거나 또는 퇴직시키는 등의 관리도 할 수 있어야 합니다. 병원 관리 시스템의 사용자 인터페이스는 병원 관리자가 사용하기 편한 형식으로 제공되겠지만, 시스템 내부적으로는 다양한 항목에 대한 기록을 체계적으로 관리해야 합니다.

프로그래머는 데이터를 메모리에 저장하기 위해 여러 자료 구조를 사용할 수 있습니다. 응용 프로그램에서 필요한 기능을 구현하고, 동작 성능과 안정성을 확보하려면 적절한 자료 구조(data structure)를 선택하는 것이 매우 중요합니다. 적절한 자료 구조를 사용하는 것뿐만 아니라, 데이터 조작에 적합한 알고리즘을 선택하는 것 또한 최적의 응용 프로그램 동작을 위해 필수적입니다. 이 책은 여러분이 만드는 응용 프로그램이 확장 가능하면서도 잘 최적화될 수 있도록 적절한 자료 구조 및 알고리즘 구현 방법을 제공할 것입니다.

이 장에서는 C++에서 제공되는 기본적이고 널리 사용되는 선형 자료 구조(linear data structures)를 소개합니다. 그리고 각각의 설계 구조와 장단점에 대해 알아볼 것입니다. 또한 연습 문제를 통해 다양한 자료 구조를 구현해볼 것입니다. 자료 구조를 제대로 이해하고 있으면 응용 프로그램의 성능 향상, 표준화, 가독성, 유지 보수 등의 관점에서 유리하게 데이터를 관리할 수 있습니다.

선형 자료 구조는 크게 연속된 구조와 연결된 구조로 분류할 수 있습니다. 이제 이 두 가지 구조에 대해 알아보겠습니다.

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