이야기와 함께 컴퓨터 과학의 기초인 코딩의 개념과 원리를 익히는 교양서 『사라진 코드를 구하라』가 출간되었다. 10여 년 간 IT 업계에 몸담아 온 저자가 프로그래밍 전문가로서의 경험에 동화적 상상력을 더하여, 코딩의 핵심 개념을 어린이의 눈높이에 맞추어 알기 쉽게 풀어냈다. 열두 살 초등학생 인오가 인공 지능 로봇 반야의 기억을 되찾아 주기 위해 위기를 극복하는 과정 속에서 독자들은 소스 코드, 알고리즘, 함수 등 코딩의 주요 개념과 원리를 하나하나 이해하고, 나아가 주체적인 사고력과 수학적인 문제 해결력을 키울 수 있다. 인간과 컴퓨터의 관계가 과연 어떤 방향으로 나아가야 할지 등 생각할 거리 또한 던져 준다.
저자 달에는 대학 시절 컴퓨터 연구회 활동을 한 것을 계기로, 10여 년 동안 한국 오라클 모바일랩 등 IT 업계에 몸담았다. 이후 책과 관련된 일을 하고 싶어 영국 유니버시티 칼리지 런던(UCL)에서 출판 석사 과정을 마쳤다. 이야기를 쓰는 것이 진정 하고 싶은 일임을 깨닫고 꾸준히 글을 쓰고 있다. 쓴 책으로 장편소설 『매일 구글 하는 남자』가 있다.
대학교에서 컴퓨터 동아리 연구회 활동을 하시고, 이때의 경험을 바탕 삼아 유수의 IT 기업에서 프로그래머로 일하신 점이 흥미롭습니다. 그리고 출판을 공부하시고 글을 쓰시게 된 것까지도요. 작가님의 삶에서 ‘코딩’이란 무엇인가요?
코딩은 제게 많은 의미가 있습니다. 대학에 입학하면서 친한 친구를 따라 컴퓨터 연구회 동아리에 가입했는데 거기서 다양한 개성을 지닌 사람들을 많이 만났지요. 컴퓨터도, 컴퓨터에서 돌아가는 프로그램도 몇 개 없던 시절이었지만 사람들은 미래에 다가올 경우의 수를 하나하나 따지며 밤새 토론을 벌이곤 했습니다. 컴퓨터는 어떠해야 하고 그것을 다루는 인간은 어떠해야 한다는 식이었지요. 저는 동아리에서 프로그래밍 언어나 컴퓨터 운영체제 같은 기술적인 부분도 배웠지만, ‘과학자와 컴퓨터의 관계’에 대해 함께 고민했던 것이 두고두고 많은 생각 거리를 남겨 주었습니다.
대학교 졸업 후에는 당시 초기 단계였던 IT 업계에 입사하였습니다. 밤낮 주말 없이 지내고 세계 여러 나라 사람들과 협업을 하면서, 저는 지구의 많은 사람들이 프로그래밍으로 가깝게 연결되어 있다는 걸 느낄 수 있었습니다. 그렇게 십10 년이 지나니 우리 사회도 많은 분야가 전산화되어 있었습니다. 동시에 IT 업계도 약간의 정체기와 변화를 모색하는 시간을 겪었는데, 그때 저도 진지하게 진로를 다시 고민하게 되었지요. IT 산업이 도전적이고 재미있기는 하지만 제가 죽기 전까지 꼭 일하고 싶은 분야는 아니라는 사실이 점점 분명해졌거든요. 언젠가는 꼭 책과 관련된 일을 해 보고 싶다는 오랜 꿈에 도전해 보기로 했습니다. 그래서 영국으로 유학을 떠났지요.
글을 쓰기 시작한 뒤 10년 동안 IT 산업은 저와 전혀 상관없는 일이었습니다. 혼자 글을 쓰고 결혼하여 육아까지 하다 보니 스마트한 사람들과 역동적으로 일했던 시절이 막연하게 그리워지곤 했지만, 잠깐씩 회상하는 정도였어요. 그런데 어느 날부터인가 자꾸 ‘코딩’이라는 말이 들리는 거예요. IT 업계에 몸담았던 저조차 ‘코딩’이란 용어가 좀 생소했습니다. 궁금해서 찾아보니 코딩은 프로그래밍의 또 다른 이름이더군요. 누가 어떻게 유행을 시켰는지 모르겠지만 새로운 브랜드로 급부상하고 있었습니다. 바로 그 즈음에 창비 출판사에서 코딩을 소재로 한 이야기를 써 보지 않겠느냐는 제안을 하면서 ‘코딩’이 다시 제 인생의 주요 화두가 되었습니다.
원고를 쓰며 많은 생각을 하였습니다. 그리고 깨달았습니다. ‘코딩’이 ‘글쓰기’와 다르지 않았다는 것을요. 코딩과 글쓰기는 무에서 유를 창조하고, 보이지 않는 생각의 실마리를 잡아 보이는 형상으로 다듬어 내고, 혼자 작업하지만 끊임없이 세상사와 다른 사람들의 생각에 관심을 가져야 하는 등 공통점이 많습니다. 그런 면에서 제가 IT 업계에서 일을 하다 글을 쓰고자 한 것은 굉장히 자연스러운 과정이었음을 느꼈습니다. 다른 점이 하나 있다면 코딩은 프로그래밍 언어를 사용하고, 글쓰기는 인간의 언어를 사용한다는 점이지요. 결국 『사라진 코드를 구하라』를 쓰는 작업은 IT 10년, 글쓰기 10년을 보낸 제 경험을 모두 아우르는 소중한 시간이었습니다. 그렇게 ‘코딩’이 제게 더 큰 의미를 갖게 되었지요.
컴퓨터 과학 교양서지만 ‘인오’와 ‘반야’라는 역동적인 두 캐릭터가 무척 인상 깊습니다. 동화적 상상력을 통해 코딩의 세계를 표현하실 때 염두에 두신 점이 있나요?
‘코딩’과 ‘동화’라는 이질적인 조합을 과제로 받고서 굉장히 많이 고민했습니다. 코딩을 하기 위해 알아야 할 최소한의 지식은 정해져 있는데, 일반 독자들이 그 내용을 얼마나 딱딱하게 느끼는지 잘 알고 있었거든요. 더구나 동화를 읽는 어린이 독자들이 과연 중간에 포기하지 않고 끝까지 읽을 수 있을지 걱정이 이만저만이 아니었습니다. 그래서 원고를 쓰기 시작할 때 ‘꼭 알아야 할 내용을 넣으면서도 자연스럽고 재미있는 이야기를 쓰자!’고 마음먹었습니다.
그렇게 머리를 쥐어짜던 어느 날 갑자기 아이디어가 떠올랐습니다. 인공 지능 로봇이라 똘똘하기는 한데 드라마의 주인공처럼 기억상실증에 걸린 로봇, 엄청난 지적 능력을 가지고 있지만 인간에 관심이 많고 감성을 더 중요시하는 로봇, 반야. 그렇게 한번 반야가 떠오르자 신기하게도 이야기가 술술 써지더군요. 코딩은 반야의 시작과 끝이기 때문에 코딩 이야기도 딱딱한 지식이 아닌 절실한 주제가 될 수밖에 없었지요. 덕분에 인오도 자연스러운 캐릭터가 되었습니다. 아무리 지적 호기심이 많은 어린이라 해도 12살짜리 어린이가 코딩을 스스로 배우고 싶어 하기는 쉽지 않거든요. 그래서 어떻게 동기 부여를 해야 자연스러울까 고민했었는데, 인오가 반야와 친구가 되어 같이 문제를 해결하기로 마음을 먹으니 이야기 속에서 자연스럽게 코딩을 배울 수밖에 없었지요. 저는 반야와 인오를 만나서 얼마나 뿌듯하고 기쁜지 모른답니다. 만약 제가 상상 속에서 반야와 인오를 만나지 못했다면 어떤 코딩 동화가 탄생했을지 가늠이 안 되네요.
코딩이란 컴퓨터를 그저 능숙하게 다루는 것이 아니라 컴퓨터에게 말을 걸고, 가상 세계를 새롭게 창조해 나가는 수단입니다. 정말 코딩을 할 줄 알면 무엇이든 다 만들 수 있는 걸까요?
저는 인간의 의지에 달렸다고 생각합니다. 20여 년 제가 대학에서 처음 컴퓨터를 접하고 IT 업계에 발을 디뎠던 시절과 비교해 보면 상전벽해라는 말이 실감 날 정도로 우리 사회는 많은 발전을 이루었습니다. 특히 하드웨어가 급속도로 발전하면서 일시에 많은 기술적인 장벽을 무너뜨렸지요. 하드웨어와 소프트웨어는 끝없이 상호보완하며 발전해 나갈 것이고, 인간이 목표하는 일을 이루어 주는 기술적인 기반이 되어 줄 것입니다.
이때 중요한 점은 ‘인간이 과연 바람직한 목표를 가지고 있는가?’에 대해 생각해 봐야 한다는 것입니다. 새로운 기술의 등장에 관해서는 기술자들은 물론이고 사용자까지 같이 고민하고 사회적 합의가 이루어져야 할 것 같아요. 예전의 컴퓨터는 생활에서 불편을 덜어주는 편리한 도구 역할이 강했지만, 지금은 사람들의 사고와 감정까지 조절하는 환경 그 자체라고 부를 수 있을 정도로 우리 생활에 깊숙이 들어와 있습니다. 그렇기 때문에 이제 신기술로 무엇을 할 것인가를 일부 과학자가 결정할 일은 아니라는 생각이 듭니다. 우리가 언젠가는 인간 복제가 가능할 거라 기대하면서도 그것이 과연 윤리적으로 바람직한 것인지 우려하고 경계하듯이, 컴퓨터로 급변하는 세상에 대해서도 비슷한 시각을 가지고 있어야 하다는 뜻이지요. 그래서 일반 사람들도 컴퓨터와 코딩이, 알고리즘이 뭔지 어느 정도 알아야 할 필요성이 더더욱 커진 것이고요. 이제는 컴퓨터 과학의 발전에 환호만 할 때가 아니고, 그것의 윤리적인 의미를 같이 고민하고 합의해 가는 게 중요한 때인 것 같습니다.
요즘 많은 어린이들이 엔트리와 스크래치 등 교육용 프로그램을 통해 코딩 학습을 하고 있습니다. 하지만 『사라진 코드를 구하라』에서는 작가가 직접 만들어 낸 프로그래밍 언어로 공부를 시작하는 것이 돋보입니다. 『사라진 코드를 구하라』 가 다른 코딩 교육서와 차별화되는 지점은 무엇이라고 생각하시나요?
제가 『사라진 코드를 구하라』를 쓰며 최근에는 어떤 식으로 코딩 교육을 하는지 둘러보았는데요. 스크래치와 엔트리를 보고 깜짝 놀랐습니다. 아이들이 코딩을 배우기에 정말 좋은 도구거든요. 제가 배울 때는 본격적으로 코딩에 입문하기까지 넘어야 할 산이 한 두 개가 아니었는데, 엔트리와 스크래치 등에서 제공하는 블록형 언어들은 아이들이 자신의 생각을 쉽게 마음껏 펼쳐볼 수 있는 장이 되어 줍니다. 놀면서 자연스럽게 알고리즘 훈련을 할 수 있지요.
이런 상황에서 제가 ‘코딩 동화’를 쓰는 게 과연 무슨 의미가 있을까 낙심한 적도 있지만, 결국은 정공법으로 접근하는 게 맞다는 결론에 도달했습니다. 즉 아이들이 스크래치나 엔트리로 코딩의 맛을 보고 좀 더 진지하게 배우고 싶다는 생각을 했을 때, 진짜 프로그래밍 언어를 배우는 입문서에 해당하는 책을 쓰고 싶었어요. 또 코딩이란 게 도대체 뭔지 전반적으로 알고 싶은 독자도 있을 테니까, 그런 독자에게 코딩의 기본적인 개념과 원리를 알려 주면 좋겠다고 생각했지요.
그래서 『사라진 코드를 구하라』는 특정 언어나 툴에 국한되지 않고 대부분의 프로그래밍 언어에 들어 있는 공통된 개념-키워드 목록, 변수, 연산자, 선택, 반복문, 함수, 컴파일 과정 등-을 다루었습니다. 코딩에 입문하는 독자, 요즈음의 ‘코딩 열풍’ 속에서 그 개념을 정확히 알고 싶은 사람들에게 괜찮은 책이라고 생각합니다.
2018년부터 초중고 소프트웨어 교육이 강화된다고 합니다. 코딩이 무엇인지 잘 모르는 학부모가 많아 불안감이 커지고, 사교육 시장도 커지는 것 같습니다. 당장 교과 성적을 잘 받아야 한다는 압박이 크기 때문일 텐데요. 어떤 마음가짐으로 새 교육과정에 대비하면 좋을까요?
‘컴퓨터 리터러시Computer Literacy’라는 말이 있습니다. 우리말로 ‘컴퓨터 소양’이라고 해야 할까요? 예전에는 컴퓨터를 아는 사람과 그렇지 않은 사람이 확연히 구분되었고, 컴퓨터와 관계된 일을 직업으로 선택할 게 아니면 굳이 컴퓨터에 대해 깊이 알 필요가 없었습니다. 하지만 오늘날 중요한 일은 모두 디지털 세계에서 벌어지고 있고, 이 현상은 점점 더 심화될 것이기 때문에 컴퓨터를 모른다면 ‘컴맹’ 정도가 아니라 ‘문맹’이 되는 것과 마찬가지입니다. 그렇기 때문에 국민들의 컴퓨터에 관한 전반적인 소양을 높이기 위해 국가 차원에서 공교육을 개편한 것이겠지요.
누구나 컴퓨터에 대한 기본 지식과 기술을 공평하게 배워야 한다는 취지로 학교 교육과정에 코딩이 도입되는 것은 바람직하다고 봅니다. 하지만 모두가 프로그래머가 될 수는 없습니다. 그럴 필요도 없지요. 그렇기 때문에 학교에서 다루는 수준의 컴퓨터 소양을 갖추는 것만으로도 충분하지 않을까 싶습니다. 새 교육과정을 통해 아이들이 컴퓨터가 무엇이고 코딩이 무엇인지, 그것으로 무엇을 할 수 있는지 정도만 인지하더라도 향후 자신이 꿈꾸는 장래희망에 그 기술들을 어떻게 접목할 수 있을지 쉽게 접근할 수 있으리라 예상합니다.
책 속의 “인공 지능이 아무리 발달한다 해도 애초에 인간의 불완전한 생각으로부터 태어난 존재거든.” 이라는 대사가 인상적입니다. 인공 지능은 우리가 그 속도를 가늠할 수 없을 만큼 빠르게 진화하고 있는데, 그래도 그 속에는 결함이 늘 있는 걸까요?
제 경험을 바탕으로 말씀 드리자면 컴퓨터에게 결함은 있을 수밖에 없다고 생각합니다. 인간의 생각에는 한계가 있고 모든 사람은 각자 전혀 다른 경험과 사고 체계를 가졌기 때문에 개발자가 만든 컴퓨터 프로그램이 사용자의 손에 쥐어졌을 때 생각지도 못한 상황이 발생할 수도 있거든요. 인공지능 같은 강력한 도구를 개발할 때는 검증하는 과정이 필요하다고 생각합니다.
그리고 이제는 개발자가 의도하지 않은 결함뿐만이 아니라 ‘의도한 결함’에 대해서도 우리가 고민해 볼 때라는 점을 말씀드리고 싶습니다. 제가 IT 업계 바깥으로 나온 뒤에, 많은 사람들이 컴퓨터에 대해 너무 모른다는 것을 알고서 조금 놀랐습니다. 특히 기술적인 내용을 모르는 것은 당연하다 쳐도 자신이 사용하고 있는 소프트웨어의 의미를 전혀 의식하지 않는다는 점에 대해서요. 그 아래에는 컴퓨터는 똑똑하고 중립적이라는 믿음이 깔려 있는 듯합니다.
하지만 컴퓨터는 인간과 따로 존재하는 것이 아닙니다. 컴퓨터 뒤에는 강렬한 욕망을 가진 수많은 사람이 서 있습니다. 프로그래머들은 재미있어서, 돈을 벌려고, 많은 사람들에게 영향을 미치려고 등 각자 다양한 생각과 의도를 품고 프로그램을 개발하고 있지요. 저는 저 자신이 IT 업계에서 일해 본 덕택에 컴퓨터 자체에 대한 환상이 없다는 점을 다행이라고 생각합니다. 대신 새로운 소프트웨어를 접했을 때, 소프트웨어의 기능보다는 그것을 개발한 사람들에 관해 상상하곤 하지요. ‘이 프로그램을 만든 개발자들은 어떤 생각을 했을까?’, ‘과연 이 프로그램을 믿고 사용해도 될까?’ 하는 물음을 던지며 말입니다.
저는 사람들이 컴퓨터 리터러시를 갖추는 것이 디지털 가상 세계를 이해하기 위한 기본 소양으로서도 중요하지만 가상 세계가 돌아가는 과정에 자신의 목소리를 적극적으로 내기 위해서도 중요하다고 생각합니다. 이제 컴퓨터 과학기술은 더 이상 우리의 생활과 분리할 수 없기에, 기술자들에게만 컴퓨터 개발을 맡길 게 아니라 시민들 모두가 주체적으로 관찰, 관리해야 하는 시점이라고 생각합니다.
앞으로는 어떤 책을 쓰실 예정인가요? 인오와 반야의 뒷이야기도 궁금한데, 독자들에게 들려주실 계획이 있는지 궁금합니다.
‘재미있는 이야기’를 쓰는 것이 제 꿈인데 가능할지 모르겠습니다. 아이가 초등학교를 다녀서 매일 학교 도서관을 가는데 그때마다 책을 읽으며 키득키득 웃는 아이들을 마주칩니다. 조용히 책을 읽다 도저히 참지 못하고 도서관에서 깔깔 구르기도 하지요. 그럴 때마다 어떤 책 구절을 보고 저렇게 웃는 건지 궁금하기도 하고, 그 책을 쓴 작가가 부럽다는 생각이 들기도 하지요. 그런 책을 쓰는 게 제 꿈이랍니다. 기회가 된다면 인오와 반야 이야기도 계속 쓰고 싶어요. 사실 『사라진 코드를 구하라』는 반야와 인오가 새롭게 출발하는 장면으로 끝나거든요. 어느 날 제 머릿속에서 인오와 반야가 새로운 사건 속에 휘말리게 된다면, 어쩔 수 없이 그 이야기를 쓰지 않을까 싶습니다.
-
사라진 코드를 구하라달에 저 | 최영훈 그림 | 창비
10여 년 간 IT 업계에 몸담아 온 저자가 프로그래밍 전문가로서의 경험에 동화적 상상력을 더하여, 코딩의 핵심 개념을 어린이의 눈높이에 맞추어 알기 쉽게 풀어냈다.
출판사 제공
출판사에서 제공한 자료로 작성한 기사입니다. <채널예스>에만 보내주시는 자료를 토대로 합니다.