컴퓨터는 대량의 자료를 자동으로 처리하기에 적합한 장치이며 처리할 수 있는 자료는 본질적으로 문자열, 또는 수열이다. 문자열이란 말 그대로 문자를 늘어놓은 것으로, 인류가 만들어낸 모든 정보는 문자열이다. 예를 들면 우리가 흔히 접하는 신문 기사, 소설과 같이 자연어로 이뤄진 것이 있고, 컴퓨터에 작업을 지시하기 위해 정해진 규칙에 의해 만들어진 프로그램 코드와 같은 인공어가 있다. 이외에도 유전 정보를 담고 있는 DNA 서열, 단백질을 구성하는 아미노산 순서, 음악을 표현하는 음표의 길이와 순서 등 생각보다 다양한 곳에 문자열이 숨어 있다.
이와 같은 문자열을 컴퓨터를 사용해 다루려면 문자열에 숨어 있는 패턴을 탐구해 그 특성에 맞는 알고리듬을 사용할 필요가 있다. 최근에는 컴퓨터 성능의 개선과 인공지능의 발달로 문자열 처리를 알고리듬 수준에서 다뤄야 할 필요성이 줄어들었다고 생각할 수도 있겠지만, 컴퓨터가 다뤄야 하는 자료가 문자열로 돼 있는 한 문자열 알고리듬의 중요성은 결코 줄지 않는다. 특히 컴퓨터의 발달에 힘입어 아무리 머신러닝을 통해 임의의 문자열을 처리할 수 있다고 하더라도, 주어진 문자열을 목적에 적합하게 처리하는 알고리듬이 존재한다면 그 알고리듬을 사용하는 편이 더 효율적인 경우가 많다. 따라서 문자열 알고리듬을 공부하고 연구하는 것은 인공지능의 시대에도 여전히 중요한 문제다.
이 책에서는 컴퓨터를 사용해 문자열을 다루기 위해 필요한 기본 지식부터 패턴 매칭, 문자열 압축과 같은 고급 알고리듬에 이르는 다양한 기법을 구체적인 문제를 통해 살펴보고 있다. 이 책에서 다루는 문제는 앞서 언급한 자연어나 인공어의 처리, 유전 정보 해석, 음악 분석 등에서 널리 사용되는 알고리듬과 관련이 있다. 관심 있는 독자라면 각 알고리듬이 어디에서 쓰이고 있는지 눈치챌 수 있을 것이다. 독자는 이 책에서 제시하는 문제를 하나씩 해결하면서 지적인 즐거움을 얻을 수 있고, 더 나아가 새로운 문자열 처리 알고리듬을 발견할 수 있을지도 모른다. 더 자세한 내용에 대해서는 참고문헌을 찾아서 공부해보는 방법도 좋을 것이다.
개인적으로는 이 책을 번역하면서 컴퓨터 과학의 본질적인 흥미를 다시 느낄 수 있었다. 가령 압축 알고리듬으로 쓰이는 LZW 알고리듬이나 RLE 알고리듬을 수업 시간에 배울 땐 별다른 감흥이 없었다. 하지만 이 책을 번역하면서 기초 개념부터 다시 한번 살펴본 바로는 이러한 알고리듬을 개발하기 위해 고민을 거듭했던 무수한 선배 과학자의 노력이 엿보였다.
현대 사회에서 인터넷은 개인과 개인의 통신이라는 개념을 넘어서 다양한 사회를 지구 전체에 걸쳐 연결하는 거대한 그물망이다. 또한 현대 문명의 정점을 상징하는 개념이자 도구 중 하나다. 현재 주로 사용되고 있는 통신망은 고전적인 전자 기학과 전자공학 기술에 기반한 것으로, 이 기술에서 정보를 다루는 단위는 0과 1의 두 가지 상태 중 하나의 상태만 허용하는 비트(bit)다. 비트 개념을 이용하면 최초의 전자식 컴퓨터가 발명된 이후의 컴퓨터와 컴퓨터들 사이의 통신에 이용되는 모든 정보를 표현할 수 있다. 하지만 컴퓨터와 전자 통신의 속도가 점점 빨라지면서 고전 물리학에 기반한 정보 처리 기술만으로는 더 이상 성능을 발전시킬 수 없는 한계에 맞닥뜨리게 됐다. 가령, 컴퓨터 CPU의 성능을 높이기 위해 전자회로의 크기를 매우 미세하게 만든 결과, 고전 물리학으로는 설명할 수 없는 양자역학적인 현상들을 피할 수 없게 됐다. 결과적으로 미시세계에서 중요하게 작용하는 양자역학은 고전 물리학에 기반한 기술이 더 이상 통하지 않는 한계가 됐다.
양자역학을 계산에 직접 이용하는 양자 컴퓨터는 이런 한계를 돌파하거나 우회할 수 있는 새로운 계산 패러다임으로 등장했다. 양자 컴퓨터는 양자 비트(quantum bit), 줄여서 큐비트(qubit)를 정보의 단위로 사용한다. 큐비트가 고전적인 비트와 결정적으로 다른 점은 두 상태의 중첩을 근본적으로 허용한다는 것이다. 즉, 양자 컴퓨터는 0과 1의 양자역학적 중첩 상태를 계산에 이용할 수 있다. 그리고 이 특성의 결과로 양자 컴퓨터는 고전적인 컴퓨터의 성능을 훨씬 뛰어넘는 양자 우월성(quantum supremacy)을 보일 것으로 기대된다.
양자 컴퓨터의 정보 처리 단위가 큐비트가 되면서, 여러 양자 컴퓨터를 연결하는 방법 역시 양자역학적으로 바뀔 필요가 생겼다. 가깝게는 같은 책상 위에 있는 양자 컴퓨터 두 대를 연결하는 것부터 멀게는 지구 반대편에 있는 양자 컴퓨터를 연결하는 것까지 모두 통신망을 이용해야 하는데, 그 통신의 정보 단위가 큐비트가 된다. 기존의 통신망은 당연히 비트를 이용해 정보를 전송하므로 큐비트의 특성을 그대로 전달할 수 없고, 이것은 양자 컴퓨터를 서로 연결해서 사용하는 이점을 전혀 누리지 못하도록 방해한다. 즉, 양자 통신과 이를 이용한 양자 인터넷은 양자 컴퓨터 시대에 필수적인 통신 기술의 패러다임이다.
저자는 양자역학을 이용한 기본적인 통신 기술과 이를 확장해서 전지구적인 규모의 인터넷까지 어떻게 구축할 수 있는지 소개한다. 특히, 양자얽힘(quantum entanglement)과 양자원격전송(quantum teleportation)이라는 흥미로운 주제에서 시작해 양자 키 분배, 얽힘 기준계, 양자정화 같은 기초적인 통신 기술을 설명하고, 양자 중계기, 양자 라우터, 양자 오류 보정 같은 주제로 발전시킨다. 특히 이런 기술들이 기존의 고전 통신망의 어떤 기술과 유사한지, 그리고 기존의 인터넷 통신망과 어떻게 융합될 수 있는지 설명한다. 이 책은 양자 인터넷을 구축하려는 네트워크 공학자들과 양자 과학자들 사이의 이해를 돕는 가교 역할을 할 것이다.
최대한 역자의 관점은 배제하고 저자의 논조와 설명이 가급적 독자에게 이해될 수 있도록 옮기는 데 주력했다. 다만, 그럼에도 불구하고 원서의 탁월함이 독자에게 잘 전달되지 않았다면 그에 대한 비난은 역자의 몫이라고 생각한다. 이 책이 많은 국내 독자에게 도움이 되기를 바란다.
최근 과학계 뉴스에 따르면 전 세계적으로 양자 컴퓨터에 대한 관심이 높아지고 있다. 심지어 과학계뿐만 아니라 산업계 전반을 비롯한 국가적인 관심까지도 받는 중이다. 이는 아마도 예전에는 단지 이론적 가능성에 불과했고, 공상과학 소설에서만 등장하는 환상의 존재였던 양자 컴퓨터가 이제는 가까운 미래에 실용적인 수준에서 사용 가능하다는 판단이 서기 때문이리라. 이에 따라 구글, IBM, 마이크로소프트, 아마존 등 세계적인 컴퓨터 기업에서 양자 컴퓨터에 대한 연구와 투자를 하고 있다.
양자 컴퓨터가 관심을 받는 이유는 고전 컴퓨터에서는 현실적으로 빠르게 풀 수 없을 것으로 보이는 문제를 유의미한 시간 내에 빠르게 풀 수 있을 것으로 보이기 때문이다. 물론 양자 컴퓨터에 대한 연구가 양자역학 자체를 더 깊이 이해하고 기초과학을 더 발전시키는 등 전반적인 물리학 연구에 주는 함의가 충분히 있겠으나, 기초과학을 벗어나 컴퓨터공학, 암호학, 경제학 등 다양한 응용 분야에서도 관심을 보이는 것은 고전 컴퓨터를 초월할 것이라는 기대감 때문일 것이다.
이처럼 많은 사람이 양자 컴퓨터에 대해 관심은 갖고 있지만 실제로 양자 컴퓨터의 작동 원리를 이해하는 이는 많지 않다. 양자 컴퓨터의 작동 원리의 바탕이 되는 양자역학을 이해하는 것부터 쉽지 않기 때문이다. 양자 컴퓨터를 이해하려면 양자 상태로 이뤄진 큐비트, 그 큐비트의 얽힘, 얽힌 큐비트에 작용하는 양자 연산자와 같은 개념을 이해해야 하는데, 이와 같은 양자 개념을 고전적인 컴퓨터 이론에서 배워 온 비트와 논리 게이트 개념으로 설명하려고 들면 혼란에 빠질 뿐 제대로 이해하기가 어려워서이다. 아마 20세기 초에 양자역학이 고전역학을 대체하는 것으로 소개됐을 때 물리학자들이 받은 충격을 고전적인 컴퓨터 이론을 공부한 현재의 컴퓨터 엔지니어들이 양자 컴퓨터를 배워야 할 때 고스란히 받을 것이다.
문제는 그 작동 원리를 몰라도 수많은 애플리케이션이 등장해 실생활에 현실적 도움을 주고 있는 고전 컴퓨터와는 달리, 이제 갓 태어나 그 쓸모를 찾기 시작하는 양자 컴퓨터는 작동 원리를 알지 못하면 고전 컴퓨터보다 나을 것이 없다는 점이다. 먼 미래에 양자 컴퓨터가 대중화되고 일상적으로 사용하게 되면 그 원리를 모르고도 사용할 수 있겠지만, 현시대를 살아가는 컴퓨터 엔지니어들이 양자 컴퓨터를 사용하고 싶다면 어쩔 수 없이 고전 컴퓨터와 다른 양자적인 컴퓨터 이론을 공부해야만 한다. 이는 진공관을 이용해서 만들어졌던 초창기 컴퓨터를 사용하기 위해서는 진공관의 작동 원리를 대충이나마 이해하고 있어야 했던 것과 마찬가지일 것이다.
그렇다고 양자 컴퓨터를 사용하기 위해서 물리학 전체를 다시 공부한다는 것은 배보다 배꼽이 더 커지는 격이다. 바로 이 지점에서 이 책을 추천할 수 있다. 큐비트, 양자게이트, 양자얽힘과 같은 기본 개념에서 시작해 쇼어 알고리듬, 그로버 알고리듬과 같은 중요한 양자 알고리듬을 다루고, 양자 엔트로피, 양자오류보정, 강건한 양자계산과 같은 전문적인 주제까지 훑어본다. 부디 이 번역서가 한국어판 독자들에게 저자의 매력적인 설명을 훼손하지 않고 전달하기를 바라며, 아울러 양자 컴퓨터에 관심 있는 독자들이 이 책을 읽고 보다 깊이 있는 주제들을 연구할 수 있는 기초를 다지게 되길 바란다.