brunch

You can make anything
by writing

C.S.Lewis

by 영춘 Feb 18. 2022

개백취 | 쓸모없음의 쓸모

Unleash your creativity with code!


이번 글에서는 소프트웨어 엔지니어 여러분이 평소에 작성하지 않았을 만한 코드를 소개합니다. “쓸모없음”과 “쓸모있음”의 정의를 다시 생각해보고 여러분 책상 위에 고무 오리 하나쯤은 놓아두어도 괜찮다고 말하고 싶습니다.


무문관 THE GATELESS GATE

“쓸모없음의 쓸모”라는 이 글의 모순적인 제목을 지을 때 선불교 고전 “무문관”에서 영감을 받았습니다. The Gateless Barrier 혹은 The Gateless Gate라고 번역하는 무문관은 말 그대로 “문이 없는 관문”으로 선뜻 이해하기 어려운 제목입니다. 실제로 이 책에 실려있는 건, 선불교의 “공안 Koan”이란 것들로 보통의 논리로는 알 수 없는 수수께끼 같은 일화들입니다. 저야 알 수는 없지만 이런 “공안”, 선문답을 통해 수행자가 선불교의 참뜻을 이해하고 있는지 가려낼 수 있다고 하니 “공안”은 새로운 시각에서 현실을 바라볼 수 있게 해주는 일종의 도구라 할 수 있습니다.


흥미롭게도 선대의 소프트웨어 엔지니어들은 선불교와 도교에서 영감을 받아 여러 2차 창작을 했습니다. Python 언어 사용자라면 접해봤을 만한 “Python의 선”​ 그리고 좀 더 오래된 저작으로 “프로그래밍의 도”​가 있습니다


“무문관”의 이름을 본떠 만든 “코드 없는 코드 Codeless Code”​에는 소프트웨어 엔지니어들의 공감을 살만한 공안들이 실려있습니다. 그 중, 제가 재밌게 봤던 158번째 일화​를 소개하겠습니다.

이 일화를 읽고 나서 무엇을 얻으셨습니까? 소프트웨어 엔지니어가 아니라면, 혹은 Caching의 개념을 모르는 엔지니어라면 무슨 이야기를 하는지 어리둥절할 겁니다. 하지만 Caching을 알고 있는 엔지니어라면 이 짧은 일화에서 Caching의 위험성을 깨달을 수 있을 겁니다.


이 일화를 읽고 나서 무엇을 얻으셨습니까? 소프트웨어 엔지니어가 아니라면, 혹은 Caching의 개념을 모르는 엔지니어라면 무슨 이야기를 하는지 어리둥절할 겁니다. 하지만 Caching을 알고 있는 엔지니어라면 이 짧은 일화에서 Caching의 위험성을 깨달을 수 있을 겁니다.


여기서 쓰임새라고 가정한 건 새로움, 유용함, 발전 등의 단어로 말할 수 있는 현대사회 그리고 경제 논리 아래에서의 쓰임새입니다. 결국 여기서 말하고자 하는 건, “책상 위에 장식품을 둡시다” 나아가 “쓸모없는 코드를 작성합시다”라고 할 수 있습니다.


예술 짝패 ARTIST DUOS

그럼 이제 쓸모없는 코드는 어떤 모습인지 알아보겠습니다.

때는 2012년 초, 대학원 입학과 대학교 졸업을 앞둔 붕 뜬 시간 컴퓨터동아리 선배로부터 하나의 제안을 들었습니다. “예술을 하는 친척 형님이 있는데 프로그래머가 필요하대, 관심 있어?” 라고 말이죠. 달리 할 일도 없던 시기였고 예술을 동경하는 마음도 있어 흔쾌히 제안을 수락했습니다. 그때 인천 차이나타운에 위치한 아트 레지던시를 오가며 문준용 작가와 작업을 했습니다. 영상 프로젝션과 3차원 공간 인식의 결합으로 이뤄진 작품이었는데 관객의 신체를 인식하고 해당 신체 주위로 생명체 같은 걸 투영하는 작품이었습니다. 인식된 공간과 렌더링을 위한 공간을 정렬시키는 게 어려웠다는 기억이 있는데 어쨌든 이 경험을 통해 기술을 활용한 예술작품이 어떻게 만들어지는지 가까이서 지켜볼 수 있었습니다.


