본문 바로가기
책장 너머 세상 - 독후감 & 서평

누구나 자료구조와 알고리즘

by 박효승 2022. 12. 6.
728x90
반응형

누구나 자료구조와 알고리즘

 

 

제이 웬그로우 저자

길벗 출판사 2021.11.30

 

실무자가 아니어도 한 번쯤 생각해볼 데이터와 알고리즘의 중요성

초등학생을 위한 코딩 학원이 늘어나고, 누구나 알고리즘을 배워야 한다고 말하는 시대이지만, 사실 학생들에게 알고리즘과 컴퓨터 공학 교육과정에서 다루는 거의 모든 교육과정은 그야말로 어렵고 난해하며 생소한 기호 속에서 헤매는 것과 다름없는 일처럼 취급된다. 자료를 분석하고, 알고리즘을 숙달할 수 있다면 더 많은 데이터를 효과적으로 활용할 수 있게 된다는 것을 알고 있지만, 막상 정보와 자료의 수용자에서 제작자이자 관여자로 넘어가는 시점이 수학이나 컴퓨터 공학을 전공한 사람이 아니라면 여간해선 시작하기 어려운 영역 중 하나이기 때문이다. 하지만 그렇다고 해서 변화하는 시대 속에 도태되고, 데이터 모르쇠로 일관하며 살아갈 수는 없는 법, ‘누구나라는 제목에 한 번 속는 셈 치고 저자가 말하는 쉬운 알고리즘을 한번 배워 보자는 마음으로 책을 집어들었다.

이 책은 알고리즘, 그리고 알고리즘의 빅오표기법, 자료구조에 대해 다루고 있다. 그 개념을 설명하기 위해 대부분의 예시는 루비와 파이선으로 사용되고 있는데 사실 이런 전문 용어에 대해 잘 모르는 중고등학생들도 이해할 수 있는 수준으로 만들려는 저자의 노력처럼 JavaC++ 언어의 비중은 적은 편이어서 집중하면 이해할 수 있을 만한 내용이다. 빅오 표기법으로 표기된 시간복잡도를 제공하고 있어 빅오 표기법을 이용한 시간 복잡도 계산 같은 부분에서 겁먹을 필요가 없으며, 잘못된 방식으로 문제에 접근했을 때 어떻게 해결하고 이해해야 하는지까지 잘 잡아주고 있다. 그보다는 자료구조나 알고리즘에 대한 내용을 쉽고 자세하게 배울 수 있다는 점에서 최대한 대중의 기호와 이해도에 맞춘 책이라고 해도 좋을 것 같다. 스택과큐, 트리와 그래프, 해시테이블, 재귀 등의 알고리즘이 어떻게 작동하는 것인지 등에 대해서도 상세하게 설명해준다. 그리고 읽으면서 느낀 점 중 하나는 데이터와 자료 구조, 알고리즘과 빅오 등 모든 개념이 서로 유기체처럼 연결되어 있는 것처럼 느껴진다는 것이었다. 전 단계를 이해해야만 다음 단계를 이해할 수 있는 것처럼, 나는 자료조사부터 빅 오와 이후 프로그래밍, 재귀, 해시 테이블, 스택과 큐 등 차근차근 낯선 개념들을 이해해 나가려 했다.

개인적으로 가장 좋았던 것은 그림과 예시가 많았다는 것인데, 글로만 읽어서는 쉽게 이해할 수 없는 부분도 그림이 첨부되어 있어서 훨씬 이해가 빨라지는 면이 있었다. 특히 자료구조 부분은 구조가 핵심이고, 알고리즘은 무엇보다 순서를 잘 이해하고 보아야 하는데 이에 대한 그림이 그려져 있어 훨씬 이해하기가 편했다. 하지만 그래서인지 자료구조나 알고리즘을 전공하거나, 전문적으로 공부하는 사람들에게는 너무 쉬운 개론서처럼 느껴질 수 있다는 생각도 들었다. 하지만 그와 관련한 전공 경험이 없는 나와 같은 사람에게는 충분히 여러 번 읽어봐야 이해할 수 있는 부분도 있는 난이도 있는 책이었다.

그리고 공부할수록 비전공자로서 이해하기엔 책이 좀 어렵게 느껴지기도 했고, 이런 과정이 쉽게 느껴질 만큼 전공자들이 데이터 분석에 대해 얼마나 많은 연구를 거듭해왔는지, 이 모든 과정이 다 그간의 연구 성과라는 생각에 감탄하기도 했다. 이 모든 노력이 모여 내가 사용하는 스마트폰 같은 기기가 만들어지고, 내 데이터 정보를 분석하여 더 편리한 시스템을 구축해나가는 데 활용되고 있었던 것이라 생각하니 왜 그토록 4차 산업혁명을 연구하는 사람들이 데이터와 자료에 집중하는지 이해할 수 있겠다는 생각이 들었다. 지금의 빅 데이터를 활용한 세상이 오기까지 데이터를 어떻게 조직하느냐에 따라 코드의 실행 속도에 차이가 생기므로 효율적인 코드를 작성하는 법을 프로그래머들이 꾸준히 연구해왔던 것이다.

 

