이전 장에서 인터페이스를 매개(mediation)의 일반적인 모드라 설명했었다. 스크린과 표면에서 쉽게 눈에 띄지만 인터페이스는 궁극적으로 화면 너머의 무엇인가라 할 수 있다. 인터페이스는 디지털 기기의 표면, 즉 만지고 싶은 살갗(skin)과 피상적 관계만 있을 뿐 그것들과 다르다. 오히려 인터페이스는 모든 수준에 분명하게 드러나는 일반적인 매개 기술이며 애초 ‘수준(level)’ 또는 ‘레이어’라는 용어로 사물을 파악하는 사고방식을 용이하게 만든다. 이러한 층위나 수준과 수많은 인터페이스는 그것이 무엇인지 설명하기 위한 게 아니라 사회 분야 자체가 거대한 인터페이스라는, 즉 주체와 세계 / 표면과 근원 / 비판과 비판대상 사이의 인터페이스를 구성하고 있음을 보여주기 위한 분석 대상이라 할 수 있다. 따라서 인터페이스는 정보화 시대에 문화에 대한 관점을 얻는 데 도움을 주는 알레고리적 장치라 할 수 있다. 이러한 이유로 우리는 이제 화면 아래 ‘더 깊은’ 소프트웨어 영역을 살펴보며 이에 숨겨진 전자적 왕국의 가능한 이념적 구성에 주목하고자 한다.
뉴미디어와 이를 구동하는 소프트웨어는 항상 이데올로기와 밀접한 관계를 유지해왔다. 누군가는 뉴미디어를 구시대적 이데올로기의 안개를 걷어내는 해방의 검으로 보는 반면, 다른 이들은 뉴미디어를 우리 삶 구석구석에 스며든 또 다른 통제 장치로 간주한다. 이러한 이유로 “소프트웨어는 이데올로기에 대한 기능적 아날로그(유사물)”라는 웬디 희경 전의 흥미로운 에세이 「소프트웨어 또는 시각적 지식의 지속에 대하여」를 중심으로 이 장을 구성하고자 한다. 이 주장에 포함된 두 가지 순간, 즉 “아날로그(유사물)”와 “기능적functional”이 본 장을 구성하는 주요 길라잡이가 될 것입니다. 웬디 전의 주장은 짧지만 소프트웨어와 이데올로기의 이론과 역사, 기능성의 문제, 그리고 어떤 것이 다른 것에 대한 아날로그(유사물)이 수 있는 방식에 대해 풍부한 논의를 이끌어냅니다. 또한 이 마지막 문제인 아날로그는 해석 과정과 문화적 대상이 알레고리와 같은 형상화 방식을 어떻게 전개하는지에 대한 탐구에 적합하다(이는 이 장의 마지막에 다룰 것이다). ‘기능성functional’에 대한 질문은 이 장의 후반부에 다루겠지만 지금 정의할 가치가 있다. 말하자면, 컴퓨터 과학에서 기능(function, 함수)은 서브루틴이나 고립된 코드 블록을 의미하지만, 수학에서 기능 또는 함수(function)는 일련의 입력을 일련의 출력으로 변환할 수 있는 모든 표현 개체를 의미한다는 점에서 용어를 채택했다. 웬디 전에서 차용한 첫 번째 주장 중 하나는 이데올로기의 구조와 소프트웨어의 구조 사이의 형식적 유사성이라 부를 수 있는 유사성이 존재한다는 점이다. 편리하게도 그러한 주장을 하고 싶은 욕구는 소프트웨어 자체의 품질에 포함될 수 있다. 즉 이는 시뮬레이션 기술이기에 다양한 방식으로 “형태를 취할 수 있는” 능력을 핵심적 자산으로 갖고 있다는 것이다. 즉, 소프트웨어는 정의상 형식적(기호적 또는 수학적 추상 그리고 논리적 코드)이므로 구조적 비교에 잘 적응하며, 그에 사촌격이라 할 수 있는 시각적 이미지나 언어적 내러티브보다도 더 잘 적응된다고까지 말할 수 있을 것이다. 이러한 유사성이나 “표현적” 이데올로기 이론은 친숙한 개념으로, 알튀세르의 작업에서 확인할 수 있듯 이데올로기의 구조는 대개 집의 도면을 떠올려 볼 법 하다. 사회의 물질적 기반은 구조의 하부에, 문화적이거나 상부구조적인 것은 구조의 상부에 위치한다는 식이 그것이다. 그런 점에서 이데올로기는 엄밀히 말해 집 그 자체가 아니라 하나의 층을 다른 층으로 비유적으로 투영한 것으로 나타난다. 따라서 이데올로기는 마르크스주의자들이 단순히 역사라 부르는 것, 또는 거칠게 말해 사회적 관계와 과정의 지속적 물화(reification), 더 나아가 과거로부터 현재에 이르는 이와 같은 세부 사항을 현재에 재현할 수 있는 문제를 대표하는 것이다. “이데올로기”는 이런 식으로 작동하는 사물에 사용될 수 있는 이름들 중 하나다.
이러한 시스템에는 빈틈이 많다. 그리고 이러한 빈틈들을 가로질러 강렬한 모방더미가 뒤엉켜 등장한다. 그것은 개인과 그들의 실질적 조건 사이를 가로지르는 투영으로서의 이데올로기, 기계와 그들의 논리적 시뮬레이션 간격을 메우는 모방 기술로서의 소프트웨어, 그리고 소프트웨어가 이데올로기의 연속적으로 가변적인 사본(즉 아날로그)이 될 수 있다는 웬디 전의 놀라운 주장 같은 것들이라 할 수 있다.
이론적 담론에서 이데올로기와 그 자체의 개념화가 상충되는 것처럼 보이는 것은 잠시 무시하고 이데올로기의 고전적 이론을 재검토하는 것으로 논의를 시작하는 게 논리적일 것이다. 이데올로기의 힘이라는 것이 존재한다고 조금이라도 인정한다는 선에서, 그것이 총체성 또는 “부드러운” 사고 체계를 겨냥해 담론 자체에 높은 수준의 제약을 가하는 것이기 때문이다. 이데올로기는 항상 두 가지를 동시에 추구한다. 먼저 이데올로기는 삶과 문화의 문제이며 (알튀세르의 정의에 따르면) 개인이 살아온 사회적 관계의 표상, 재현에 대한 것이다. 두 번째로는 이데올로기는 암묵적으로 비판의 문제이기도 하다. 프레드릭 제임슨이 자본주의에 대해 한때 말했듯 단순히 ‘이데올로기’라는 단어를 언급하는 것만으로 자본주의에 대한 경멸을 나타내는 것처럼 보이는 것이 그 이유다. 이 주체 담론에 대한 첫 번째 모티프인 과학적 사고는 이데올로기가 항상 다른 사고 형식과 구별되어 설정된다는 것을 암시한다. 그런데 이 이데올로기라는 개념의 역사는 다소 독특한 길을 걷는다. 1790년대에 이데올로기라는 용어를 만든 앙투안 데스튀트 드 트라시(Destutt de Tracy)는 철학과 형이상학에 대한 해독제로서 자신의 새로운 이데올로기 과학을 옹호한 반면(나폴레옹에 의해 ‘인간의 마음에 대한 지식’과 ‘역사의 교훈’에 대한 관심이 적다며 비판당한 것은 유명하다), 이와 대조적으로 알튀세르는 마르크스주의 비판은 과학적인 것으로, 이데올로기는 명확한 사고에 대한 위협으로 궤변적이고 모순적인 서술로 뒤집는 게 그것이다.
과학적 내러티브에 버금가는 것은 정치적 실패에 관한 내러티브다. 여기서 이데올로기는 원죄 교리나 위대한 신학적 논증처럼 사회의 갖은 소외, 착취, 허위 의식(false consciousness)같은 개념을 통해 현세가 내세보다 열등한 이유에 대해 인류학적 ‘설명’의 일종으로 작용한다. 이것은 본질적으로 그람시 등에서 분명하게 드러난다. 이데올로기의 전략적 이론은 혁명이 언제든 도래할 수 있는 모든 현실적 현상이 갖추어져 있다는 인식에도 불구하고 혁명이 존재하지 않는다는 이론적 증거로도 작용한다.(이와 같은 정치적 메시아주의는 자크 데리다의 『마르크스의 유령들』에서 상당히 설득력 있게 다루고 있다.)
궁극적으로 이 두 가지 내러티브는 이데올로기가 인간 주체와 같이 사물을 결정할 수도 있고 결정하지 않을 수도 있는 총체적 사고 체계로 이해되는 이데올로기 결정론의 세 번째 내러티브로 종합된다. 여기에는 프랑크푸르트 학파, 즉 다시 알튀세르의 작업이 포함될 수 있는데, 핵심은 인간 신체와 정신의 산업화이며 이는 더욱 은밀한 방식으로 효율화(efficiency)와 도구화 방법론으로 이루어진다. 이와 마찬가지로 우리는 마르크스와 엥겔스로, 특히 「공산당 선언」 구절에서 발췌한 이른바 ‘지배 이데올로기 논제’와 「독일 관념론」의 의식 결정에 대한 특정 언급들로 돌아갈 수 있다.
마르크스의 이데올로기 이론은 그 결정론으로 오랫동안 비판의 대상이 되었다. 그러나 이데올로기 이론은 20세기 후반에 들어 그것이 일방통행적 작용이 아닌 문화 생산과 문화 소비의 교차점에서 확인할 수 있다는 종합적 내러티브 이론으로의 재구성을 통해 새로이 주목받게 되었다. 이러한 맥락에서 ‘이데올로기’라는 개념은 좀 더 변증법적 논리를 따른다. 가령 프레드릭 제임슨의 ‘물화와 유토피아’(『보이는 것의 날인』에 「대중문화에서 물화와 유토피아」나 『정치적 무의식』의 「유토피아와 이데올로기의 변증법」로 변형된 개념) 또는 스튜어트 홀의 ‘절합articulation’처럼 변증법적 논리를 따르거나, 또는 그보다 앞서 정치적 또는 문화적 지배는 항상 적극적인 협상과 생산의 결과라는 그람시의 헤게모니 개념과도 일치한다고 볼 수 있다.
이데올로기는 퍼즐처럼 풀리거나 질병처럼 치료할 수 있는 것이 아니다. 그렇다고 이런 이데올로기 이론의 다양성과 때론 상충되는 주제들을 근거로 이를 인지적 망상이나 사람들의 마음을 괴롭히는 허위 의식의 안개로 치부하는 것 역사 근시안적인 생각이라 할 수 있다. 대신 이데올로기에 대한 긍부정의 입장 보다는 이데올로기 그 자체를 문제적(problematic)이라 이해하는 것이 바람직할지 모른다. 즉 이론적 문제가 발생하고 그 자체가 문제로서 생성 및 유지되는 개념적 인터페이스로 바라보는 입장이 그것이다. 웬디 전이 말했듯, 소프트웨어 역시 주어진 사회적 및 기술적 객체가 아니라 문제적 인터페이스로, 즉 사회적-기술적 지위를 지속적으로 만들어가는 과정에 있는 것으로 이해해야 한다는 것이다.(이러한 의미에서 ‘문제’는 ‘인터페이스’의 동의어이며 그 자체로 ‘소프트웨어’의 대명사다.)
소프트웨어에 대한 대부분의 논의는 개념에 대한 많은 혼란과 어려움으로 처음부터 상당한 어려움을 겪게 된다. 첫 번째 어려움은 소프트웨어가 다양한 방식과 다양할 정도로 질적, 연속적 개념과 대립되며 종종 관습적으로 “아날로그 영역”으로 요약된다는 점이다. (‘아날로그’라는 용어가 자주 오용되는 만큼 몹시 신중하게 사용되어야 한다.) 아날로그와 디지털의 양극성은 그 자체로 까다로운 문제인 만큼 오늘날 진행되는 논의를 고려한다면 특히 더 주의를 기울여야 한다. 왜냐하면 아날로그적 주제는 이미 소프트웨어의 내부 모델링을 ‘코드-내-이데올로기’와 같은 설명과 묘사로 웬디 전이 이미 다루었기 때문이다. 두 번째로 소프트웨어는 프로그래머와 사용자 같은 존재들이 있다는 가정에 의존한다. 이것은 특별한 문제들의 집합을 제시하는데, 그 중에서도 가장 중요한 것은 행위자(actor)와 행해지는 대상(acted-upon)의 지위(이는 앞서 언급한 결정론적 서술과 관련된다), 그리고 어떤 상황에서 둘 중 무엇이 중요한 지에 대한 문제라 할 수 있다. 오늘날 “문화산업”은 새로운 의미를 가지고 있는데, 소프트웨어 내에서 “문화”와 “산업”이 서로 동일하다 할 정도로 밀접하게 연관되어 있기 때문이다(이것이 오늘날 정보학의 문화적 논리를 말하는 것이 동어반복적인 이유다). 오늘날 컴퓨터를 사용하는 대중에게 요구되는 세부적인 형태의 ‘알고리즘적 상호작용(algorithmic interaction)’과 ‘놀이(play)’의 세세한 형태는 코드 작성과 매우 유사하기에, 이 둘을 구분하는 것은 다른 목적에 근거해야 할 것이다. 아마도 그것은 비평가가 이데올로기를 “역-엔지니어링”하기를 갈망하는 것처럼 소프트웨어를 해독하려 노력하는 또 다른 종류의 성직자 같은 전문가 집단을 만들고 유지하는 것과 관련될 수 있고, 또는 제작자 집단과 소비자 집단 간 상호 구별을 둘러싼 오래된 논쟁을 그들 사이의 내재적 권력 동학 같은 것으로 맥락화 하는 것이 최선인 것과도 관련될 수 있다. 세 번째 어려움은 소프트웨어라는 개념을 사용함으로써 하드웨어를 배제하는 것처럼 보인다는 점이다. 이는 데이터는 본질적으로 비물질적이거나 미묘한 무엇인가이고 반대로 기계는 톱니바퀴와 레버 같이 물질적인 물건 같은 것이라는 가정과 관련된다. 그러나 웬디 전과 여러 사람들이 지적한대로 컴퓨터를 “프로그래밍”하는 것은 원래 케이블이나 커넥터 같은 회로를 직접 연결하는 것에서 출발했다. 그렇기에 역사적으로 “소프트웨어”는 오늘날 우리가 알고 있는 실행 가능한 응용 프로그램과 다르게 정보 기계에서 수행되는 어떤 종류의 서비스 노동에서 시작되었다. 심지어 비디오도 “하드” 재생 데크 및 카메라와 구별하기 위해 “소프트웨어”로 알려졌던 적이 있었다. 따라서 인터페이스 효과 또한 관념과 기계의 기술 영역으로 데이터가 격리되어 발생하는 효과의 한 종류다. 그 결과 소프트웨어는 20섹 후반에 정의된 상징적 기계 언어로서만 이해되고, 소프트웨어 언어 이전 또는 비-언어적인 것으로 이해될 수 있는 초기의 정의에서는 이해되지 않는 현재주의(presentism)적 입장이 생겨나게 되는 것이다.
이런 논리를 풀어내는 것은 어려운 일이다. 키틀러는 「소프트웨어는 없다」라는 글을 통해 이와 같은 문제를 해결하려 시도했었다. 이 글은 코드와 기계 사이에 놓인 엄격한 구분을 풀어내는 탁월한 입장을 보여준다. ‘소프트웨어는 없다’라는 제목의 발상은 실제로 소프트웨어가 언제나 하드웨어의 작동에서 추출된 인간 친화적 불과하다는 내용에 기인한다. 논리 회로(logic gate)는 전자적 기계이지만 그 내부를 들여다보면 물리적 기구(device)이기 때문이다. 전자 회로의 전압은 비물질이 아닌 ‘물질’이다(그게 무엇이든 간에). 파르메니데스가 그러했듯 “없는 것은 존재할 수 없다.” 따라서 “소프트”는 이러한 기구의 정보적 유동성에서 비롯된 것으로 튜링이 자신의 기계를 ‘이산적(discrete)’이 아닌 ‘범용적(universal)’이라 명명한 것이 의미하는 바가 여기에 있다. 기본적인 논리회로 기능이 추상화되고 기계 명령어로 연결되고, 어셈블리 연산 코드로 변환된 다음, 나중에 C 언어와 같은 고급 컴퓨터 언어로 표현될 때, 키틀러의 주장은 이 “고급”의 상징적 기계 언어가 절대 “낮은” 전압의 상징적 상호작용과 경험적으로 다른 것으로 이해되어서는 안 된다는 점에 있다. 물론 고급 언어라는 것이 복잡한 집합체들이 맞지만 어셈블리 코드 8줄로 “if-then” 제어 구조를 작성하는 것이 C언어 1줄로 작성하는 것과 비교에 어느 것이 다른 어느 것보다 더 기계적이고 덜 기계적이라 생각하는 건 어리석은 것이다. 마치 동일한 이차방정식이 몇 개의 곱셈 요소로 팽창하더라도 여전히 균형을 유지하는 것처럼. 그런 이유에서 “고급”언어와 “저급” 언어의 관계는 기술적이다.
그럼에도 불구하고 이 기술적 특성이 더 이상 흥미롭지 않은 것은 아니며 특히 이데올로기에 관한 문제에 있어서는 더욱 흥미로워지는 지점이 있다. 여기서 우리는 언어적 미학이나 시각적 미학이 아닌 기계 미학의 관해 이야기 할 필요가 있다. 여기서 제안하고자 하는 것은 소프트웨어가 형상화(figuration)되지 않은 기술적 트랜스코딩의 예시 임에도 불구하고 지나치게 높은 수준의 이데올로기적 물신주의(fetishism)와 오인(misrecognition)이 공존하고 있다는 점이다(이것은 결국 기술에 대한 정의 자체가 아닌가?) 웬디 전은 이러한 연결점을 명시적으로 제기한다. “소프트웨어는 우상 숭배적 논리에 기반한다. 사용자들은 그들의 폴더와 데스크톱이 실제 폴더와 데스크톱이 아니라는 것을 아주 잘 알지만, 그것을 ‘폴더’와 ‘데스크톱’이라 지시함으로써 그것들이 그러한 것 들인 양 다룬다.” 이것이 진정한 물신주의 논리인지 알레고리적인 것인지는 아직 결정되지 않았다. 마르크스에 있어 물신주의는 표상의 재현적, 비유적 논리에 관한 것으로 즉 가치(value)가 그렇지 않은 것의 형식으로 나타나는지에 대한 것에서 비롯된 것이다. 이와 같은 마르크스주의 방법론은 재현/표상의문제를 다루는 다양한 지적 분야들(기호학, 미술사, 문학 비평, 인종 이론 등)로 쉽게 번역될 수 있었던 것은 의심할 여지없는 사실이다. 마르크스의 『자본』에서의 분석적 강점은 그가 물신주의를 근본적으로 경험적, 즉 ‘기술적’ 관계(시장의 교환 규칙, 노동력의 표준화, 생산성과 효율성의 과학, 기계의 작동 등)에서 물신주의를 도출해냈다는 점에 있다. 따라서 기술적 트랜스코딩과 물신주의적 추상화의 변증법은 처음부터 존재한다고 볼 수 있다. 이것이 이 장의 마지막 부분에서 소프트웨어와 이데올로기의 관계를 알레고리적인 관계로 이해해야 한다고 제안하는 이유다. 소프트웨어가 단순히 이데올로기를 위한 수단이 아니라 기술적 트랜스코딩과 물신주의적 추상화라는 이데올로기적 모순이 바로 소프트웨어의 형식 그 자체 내부에 제정되고 “해결resolved”되기 때문입니다.
뉴미디어는 드러내는 만큼 숨기는 것도 많다. 웬디 전 에세이의 궁극적인 힘은 이러한 증상의 발견에 있다. 즉, 그녀의 글 제목에서는 발견할 수 있지만 본문에서는 치열하게 숨기고 있는 그녀의 아이디어를 발견하는 것이 그것이다. 웬디 전에게 있어 소프트웨어와 이데올로기 사이의 인터페이스는 역행(throwback)에 대한 것이다. 다시 말해 인터페이스는 소프트웨어 내부에 지속되는 시각적 지식이다. 따라서 지식의 시각적 특성이나 수준(quality)이 소프트웨어/이데올로기 퍼즐의 핵심이라고 생각할 수 있다. “가장 비시각적이고 비투명한 기구(device)인 컴퓨터가 역설적으로 ‘시각문화’와 ‘투명성(transparency)’을 촉진한다”고 웬디 전은 말했다. 소프트웨어 순수주의자들은 물론 시각문화의 지적 지형에 더욱 익숙한 사람들도 이 같은 의견을 껄끄러워 할지 모를 나의 의견은 일종의 반직관적 비약과 관련된다. 웬디 전의 에세이의 맥락을 독해하자면 ‘시각’이라는 용어를 사용했음에도, 그녀의 다른 글 「통제와 자유」에서 언급했음에도, 웬디 전의 기획적 배경은 정확히 시각문화 분야가 아니다. 여기서 다소 복잡한 문제가 발생하는데 “가시적(visible)”과 “시각적(visual)”을 구분해야 한다는 점이다. “가시적”은 일반적으로 광학적 시력(sight)에 대한 것이고 “시각적”인 것은 인지적 이해와 개념화의 인식론적 과정으로 좀더 광범위하고 비유적인 것으로 이해될 수 있다. 꿈 속에서 이미지를 ‘보는(see)’ 것처럼 시력 유무와 상관없이 정신적 ‘통찰(insight)’에 대해 이야기 할 수 있듯이 말이다. 이런 맥락에서 W.J.T. 미첼은 「그림은 무엇을 원하는가?」에서 문화의 핵심적이고 유전적인 형성이 텍스트나 개념이 아니라 ‘이미지’라 지적했다.
물론 미첼과 웬디 전의 의견을 동조적으로 읽는다 해서 그 세상이 텔레비전 화면, 광고, 그림, 영화 릴, 기업 로고와 같은 기호학적 인터페이스로만 구성되어 있다고 가정하는 것은 아니다. 그들이 말하는 ‘이미지’는 이런 것들로만 국한되는 게 아니기 때문이다. 대신 ‘시각적(visual)’이란 일부 그룹을 결정하고 고정하는 특정 요소의 유사성이나 모티프를 지칭하는 것으로 이해하는 게 더 좋을 것이다. 이러한 시각적 요소들을 통해 특정 요소들의 전체적 관계(기억, 제스처, 후렴구, 화상(raster, 畵像) 등)뿐 아니라 구성적 부분(질감, 색상, 피치, 필셀 등)의 측면에서도 ‘볼 수 있게(see)’ 만드는 것이다. 그러나 이것은 그렇게 극적인 주장이라기보다 처음부터 서양 철학 및 미학과 평행을 이루는 주장이라 할 수 있다. 따라서 “시각(sightings)”과 지식을 다양한 표현의 투명성과 의사소통 기술로 통합(어떤 이들은 붕괴라 말할 수 있는) 계몽적 인식(episteme)은 소프트웨어에서도 지속된다고 웬디 전은 말한다. 그러한 지속은 소스와 표면, 스크립트와 스크린, 코드와 유저 사이의 표현에 대한 심도 모델을 촉진하는 식으로 진행된다. 그러나 계몽주의적 모델은 이러한 투명한 재현의 불가능성에 대해 많은 비판을 야기하기도 했다. 따라서 우리는 역설에 이르게 된다. 모든 매개 기술은 자유로운 소통이라는 명목으로 가능한 한 높은 수준으로 스스로를 지워야하지만, 바로 그렇게 함으로써 스스로의 기술적 존재를 증명하게 되어 기존의 지워짐을 되돌린다는 점이다. 웬디 전은 “소프트웨어란 무엇인가?”라는 질문에 “무엇인가를 명시적(explicit)으로 만들고, (기계와 같이) 가시적인 것을 비가시적으로 렌더링하는 동시에 감지할 수 없는 무언가를 가시적으로 만들려는 바로 그 노력이 소프트웨어가 아니면 무엇이겠느냐?”고 반문한다. 언어는 무시(overlook)되길 바란다. 정확히 그런 이유에서 더 효과적이고 정확하게 ‘간과’되길 바란다. 즉, 특정성과 표현의 프로세스 자체에서 분리된 상태를 유지하면서 명시하고 표현하도록 설계된 구문 및 의미 시스템으로 더 잘 기능할 수 있기를 바란다. 이는 언어 자체가 반드시 광학적 시력과 연결되어 있지는 않지만 그럼에도 불구하고 “시각적(visual)”일 수 있다는 것을 의미한다.
웬디 전의 제안은 소프트웨어를 이해하기 위해서는 순전히 기계적인, 다시 말해 비시각적인 미학의 영역으로 건너뛰지 말고 시각성과 그에 포함된 이데올로기적 문제에 대한 논의로 돌아가야 한다는 것이다. 이것은 탁월한 조언이지만, 시각적 지식에 대한 호소는 여전히 문자적(즉, 광학적)이 아닌 비유적 의미로 이해되어야 한다. 왜냐하면 소프트웨어의 시각적 측면과 기계적 측면을 서로 다른 투쟁들로 붕괴시키기 보다는 분리하는 것이 더 가치 있기 때문이다. 이러한 분리는 정보학적 또는 기계적인 조직 모델과 언어적 내러티브와 가시적 이미지의 미학적 형태를 귀하게 여기는 다소 오래된 조직 모델 사이의 사회-정치적 영역에서 벌어지는 동일한 투쟁을 시뮬레이션하기 때문이다. 다시 말해 소프트웨어에서 시각적인 것과 기계적인 것 사이의 분리는 사회의 알레고리를 반영하기 때문에 중요하다. 웬디 전의 「소프트웨어, 혹은 시각적 지식의 지속에 관하여」은 일부 낙관론자들이 정보화 시대라고 부르는 것의 이중적 구속을 의미한다. 이는 소프트웨어가 광학적 시각이 아닌 상징적 논리에 뿌리를 두고 있으며, 따라서 지금도 스펙터클 사회에 존재하는 지배적 형식을 완전히 활용할 수 없지만 동시에 소프트웨어가 효과적으로 시뮬레이션하는 사회적 형식을 희생시키면서 정확하게 침투한다는 사실을 강조한다.
시각성과 컴퓨팅의 역사는 복잡하게 얽혀있다. 레프 마노비치와 같은 저자들이 제대로 지적했듯(특히 그의 에세이 「시각의 자동화」) 시각성과 컴퓨터를 분리하는 것은 확실히 잘못된 것이다. 영화는 파이널컷 프로, 사진은 포토샵, 글쓰기는 마이크로소프트 워드 등이 대명사가 된 시대에 소프트웨어를 무시하고 현대의 시각적 매개를 이해하는 것은 스스로 위험을 감수하는 것과 같다. 픽셀의 역사는 이런 점에서 유익하다. 20세기 중반 발명된 전자적 픽셀은 본질적으로 이진 비트와 동일했다. 하나는 가시광선의 형식으로 존재하고 다른 하나는 수학적 값의 형식으로 존재했다. 그러나 동시에 나는 컴퓨터의 비시각적이거나 시각적이 아닌 미디어로서의 특수성에 대한 최근 미디어 이론의 특정한 소수 주장에 공감합니다. 컴퓨터를 "시각 문화"의 구조로 밀어 넣고자 하는 사람은 분명히 물리적 인터페이스에 대한 부적절한 물신화, 즉 컴퓨터 모니터가 전체 미디어의 대안으로 충분하다는 것처럼 믿고 있습니다. 컴퓨터는 다양한 모양과 크기의 화면뿐만 아니라 키보드, 마우스, 컨트롤러, 센서와 같은 시각적이 아닌 인터페이스; 메모리와 디스크의 데이터; 실행 가능한 알고리즘; 네트워크 기술과 프로토콜 등 다양한 기술로 구성된 미디어입니다. 이 목록은 계속됩니다. 컴퓨터 시각과 컴퓨터 그래픽 분야는 알고리즘, 데이터 구조, 암호화, 로봇 공학, 생물 정보학, 네트워킹, 머신 러닝 및 기타 기호 시스템의 비시각적 응용 분야가 대부분을 차지하는 컴퓨터 과학 전체에 극히 일부에 불과하다.
이러한 개별 영역은 더 깊은 수준의 주의를 기울일 필요가 있다. 그러나 시각(visual)에 대한 논의는 다소 미해결 상태로 남겨두고, 소프트웨어와 이데올로기에 대한 두 가지 일반적 관찰 중 첫 번째 관찰을 제공함으로써 중요한 것, 바로 인터페이스로 돌아가고자 한다. 소프트웨어는 세심한 상징적 선언 및 설명에 큰 설명을 중시하는 기술 모델을 통해 작동하지만, 동시에 코드의 많은 부분을 은폐, 캡슐화 및 난독화(obfuscation)해야 한다. 프로그래머들이 ‘소프트웨어 인터페이스’ 또는 ‘애플리케이션 인터페이스’라는 용어로 이야기하는 것도 이 때문이다. 어써션(표명, assertion)으로 공식화된 소프트웨어는 반영화(reflection)와 난독화 모두를 필요로 한다. 소프트웨어가 이데올로기와 알레고리적이고 은유적으로 유사하다면, 소프트웨어가 변증법적 방식으로 작동하는 것은 놀라운 일이 아니다. 이데올로기 비판 이론가들은 종종 이데올로기를 종합적 용어로 설명해왔다(제임슨, 홀, 그람시 등) 그러나 소프트웨어는 자체적인 반영화 및 난독화 기술이 있다. “반영화”는 컴퓨터 언어에 있어 공리적 개념이다. 말하자면 컴퓨터 언어의 완전한 구문 및 의미 규칙을 정의하고 이를 해석, 구문 분석 도는 실행하도록 설계된 모든 환경에 작성되어야 하는 것이다.(여담으로, 소위 자연어에서 스타일 가이드와 사전에도 불구하고 결코 자연어대로 진행되지 않는다. 이러한 언어의 예상치 못한 ‘귀납적’ 사용은 출처의 축복 없이 우연히 발견되거나 발명될 수 있는 반면, 소프트웨어에서는 예상치 못한 언어 표현이 본질적으로 오류 또는 “예외(exception)” 처리되어 무시되는 경우가 많다. 물론 이것이 소프트웨어 네트워크의 복잡성 속에서 해킹 및 기타 소프트웨어 취약점 공격(exploits)이 나타날 가능성이나 필요성을 배제하는 것은 아니다. 이는 컴퓨터 과학자들이 ‘정적으로(statically)’으로 예측할 수 없는 공격이다. 취약점 공격(exploit)은 기호 체계의 규칙 내에서 그리고 규칙을 통해 집중적으로 작동하는 반면, 자연어는 허용되는 스타일의 경계를 탐구하려는 조합적(combinatorial) 담론 논리의 결과로 광범위하게 작동한다는 차이점이 있다. 소프트웨어 코드를 구문 분석하도록 구축된 기계 내에서 소프트웨어 코드의 반영적 샌드박싱은 특수한 런타임 환경 내에서 컴파일하고 바이트코드로 실행해야하는 Java와 같은 컴퓨터 언어, 또는 C 언어와 같이 컴파일한 뒤 “네이티브” 기계 명령어로 실행해야 하는 경우에서 볼 수 있다. HTML과 같은 간단한 마크업(MarkUp) 언어의 경우 이를 해석하고 표시할 브라우저에 맞게 사양이 완전히 설계되어 있어야 하며 3D 모델처럼 다르게 해석된 코드의 경우 정점과 텍스처의 수학적 값이 주어진 데이터 형식과 시각적 투상(projection) 스타일 규칙에 따라 다른 해석 코드와 호환되거나 다른 코드로 부호변환 되어야 한다. 이러한 실존적 또는 메타-매개적 반영화는 여러 언어에 존재하는 ‘시스템’ 또는 ‘글로벌’ 파라텍스트적(paratextual) 변수를 통해 더욱 잘 드러난다. Perl 언어의 구현은 특히 눈부시다. 프로세스 번호는 $$, 마지막 시스템 호출 오류는$!, 프로그램 이름은 $o이다. Java역시 java.lang.reflect 패키지 및 jave.lang의 클래스 같은 특수한 ‘메타’ 객체를 포함되어 있다. 이는 클래스 및 객체에 대한 정보를 얻기 위해 설계된 클래스다. 이러한 메타 객체는 디버거나 인터프리터와 같은 재귀적 소프트웨어를 작성하거나 런타임 중 새로운 객체를 동적으로 선언하는 데 사용된다. 실제로 철학의 한 분야였던 온톨로지는 이제 OWL(Web Ontology Language)와 같은 웹 온톨로지 표준에서 가장 눈에 띄게 나타나는 컴퓨터 과학의 한 분야이기도 하다.
캡슐화와 트랜스코딩은 난독화 기술을 이해하는데 유용한 두 가지 방법이다. 마노비치로부터 채택한 트랜스코딩의 원리는 새로운 미디어 객체가 한 데이터 구조에서 다른 데이터 구조로 디지털 방식으로 변환될 수 있지만, 더 나아가 이러한 변환에 전적으로 기초한 전체 미디어 포맷이 있다고 말할 수 있다. 따라서 대표적인 도메인 이름 시스템(DNS)인 BIND(Berkeley Internet Name Domain)와 같은 어플리케이션이 존재해 IP 주소를 사람이 읽을 수 있는 도메인 이름으로 마스킹 할 수 있다. 넷마스크도 비슷하다. 이진수에서 특수 마스킹 번호와 ‘and’, 비트 연산자(bitwise operation)를 사용해 이진수 내 비트를 추출할 수 있다. 이는 네트워크 주소 지정에서도 마찬가지로 서브넷은 서브넷 자체에 대한 네트워크 주소의 일부를 지정한 다음 서브넷에 상주하는 호스트가 사용할 나머지를 ‘마스크’ 또는 난독화하는 넷마스크라는 특수 숫자를 사용해 정의된다. 비트맵 이미지에서 숫자 값은 픽셀 그리드에서 색상 강도를 재현하는 데 사용된다. 그러나 이러한 값은 그대로 표시되지 않고 데이터 신호로 변환되어 디스플레이 어댑터로 전송되고, 디스플레이 어댑터는 이 값을 화면에 빛으로 표시되는 전압으로 변환한다.(앞서 언급한 비트에서 픽셀로의 모달Modal 변환) 따라서 이 경우 ‘컨버전’은 ‘물리적’ 신호와 ‘추상적’ 숫자 사이의 특정 결합으로, 하나는 다른 하나를 희생해 숨겨진다. 이전에 참조한 HTML 예시에서도 동일한 데이터 은닉의 원칙을 사용한다. HTML은 브라우저 창에 표시되지 않고 항상 파싱(Parsing)되어 아스키(ASCII) 텍스트로부터 그래픽 레이아웃으로 변환합니다.(아스키 텍스트가 포함되거나 포함되지 않을 수 있음)
이는 자연어나 그래픽 같은 보다 특권적인 “의미론적” 형식 뒤에 데이터의 수치적 인코딩을 숨기려는 소프트웨어 설계의 더 큰 추세를 보여주는 몇 가지 예일 뿐이다. 이러한 방식으로 숫자는 본질적으로 신비로운 논리를 따르는데, 숫자가 자신을 표현하는 바로 그 순간 숨겨진다는 점이다. 웬디 전은 이를 “소프트웨어 내에서의 변경 가능한 사실들의 비반영(nonreflection)”이라 부른다. 사실 캡슐화는 코드 작성 및 컴파일 영역에서 다소 지배적이다. 객체-지향 컴퓨터 언어의 가장 기본적 설계 원칙은 변수와 변수에 대한 연산(메소드)을 ‘클래스’라는 것으로 결합하는 것이다. 클래스는 객체로 인스턴스화할 수 있으며 이러한 객체는 객체 인터페이스를 통해 다른 객체에 메시지를 보내는 기능으로 상호작용한다. 이때 ‘캡슐화’가 등장한다. 캡슐화는 객체가 특정 연산을 구현하는 방법에 대한 세부 사항을 요청하는 다른 객체로부터 의도적으로 숨기는 것이다. 예를 들어 메서드의 입력과 출력은 표시되지만 입력을 출력으로 처리하는 방법은 숨겨져 있는 게 그것이다. 캡슐화 기술을 구현하기 위해 Java의 경우처럼 클래스, 메서드, 또는 변수를 ‘공개’, ‘비공개’ 또는 ‘보호’로 간주할 수 있는 가시성 수정자 시스템을 사용하며, 각 지정은 해당 ‘클래스’와 ‘메서드’ 또는 변수가 나머지 코드에 표시되는지 여부를 결정하는 데 도움이 된다.
코드 난독화 또는 ‘정보 은닉’는 코드를 좀 더 모듈적이고 추상적으로 만들어 유지 관리를 용이하게 만들기 위해 사용된다. 한 클래스의 메소드(method)는 업데이트될 수 있으며, 해당 메소드가 여전히 공개 인터페이스 “서명”과 일치한다면 코드는 계속 실행될 것이라 합리적으로 확신할 수 있다. 아래의 글은 컴퓨터 과학의 관점에서 난독화의 근거를 명확하게 설명하고 있다.
대규모 소프트웨어를 구축할 때 가장 큰 과제는 작업이 여러 측면에서 동시에 진행될 수 있도록 프로그래머들의 노력을 어떻게 분담할 것인가 하는 문제다. 이러한 노력의 모듈화는 객체와 알고리즘이 필요하지 않은 시스템 부분에서는 가능한 한 객체와 알고리즘을 보이지 않게 하는 ‘정보 은닉(information hiding)’이라는 개념에 크게 의존한다. 이는 객체와 알고리즘이 필요할 때마다 시스템의 필요하지 않은 부분에 객체와 알고리즘을 보이지 않게 만든다. 적절하게 모듈화된 코드는 시스템의 특정 부분을 이해하는데 필요한 정보량을 최소화해 프로그래머의 ‘인지적 부하’를 줄여준다. 잘 설계된 프로그램에서는 모듈 사이의 인터페이스가 가능한 한 ‘좁고’(즉, 단순하고) 변경 가능성이 있는 모든 설계 결정이 단일 모듈 내부에 숨겨져 있다. 유지보수(버그 수정 및 개선)는 대부분의 상용 소프트웨어의 초기 구축보다 훨씬 더 많은 프로그래머의 시간을 소비하기 때문에 후자의 점이 매우 중요하다.
정보 은닉은 인지 부하를 줄이는 것 외에도 여러 이점이 있다. 먼저, 이름 충돌(name conflicts)의 위험을 줄인다. 이는 눈에 보이는 이름이 줄어들면서 새로 도입된 이름이 이미 사용 중인 이름과 동일할 가능성을 줄여주는 것이다. 두 번째로 데이터 추상화의 무결성을 보호한다. 이는 객체가 속한 서브루틴 외부에서 객체에 액세스 하려 시도하면 컴파일러에서 “정의되지 않은 기호” 오류 메시지를 표시한다. 셋째, 런타임 오류를 구분하는 데 도움이 된다. 이는 변수가 예기치 않은 값을 취하는 경우 일반적으로 변수를 수정한 코드가 해당 변수의 범위 내에 있는지 확인할 수 있게 만든다.
이와 같은 부분들은 지나치다 싶을 정도로 문자 그대로 의미를 받아들이는 게 좋다. 노동 과정에 대한 이와 같은 설명과 마르크스와 그 후예들이 이데올로기 담론에서 제공한 동일한 설명 사이에 상당한 유사성이 있음을 설명할 가치가 있다. 두 경우 모두 상품 객체(또는 기 드보르가 보여준 것처럼 이미지로서의 상품)와 그 자체의 생산 역사와 그것을 생성한 사회적 분업을 은폐하는 능력 등의 사물의 은폐를 위한 복잡한 인터페이스로 가득 찬 ‘객체’가 있다. Java 언어의 객체와 다양한 기능을 이 사이트 또는 저 사이트에 새기고 실행할 수 있는 능력, 즉 코드의 한 부분이 레드몬드에서 나오고 다른 부분이 방갈로의 책상에서 나올 수 있다는 닷컴 회사의 분업 구조를 추상화하거나 매핑한 것일 수 있다는 것이다. 소프트웨어의 구조는 이러한 더 큰 사회적 현실을 촉진한다. 이것은 새로운 경제에 대한 일종의 음모론을 조장하려는 것이 아니다. 이는 미디어 기술로서의 소프트웨어 구조와 이데올로기 구조 사이의 중요한 형식적 유사성, 그리고 그 둘 사이의 경유지 역할을 하는 ‘상품’에 주목하기 위한 것일 뿐이다(기 드보르, 장 조셉 국스, 롤랑 바르뜨 같은 인물에게 상품과 이데올로기는 거의 동의어에 가까운 개념이다.)
뉴미디어는 종종 개방성의 미덕을 옹호하는 것으로 찬사 받는다. 그러나 ‘반영’과 ‘난독화’는 오픈 소스 대 독점 소프트웨어에 대한 논쟁과는 아무 관련이 없다는 점을 강조하고자 한다. 코드의 ‘좋은’ 사용과 ‘나쁜’ 사용은 아무런 관련이 없다. 오픈 소스 소프트웨어는 독점 소프트웨어와 똑같이 소스 은폐의 원칙을 따른다. 따라서 문제가 되는 것은 소스를 볼 수 있는지 여부가 아니라 소스를 미디엄 그 자체로 전면에 배치했지에 대한 것이다. 그리고 거의 모든 소프트웨어 시스템들은 소스를 미디엄 자체로 전면 배치하지 않았을 것이다(역-어셈블러, 헥스 편집기, 소프트웨어 개발 키트 같은 것은 추가적인 요금 지불을 요구할 것이다.) 이러한 현실은 표현의 모델을 주로 다루는 시학이나 해석학 분야와 무관하지 않다. 작품의 핵심은 상징주의의 ‘암시’ 또는 명료한 ‘침묵’과 같이 형언할 수 없는 것의 자리로 격하된다. 이는 시공간을 통해 대상이 되는 주제와 행위를 진정으로 재현할 수 없고 단지 그것이 일어나는 것을 묘사할 뿐인 영화의 마조히즘적 부정과 같다.
보이는 것은 그것이 전부가 아니라는 근본적 모순이 있다. 소프트웨어는 미디엄 아닌 미디엄이다. 정보 인터페이스는 항상 “실행 불가”하다. 코든느 결코 있는 그대로 볼 수 없다. 대신 코드를 컴파일하고, 해석하고, 구문 분석해야 하며 그렇지 않다면 더 큰 코드 덩어리에 의해 숨겨져야 한다. 이것이 바로 난독화의 원리(the principle of obfuscation)다. 그러나 동시에 소프트웨어가 소스 또는 알고리즘의 본질(실제 ‘언어’가 발생하기 전 변수를 명시하고 메소드를 선언하는 것)로서 효과적으로 작동할 수 있는 것은 소프트웨어의 매우 높은 수준의 선언적 반영성 때문이며, 이는 항상 이미 구문 분석 및 실행이 예정된 더 큰 소프트웨어 환경 내에서 이루어진다. 이것이 바로 반영성의 원리(the principle of reflection)다.
작업할 수 없다고 해서 비효율적인 것은 아니다. 소프트웨어 인터페이스가 작동되지 않는 것으로 묘사하는 것은 그것의 비활성(inert)과 무능력이나 무기력(listless)을 묘사하는 것이 아니다. “소프트웨어는 이데올로기의 기능적 유사물”이라는 웬디 전의 주장으로 돌아가보자. 이것은 소프트웨어가 이데올로기의 유사물일 뿐만 아니라 훨씬 더 근본적인 주장을 나타낸다. 즉, 소프트웨어는 본질적으로 기능적이며 따라서 이데올로기 역시 기능적일 수 있다는 것을 의미한다. 다시 말해 소프트웨어는 이데올로기의 기계적 변환물이라는 것이다. 나는 앞서 이데올로기의 “결정론적 내러티브”를 언급하며 이를 암시했었다. “결정론 내러티브”에 대한 논의는 물질 세계를 변화시키고 굴절시키는 것을 지향하는 이데올로기의 측면을 강조하기 위한 것으로, 알튀세르의 “호명(interpellation)”과 주체 형성에 대한 논의를 대표적 예로 들 수 있다. 이와 대조적으로, 푸코의 유명한 주장처럼, 이데올로기는 주체를 그 이미지에 투영하는 원동력이 아니라 실질적인 사회적 및 기술적 장치(apparatus)가 인간의 신체나 그 밖의 물질적 자원을 규율하고 굴절시킨다고 주장하는 사람들도 많다. 규범적 제약의 패턴이라는 것이 새로운 것은 아니지만, 소프트웨어에서 중요한 것은 이데올로기적 힘을 데이터 구조와 상징적 논리로 변환하는 것이며, 이 과정은 의심할 여지없이 언어 자체의 진화와 맞물려 있다. 소프트웨어는 이데올로기와는 전혀 다른 방식으로 알고리즘에 영향을 미친다. 이것은 소프트웨어와 이데올로기 간의 분열을 보여주는 증거가 아니라, 소프트웨어와 이데올로기 모두의 결정론적(deterministic)이고 편의주의적(expedient) 내러티브의 완결판으로 이해하는 것이 바람직할 것이다.
미디어는 이러한 기능적 의무를 표현하는 수단이다. 하지만 어떻게 작동하는 것일까? 다음의 슬로건은 소프트웨어의 기능적 특성을 설명하는 데 도움을 준다.“코드는 실행 가능한 유일한 언어다.” 언어행위 이론(Speech act theory)은 한동안 이러한 질문을 이미 다루어 왔다. 특히 현재 이 논의와 관련된 개념은 ‘수행 언어 행위’라는 개념으로, 발화를 통해 세계의 어떤 상태와 상황을 변경하는 언어 표현으로 정의된다. 아래는 코드의 수행 언어적 특성에 대한 케서린 헤일스의 언급이다.
코드는 기계가 실행할 수 있는 명령으로 실행되어야 하는 일을 발생시킬 수 있기 때문에 자연어만큼이나 중요해졌다. 기계에서 실행되는 코드는 언어에 부여된 의미보다 훨씬 더 강력한 의미의 수행성을 지닌다. 언어가 수행적(performative)이라고 할 때, 언어가 ‘수행하는(perform)’ 종류의 행동은 누군가 “나는 이번 입법 회의의 개시를 선언합니다”라거나 “나는 당신이 남편과 아내임을 선언합니다”라고 말할 때처럼 인간의 마음속에서 일어난다. 물론 이러한 마음의 변화가 행동으로 이어지기도 하지만, 그럼에도 불구하고 언어의 수행 능력은 복잡한 매개(mediation) 사슬을 통해 외부의 변화와 연결되어 있다. 반면 디지털 컴퓨터에서 실행되는 코드는 컴퓨터 동작에 변화를 일으키고 네트워크로 연결된 포트 및 기타 인터페이스를 통해 변경을 시작할 수 있으며, 이 모든 변화는 코드 전송 및 실행을 통해 구현된다.
따라서 발화수반(Illocutionary) 행위는 코드가 어떻게 작동하는지에 대한 사고의 기본 구조를 제공한다. 그러나 이 점을 모두가 동의하는 것은 아니다. 모든 코드가 암묵적이라는 주장에 반대하는 사람들은 실행문제에서 컴퓨터 언어와 자연어가 다르지 않다는 점을 지적한다. 그들은 자연어에의 발화수반행위가 효과를 발휘하기 위해서는 집단 간 일반적인 사회적 이해가 필요하며(똑같은 결혼 선언이라도 성직자와 연극 배우의 그것이 다르듯), 마찬가지로 컴퓨터 코드가 ‘발화수반행위’ 명령을 수행하기 위해서는 일반적인 기반시설(infrastructure), 즉 컴퓨터 하드웨어가 필요하다고 주장한다. 하지만 나는 헤일즈의 의견에 동의한다. 코드는 우선 기계적이고 다음으로 언어적이다. 이는 상호주관적(intersubjective) 기반시설(infrastructure)은 물질(material)과 동일하지 않다는 걸 의미한다.(안타깝게도 이런 주장으로 두 가지 상징체계가 ‘소프트’한 자연어와 ‘하드’한 컴퓨터 언어로 분리하지만.) 코드를 주관적으로 수행하거나 선언하는 것으로 바라보는 것은 코드를 의인화하여 “계산” 또는 “명령”이라는 자체 논리로 이해하는 것이 아니라 심리학의 기준표(rubric)에 이를 투영하는 것이다. 실리콘에서 전기 신호와 논리적 연산이 합쳐진 형태로 항상 존재해야 하는 코드의 물질적 기질은 그 크기에 상관없이 코드가 무엇보다도 기계에 전달되는 명령으로 존재한다는 것을 보여준다. 코드는 본질적으로 일부 기계에 작동 방법을 지시하는 것 외에 다른 존재 이유가 없다. 이를 자연어에 대해서 똑같이 대입할 수 없다.(웬디 전은 소스 코드는 사후에야 비로소 소스 코드로 이해된다는 주장으로 이러한 추론을 복잡하게 만든다.) 물론 이는 컴퓨터의 결함이나 소프트웨어의 취약점 공격(exploit) 같이 기계적 실행 의무에 반하는 코드의 문화적 또는 기술적 중요성을 배제하는 것이 아니라 모든 소프트웨어의 근본적인 기능적 특성을 강조하기 위한 것이다(글리치와 취약성 공격을 포함해서).
그러나 기계와 내러티브는 같은 것이 아니다. 근본적으로 기계라고 할 수 있는 소프트웨어와 일반적으로 어떤 종류의 내러티브로 이해되는 이데올로기 사이에는 긴장이 자리하고 있다. 에스펜 아르세스(Espen Aarseth)가 내러티브를 전자 텍스트의 ‘순회 함수’라고 부르며 영웅적인 재작업을 한 것은 내러티브가 코드 자체로 존재할 수 없지만 특정 의미 요소를 관리하는 ‘내러티브’ 흐름 함수 또는 배열이나 데이터베이스의 경우처럼 요소의 ‘이미지’로 시뮬레이션 되어야 함을 나타낸다. 소프트웨어는 주로 언어적 서술이나 시각적 이미지가 아니다. 시각적 이미지 형태가 소프트웨어에서 재매개 될 수 있다 해도 말이다. 문제는 소프트웨어를 컴퓨터 언어와 기계로 이해하는 두 가지 기본적 이해에서 비롯된다. 언어로서 소프트웨어는 다양한 모드로 존재할 수 잇는 상징적 시스템으로, 종종 언어 또는 코드 ‘레이어’로 이해된다(키틀러의 「소프트웨어는 없다」의 핵심적 주장). 앞서 트랜스코딩의 맥락에서 주장했듯, 이러한 관점의 결과 중 하나는 각 계층이 완전히 동등하지 않더라도 기술적으로 다른 모든 계층과 관련되어 있다는 사실이다. 그러나 소프트웨어의 언어적 계층(layer) 모델은 다른 주장, 즉 계층의 연속체 상 어떤 두 지점 또는 임계점 사이의 근본적 ‘비교불가능성(incommensurability)’에 따라 집단 또는 ‘전체(whole)’ 경험을 달성하는 어려움에 관한 것이다. 이것들은 단순한 진행과 역행의 기술적 이동을 오가는 것을 말하는 게 아니다. 여기엔 쓰여진 것이(written) 순수 기계적인 것이 되었다가 되돌아오는 특권적 순간이 있다. 운영 체제는 디스크의 실행 파일로 존재할 수도 있지만 은유적이고 사이버네틱한 인터페이스인 “데스크톱”으로 현상학적으로 존재한다. (물론 은유(metaphor)는 비유적(figurative, 구상적) 상호작용을 이야기하기엔 부적절한 용어지만, 일단 진행해보자. 게임의 맥락에서 ‘알레고리’와 ‘알고리즘’의 합성어인 ‘알레고리즘’을 제안했지만, 이 역시 현재 논의하기엔 어색한 게 사실이다.)
아르세스는 이 알레고리적 구조를 강조하며 이 기묘한 상태를 사이버네틱스 기호의 이중적 성격이라 말한다. 시적인 것과 기능적인 것, 사적인 것과 공적인 것, 과정과 정체 사이의 강제적 분리가 사회생활 모든 층위에 파편화와 원자화의 고통스러운 상처를 투영하는 더 큰 사회적 맥락이라는 은유에서 가장 잘 이해될 수 있을 것이다. 상태와 상태의 변화가 일어나는 소프트웨어 내부 작동에서 발견할 수 있는 유동성과 고정성 사이의 변증법적 운동은 이데올로기가 제기하는 정치적 문제와 정확하게 일치한다.(실패와 결정론에 대한 서술은 본 장의 시작에 요약되어 있다.) 소프트웨어는 엄격한 의미에서 내러티브가 아닐 수 있지만, 그러한 내러티브 순간이 더 큰 소프트웨어 시뮬레이션 세계 내에서 단순한 변수로 재구성되더라도 소프트웨어는 시작, 중간, 끝이 있을 수 있다. 따라서 이데올로기도 마찬가지로 디지털의 포맷으로 재구성될 수 있다.
핵심적으로 소프트웨어는 언어와 기계로 나뉜다. 이는 기계가 우선적이라 해도 마찬가지다. 더 중요한 것은 언어와 기계적인 것이 절대 같은 것이 아님을 보장하는 신비화 또는 거리두기 프로세스의 작동이다. 실제로 소프트웨어의 이데올로기적 중요성은 차이(distinction)를 만들고 유지하는 것에 있다. 이것은 재현의 깊이 모델과 관련된 나의 두 번째 일반적 관찰로 이어진다.(앞서 웬디 전의 「시각적 지식의 지속성」을 통해 언급했었다) 소프트웨어는 스크립트인 동시에 실행 가능한 것이다. 이미 설명했듯 이 두 가지 모드는 종종 두 개 이상의 코드 레이어로 구성된 계층 모델로 나뉘는데, 소스 코드는 런타임 시행 파일에 ‘앞서(prior to)’ 있으며, 기계어는 프로그래밍 언어 “아래(underneath)”에 있고, 소프트웨어 어플리케이션은 사용자 경험을 ‘구동(drive)’하는 등의 역할을 한다. 명확하고 깊이 있는 아르세스의 다음 언급은 길게 인용할 가치가 있을 것이다.
사이버네틱 기호 프로세스의 이중적 특성은 다음과 같다. 그림과 인쇄된 책과 같은 일부 의미 체계는 하나의 물질적 수준에서만 존재하는 반면(물감과 캔버스 또는 잉크와 종이 같은 관계 수준), 다른 기호 체계는 소리 내어 읽는 책(잉크-종이, 음성-음파)이나 영사되는 영상(플름 스트립과 은막의 이밎) 같이 두 개 이상의 수준에서 존재한다. 후자의 경우 한 수준에서 다른 수준으로 변환(2차 기호 생성이라 부를 수 있는)은 결정적이지 않더라도 적어도 첫 번째 수준의 물직적 권위에 항상 지배되기 때문에 두 수준 간 관계는 사소한 것으로 간주될 수 있다. 그러나 사이버네틱 기호 변환에서 내부의 코드화된 수준은 외부의 표현적 수준을 통해서만 완전히 경험할 수 있기 때문이 이 관계는 임의적이라 할 수 있다. (이것이 비활성 상태일 때 내부 수준의 프로그램과 데이터는 물론 그 자체로 객체로 연구되고 설명될 수 있지만 외부 수준의 표현과 존재론적으로 등가되는 것은 아니다.) 또한 외부 수준에서 일어나는 일은 내부를 비추어야만 완전히 이해될 수 있다. 연극 대본에 대한 연극 공연의 외재적 상태와 달리 두 가지 모두 똑같이 내재적인 것이다. 문제를 더 복잡하게 만드는 것은 사실상 동일한 상황에서 동일한 코드 객체에 두 개의 서로 다른 표현 객체가 발생할 수 있다는 점이다. 고유하거나 의도하지 않은 부호 동작의 가능성은 무궁무진하며, 이는 유형학자(typologists)들에게 달갑지 않은 내용임은 틀림없다.
따라서 인터페이스는 화면이나 키보드처럼 겉으로 드러나면서도, 아르세스가 말한 것처럼 안팎을 매개하는 소프트웨어 내부에 잠재되어 있기도 하다. “사소한(trivial)”과 “임의적인(arbitrary)” 간 차이는 본질적으로 아날로그적 재현과 디지털 재현의 차이다. 아날로그는 지속적으로 변화하는 물질적인 평가 및 가치가 모방적 일치로 명확하게 인식되기 때문에 “사소한 것”으로 간주된다.(음파의 곡선 같은 게 그것이다). 디지털은 경험적 기준과 수학적 근사치 사이의 단절로 양자간이 “임의적인 것”으로 간주된다. 그러나 “임의적”인 것을 포함하는 두 가지 모두 이전에 “형상화 없는 기술적 부호변화”로 재정의된 개념 아래 영향을 받는다. 아르세스의 주장이 도발적인 이유는 그리고 실제로 본 글에서 다시 말하고자 하는 바는, 기호 체계의 기술적 또는 ‘임의적’ 트랜스코딩이 결코 불활성 물질 결정론(inert material determinism)이 아니라는 점이다. 사실은 이러한 입장과 정반대라고 할 수 있다. 소프트웨어에 추상화와 형상화가 존재한다는 사실(소스 코드의 기능적 발산으로서의 ‘데스크톱’이라는 인터페이스 은유, 또는 앞서 인용한 수많은 예시)은 암묵적이고 결정론적인 수학적 언어에 기반을 둔 기술 장치(apparatus)의 근본적인 불확정성을 보여준다. 그것은 형식으로 재현되지만 행위로는 재현되지 않는 역설이다. 이는 사회-문화적으로 중요한 형상화 과정이 아닌 수학적 재부호화로서 재현되지만, 결국 나타나는 것은 사회-문화적 형상화라 할 수 있다. 이것이 아르세스가 “독특하거나 의도하지 않은 기호 행동의 가능성은 무한하다”고 말한 의미다. 인간 에전트가 야기하는 다양한 해석적, 인지적 무형의 ‘소프트’한 인간 중심적 의미가 아니라 복잡한 물질 시스템과 그에서 시작되는 무수한 조합이라는 ‘하드’한 의미로 이해해야 한다. 마르크스의 페티쉬는 오인의 논리를 따르더라도 인간 정신의 단점을 결코 비난하지 않았다. 소프트웨어도 이와 같다.
이쯤에서 앞서 제기된 방법의 문제에 대해 잠시 이야기해보자. 이 책은 문화적, 기술적 대상에 대한 정치적 해석을 방법론적 취향에 따라 택일 할 수 있다는 것을 말하는 게 아니라 문화적, 기술적 대상에 대한 정치적 해석이 본질적으로 해석 그 자체와 동의어라는 것을 말하고자 한다. 따라서 하나를 택한다는 것은 반드시 다른 하나를 택하는 것이며, 둘 중 하나를 버린다는 건 모두를 버리는 것과 마찬가지라는 경고를 따르고자 한다. 다시 말해, 소프트웨어는 정치적 해석이 유일하고도 일관된 대답이라는 질문을 던지는 것이다.
이러한 접근 방식은 특정 소프트웨어가 어떤 정치적 세계관을 담고 있는지를 밝히려는 사람들과는 다르다는 점을 유의해야한다. 이것은 이데올로기 이론이 아니며, 각각의 이데올로기 이론은 적절하게 통찰력 있는 비평과 짝을 이루어 이데올로기의 허구성을 드러낸다. 이 글은 소프트웨어가 정치적 해석이라는 편리한 방법론과 발판을 통해 드러나는 모종의 “의미meaning”가 있다고 주장하는 게 아니다. 정반대의 경우도 있다. 소프트웨어, 사회, 해석 행위가 “강렬한 모방적 덤불”로 결합되어 있으며, 이 덤불은 그 자체로 정교하게 정치적이라고 말하는 것이 그것이다. “소프트웨어는 이데올로기의 기능적 유사물”이라는 웬디 전의 주장은 이 새로운 구조의 여러 가지 결들을 모두 포함하고 있다. ①소프트웨어와 이데올로기는 근본적으로 관련되어 있지만 ②그러나 그 자체로 유토피아적 본능과 억압적 본능 모두를 포함하고 있는 이데올로기의 복잡성과 모순이 소프트웨어 자체의 형식적 구조에 모델링되고 시뮬레이션되는 형상화의 관계이고, ③또한 소프트웨어는 기능적이기 때문에 내러티브와 기계적 층위 사이의 긴장을 악화시키고 조롱한다. 가령 컴파일러나 스크립트 해석기(interpreter)를 통해 소프트웨어의 엄격한 기능적 부호변환은 소프트웨어가 코드의 순수한 기능적 측면의 규칙을 따라야 하는 실행 가능한 층위와 의미론과 주관적 표현의 규칙을 따라야 하는 스크립트 층위 모두를 가지고 있다는 상식적 사실에 정면으로 위배된다. 코드의 순전히 기능적인 측면의 규칙을 따라야 하는 실행 가능한 계층(제네트가 문학에서 '준텍스트'라고 부르는 것과 유사)과 의미론과 주관적 표현의 규칙을 따라야 하는 스크립트 계층(들뢰즈에 따르면 기계적인 것은 비주체적 것임을 기억하라)이 있다는 상식적인 사실에 반하다.
사실 이 모든 것은 알레고리라는 더 일반적인 이름으로 불린다. 요점은 단순히 소프트웨어가 기능적이라는 것이 아니라 기계적인 것과 내러티브적인 것, 기능적인 것과 규율적인 것, 유동적인 것과 고정적인 것, 디지털과 아날로그 사이의 긴장을 소프트웨어가 해결한다는 것이 오늘날 동일한 정치적, 사회적 현실이 “해결”되는 방식에 대한 알레고리적 형상이라는 것이다. 이는 정통 이데올로기 비판에서처럼 억압이나 허위의식을 통해서가 아니라, 아날로그가 끝까지 살아남아야 한다고 제안하는 무자비한 코드 규칙을 통해 아날로그는 애초에 존재하지 않았다는 것을 보여줄 뿐이다. 그리고 프레드릭 제임슨이나 노스럽 프라이 같은 이론가들이 지적했듯, 해석행위는 평행 또는 ‘아날로그’ 담론이 미디어 기술(또는 이전에는 텍스트)을 통해 추출되거나, 원한다면 그 내부에서 표현되는 또 다른 알레고리적 구조화의 한 순간에 불과하다. 플라톤 이래 이데올로기의 논리가 바로 그것이다. 이데올로기가 존재한다고 주장하는 것은 정치적 무관심과 기계적 발생세분화(canalization)가 초월의 가능성과 함께 존재한다고 주장하는 것이다. 그렇지 않으면 이데올로기는 정신질환과 같은 것이 될 것이다. 따라서 이데올로기의 본질은 욕망(desire)이다. 그것은 역사의 종말과 같은 이데올로기의 부재가 아니라, 신성한 ‘종말(end)’이 어떻게 항상 모독적인 현재에 이미 포함되어 있어야 하는지를 상기시키는 이데올로기의 바로 그 존재에 대한 욕망이다. 이 논리는 기계 시대(the machine age) 초기의 에른스트 블로흐의 언급에서 우아하게 반짝인다. “누군가는 사람들이 천국에 있으면서도 그것을 모른다고 말한다. 천국은 확실히 여전히 다소 불분명해 보인다. 그 말에서 모든 것을 떠나 그것이 사실이라는 의지만 남긴다면, 이는 참이다.”