그 후, 두 명의 구성원으로 이뤄진 예술 짝패 둘을 알게 되었는데 이들의 작품을 소개해 보겠습니다.

https://www.kimchiandchips.com

먼저 “김치앤칩스” 입니다. 문준용 작가와 작업하던 중 다른 작가를 소개해주겠다 하여 작업실에 놀러 간 적이 있는데 그때 만난 작가가 “김치앤칩스”였습니다. 한국인과 영국인으로 구성된 팀으로 설치작품을 컴퓨터로 제어하며 “공간 속에 그려내는 그림”이라는 주제로 작품을 만들고 있습니다. 여기서 소개하는 2018년 작품 헤일로는 컴퓨터로 제어되는 99개의 거울과 미세하게 뿜어내는 물안개를 통해 헤일로, 곧 태양과 대기의 상호작용으로 빚어지는 현상을 모사합니다. 거울은 계속해서 태양을 바라보도록 조정되며 각 거울을 통해 반사되는 광선이 한데 모였을 때 원을 이루도록 조정됩니다. 작가가 말하길, 이 작품은 “손 닿지 않는 대상을 포착하기 위한 기술의 가능성과 한계”를 탐구하며 이 작품을 통해 태양을 지구로 가져 내려온다고 합니다. 기후의 자연스러운 변동과 함께, 바람-태양-안개 그리고 기술이 조화를 이룰 때만 헤일로가 나타납니다.

http://ssbkyh.com

두 번째 짝패는 “신승백김용훈” 입니다. 말 그대로 신승백 씨와 김용훈 씨로 구성된 팀으로 소프트웨어 기술을 활용한 작품들을 만듭니다. 사실 “김치앤칩스”의 경우 시각 예술가와 물리학 전공자의 만남으로 결성된 팀이고 “신승백김용훈”의 경우 소프트웨어 엔지니어와 디자이너가 만나 이룬 팀으로 각자 팀의 특성을 반영한다고 볼 수 있습니다. “신승백김용훈”은 인터넷 기사에서 처음 접했는데 구성원 중 소프트웨어 엔지니어가 있어 흥미롭다고 생각했습니다. 게다가 사용된 기술도 컴퓨터 비전 혹은 캡차 같은 친숙한 것들이라 쉽게 기억에 남았습니다. 클라우드 페이스라는 작품은 얼굴인식 알고리즘이 실수로 얼굴이라 판단한 구름의 형태들을 모아 구성한 작품입니다. 작가의 설명을 덧붙여 보겠습니다. “인간은 때로 구름에서 어떠한 형태들을 발견합니다. 이런 인식은 머신 비전에서도 일어나는데 얼굴인식 알고리즘 또한 얼굴이 없는 곳에서 얼굴을 발견합니다. 작품의 이미지는 인식 오류의 결과이지만 사람은 때때로 이 결과에서 얼굴을 상상해내고, 이 지점에서 기계의 오류와 인간의 상상이 만납니다”


여기서 프로그래밍이란 행위는 작업 시간을 단축하거나 정확도를 높이는 등 효율 향상 대신 예술적 개념을 현실로 불러오기 위해 사용되었습니다. 기능적으로는 불필요해도 예술적으로 쓸모있는 코드라고 할 수 있습니다.


탐험 시작 BEGINNING OF EXPLORATION

이번에는 제가 만들었던 것들을 소개하겠습니다.

