Tangible Code의 핵심 개념
‘Tangible Code’는 코드를 추상적 개념이 아닌, 직접 경험할 수 있는 대상으로 만듭니다. 이는 코드를 시각적으로 표시하고, 물리적 센서를 통해 상호작용하며, 코드 변경 시 즉각적인 시각적 피드백을 제공하는 세 가지 원칙을 기반으로 합니다. 이 접근 방식은 프로그래밍을 정신적 활동에서 신체적 활동으로 전환하여, 깊은 이해를 돕는 것을 목표로 합니다.
‘Ruby Everywhere’ 아키텍처와 구현
프로젝트는 모든 스택에 Ruby를 사용하는 ‘Ruby Everywhere’ 전략을 채택했습니다. 물리 센서 데이터는 Raspberry Pi Pico에서 PicoRuby를 통해 처리되고, UART 시리얼 통신으로 메인 시스템의 Ruby 애플리케이션에 전달됩니다. 메인 시스템에서는 processing gem을 활용하여 실시간으로 시각적 결과물을 생성합니다.
[ 물리 센서 ] → [ PicoRuby (Raspberry Pi Pico) ] → [ Ruby + processing gem ] → [ 실시간 시각화 ]
이 아키텍처는 언어 간 컨텍스트 전환을 없애고 학습 몰입도를 높이며, Ruby가 하드웨어 제어부터 시각적 표현까지 전 과정을 아우르는 다리 역할을 합니다. PicoRuby와 processing gem을 활용한 코드 예시들은 임베디드 환경과 시각화 영역 모두에서 Ruby의 친숙함과 효율성을 보여줍니다.
교육적 시사점 및 확장 가능성
전시회 결과, 방문객들은 코드보다 메커니즘에 호기심을 보였고, 물리적 상호작용이 ‘실패’에 대한 두려움을 낮췄습니다. 단순한 코드로 큰 시각적 효과를 내는 것이 탐색을 장려했습니다. 이는 ‘Tangible Code’가 전통적 교육 도구보다 ‘경험’으로서 효과적임을 시사하며, 학습 중심의 재설계로 이어졌습니다. 또한, ruby.wasm을 통해 웹 브라우저에서도 이 아이디어를 구현, 더 넓은 접근성을 확보할 가능성을 탐색하고 있습니다.