코드는 차세대 보편적 언어입니다.
1970년대에는 펑크 음악이 전 세대를 휩쓸었지요.
1980년대에는 아마 돈이었을 겁니다.
하지만 이제 저의 세대에서는
소프트웨어가 우리 상상력과 세상을 이어주는 통로입니다.
소프트웨어를 개발할 더욱 더 다양한 이들이
필요하다는 의미입니다.
컴퓨터를 기계적이고 동떨어진 지루한 마술같은 것으로 보지 않고
가지고 놀 수 있는 대상으로 보고
이리 저리 살피며 비틀어 보기도 하는 그런 사람들이죠.
프로그래밍과 기술의 세계로의 저의 개인적인 여정은
14살이라는 어린 나이에 시작했습니다.
어느 연상의 남자에게 홀딱 반해서 십대를 보냈는데
그 문제의 남자는 바로
당시 미국 부통령인 앨 고어였습니다.
저는 모든 십대 여자아이들이 할만한 일을 했습니다.
제 사랑을 어떻게든 표현하고 싶어서
이런 웹사이트를 만들어 드렸습니다.
그리고 2001년에는 텀블러도 없었고
페이스북이나 핀터레스트도 없었어요.
그래서 이런 열망과 사랑을 표현하려면
코딩하는 법을 배워야 했습니다.
바로 그렇게 프로그래밍을 시작하게 된 겁니다.
자기 표현의 수단으로 시작되었죠.
제가 더 어렸더라면 크레용이나 레고를 이용했을 거에요.
더 컸더라면 기타를 배우거나 연극반에 들었겠죠.
하지만 그 당시에는 다른 것들에 몰입했습니다.
시쓰기나 양말 뜨개질하기,
프랑스어 불규칙 동사 활용 외우기,
상상의 세계 만들기와
버트런드 러셀와 그의 철학을 음미하는 것이죠.
저는 그런 사람이었습니다.
컴퓨터를 지루하고 기술적이며 동떨어진 것으로 보는 사람이었죠.
지금은 이렇게 생각합니다.
어린 소녀들은 컴퓨터를 좋아하지 말아야 한다는 걸 모릅니다.
어린 소녀들은 놀랍죠.
그들은 정말 정말 어떤 것에 집중을 잘 하고 꼼꼼하고
놀라운 질문을 합니다.
"뭐예요?", "왜요?", "어떻게요?" 와 "만약에 이러면요?" 같은 질문이죠.
그들이 컴퓨터를 좋아하면 안된다는 걸 모릅니다.
부모님들은 알고 계시죠.
우리 부모님들은
컴퓨터 공학은 난해하고 이상한 과학분야로
오직 신비 창조자에게나 해당되는 거라고 느끼죠.
그것은 실생활과는 전혀 관계없는
말하자면 핵 물리학 같은 거라고 생각합니다.
일부는 맞는 이야기입니다.
많은 구문과 제어규칙, 데이터 구조,
알고리즘과 실행,
통신규약과 프로그래밍의 체계가 있습니다.
우리는 합심해서 컴퓨터를 더 작게 만들었습니다.
사람과 기계 사이에 추상적인 개념을 겹겹이 쌓아 올려
컴퓨터가 어떻게 작동하는지도 모르고
컴퓨터와 소통하는 법도 모를 정도가 되었습니다.
우린 아이들에게 인체의 작동원리를 가르치고
내연 엔진이 어떤 기능을 하는지 가르칩니다.
심지어 우주비행사가 되고 싶으면
될 수도 있다고 말하지요.
그러나 아이들이 와서
"그럼 버블 정렬 알고리즘이 뭐예요?"
또는 "제가 플레이를 누르면 어떻게 되는지 컴퓨터가 어떻게 알아요?
어떤 영상을 보여줘야 하는지 어떻게 알아요?"
또는 "린다, 인터넷은 장소예요?" 라고 물으면
우리 어른들은 갑자기 입을 다물게 됩니다.
"그건 마술이야." 이렇게 말하는 사람도 있어요.
"설명하기 너무 복잡해." 라고 말하기도 하고요.
둘 다 틀렸어요.
마술도 아니고 복잡한 것도 아닙니다.
그건 아주, 아주, 아주 빠르게 일어나는 겁니다.
컴퓨터 공학자는 이런 놀랍고 아름다운 기계를 만들었지만
우리에게 너무나 낯설게 만들었고
컴퓨터 언어도 마찬가지로 낯설어서
복잡한 사용자 인터페이스 없이는
컴퓨터에 말하는 방법을 우리는 더 이상 알지 못합니다.
그래서 제가
프랑스 불규칙 동사활용을 할 떄 아무도 알아채지 못했던 거죠.
실제로 저는 패턴 찾기 기법을 연습했던 거에요.
제가 뜨개질에 신이 났을 때
저는 사실 상징적 명령어 순서를 따라가고 있었던 겁니다.
그 안에 순환 구조가 들어있는 거죠.
버트랜드 러셀이 일생 동안 탐구했던
영어와 수학 사이의 정확한 언어를 찾고자 했던 것은
컴퓨터 안에 본거지를 두게 됩니다.
저는 프로그래머였지만 아무도 몰랐습니다.
오늘날 아이들은 화면을 두드리고, 옆으로 밀며 세상을 탐험합니다.
하지만 아이들에게 컴퓨터로 만들 수 있는 도구를 주지 않으면
우리는 창조자보다는 소비자만 길러내는 겁니다.
이 모든 여정을 거쳐 한 어린 소녀를 만났죠.
이름은 루비이고 여섯 살입니다.
정말 겁이 없고 상상력 풍부하고 약간 나서는 면이 있죠.
제가 프로그램을 독학하느라 어떤 문제에 봉착할 때마다,
가령 이런 문제이죠.
"객체지향 설계가 뭐고 가비지 컬렉션은 뭐지?"
여섯 살짜리 아이는 이걸 어떻게 설명할지 상상해 봤어요.
저는 루비에 관한 책을 쓰고 삽화도 그렸습니다.
루비가 제게 가르쳐 준 것은 이런 거에요.
루비는 침대 밑의 벌레를 무서워 하면 안된다고 가르쳐 줬습니다.
심지어 가장 큰 문제들도
작은 문제들이 함께 합쳐진 거라는 것도 알려줬죠.
루비는 제게 친구들도 소개시켜 줬습니다.
인터넷 문화의 다채로운 면이죠.
루비는 흰표범같은 친구가 있는데
그는 아름답지만 다른 아이들과는 안 놀려고 하죠.
루비는 아주 다정하지만 아주 엉망진창인 초록 로봇 친구도 있습니다.
루비는 펭귄 리눅스와도 친구인데
매우 대단히 효율적이지만 다소 난해하죠.
그리고 이상주의적인 여우, 등등의 친구들이죠.
루비의 세상에서는 놀이를 통해서 기술을 배웁니다.
그리고 가령, 컴퓨터는 정말 반복을 잘 합니다.
루비는 순환 루프를 이렇게 가르쳐 줍니다.
루비가 가장 좋아하는 춤 동작이 이건데요. "짝,짝,쿵,쿵,짝,짝,폴짝."
이걸 네 번 반복해서 반대 순환 루프를 배웁니다.
그 순서를 반복해서 순환 루프 배웁니다.
한 다리로 서 있으면서요.
엄마가 완전 화낼 때까지 그 순서를 반복하면서
순환 루프를 배웁니다.
(웃음)
무엇보다도, 정해진 해답이 없다는 것을 배웁니다.
루비의 세상을 위한 교육과정을 생각해낼 때
실제로 아이들이 세상을 보는 방법을 물어야 했고
어떤 질문이 있는지 묻고
놀이 검증 시간을 계획하는 겁니다.
저는 아이들에게 이 네 가지 사진을 보여주는 걸로 시작합니다.
자동차 사진을 보여주고,
식료품 가게, 개와 변기를 보여줍니다.
"이 중에 뭐가 컴퓨터 같아?" 라고 물어 봅니다.
그럼 아이들은 매우 조심성이 있어서 이럽니다.
"이것 다 컴퓨터가 아니예요.
저 컴퓨터가 뭔지 알아요,
그건 빛나는 상자인데
그 앞에서 엄마, 아빠가 시간을 많이 보내요."
그럼 그 때 우리는 이야기를 나누며
사실은 자동차가 컴퓨터임을 알게 되죠.
네비게이션 시스템이 들어 있으니까요.
그리고 개는 컴퓨터일리가 없지만
달고 있는 목줄이 있잖아요.
그 목줄 안에 컴퓨터가 있을 거에요.
식료품 가게에는 아주 많은 종류의 컴퓨터가 있어요.
계산 시스템이나 도난 경보같은 것이죠.
그리고, 그거 알아요?
일본에서는 변기도 컴퓨터랍니다.
심지어 그걸 해킹하는 해커도 있어요.
(웃음)
저희는 여기서 더 나아가
아이들에게 온오프 버튼이 있는 이런 작은 스티커를 줍니다.
그리고 아이들에게 말하죠. "오늘 여러분은 마법이 있어서
이 방에 있는 어떤 것이든 컴퓨터로 만들 수 있어요."
그럼 아이들은 이러죠.
"아주 어려울 것 같아요, 맞는 답을 모르겠어요."
하지만 저는 이렇게 말하죠.
"걱정마세요, 여러분 부모님도 답을 몰라요.
부모님들도 사물 인터넷 이라는 것을
이제야 들어 보셨거든요.
하지만 여러분 어린이들은
모든 것이 컴퓨터가 되는 세상에 살게 될 거예요."
그 때 어린 소녀가 다가와서
자전거 램프를 가지고는
"이 자전거 램프가 컴퓨터라면
색깔이 바뀔 거예요" 라고 하더군요.
"아주 좋은 생각이네, 또 다른 건 뭐가 있을까?"라고 물었어요.
그럼 소녀는 생각하고 생각해서 말하죠.
"만약 자전거 램프가 컴퓨터라면
아빠랑 자전거 여행을 갈 수 있고
텐트에서 잠을 자고
이 자전거 램프는 영화 상영기가 될 수도 있어요."
바로 그게 제가 찾던 순간입니다.
아이들이 세상에 대해 깨닫게 되는 순간이죠.
세상이 아직 준비되지 않았고,
좀 더 준비된 세상을 만들 수 있는 가장 멋진 방법은
기술을 개발함으로써
우리 각자가 그 변화의 일부가 되는 거라는 사실이죠.
마지막으로 우리는 컴퓨터도 만들었어요.
우리는 대장 노릇하는 CPU와
기억을 돕는 유용한 RAM과 ROM을 공부했습니다.
우리는 컴퓨터를 조립한 다음에
응용프로그램도 설계했습니다.
제가 제일 좋아하는 얘기는 이 소년입니다.
여섯 살이고
세상에서 제일 좋아하는 것이 우주비행사가 되는 겁니다.
그 아이는 큰 헤드폰을 끼고
작은 종이 컴퓨터에 완전히 푹 빠져있습니다.
왜냐하면 그 아이가
자신만의 은하계 행성 항법 응용프로그램을 만들었거든요.
아이의 아빠는 화성 궤도의 유일한 우주비행사인데
방의 다른 편에 있습니다.
그리고 아이의 중요한 임무는
아빠를 지구로 안전하게 귀환하게 하는 겁니다.
이 아이들은 이 세상, 그리고 기술을 통해 세상을 만들어가는 방법에
전혀 다른 관점을 갖게 될 겁니다.
결국, 이해하기 쉬울수록 더욱 일반적인 것이 되고,
기술로 세상이 더 다양해 질수록,
더욱 다채롭고 더 나은 세상을 만나게 되겠죠.
저와 함께 잠시 상상해 보세요.
새로운 것을 만들기 위한 대화가
실리콘 밸리의 20대들에게만 해당되는 게 아니라
케냐의 여학생들과 노르웨이의 사서들도 이야기 나누는 세상을 상상해 보세요.
미래의 어린 에이다 러브레이스가
1과 0으로 된 영원한 세상에서
기술을 낙관적이고 대담하게 대하며 자라는 세상을 상상해 보세요.
그들은 기술 세상이 갖는 힘과 기회,
그 세상의 한계까지도 포용합니다.
기술의 세상은 놀랍고 기묘하며
약간 이상합니다.
제가 어렸을 때
이야기 작가가 되고 싶었습니다.
저는 상상의 세상을 좋아했고
제가 가장 좋아했던 것은
무민이 사는 마을에서 아침 잠에서 일어나고,
낮에는 타투인 행성을 돌아 다니다가
저녁에는 나니아 왕국에서 잠을 청하는 상상이었습니다
프로그래밍이 저에게는 딱 맞는 직업이었던 거죠.
저는 아직도 세상을 만듭니다.
이야기 대신에 저는 코딩으로 합니다.
프로그래밍은 자체적인 규칙과 체계, 관행이 있는
저만의 작은 우주를 만드는 놀라운 힘을 줍니다.
순수한 논리의 힘으로 무에서 유를 창조하세요.
감사합니다.
(박수)