자료 구조라는 것을 꼭 알아야 할까?
컴퓨터를 조금 공부한 상황이라면 자료구조라는 말에 먼저 머리가 아플수도 있다. 개발을 할 때 꼭 알아야 할까? 소프트웨어 개발에 있어서 필수적인 요소이긴 하다.
프로그램은 기본적으로 어떤 데이터를 다룬다. 회원 관리 프로그램이라고 하면 회원 데이터를 다룬다. 회원의 정보를 기억하고, 보여주기도 하고, 탈퇴할 수도 있다. 회원 정보는 이름도 있고, 어떤 경우는 나이도 있다. 어떤 경우는 가입일이 있을 수 있다. 이러한 정보를 자료라고 하고, 이것을 어떻게 관리할 것이가 어떤식으로 저장할 것이가가 자료 구조이다.
여기까지는 데이터 베이스까지의 얘기는 아니다. 데이터 베이스틑 저장에 관한 부분이다. 물론 데이터 베이스에서도 어떻게 저장하는가의 문제가 있다. 정보를 어떤식으로 담을지 정보를 검색하기가 어떻게 하면 더 빠르고 유리할지 데이터베이스까지 저장되기 전에 자료 구조는 해당 자료를 어떤식으로 관리할지의 문제이다.
어떤 값들을 일정하게 열거하여 다루기도 하는데 이것을 배열이라고 하는데, 이런 구조로 값을 처리하기도 한다. 어떤 것은 값을 넣었다가 뺐다가 할 수도 있다. 이러한 것은 스택이라고 하는데, 스택의 경우는 마지막으로 쌓인 값이 먼저 나온다. 예전에 택시를 타면 동전을 끼워 놓는 케이스가 있었는데, 그러한 케이스에서 동전을 집어 넣고, 마지막 넣은 동전을 먼저 빼는 것이 스택이다.
그 동전 케이스를 알지 못하는 세대라면 PC방에서 회원 카드가 쌓인 것을 생각해보면 된다. 회원 카드가 쭉 쌓여 있다. 마지막 것을 빼서 사용하고 되돌려 놓는다. 다음 사람은 맨 위에 카드를 사용하는 방식이다. 그렇다면 이런 구조는 스택에 해당된다. 큐와 같은 자료구조도 있다. 먼저 들어간 값이 먼저 나온다. 먼저 들어간 값이 먼저 나오는 경우는 물건을 살때 줄을 서는 경우 줄을 먼저 선 사람이 계산을 마치고 먼저 나가게 된다. 이런 경우 큐에 해당된다.
자료 구조에 대한 자세한 설명은 다음에 하도록 하겠지만, 이런 식으로 다양한 자료구조 형태를 가질 수 있고, 자신이 만들고자 하는 형태에 필요한 자료구조를 사용하면 된다. 사실은 자료 구조를 이해하는 것은 꼭 필요한 일이지만, 일일이 자료구조를 처음부터 개발하여 사용하지는 않는다. 잘만들어진 것을 사용하면 되는 경우다 많이 있다. 이것이 라이브러리라고 하는데, 라이브러리 말 그대로 도서관이다. 도서관에서 필요한 기능들을 참조해서 사용해도 된다. 어쩌면 처음부터 만드는 것보다는 잘 만들어진 것을 사용하는 것이 시간적으로나 안정성 측면에서 좋을 수도 있다.
조금 동떨어진 얘기이지만, 그래서 오래전 부터 오픈 소스에 대한 관심과 사용이 늘어난 측면도 있다. 직접 모든 것을 개발하지 않고, 필요한 것을 잘 찾아서 사용할 수도 있다. 오픈 소스는 소스를 오픈하여 누구나 사용할 수 있게 만들어준 소스들이다. 소스를 오픈한 만큼 그 소스를 사용하는 것에 대해서는 자유로우나 그 오픈 소스를 통해서 개발한 것은 또 소스를 오픈해야 하는 제약을 가진다. 이것은 오픈 소스라는 개념에서 다뤄보기로 하고, 일단 자료 구조에 대한 이야기는 이정도로 하되 자세한 내용들을 개별적으로 다뤄보자.
책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다.
'쉽게 풀어본 IT 기술 ' 카테고리의 다른 글
알고리즘을 뭐라 말할까? (0) | 2018.08.31 |
---|---|
소프트웨어 왜 중요한가? 누가 잘할 수 있는가? (0) | 2018.08.31 |
모바일앱 vs 모바일웹 vs 하이브리드앱 (0) | 2018.08.31 |