첫 번째는 소프트웨어 작업 “시계-같은 Clock-like” 입니다. 컴퓨터의 작업과 인간의 작업이 차별성을 갖는 지점을 탐구해 본 사례인데 키워드를 꼽자면 “연산 Computation” 입니다. 시계의 경우, 정확성이 미덕이고 시간의 표현 또한 이산 Discrete 적입니다. 하지만 시간의 속성을 생각해보면 연속적이고 시작과 끝도 없습니다. 이런 시간의 속성을 더 잘 보여줄 수 있는 “시계-같은” 걸 만들었습니다.

먼저 GIMP라는 오픈소스 이미지 편집기로 0–24시의 시침을 그렸습니다. 그 후 공개 데이터 중 이미지 묶음을 하나 구했습니다.

이미지들과 시침 이미지를 픽셀 단위 Pixel-wise 로 비교하여 두 이미지 사이의 거리를 구합니다.

여러 이미지 중 시침 영역이 가장 밝게 도드라지는 이미지가 해당 시각을 대표하도록 합니다. 정시 사이의 시간은 인접한 두 이미지의 가중 합으로 표현합니다. 이제 시간은 시침과 분침 대신 명멸하는 이미지로 표현됩니다. 다시 “연산”이란 키워드로 돌아와 보면, 픽셀 단위로 이미지의 유사도를 구하는 일은 사람이 하기에 적합하지 않으며 이미지가 많을 경우 불가능에 가깝습니다. 이 부분이 컴퓨터-인간의 차이를 떠올리게 하는 지점이 됩니다.

“시계-같은”을 완성한 모습입니다. 시간을 빠르게 돌리면서 이미지가 어떻게 변하는지 나타낸 것으로 밝게 빛나는 영역을 통해 어렴풋하게 시간을 인식할 수 있습니다. 소스 코드는 아래 링크에서 확인하실 수 있습니다. 여러분 자신만의 이미지 묶음을 준비해 또 다른 “시계-같은”을 만들어 보실 수 있습니다.

https://github.com/tathata-art/tathata-experiments/tree/main/clock-like

두 번째 작업은 하드웨어를 포함한 작업으로 제목은 “미생물 Microbe” 입니다. 관련 키워드는 Conceptual, Tangible, Speculative 입니다. 앞선 연재물에서 말씀드렸듯이 SF는 과학 소설 Science Fiction의 줄임말이지만 요샌 더 넒은 범주의 상상을 포괄하여 사변 소설 Speculative Fiction 을 칭하기도 합니다. 이처럼 미래를 상상해봤을 때 생명의 형태는 다양한 모습을 가질 텐데 현재와 같은 유기 생명에 국한되지는 않을 겁니다.

로직 혹은 알고리듬에 기반한 인공생명을 생각해본다면 생명의 복잡도는 해당 생명의 구조와 동작을 기술하는 알고리듬의 복잡도라 볼 수 있습니다. 여기 지금의 생물학에서 세포와 유전체의 복잡함을 고려하는 것처럼 말입니다. 훗날 인공생명의 관점에서 미생물을 생각한다면 무엇이 될까요? 이 물음에 대한 대답으로 저는 “콘웨이의 생명 게임 game of life”​ 을 생각했습니다. 2차원 그리드 위에서 각각의 픽셀은 주변 환경과 상호작용하며 다음 세대의 모습을 결정합니다.

Python 코드로 작성한 생명 게임의 상태 변화 로직
사용한 재료들

