포스트

[CM301] 01. 알고리즘에 대해 알아보자

[CM301] 01. 알고리즘에 대해 알아보자

 주변을 둘러봅시다. 교육, 상업, 연구, 의료, 심지어는 전쟁까지 컴퓨터가 쓰이지 않는 곳이 없습니다. 온 세상이 인터넷인 셈이죠. 이게 가능해진 이유는 전자공학과 컴퓨터 칩의 설계 능력이 발전하면서 더 작은 공간에 더 많은 정보를 집어 넣을 수 있게 되었기 때문입니다. 누구나 최첨단 컴퓨터를 주렁주렁 매달고 다닐 수 있게 된 것입니다.

image1

 여기서는 다른 것에 대한 이야기를 해보려고 합니다. 칩과 회로가 육체라면, 영혼에 대한 이야기이죠. 바로 알고리즘입니다.

위대한 발명품

 서기 600년경 인도에서 발명된 아라비아 문자는 산수를 혁신적으로 바꾸었습니다. 아무리 크고 복잡한 수라도 단 10개의 기호만 사용해 표현할 수 있게 되었죠. 중요한건 이런 특징이 산술 연산을 단계를 따라 효율적으로 수행하는데 굉장히 유용했다는 것이었습니다.

image2

 그리고 9세기 바그다드에 살았던 한 사람이 이 문자를 이용해 책을 쓰게 됩니다. 책의 내용은 수의 덧셈, 곱셈, 나눗셈의 기본적인 방법을 제시했을 뿐만 아니라, 제곱근을 구하고 π의 자릿수를 계산하는 방법까지 자세하게 설명할 만큼 혁신적이었죠. 책의 저자는 바로 알 콰리즈미, 알고리즘이라는 용어를 탄생시킨 학자였습니다.

image3

알고리즘 (Algorithm)

 알고리즘은 문제를 해결하기 위해 명료하게 정의된 해결 절차 또는 방법을 뜻합니다. 이렇게 정의가 내려져 있어 굳이 컴퓨터를 통해 실행하지 않아도 됩니다. 계산 방법을 아주 큰 종이에다 적어 놓고 문제를 풀 때마다 종이를 따라가며 끄적이는 것도 알고리즘이라고 할 수 있는 셈입니다.

image4

 하지만 마침내 컴퓨터라는 것이 만들어졌을 때, 알고리즘의 연구가 폭발적으로 발전한 것은 맞습니다. 컴퓨터는 이전에 존재하던 산술 체계를 명확하게 구현할 수 있었습니다. 거기다가 사람보다 더 오래 기억하고 더 빨리 계산할 수 있었고요. 전 세계 과학자들은 온갖 종류의 문제를 컴퓨터네 집어 넣어 해결했고, 점점 더 복잡한 알고리즘과 새로운 응용 프로그램을 개발하기 시작했습니다. 그리고 오늘날의 세계에 도달하게 된 것이죠.

image5

 이제부터 우리들은 어떤 알고리즘들이 만들어졌는지 살펴보고 어떤 것이 좋은 것인지 판단하는 방법에 대해 알아볼 것입니다. 그리고 종극에는 아직까지 우리가 해결하지 못한 문제들의 국면에 까지 다가가 볼 예정입니다. 알고리즘은 목적지까지 이어진 길입니다. 여러 방향이 있지만, 저마다 가는 방법이나 걸리는 시간이 다르기 마련입니다. 조금씩 천천히, 길을 따라 걸어가봅시다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.