게임이 거기서 왜 나와?
제가 생각보다 프로그램 예시를 많이 보여드리지 않아서 의아하거나 실망하시는 분들이 있을 수도 있습니다. 그런데 사실 지금까지 만들어진 프로그램들이 중요하긴 합니다만, 결국은 시대의 변화 앞에 미묘한 차이점이 생기기 마련입니다. 그래서 우리는 늘 새로운 프로그램을 필요로 하죠.
오늘 여러분들하고 나눠볼 이야기는 '역설계'에 대한 이야기입니다. 영어로는 'reverse engineering'이라고 하죠. 보통은 그래서 '역공학'이라고 부릅니다. 저는 개인적으로는 'reverse design'이어도 괜찮다고 생각하지만 디자인 쪽에서도 똑같이 'reverse engineering'이라고 쓰더군요.
한 때 모든 사이버펑크 계열 영화들이 다루는 미래에는 '일본'이라는 키워드가 있었습니다. 그들은 미래 세계를 일본의 영향력이 작용할 것이라는 것을 의심치 않았죠. 물론 그 이유 중 하나는 일본 버블경제 시대의 엄청난 자금력에 의한 '홍보'도 한몫을 했지만요.
오늘날 일본이 기술산업에서 갖는 위치는 예전 같지 않습니다. 하지만 조금이라도 나이가 있는 분들이라면 한 때 모든 세계가 일본을 기술의 첨단이라고 여기던 시대가 있었다는 것을 알고 있을 겁니다. 전 세계의 가전제품은 일본의 기술력을 부러워했죠. 물론 여전히 일본의 기술력이 앞서는 곳도 존재합니다만, 우리가 알던 '기술대국 일본'은 그 위상을 잃었습니다. 그럼에도 불구하고 아직도 소니의 '워크맨'을 기억하는 사람들이 있을 겁니다. 과연 2차 세계대전 패전국이었던 일본은 어떻게 기술 강국이 되었던 것일까요?
수많은 분석들이 제시했던 것처럼, 핵심은 '역설계'에 있었습니다.
한 때 유명했던 격언 중 하나가 있었죠. '모방은 창조의 어머니'. 아리스토텔레스의 이야기로 전해져 내려오는 이 말은 예술과 창작의 세계에서 그 힘을 키웠지만 정작 꽃 피운 곳은 기술산업이었습니다. 일본 기업들이 자랑스럽게 전해오는 기술 신화의 기원은 앞선 제품들을 가져와서 뜯어보고 연구하며 비슷한 제품을 만들고, 나아가서는 그보다 더 좋은 제품을 만들어냈다는 이야기죠. 모든 기업이 그랬던 것은 아닐 수 있습니다만, 그러한 부분이 뒷받침되었다는 것은 사실로 보입니다. 결국 기술을 모방하고 그 위에 무언가를 덧붙여서 창조해냈다는 것이죠. 그리고 나중에는 오히려 그 모방의 대상이 되었으니 자부심이 있을 만도 합니다.
위에 말씀드린 일본의 사례와는 또 다른 의미로 중국은 누구나 알고 있는 '모방의 대국'입니다. 예전만큼 'made in china'에 대한 거부감이 심하지는 않지만 여전히 세계의 많은 물품들이 중국에서 생산되고 동시에 모방되고 있습니다. 근 몇 년 사이에는 '대륙의 실수'라는 말이 유행하면서 중국 제품 중에서도 가성비가 좋은 제품들이 각광받기도 합니다.
위의 내용에서 핵심은 '가성비가 좋은 제품'이 각광받는다는 점입니다. 우리는 중국산 제품들에 대해서 조금 더 모험을 해볼 용의가 생겼지만 '고관여제품'들에 대해서는 여전히 의심하고 있다는 것이죠. 즉, 중국의 기술이 세계를 선도한다고 여기고 있지는 않다는 것입니다.
저 개인적으로도 코드리스 이어폰이라든가 몇몇 가전제품 중에서 중국산 제품을 꽤나 많이 쓰고 있습니다. 심지어 나름 고관여제품인 노트북도 중국 제품을 사용하기도 하죠. 그렇지만 여전히 중국이 기술적으로 앞서있다고 생각하지 않습니다. 노트북 같은 경우도 중국의 회사는 '제조사'일뿐이지 그 안에 들어간 핵심 기술들은 여전히 인텔과 AMD, 엔비디아 등의 회사들과 삼성, TSMC와 같은 회사들이 큰 부분을 담당하고 있는 것이죠.
중국 역시 타 회사의 제품을 카피하기 위해서는 기본적으로 '역설계'를 거칩니다. 제품을 뜯어서 구조를 살피고 그걸 카피해서 저렴한 인건비와 저렴한 재료를 사용해서 가격을 낮추는 방식을 많이 활용하곤 하죠. 그럼 이러한 역설계에서 '일본'이 택했던 방식과 '중국'이 택했던 방식의 차이는 뭘까요? 그게 역설계의 핵심입니다. 역설계는 단순한 카피를 위한 과정이 아니라는 것이죠.
인문학 교육과 게임 이야기에서 갑작스레 경영과 기술에 관한 이야기로 넘어온 것 같아서 좀 뜬금없다는 생각이 드실 수 있습니다. 하지만 언제나 그렇듯 연결되는 부분이 있어서 말씀드리는 것이죠.
초반에 말씀드렸듯이 우리는 항상 새로운 프로그램을 필요로 합니다. 예전에는 그래도 시대의 변화가 조금은 느린 편이라 한번 개발된 프로그램이 오래도록 쓰이는 경우가 많았지만 지금은 최신의 기준이 2년을 넘지 않습니다. 예전에는 자동차를 한 번 사면 20년씩 타는 게 당연했지만 지금은 5년만 타도 오래 탔다는 생각을 하는 경우가 많죠. 시대의 변화는 그에 발맞춘 프로그램을 원합니다.
그러한 프로그램을 우리가 처음부터 설계를 한다면 우리는 그 속도를 따라잡을 수 없을 겁니다. 그래서 우리는 언제나 그 이전에 있던 프로그램이나 콘텐츠들을 참조해서 새로운 것을 만들어냅니다. 그리고 여기서 그러한 모방에 대한 가치가 갈립니다. 단순 모방에 그칠 것인지 아니면 새로운 것을 창조하는 역설계인지 말이죠.
지금 현재 운영되는 대부분의 교육 프로그램들을 몇 가지로 나눠 볼 수 있습니다.
첫 번째는 모방형 프로그램입니다. 정확히는 위에 예시로 말씀드린 중국식 모방 모델에 가깝죠. 기존에 있던 프로그램을 뜯어서 그 구조 위에 새로운 '커버'를 씌워서 사용하는 겁니다. 실제로 내용은 거의 바뀌지 않지만 사람이 바뀌거나 소재가 약간 바뀌는 것만으로 그 프로그램을 그냥 사용하고 있습니다. 물론 잘 만든 프로그램들은 처음부터 그 구조가 잘 설계되어 있기 때문에 그것만으로도 충분히 탄탄해 보입니다. 마치 90년대 우리나라 자동차들이 독일의 자동차 구조를 들고 와서 외장만 바꿨던 것처럼 말이죠. 그러한 프로그램들은 '최소한 기본'을 보장해 줍니다. '좋은 프로그램'을 모방했다는 가정 하에서 말이죠.
두 번째는 기술 전도형 단순 체험 프로그램입니다. 세상이 발전하면서 신기술이 많이 생겼죠. 제가 자꾸 거론하는 4차 산업 역시 마찬가지입니다. 새로운 기술들이죠. 그런데 이런 새로운 기술이 나오면 주객이 전도된 프로그램들이 많이 나옵니다. 이러한 신기술들은 기술 자체가 목적이 되기보다 어떠한 목적을 이룰 때 '더 효율적이고 더 효과적으로' 이룰 수 있게 개발된 경우가 많습니다. 카메라가 발달하는 건 결국 사진을 '더 효율적이고 더 효과적으로' 찍기 위함이지 카메라 기술 자체가 목적의 끝이 아니라는 이야기죠.
그럼에도 신기술은 눈을 가리는 측면이 강해서 대부분의 교육정책이 겉으로는 단순 체험을 지양한다고 하면서 내부적으로 단순 체험을 원합니다. 가장 큰 이유는 가격적인 측면과 결과물을 필요로 하는 학교의 성과시스템, 그리고 새로운 것을 요구하는 행정 작업이 작용한다고 볼 수 있죠. 그래서 대부분의 학교에서 채택하는 프로그램들은 '기술 전도형 단순 체험 프로그램'이 많습니다.
세 번째로 목적 전도형 단순 체험 프로그램입니다. 간단하게 말씀드리면 요리 프로그램을 진행했을 때, 요리 만드는 행위 자체나 요리를 먹게 되는 즐거움은 당연히 발생합니다. 그런데 프로그램의 목적이 거기에 있다면 그건 단순 체험 프로그램이지 교육형 프로그램이라고 볼 수 없다는 이야기죠. 꽤 오랫동안 방과 후 학습의 대부분은 이러한 체험 프로그램 위주로 이뤄지고 있습니다. 애초에 목적 자체가 '즐거우면 그만'이라든가 '흥미 유발' 같은 거였다면 크게 상관없는데, 적어도 목적 상에는 그보다 훨씬 거창하게 써져 있음에도 그렇게 설계되어 있다는 것이 문제겠죠.
네 번째가 우리가 보통 창의적 프로그램이라고 부르는 것들입니다. 그리고 그 창의성의 대부분은 기존 프로그램들에서 구조를 참조하여 새로운 것을 만들어내는 형태로 되어 있습니다.
첫 번째 프로그램과 네 번째 프로그램의 차이는 뭘까요?
제가 정확히 설명해 드리기는 어렵지만 예시를 들어드리는 것은 가능할 것 같습니다.
역설계에는 2가지 의미가 있습니다. 완성된 제품을 뜯어서 구조와 원리를 살피는 역설계가 보통 우리가 알고 있는 역설계라고 볼 수 있습니다. 그리고 또 한 가지 역설계는 최근 교육부에서도 주목하고 있는 '빅 아이디어론'에서 나오는 것처럼 설계 과정과 방식을 뒤집은 역설계입니다.
기본적인 역설계에서 구조를 '카피'하는 것은 일시적인 의미뿐입니다. 핵심은 '왜 그런 구조를 사용했는가'에 대한 원리를 추출해내는 것에 있습니다. 그러한 접근 방식에 대한 이해가 있다면 우리는 얼마든지 그 구조를 개선해서 사용할 수 있습니다. 또한 오래된 프로그램에서 현재 필요 없는 구조를 들어내는 일도 충분히 가능합니다. 수많은 허례허식들이 이제 와서 의미가 없어진 부분들을 간소화 해가는 것처럼 말이죠. 목적을 명확히 알고 있다면 프로그램을 수정해서 '더 효율적이고 더 목적에 맞게' 만드는 것이 가능해집니다. 그리고 역설계를 통해서 타인들이 그 설계를 통해서 어떤 목적을 달성하려고 했는지를 살피는 것이죠.
그리고 그것을 통해서 달성하려던 목적을 알아냈을 때 그다음 과정은 그 목적에 맞게 설계를 하는 것인데, 여기서 위에서 설명한 두 번째 역설계가 나옵니다. 애초에 역설계를 떼어내서 협의의 의미로 쓰고 있지만 두 가지 역설계는 닿아있는 부분이 있다는 것이죠.
아마 '인문학을 뭘로 가르친다고?'의 1편에서인가 제가 PBL과 GBS를 언급한 적이 있을 겁니다. 그리고 최근에는 MDA프레임워크를 이야기하면서 다시 비슷한 이야기를 반복했죠. 우리는 어떠한 구조를 설계할 때 어디를 기준으로 설계를 시작할 것인가의 문제를 가지고 있습니다. 경영학에서는 PLAN - DO - SEE라는 구조를 자주 사용하기도 합니다. 무언가를 계획하고 실행하고 결과를 보고 다시 피드백을 하는 형태로 반복되는 구조죠. 아주 일반적인 설계과정입니다.
그런데 역설계는 결과에서부터 설계합니다.
어떠한 결과가 나올 것을 설계를 통해서 구조로 가져오는 것이죠. 이게 말로 하니까 잘 이해가 안 갈 수 있지만 실제로는 간단합니다. 방금 위에서 언급한 GBS가 그 대표적인 예죠. 'Goal Based Scenario'라는 것 자체가 목적 중심의 설계입니다. 우리는 어떠한 정확한 결과를 상정하고 거기서 역으로 프로그램에 연결해 가는 것이죠.
어떻게 봤을 때는 모든 설계가 '결과'를 예측 및 상정을 하고 있으며, 그러한 결과가 나오도록 설계하는데 도대체 차이가 뭔가요? 그건 '중심'의 차이입니다. 설계가 중심인지 아니면 목적이 중심인지에 대한 문제인 거죠. 위에서 예시로 들었던 '빅아이디어 론'이 교육의 공통된 기저 목적을 중심으로 각 분야의 설계가 연결되도록 하는 것처럼 말입니다.
이렇게 설명해 볼 수도 있습니다. 프로그래밍을 하시는 분들은 '객체지향 프로그래밍'이라는 말을 알고 계실 겁니다. 그런데 막상 객체지향 프로그래밍에 대해서 이해를 해보면 '어? 이게 보통의 생각하는 방식과 별 차이가 있나?'라고 생각할 수도 있습니다. 그럼에도 불구하고 그것을 '객체지향 프로그래밍'이라고 부르는 이유와 비슷한 겁니다. 그리고 심지어 이 '객체지향 프로그래밍'역시 역설계의 범위와 닿아있죠.
좀 더 간단하게 설명해볼까요?
요리를 만들 때 무엇에 기준을 두고 만드는 가를 생각해보시면 됩니다. 어떤 케이스는 지금 현재 주어진 재료와 시간 등을 고려해서 요리를 만들 수도 있습니다. 그런데 어떤 케이스는 요리에 대해서 목적하는 바를 두고 그에 맞춰서 최대한 재료와 시간을 배치하기도 합니다. 두 가지를 다 신경 쓸 수도 있지만 결국에는 둘 중에 '우선순위'가 발생한다는 이야기죠.
이러한 역설계가 중요한 이유는, 우리에게 교육에 사용할 만한 소재가 주어지면 우리는 그것을 목적과 억지로 연결시키는 경우가 많기 때문입니다. 목적에 필요한 소재와 구조가 아니라, 있는 소재와 자원들을 활용해서 목적을 달성하려고 하다 보면 목적이 미흡하거나 혹은 와전되는 경우가 많다는 이야기죠. 그리고 그러한 사례들이 위에 제시했던 프로그램 2번, 3번의 사례들입니다.
오늘 말씀드린 부분은 두 가지 정도로 정리해드릴 수 있습니다.
첫 번째는 완성된 프로그램에 대해서 역설계를 한다면, 그저 구조에 대한 카피가 아니라 그 구조를 만든 '목적'을 알아내고 그러한 원리를 개선해서 프로그램에 반영해야 한다는 이야기입니다. 그렇지 않으면 기존의 프로그램에 대한 '마이너 버전'에 불과할 것입니다. 포장지를 갈았다고 바뀌는 건 아니니까요.
두 번째는 경우에 따라서 다르지만 적어도 교육에서는 목적지향적 설계가 필요한 경우가 많다는 이야기입니다. 그리고 그걸 위해서 목적에서부터 역설계를 하는 방식을 이야기해야 할 필요가 있습니다. 그리고 그걸 위한 MDA 프레임워크였다는 거죠. 교육 대상이 느끼게 될 '에쎄 틱'으로부터 '다이내믹'을 추출하고 그걸 위한 '메커니즘'을 설계하는 거니까요. 그래서 게임을 디자인하는 과정이 교육을 설계하는 과정과 닮아있고, 그걸 활용한다면 우리는 원하는 프로그램을 설계할 수 있다는 말씀을 드리고 싶었습니다.
또한 그런 이유로 기존의 프로그램들을 줄줄이 가져다가 카피해서 쓰기보다 왜 그러한 프로그램이 그러한 룰과 방식을 쓰고 있으며, 그걸 통해서 어떠한 목적을 달성하는지를 역설계를 통해서 추출하고 새로운 프로그램을 만들어내는 것이 중요하다는 이야기죠.
이해를 돕고자 올린 글인데 오히려 복잡하게 한 것은 아닐까 하는 생각이 듭니다. 사실 제가 말씀드린 '역설계'나 '역공학'의 의미는 다른 분들과 차이가 존재할 수 있어서 그에 대한 의문점과 비판은 겸허히 받아들이도록 하겠습니다. 중요한 건 그 '역설계'라는 단어가 아니라 그걸로 전달하고자 하는 의미에 있는 거라서 잘 전달되었을지 고민해봅니다.
개인적으로는 교육분야가 너무 '개발자'에 대한 인식이 약하다고 생각합니다. 개발자와 '기술자'의 경계를 구분하지 못하기 때문이겠죠. 교육의 구조와 설계를 개발하는 일을 교육하는 사람들의 '무급노동' 쯤으로 생각하는 관례가 바뀌지 않는 한 교육의 수준은 점점 낮아질 수밖에 없을 겁니다.
@ 게인
커넥티드 인사이드에서는
4차 산업, 콘텐츠, 인문학 그리고 교육에 관해서
가볍거나 무겁거나
다양한 방식으로 서로 연결된
여러 가지 이야기들을 다뤄보고자 합니다.
#커넥티드인사이드 #게인 #인문학 #게이미피케이션 #교육 #역설계 #역공학 #MDA #디자인 #빅아이디어 #창의성