단어의 유래 2화. 알고리즘은 사람 이름이다
코딩 면접의 공포 알고리즘은 사실 1200년 전 바그다드에 살던 한 학자의 이름입니다.
풀고 시작
바그다드의 수학자
9세기 바그다드에는 지혜의 집(Bayt al-Hikma)이라는 당대 최고의 학술 기관이 있었습니다. 그리스와 인도의 문헌이 아랍어로 번역되어 쏟아져 들어오던, 말하자면 중세의 실리콘밸리였죠. 그곳의 학자 무함마드 이븐 무사 알콰리즈미(al-Khwarizmi)는 인도에서 온 숫자 체계, 그러니까 0을 포함한 십진 기수법으로 계산하는 법을 정리한 책을 썼습니다. 당시 유럽은 여전히 로마 숫자로 계산하느라 곱셈 하나에도 진땀을 빼던 시절이었습니다. 이 책이 12세기에 라틴어로 번역되면서 저자 이름이 Algoritmi로 표기됐고, 유럽 학자들은 이 새로운 계산법 자체를 알고리스무스(algorismus)라고 부르기 시작합니다. 사람 이름이 절차라는 뜻의 보통명사가 된 순간이죠. 처음에는 십진법 필산, 그러니까 아라비아 숫자로 하는 계산법만을 가리키던 이 말이 수백 년에 걸쳐 점점 넓어져, 오늘날 "문제를 푸는 정해진 절차"라는 뜻의 알고리즘이 됐습니다. 컴퓨터가 나오기 천 년 전에 이미 컴퓨터과학의 핵심 단어가 준비되어 있었던 셈입니다.
덤으로 대수까지
놀라운 건 그가 남긴 단어가 하나 더 있다는 사실입니다. 그의 또 다른 책 제목에 들어 있던 알자브르(al-jabr)는 이항, 그러니까 방정식에서 항을 옮겨 복원한다는 뜻이었는데, 이 말이 라틴어를 거쳐 대수학(algebra)이 됐습니다. 원래는 부러진 뼈를 맞춘다는 뜻으로도 쓰이던 말이라, 중세 스페인에서는 접골사를 algebrista라고 부르기도 했죠. 한 사람이 algorithm과 algebra라는 수학의 양대 단어를 모두 남긴 셈입니다. 코딩 면접에서 알고리즘 문제를 풀 때마다, 우리는 1200년 전 바그다드 학자의 이름을 부르고 있는 겁니다. 그가 정리한 계산 절차의 핵심 감각 하나가 나머지를 다루는 기술인데, 이 이야기는 수학 서가의 모듈러 산술로 이어집니다.