왜 알아야 하고, 배워야 하는가?’

얼마 전, 카카오 데이터센터 화재로 인해 전 국민의 모든 일상이 멈춤이 되는 말도 안 되는 사태를 우리는 기억하고 있다. 대한민국에 있는 한 회사의 데이터 센터 한 건물에 불이 났을 뿐인데 전 국민은 카카오톡 메신저를 비롯해 은행, 택시, 사무 행정, 회사업무 모든 것들에 불편함을 겪어야 했다. 급기야 길거리에 세워진 퀵보드 하나를 빌리는 데에도 문제가 생기는 것을 보면서 많은 사람들이 이렇게 데이터와 인터넷에 대한 의존도가 높다는 것에 놀랐고, 일상의 모든 것들에 대한 정보를 데이터화하여 기록하고 사용하는 것이 편리한 만큼 얼마나 위험한 것인지에 대해서도 실감할 수 있었던 사태였다. 그리고 무엇보다 데이터 주권을 가지는 것의 중요성을 절감하며 단순히 데이터를 사용하는 수용적인 입장에서 벗어나 주체적으로 데이터를 다루고, 조정하고, 분류할 수 있는 능력을 갖춘 사람이 앞으로의 시대에 큰 힘을 갖게 되리라는 것도 깨달을 수 있었다. 하드웨어, 스포트 웨어 할 것 없이 네트워크 기술이 발전하고 막대한 데이터가 쏟아져나올수록 그것은 실제 사용하고 마들 수 있는 사람이 새로운 시대의 주도권을 쥐게 될 것이다. 고로 우리가 자료를 어떻게 분석, 분류하고, 구조화하여 알고리즘 형태로 직접 이용할 수 있어야 한다는 것에 대한 자각이 앞으로도 계속 필요할 것으로 예상된다. 그래서 조금 어려운 내용임에도 불구하고 책을 끝까지 읽어야겠다는 의무감을 더해 책을 읽어 내려갔다. 그리고 내가 모르는 영역만큼 내가 앞으로의 시대에 지금의 부족함을 어떻게 채워 나가야 할지를 생각해보게 되었던 것 같다.

알고리즘의 역할은 무엇일까? 책을 읽으면서 가장 의문을 가졌고, 의문을 해소할 수 있었던 것은 그 부분이었다. 이전까지 데이터의 중요성에 대해서는 잘 알고 있었지만 알고리즘이 그런 데이터 사용과 어떤 상관성을 가졌는지에 대해 제대로 이해하지 못했었는데 알고리즘이 그 모든 데이터에 의미를 부여하는 큰 역할을 한다는 것을 알 수 있었다. 알고리즘을 통해 데이터를 유용한 정보로 전환할 수 있게 된다면, 마치 인체의 각 장기와 근육에 영양과 혈액을 공급해주며 사용하는 것처럼 데이터를 한층 유용하게, 가장 적절하게 사용할 수 있다는 뜻이 된다. 알고리즘이나 데이터라는 연료를 공급해 좀 더 사람들의 행동을 체계적으로 분석할 수 있게 된다면 무언가를 판매하려는 사람에게는 더 정확한 타겟팅이 가능해질 것이기 때문이다. 특히 앞으로 알고리즘 개발의 잠재력이 크다고 평가받는 아시아 지역에서, 점점 늘어가는 인터넷 사용량만큼이나 사람들이 알고리즘에 대해 갖는 관심도 증가하고 있는 시점에서 더욱 알고리즘과 어떻게 하면 자료를 잘 이해해 분석할 수 있는지를 공부하는 것은 매우 중요하다는 생각이 든다. 알고리즘을 좀 더 잘 이해함으로써 자신의 정보를 어떻게 보호받기 요구할 수 있는지도 알 수 있고, 보안이나 기타 데이터 관련 기관과 시스템을 더욱 유용하게 사용할 수 있지 않을까?

대부분의 사람들이 이제 빅데이터라는 말에 익숙해지고, 데이터를 통해 우리에게 맞춤형 서비스가 제공될 수 있다는 것을 자연스레 받아들이지만, 대체 어떻게 그 수많은 자료 중에서 나에게 맞는 데이터를 찾아내 활용하는지 과정에 대해서는 아직 일반적으로 알려진 이야기는 아니다. 하지만 다행히 불투명한 데이터 활용을 없애고 고유한 데이터 식별정보 생성을 통한 개인정보 활용에 대한 사람들의 인식은 잘 마련되어 있기에 앞으로 좀 더 알고리즘에 관심을 가지고 자료의 출처와 구조 분석과 활용의 모든 과정에 대한 관심과 연구를 꾸준히 이어간다면 알고리즘이 좀 더 나은 서비스를 제공받아 편리한 일상을 만드는 데 큰 도움이 되지 않을까 한다.

반응형

댓글