이 질문과 대답을 표현하기 위해 어떤 매체를 사용할지 고민했습니다. 감상자에게 아이디어를 쉽게 전달하기 위해 이미 존재하는 상징을 활용하기로 했고 현미경을 은유의 대상으로 정했습니다. TinkerCad로 현미경 베이스가 될 3D 모델을 만들었습니다. 재물대 위치엔 생명 게임의 유명한 패턴인 글라이더 패턴을 그려 넣었습니다. 접안부를 흉내 내기 위해 플라스틱 루페를 주문해 붙였습니다. 중간 부분엔 육면체의 빈 공간이 있는데 m5stick 제품이 들어갈 공간입니다. 이는 마이크로컨트롤러와 디스플레이가 같이 있는 장치로 마이크로파이썬을 이용해 쉽게 프로그래밍 할 수 있습니다. 이제 감상자는 현미경을 닮은 조형물을 통해 스크린을 들여다봅니다. 스크린에는 무작위로 초기화된 후 생명 게임 규칙에 따라 99세대 동안 바뀌어 가는 패턴이 표시됩니다.


예술적 재활 ARTISTIC REHABILITATION

소프트웨어 작품을 만들면서 작업 기록을 남겨둘 곳이 있으면 좋겠다고 생각했습니다. 이런 용도와 더불어, 이번 글의 주제를 확장하여 예술적 재활을 다루는 모임으로 Tathata Art Group (https://tathata.art​) 을 만들었습니다. 모임의 주제는 “지금 여기에서 행할 수 있는 예술, 예술적 감수성의 회복” 입니다. 아직 구성원은 저 혼자입니다. 비단 기술을 사용하지 않더라도 일상 속으로 예술 활동을 불러올 수 있습니다. 이런 목적으로 떠올린 첫 번째 활동은 “종이접기 얼리기 Frozen Origami” 입니다. 참여자들은 모여 종이접기를 하나씩 만듭니다. 이를 통해 잊고 있던, 손으로 만드는 즐거움을 느껴봅니다. 이후 크리스털 레진 속에 종이접기를 넣어 경화시킵니다. 이는 종이접기를 일종의 조형물로 탈바꿈시키는 과정으로, 망가지기 쉬운 연약한 종이접기에 영속성을 부여합니다. 또한 이처럼 손쉬운 작업만으로도 두고두고 즐길 수 있는 장식품을 만들 수 있음을 보여줍니다.

“종이접기 얼리기" 작업 과정 보기

“종이접기 얼리기" 결과물 보기


글을 마치기 전에 변명 아닌 변명으로 엔지니어에게도 “창의성”이 중요하다는 걸 강조하고 싶습니다.

https://phys.org/news/2020-07-creativity-key-arts-science.html

Research confirms creativity is key for both arts and science.
In 2020, the World Economic Forum identified creativity to be as important as artificial intelligence in the jobs of the future.

창의성은 예술뿐만 아니라 과학에서도 중요한 역할을 합니다. 2020년 세계경제포럼에서 말하길, 미래의 직업을 생각했을 때 창의성이 인공지능 못지않게 중요한 역할을 할 것이라고 합니다.

https://www.theatlantic.com/education/archive/2014/11/the-creative-scientist/382633/​

Scientists Are More Creative Than You Might Imagine
“The greatest scientists are artists as well,” as Albert Einstein said.

우리가 생각하는 것보다 과학자들은 창의적이며, 아인슈타인 왈, “위대한 과학자들은 또한 위대한 예술가이기도 하다” 랍니다.

소프트웨어 엔지니어 여러분! 메마른 감성을 다시 촉촉하게 해 줄, 쓸모없는 것들을 책상 위에 올려봅시다.

프로그래밍 언어는 일할 때만 사용할 수 있는 게 아닙니다. 자연어 Natural language 처럼, 생각을 표현하는 또 하나의 매체 Medium 입니다.

문제 해결이라는 관점에서 바라보면, 창의성을 키우는 것이 손해 보는 일은 아니지 않겠습니까?

아직도 “쓸모없음의 쓸모”라는 제목이 이상하게 들리시나요? 저의 “공안”, 이 글을 통해 코드를 바라보는 시각이 약간이라도 달라졌길 바라며 마무리하겠습니다. 감사합니다.


매거진의 이전글 개백취 | 하드웨어 프로토타이핑
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari