[CM301] 01. 알고리즘에 대해 알아보자
주변을 둘러봅시다. 교육, 상업, 연구, 의료, 심지어는 전쟁까지 컴퓨터가 쓰이지 않는 곳이 없습니다. 온 세상이 인터넷인 셈이죠. 이게 가능해진 이유는 전자공학과 컴퓨터 칩의 설계 능력이 발전하면서 더 작은 공간에 더 많은 정보를 집어 넣을 수 있게 되었기 때문입니다. 누구나 최첨단 컴퓨터를 주렁주렁 매달고 다닐 수 있게 된 것입니다.
여기서는 다른 것에 대한 이야기를 해보려고 합니다. 칩과 회로가 육체라면, 영혼에 대한 이야기이죠. 바로 알고리즘입니다.
위대한 발명품
서기 600년경 인도에서 발명된 아라비아 문자는 산수를 혁신적으로 바꾸었습니다. 아무리 크고 복잡한 수라도 단 10개의 기호만 사용해 표현할 수 있게 되었죠. 중요한건 이런 특징이 산술 연산을 단계를 따라 효율적으로 수행하는데 굉장히 유용했다는 것이었습니다.
그리고 9세기 바그다드에 살았던 한 사람이 이 문자를 이용해 책을 쓰게 됩니다. 책의 내용은 수의 덧셈, 곱셈, 나눗셈의 기본적인 방법을 제시했을 뿐만 아니라, 제곱근을 구하고 π의 자릿수를 계산하는 방법까지 자세하게 설명할 만큼 혁신적이었죠. 책의 저자는 바로 알 콰리즈미, 알고리즘이라는 용어를 탄생시킨 학자였습니다.
알고리즘 (Algorithm)
알고리즘은 문제를 해결하기 위해 명료하게 정의된 해결 절차 또는 방법을 뜻합니다. 이렇게 정의가 내려져 있어 굳이 컴퓨터를 통해 실행하지 않아도 됩니다. 계산 방법을 아주 큰 종이에다 적어 놓고 문제를 풀 때마다 종이를 따라가며 끄적이는 것도 알고리즘이라고 할 수 있는 셈입니다.
하지만 마침내 컴퓨터라는 것이 만들어졌을 때, 알고리즘의 연구가 폭발적으로 발전한 것은 맞습니다. 컴퓨터는 이전에 존재하던 산술 체계를 명확하게 구현할 수 있었습니다. 거기다가 사람보다 더 오래 기억하고 더 빨리 계산할 수 있었고요. 전 세계 과학자들은 온갖 종류의 문제를 컴퓨터네 집어 넣어 해결했고, 점점 더 복잡한 알고리즘과 새로운 응용 프로그램을 개발하기 시작했습니다. 그리고 오늘날의 세계에 도달하게 된 것이죠.
이제부터 우리들은 어떤 알고리즘들이 만들어졌는지 살펴보고 어떤 것이 좋은 것인지 판단하는 방법에 대해 알아볼 것입니다. 그리고 종극에는 아직까지 우리가 해결하지 못한 문제들의 국면에 까지 다가가 볼 예정입니다. 알고리즘은 목적지까지 이어진 길입니다. 여러 방향이 있지만, 저마다 가는 방법이나 걸리는 시간이 다르기 마련입니다. 조금씩 천천히, 길을 따라 걸어가봅시다.




