사용자 도구

사이트 도구


사이드바

blog:start

8월에 읽은 책 정리

지난 8월에는 5월 즈음부터 계속해서 SF를 읽고 있습니다. 이게 한번 시작하니 이와 연결된 다른 책을 계속해서 보느라 멈출 수가 없네요. 이번달에는 '지상 최대의 내기', '전쟁은 끝났어요', '텅 빈 거품', '삼체 3권'을 읽었습니다.

지상 최대의 내기

곽재식 작가님의 글을 처음 본 건 (다른 몇몇 분들과 마찬가지로) 트위터 타임라인에 예고도 없이 여간해서 마주칠 일 없는 거대한 알티 횟수와 함께한 '초공간 도약 항법의 개발'이었습니다. 가볍게 읽기 시작했다가 또 한동안은 웃다가 또 한동안은 웃는 내가 어처구니없어 또 웃다가 이야기가 끝나고 한참이나 웃음기 없이 내가 뭘 본 건지 한참을 생각했습니다. 분명 웃은 기억은 남아있었는데 한동안은 도무지 웃을 수 없었거든요. 그렇게 짧은 글로 잠깐 스쳐지나갔다가 이 분의 '수많은' 단편집이 있다는걸 알게됐습니다. 왜 첫 글을 읽고 바로 알아보지 않았을까요. 그렇게 해서 익숙한 그 첫 글이 실려있는 단편집인 '지상 최대의 내기'로 시작하기로 했습니다. 이 책이 어느새 여섯번째 단편집이라는 소개를 보고 이런 이야기들을 모르고 살다니 거참 안타까운 인생이다 싶었습니다. 이 이야기들은 분명 픽션이지만 읽다 보면 어디까지가 현실이고 어디까지가 판타지인지 잘 구분할 수 없었습니다. 가슴이 답답해져 고개를 가로젓다가 갑자기 등장한 외계인들 앞에서 아 맞아 이건 현실이 아니었지 싶다가도 종속선언서의 멍청한 우리들을 보고선 아 이건 완전 다큐멘터리인데 싶기도 했습니다. 다른 한편으로는 남은 병력을 전부 선택해서 어택땅 하려는 완벽한 순간에 방송국 기자가 나타나 전원을 내려버리는 그런 순간에 딱 끝나버리는 이야기들에 깜짝 놀라 '와 씨 진짜 ㅠ_ㅠ' 같은 반응을 하기도 하고요. 신났습니다. 아직도 이 책 앞에 다른 단편집이 다섯 개나 있다니까 이야기가 갑자기 끝나버려도 크게 분노하지 않을 겁니다. :)

전쟁은 끝났어요

지난 7월에 읽은 우리가 빛의 속도로 갈 수 없다면으로부터 연결된 책을 찾기 시작하면서 맨 먼저 나타난 책입니다. 일단 책 소개가 재미있었어요. 일련의 작가님들을 모아 누군가는 유토피아, 또 다른 누군가는 디스토피아를 배경으로 한 이야기를 쓴다. 그렇게 해서 유토피아를 배경으로 한 이야기가 실린 책입니다. 사실 그런 소개를 보고 난 다음부터는 이 책이 둘 중 어느 것을 배경으로 한 이야기를 실은 책인지 별로 신경쓰지 않았습니다. 이야기 하나하나가 지나갈 때마다 그래서 내가 방금 읽은 이야기가 둘 중 어디에 속하는 이야기였을지를 생각해보고 책 표지로 돌아가 '아 맞다 이거..' 하고 정답을 확인하곤 했습니다. 문득 책 제목과 같은 '전쟁은 끝났어요'의 전개에서는 댄브라운의 인페르노가 생각났습니다. 인류의 문제를 좀더 인위적이고 또 누군가에게는 폭력적인 방법으로 해결하려는 시도는 인류에게 어떻게 다가올지를 묻는다고 생각했는데 제 입장에서는 “뭐 그래도 괜찮지 않을까?” 싶어 긍정적이었습니다. 가령 이번달에 읽은 삼체 3권에서 태양계를 우주에서 지워버릴 저광속 블랙홀에 의해 살아남을 인류와 그로 인해 인류의 과학기술에 일어날 여러 가지 변화 혹은 퇴보를 생각해보는 것과 비슷한 고민을 해봤습니다. 그런 일련의 시도 사이에서 '전쟁은 끝났어요'의 결론은 그 중 가장 비폭력적이지 않나 싶었고요. :)

텅 빈 거품

'전쟁은 끝났어요'와 '다른' 디스토피아를 주제로 한 이야기를 모은 책. 처음엔 '다른' 대신 '그와는 반대로'라고 쓰려고 했는데 유토피아와 디스토피아는 서로 수직선 상에 반대 방향에 있는 것 같지가 않아 '다른'이라고 고쳤습니다. 굳이 평면상에 있다면 비슷한 점에서 출발해 시간축이 커질수록 서로 거리가 멀어질 뿐 서로 애초에 반대방향은 아니었던. '벗'은 나 자신에게도 들키지 않고 어떤 생각을 할 수 있을지 생각해본 적이 있는데 그와 비슷한 느낌이었습니다. 아니. 애초에 생각을 하는 주체가 난데 나한테도 들키지 않고 할 수 있는 생각이란 것이 있을까 싶었지만 유튜브에서 좌뇌와 우뇌가 연결되지 않은 사람들이 마치 두 사람처럼 행동하는 영상을 보곤 그런 일이 가능하지 않을까, 또 쓸모있지 않을까 생각했습니다. 벗은 내가 아니지만 벗과 함께 온건하게 살아가려 한다면 벗을 마치 내 세번째 뇌 정도로 인정하고 뇌 각각이 서로 다른 생각을 하며 서로 들키지 않아야 하지 않을까 싶기도 했습니다. 이야기에 앞서 이야기의 설정을 더 생각해보게 만든 이야기입니다. 다른 이야기들은 이게 '디스토피아' 이야기로 묶일만한 이야기일까 하는 의문을 남겨주었습니다. 가령 언인스톨은 비록 유토피아와 거리가 조금 있지만 디스토피아의 일부를 영원히 날려버리는 이야기이고 두 행성의 구조신호 역시 그렇습니다. 텅 빈 거품 역시 그렇다고 생각합니다. 이 이야기들의 미래는 비록 유토피아에 가깝지 않을 지도 모르지만 디스토피아와는 한참이나 멀리 떨어졌고 또 그 방향으로 진행할 가능성도 일단 이야기가 끝나는 지점에서는 높지 않다고 생각합니다. 그래서 굳이 '전쟁은 끝났어요'와 '텅 빈 거품'을 서로 다른 책 두 권이라고 생각하지 않기로 했습니다. :)

삼체 3권

앞서 삼체 두 권을 보고 꽤 오래 기다렸습니다. 지난 '암흑의 숲'에서 삼체인들과 이야기가 일단락되며 나름의 대단원을 맞이했습니다만 아이패드를 끄고 커버를 덮다가 문득 '어 잠깐' 싶었습니다. 아니 잠깐. 아직 태양계를 향해 다가오는 삼체함대와 저 멀리 버려진 어둠의 자식들이 아직 남아있다는 생각에 '아 이게 뭐야' 싶었습니다. 삼체 행성의 삼체인들과 지구인들의 이야기는 어떻게든 끝났을지 모르지만 우주에 버려진 지구 출신들을 포함한 우주인들은 이야기가 끝났는데도 아직 우주에 버려져있었거든요. 오래 기다렸습니다. 마치 보이저가 태양계를 완전히 빠져나가길 기다리는 것 만큼이나 오래 걸렸어요. 그리고 삼체의 마지막 이야기가 시작됐습니다…만, 처음 삼체 3권을 끝까지 읽었을 땐 아쉬운 부분도 있었지만 삼체뽕에 차 있었습니다. 별의 계승자에서는 거인들이 태양계를 격리하기 위해 고안해낸 중력장이 여기서는 암흑의 숲으로부터 태양계를 안전하게 격리하는 방법으로 나타났습니다. 제블렌인의 행성에 건조중이던 이 장치를 보며 대체 무슨 일이 일어날 뻔 했는지 놀라워하는데서 더 나아가 광속과 제3우주속도가 같은 세계에 사는 내가 사용하는 인터넷은 어떤 느낌일지를 생각해봤습니다.

그러다가 두어 주가 흐르고 나서야 뭔가 찜찜한 부분들, 잘 수습되지 않았거나 대체 왜 이 이야기로 시작했는지 이해가 잘 안 되는 부분이 나타났습니다. 근본적으로 계단 프로젝트가 이전의 면벽에 비해 저를 잘 설득하지 못했고 주인공의 존재 역시 안드로메다 성운을 읽고 난 다음만큼이나 불편했습니다. 안드로메다 성운에서는 모든 여성 등장인물들이 불편하도록 아름답게 묘사되어 있었거든요. 이번 삼체 세계에서도 비슷한 느낌을 받았습니다. 주인공의 그리 길지 않은 살아 움직이는 시간과 그 이외의 모든 사람들이 시간에 따라 빠르게 늙어가는 설정 사이에 곤란한 불편함이 있었습니다. 처음에는 미래로 가는 설정이 매력적이었지만 3권에 이르자 선택된 사람들이 계속해서 시간을 뛰어넘어가며 항상 자신들에게 준비된 세계와 맞닥뜨리는 설정이 이전만큼 훌륭하지는 않다는 생각도 들었고요. 또 삼체 뽕이 빠지면서 시작부터 그랬던 작가의 일뽕이 소설의 나머지 부분과 구분되지만 잘 어울린다고 느끼지도 않았습니다. 이런 아쉽고 또 곤란하고 또 잘 마무리되지 않은 다양한 떡밥과 갑툭튀 소우주에도 불구하고 요즘 읽던 이야기들이 좀더 작고 소소한데 비해 '아몰랑! 거창하게 가보자!'라고 외치는 듯 온 우주로 마구 펼쳐니는 이야기는 인상깊었습니다. 광속이 달라진 세계는 제게 깊은 인상을 남겼는데 이는 다시 이번 달 - 9월 - 에 읽고 있는 토끼의 아리아에 나오는 '박승휴 망해라'와 이어져 온갖 생각을 할 계기가 되었습니다.

이전 기록: 7월, 5월, 3월, 2월, 1월

· 2019-09-10 09:09

고유번호 사례

짧게 적었던 '고유번호 사례'에 대해 조금 더 설명하려고 합니다. 개인적으로는 개발 진행 과정에서 개발 주체들 사이에 여러 가지 요구사항이 오갈 수 있는데 이 요구사항을 어디까지 받아들이고 또 어디까지 받아들이지 않을지, 그리고 어느 선까지 의견을 조율해야 할지를 생각해보는 계기가 되었습니다.

예전에 개발을 진행 중이던 프로젝트에서 게임이 읽을 엑셀 데이터시트를 설계해야 했습니다. 극 초반을 지난 프로젝트에 합류해보면 이미 팀마다 조금씩 다른 엑셀 사용 규칙과 적당한 컨버팅, 밸리데이팅 환경이 이미 갖춰진 경우가 많습니다만 완전히 바닥부터 시작한다면 엑셀 데이터를 작성하는 방식과 컨버팅 환경에 대한 요구사항을 처음부터 제시해야 할 수도 있습니다. 이 때는 모든 것을 바닥부터 제시해야 하는 상황이었습니다.

배경지식

엑셀을 데이터 입출력 도구로 사용: 다른 소프트웨어 개발에서는 어떨지 모르겠습니다만 게임 개발에서는 엑셀을 주요 데이터 입출력 도구로 활용합니다. 일정한 규칙에 따라 반복되는 데이터가 많아 스프레드시트 형식으로 표현할 수 있고 입력 도구로 사용하기에 안정적인 환경을 제공하기 때문입니다. 특히 후자는 엑셀에서 다른 데이터를 참조해 계산을 수행한 결과를 데이터로 저장하고 다른 포멧으로 변환해 사용하게 됩니다. 한편 엑셀 자체만으로는 실시간 데이터 검증이 어렵습니다. 또 관계형 데이터를 아주 원시적인 방법으로 입력해야만 합니다. 이 단점은 상당히 치명적이어서 현대 게임 개발의 생산성을 유의미하게 떨어뜨리는 요소입니다만 현업에서 이를 크게 문제삼는 분위기는 아닙니다. 관성에 가깝게 게임 개발팀이 처음에 신경쓰는 주제 중 하나일 뿐입니다. 맨 처음에 엑셀 컨버팅과 데이터 밸리데이팅을 개발해 놓습니다. 이 파이프라인 자체를 의심하지는 않습니다.

기술 이해 수준이 서로 다른 사람들: 게임 개발팀에는 기술 이해 수준이 서로 다른 사람들이 섞여있습니다. 엔지니어들이라도 근현대의 동향이나 패러다임에 관심이 있는 분들도 있고 그렇지 않은 분들도 있습니다. 아티스트들 역시 좀더 기술적인 이해가 있는 분들이 있고 그렇지 않은 분들도 있습니다. 극단적인 경우에는 팀에서 공기처럼 사용하는 형상관리도구에 이해가 없는 경우도 있습니다. 이런 경우에는 공동작업을 위한 최소한의 기술적인 작업을 대신 수행하는 스탭을 따로 두기도1) 합니다. 이런 개발팀에서 게임디자이너들 역시 기술 이해 수준이 상대적으로 낮고 또 리소스 파이프라인에 대한 이해도 얕은 편입니다. 이들 중 기술이나 파이프라인을 이해하는 사람들이 팀 간 통역가 역할을 담당하곤 합니다. 하지만 모든 의사소통이 통역가를 거치기 어렵기 때문에 종종 통역가 없이 팀 간에 중요한 협의가 이루어지기도 합니다. 분명 상황을 이해하고 판단하고 협의했다고 생각했지만 다른 이해를 가진 사람이 조금 뜯어보면 필요 없는 일이거나 기계가 대신할 수 있는 일을 떠맡아 오기도 합니다.

상황

모든 엑셀파일의 키 칼럼에 모든 엑셀파일에 고유한 숫자 아이디를 부여해 달라는 요구: 한번은 이미 협의된 결정사항으로 모든 엑셀파일의 키 칼럼에 모든 엑셀파일에 대해 고유한 숫자를 기입해 달라는 요구를 받았습니다. 모든 데이터 행(Row)마다 고유한 식별자를 사용하자는 것은 꽤 괜찮은 아이디어처럼 보였습니다. 로그에 기록해 두면 문제가 있는 데이터를 찾아내기 쉬워질 겁니다. 엑셀을 제외한 다른 도구에서 특정 데이터를 가리키기도 편해보입니다. 다만 방법은 문제입니다. 처음에 상상한 것은 엑셀파일의 모든 데이터 행마다 '적당한 방법'으로 GUID를 부여할 모양이라고 생각했습니다. 만약 그렇다면 심지어는 게임디자이너들에게 공지할 필요도 없었습니다. GUID가 굳이 엑셀파일에 기입될 필요도 없었으니까요.

하지만 방법이 문제였습니다. 엔지니어들은 GUID가 엑셀파일의 첫번째 칼럼에 기입되길 원했고 그러려면 지금까지 사용하던 아이디와 같은 형식이어야 했으며 그러려면 숫자여야 했습니다. 최소한의 규칙을 포함한 거의 무작위에 가깝게 발급되는 GUID와 달리 연속된 숫자를 이와 같은 용도로 사용하려면 별도의 일련번호 발급 규칙이 필요하고 엑셀파일을 편집하는 모든 인간 - 주로 게임디자이너 - 들이 매번 행을 추가할 때마다 일련번호 발급 규칙에 따라 번호를 생성하고 이 번호가 일련번호 발급규칙에 맞는지, 중복되지는 않는지를 검사해야 합니다. 기계가 검사과정을 단순하게 만들어줄 수는 있겠지만 중앙집중형 형상관리도구를 사용하는 이상 온갖 예상할 수 있는 문제가 있었습니다.

제안

만약 GUID와 유사한 개념을 차용해 장점을 취하고 싶지만 그 형식이 숫자이기를 원한다면 개별 지역 엑셀파일에서는 이전과 같이 더 작은 숫자를 사용하고 이들은 서로 다른 엑셀파일간에 충돌할 수 있게 두고 각 파일마다 별도로 정해둔 큰 숫자를 더해 GUID처럼 사용할 수도 있을 겁니다. 이전까지는 엔지니어들로부터 받은 요구사항만 있었습니다만 상황에 실 작업자들 - 주로 게임디자이너 - 의 요구사항을 추가했습니다. 실 작업자들은 이전과 완전히 동일하게 다른 엑셀파일에서 아이디로 사용하는 숫자에 관심 끄고 같은 파일 안에서만 숫자가 겹치지 않도록 신경쓰는 겁니다. 대신 각각의 엑셀파일마다 더해줄 큰 숫자를 어딘가 적어놔야 하고 이 규칙을 정의한 다음 적어도 이 규칙만이라도 기계가 수행하고 검증하도록 구현해 달라고 요구해야겠다고 생각을 정리했습니다.

하지만 GUID의 개념을 설명하고 방법을 제시하는 것으로는 설득할 수가 없었습니다. 이유는 근본적으로 무작위로 아이디를 생성해내는 방식이 충돌을 막을 수 없기 때문인데 충돌할 가능성이 아주 낮다고 생각하기는 했지만 이를 즉석에서 수학적으로 설명할 수가 없었습니다. 때문에 이를 통한 설득에 실패했습니다. 대신 엔지니어들이 요구한 큰 숫자 형식을 사용하기로 하고 일련번호 체계를 만들었습니다. 파일 별로 큰 숫자로 된 일련번호를 부여하고 각 지역 엑셀파일을 변환할 때 미리 정해놓은 큰 숫자를 더해 GUID처럼 사용하는 겁니다. 지역 엑셀파일을 변환할 때마다 더해 줄 큰 숫자는 별도 엑셀파일에 기입해놓고 사용하며 새로운 엑셀파일을 추가할 때 이 파일에 일련번호 대역을 추가해야 합니다. 처음에 의도한 것과는 좀 달랐지만 각 작업자가 지역 엑셀파일에서 아이디로 사용하는 숫자 대역 이외에는 신경을 끌 수 있고 엔지니어들은 숫자로 된 고유 식별자를 얻었습니다. 물론 새 파일을 추가할 때마다 새로운 큰 숫자 대역을 미리 약속한 엑셀파일에 추가해야 하는 작업이 남아있지만 이건 새로운 파일을 추가할 때 한 번 씩만 생기므로 그럭저럭 합의할 만한 수준이었습니다.

교훈

결국 위에 이야기한 방식으로 개발했습니다. GUID를 도입해 엔지니어가 원하는 바를 얻고 실 작업자들은 완전히 신경 끄길 원했으나 그 수준에 도달하지는 못했습니다. 개념은 동일했지만 아이디가 중복될 가능성이 충분히 낮음을 설명하기는 어려웠습니다. 근본적으로 기술적 이슈에 대한 게임디자이너들의 지위와 이해가 낮아 협의보다는 단순히 설명을 반복하는 수준에 머물렀습니다. 쉬운 선택으로는 아무것도 안 하고 그대로 놔두면 엔지니어도 편하고 우리도 생전 처음 보는 일련번호를 정의하는 엑셀파일을 이해하려고 노력하지 않아도 됐을 겁니다. 그냥 전통적인 방법으로 모든 엑셀파일에 걸쳐 중복되는 아이디를 찾아내는 수고를 모두가 매번 하게 되고요. 제 입장에선 그게 그리 나쁜 것은 아닙니다. 망가지는 것은 팀의 생산성이지 제 작업의 복잡도는 아닙니다. 또 개인적으로 이 체계를 유지한 채로 제 작업 자체만 단순하게 만들 방법은 얼마든지 있습니다.

하지만 사람이 기계가 더 잘하는 일을 더 비효율적이고 부정확한 방법으로 개발과정은 물론 서버를 중단하는 그날까지 반복하는 일은 막아야 했습니다. 사람은 그러라고 만들어진 것이 아닙니다. 우리들 각각의 기술 이해 수준이 다를 수 있지만 각자가 전문성을 발휘할 수 있는 분야가 있고 거기에 집중할 수 있게 만들어야 합니다. 고작 데이터 전체에 행마다 고유한 숫자 하나를 얻자고 모든 작업자들을 매번 이상한 규칙에 얽매이게 만들어서는 안됩니다.

종종 파이프라인 전체를 고려하지 않으면 이상한 결정을 하게 됩니다. 작은 불편함 하나를 추가하려 할 때 이 결정이 개발팀 전체에 미치는 영향을 충분히 감안해야 합니다. 또 잘 모르는 결정을 해야 할 때는 그 자리에서 직접 결정하지 말고 다른 사람들에게 물어보는 것도 좋은 방법입니다.

· 2019-08-18 20:43

7월에 읽은 책 정리

두달 전과 같은 상태. 분명 6월에도 책을 안 읽진 않았지만 6월 한달 내내 책 하나를 붙들고 결국 6월 안에 읽질 못해 6월에 읽은 책은 한 권도 없게 돼버렸습니다. 그래서 지난 5월에 이어 이번에도 한달 건너뛰고 읽은 책을 정리해봅니다.

왜 서양이 지배하는가

왜 서양이 지배하는가는 몇 년 전에 읽은 적이 있었습니다. 그리고 다시 시간이 지나다가 문득 제가 그 책을 읽고 사람들에게 책에서 제시하는 생각을 설명할 수 없을 것 같다는 생각이 들었습니다. 그래서 한번은 앞마당 쓸 듯 처음부터 다시 읽어가야겠다 생각하다가 별 계획도 없이 집어들었습니다. 1회차때는 -6000년부터 시작하는 고대 역사에 시작부터 질려버렸습니다. 이유는 제가 인식할 수 있는 가장 오래된 역사는 -4000년부터였기 때문입니다. 제가 인식할 수 있는 역사에 이런 제한이 있던 이유는 20년 넘게 반복해온 시드마이어의 문명 때문입니다. 항상 역사는 -4000년에서 시작했기 때문에 그보다 오래된 역사를 고민해본 적이 없었습니다. 또 그렇게 오래된 시대의 생활수준을 추정하는 과정을 보고 이게 말이 되는 이야기인지 시작부터 의심했었습니다. 그래서인지 책을 끝까지 진행하고 나서도 저자의 의도를 이해한 것인지 확신할 수가 없었습니다. 그렇게 2년이 지난 후에 다시 같은 책을 집어들었고 이번에는 마치 서양 팀과 동양 팀의 문명을 플레이하는 기분으로 다시 읽기 시작했습니다.

지난번에 따라가기 힘들었던 고대 역사가 지나가고 중세로 접어들기 시작하면서 지리적 차이에 의한 동서양의 차이가 보다 제 자신에게 익숙한 역사적인 사건들로 명백히 다가오기 시작했습니다. 결국 세계는 누가 먼저 초원지대를 통해 교역을 시작하고 누가 먼저 범 지구적인 탐험을 시작하며 또 누가 먼저 신대륙에 도달하는지에 따라 희비가 갈리게 됐다는 이야기로 이해했습니다. 오히려 동양 혹은 제가 태어난 극동아시아 지역은 태평양과 유라시아대륙이 가로막고 있던 덕분에 고대와 중세의 서양 중심 역사에 뚜렷하게 등장하지 않았고 그 덕분에 지금의 모습대로 남아있을 수 있던 것이 어닐까 하는 생각을 했습니다. 그 댓가로 동아시아가 서양 중심의 역사에 편입되는데 큰 댓가를 치러야 했고요. 사실 이 책은 왜 서양이 지배하는지를 설명하는 책은 아니라고 생각합니다. 긴 기간 동안의 역사를 동서양을 구분하는 관점으로 설명하고 끝에 가서는 그래서 이 세계의 미래를 대하는 방법을 제시합니다. 물론 이 책을 읽는 저는 책 기준에 미래의 사람이고 저자가 예측한 미래의 일부를 이미 알고 있어 저자의 예측이 일부 빗나가기 시작했음을 알고 있습니다. 하지만 저자가 지난 역사를 거울삼아 미래를 이야기하는 방법에는 의미가 있다고 생각합니다. 또 1회차에는 와닿지 않았던 인류가 새롭게 도달할 생활수준은 인류를 어떻게 바꿔놓을지 마치 문명 테크트리 끝에 있는 '미래기술' 다음의 테크트리를 상상하는 과정이 흥미로웠습니다.

위안위안의 비눗방울

위안위안의 비눗방울삼체 3권의 한역을 기다리다 못해 문득 류츠신의 단편 낱권을 팔길래 한권만 사볼까 싶어 읽기 시작했습니다. 비눗방울을 아주 오래전에 불어본 적이 있었는데 그걸로 끝이었습니다. 하지만 그 비눗방울에 집중하면 이런 이야기가 될 수도 있다는 생각을 했습니다. 짧게 웃고 다음으로 넘어갑니다. :)

제2회 한국과학문학상 수상작품집

어쩌다 이 책을 읽게 됐는지는 잘 모르겠습니다. 가끔 책을 제목과 표지만 보고 덥썩 사보기도 하는데 그런 플로우라면 여간해선 선택하지 않을 법한 제목과 표지였습니다. 책 제목은 텍스트로는 '제2회 한국과학문학상 수상작품집'이지만 책 제목에는 큼직하게 '관 내 분 실'이라고 적혀있을 뿐이었습니다. 도대체 무슨 책인지 표지만으로는 예상할 수가 없었고 또 저게 무슨 말인지 맥락 없이는 예상하기 쉽지 않았습니다. 시작은 잘 기억나지 않지만 일단 읽기 시작한 다음은 기억에 남았습니다. '관내분실', '우리가 빛의 속도로 갈 수 없다면'의 두 이야기를 때마침 작가님의 단행본이 나올 시점 직전에 읽게됐습니다. 어떤 이야기는 훌륭했고 어떤 이야기는 좋았고 또 어떤 이야기는 별로였습니다. 고도로 발전한 인공지능이 탑제된 안드로이드 이야기는 손쉽게 안드로이드가 아닌 인간의 이야기가 돼버립니다. 또 다른 인간의 부류를 안드로이드에 빗대어 이야기할 수 있기는 하지만 짧은 기간 안에 같은 방법을 쓴 이야기를 여럿 만나서인지 휼륭하게 받아들이지는 못햇습니다. 인간처럼 생각하고 인간처럼 행동하지만 설정만은 안드로이드인 등장인물들은 보는 내내 불편했습니다. 마치 안드로이드라고 설정해놓으면 그게 인간처럼 생각하더라도 크게 이상하지 않을거라는 믿음이 머릿속까지 전달되는 것 같은 기분이 들어 좀 곤란했습니다. 어쩌면 이런 생각이 이런 설정의 안드로이드에 대한 내 언캐니밸리가 아닐까 하는 생각도 들었습니다. 이런 이유로 안드로이드 껍데기를 뒤집어 쓴 사람이 등장하는 이야기들에 대한 평가는 낮습니다. 하지만 맨 처음 만난 두 이야기는 마치 시리도록 쨍한 느낌이 들었고 단행본 출간 즈음에 이 이야기들을 먼저 접해서 다행이라는 생각이 들었습니다.

우리가 빛의 속도로 갈 수 없다면

바로 앞에 정말 우연히 제2회 한국과학문학상 수상작품집과 마주치지 않았다면 이 책을 대하는 태도가 지금같지는 않았을 겁니다. 아마도 류츠신의 짧은 이야기를 기웃거릴 때와 비슷한 물음표 가득한 모습이었겠죠. 하지만 작품집을 먼저 읽은 덕분에 우리가 빛의 속도로 갈 수 없다면은 이견 없이 덥썩 집어들었습니다. 작품집에서 읽은 두 이야기는 마치 체렌코프효과처럼 빛나는 푸른색 같은 느낌이었습니다. 이야기를 끝까지 따라간 다음 잠깐 멈추고 한숨을 푹 쉬게 만든 비슷한 느낌을 받은 두 글이 같은 작가님의 글이었습니다. 여러 이야기가 서로 다른 감정을 만들어냈지만 이 책에서 오랫동안 기억에 남은 한 줄은 '분리주의에 맞서는 삶을 살다'였습니다. 이야기를 따라가다가 각각의 세상이 생겨난 역사에 다다라보니 저 짧은 표현에 담긴 무게를 상상했습니다.

증명된 사실

서점 사이트에서 우리가 빛의 속도로 갈 수 없다면을 구입한 독자들이 함께 구입한 책 목록에 나타났습니다. 또 언제부터인지 모르겠지만 타임라인에 작가님의 계정이 있었습니다. 바로 앞에 읽은 이야기의 감정이 채 사라지기도 전에 이어서 증명된 사실을 읽기 시작. 이번 달에 단편을 읽기 시작한 계기는 문득 삼체 3권이 왜 안나오나 기다리다가 같은 작가님의 단편이라도 읽어볼까 하는 것이었습니다만 아주 신나지는 않았습니다. 그래서 딱 한 권을 읽고 그만뒀지요. 그러다가 제2회 한국과학문학상 수상작품집으로부터 시작한 단편들은 글마다 개성이 뚜렷해서 따라가기 벅찰 지경이었습니다.

'증명된 사실'은 군더더기 하나 없이 짧은 글 안에 이렇게 이야기가 깔끔하게 떨어질 수도 있다는 것을 체험하게 해 주었습니다. 이야기 하나를 읽을 때마다 한참이나 멈춰 멍하니 생각해보게 만들었습니다. 이 책에서는 '희박한 환각'을 읽고 나서 유난히 더 오래 생각해보게 됐습니다. 특히 일몰 시각이 지나 퇴근하는 자전거 위에서 검은 하늘을 비춘 탄천을 바라보면서요. 만약 인간 말고 신이라는 것이 있다면 어떤 모양일까 생각해본 적이 있었습니다. 가령 ''처럼 사람이 죽기를 반복하다 보면 언젠가 도달하게 되는 모양이나 거리에서 자주 마주치는 토가를 걸친 백인남성의 모양과는 거리가 멀지 않을까 싶었습니다. 그런에 이 이야기에 나온 모양과 그런 과정이라면 그걸 신이라고 받아들일 수 있지 않을까 싶었습니다. 또 내가 그 사람이라면 결코 거부할 수 있을 것 같지도 않았습니다. 그러면 그 다음의 존재는 과연 무엇일까에 대해서도 한동안 출퇴근 자전거 위의 생각 거리였습니다. 한편 증명된 사실에서 그렇게 연구소를 빨리 닫아야 했을지 생각해보기도 했습니다. 가령 진실을 숨기고 연구를 계속해나가는 범죄 이야기라든지요. 이런 저런 생각을 하느라 한참이나 신났습니다.

지난 두 달에 읽은 책을 정리해놓고 보니 그럼 8월에 뭘 읽고있을지 좀 뻔한 구석이 있군요. :)

· 2019-08-18 20:27

스트라바 기업 홍보 챌린지

스트라바는 달리기, 자전거, 수영 같은 스포츠 활동을 기록하는 소셜 네트워크 서비스입니다. 대략 스트라바가 처음 서비스를 시작할 지음에는 스포츠 트래킹 앱들은 활동을 기록해서 로컬에 보여주는 수준이 대부분이었습니다. 그러다가 내 활동 뿐 아니라 내가 팔로잉하는 다른 사람들의 활동을 볼 수 있고 다른 사람들과 기록을 비교할 수 있게 되면서 스트라바로 옮겨가기 시작했고 저 역시 사이클미터라는 앱을 사용하다가 스트라바로 넘어가게 됐습니다. 정확한 계기는 사이클미터 구독 기능에 '스트라바에 동기화'가 생겼는데 문득 '이럴 바에는 그냥 스트라바를 사용하면 되지 않나?' 하는 생각이 들어 스트라바를 사용하기 시작했습니다.

챌린지와 트로피케이스

스트라바에는 '챌린지'라는 기능이 있는데 지정된 기간 안에 조건을 만족하면 디지털 뱃지를 줍니다. 챌린지는 자전거 기준으로는 월 별로 '디스턴스 챌린지', '클라이밍 챌린지', '그란폰도'가 있는데 각각 한 달 동안 얼마나 많은 거리를 달리는지, 얼마나 많은 누적고도를 오르는지, 그리고 한 번에 100킬로미터 이상 달리는지로 성공 여부를 판정합니다. 제 기준에서는 디스턴스 챌린지는 한 달에 1250킬로미터를 달려야 하는데 시간을 내가 쉽지 않아 지금까지 딱 한번 성공했습니다. 반면 클리이밍 챌린지는 상대적으로 짧은 시간 동안 동네에 있는 오르막2)을 반복해서 오르면 금방 누적고도를 채울 수 있어 웬만하면 매달 달성하려고 하는 편입니다.

챌린지에 성공하면 디지털 뱃지를 받게 됩니다. 소수 기업 이벤트는 실제 뱃지를 주기도 하는데 그 중 하나는 라파 페스티브 500인데 이 챌린지에 성공하면 정말로 집으로 뱃지를 배달해 줍니다. 나머지 디지털 뱃지는 스트라바의 내 프로필 하위에 있는 '트로피케이스'에서 볼 수 있는데 이 트로피케이스는 스트라바 유료 사용자에게만 표시됩니다. 유료 사용자가 아니라면 프로필 페이지에 최근에 성공한 챌린지 다섯 개 까지만 뱃지가 표시되고요. 게임 만드는 입장에서도 교활하지만 효과적인 유료화 전략이라고 생각합니다. 가끔 열심히 달성한 챌린지 기록이 뒤로 밀려나 디지털 뱃지조차 볼 수 없게 되면 슬슬 스트라바에 돈을 내야 할지 곰곰히 생각해보게 되니까요. 물론 스트라바의 유료 기능이 이것만 있는 것은 아닙니다.

기업 홍보 챌린지

2019년 들어서 기업 홍보용 챌린지가 늘어나기 시작했습니다. 상반기에 제 트로피케이스에 보이는 것만 일곱개입니다. 위 그림은 최근에 달성한 챌린지 여덟 개를 트로피케이스에 표시한 것인데 여덟 개 중 다섯 개가 기업 홍보 챌린지입니다. 기업 홍보 챌린지는 난이도가 낮은 챌린지를 제시하고 챌린지에 성공하면 별도 등록 페이지로 보내 간단한 개인정보를 입력하면 자사 웹사이트에서 사용할 수 있는 할인쿠폰이나 기간제한이 있는 할인금액을 부여하고 이후 메일링 리스트에 등록해 광고에 사용합니다.

올해 상반기 기준으로 이런 챌린지들이 꽤 늘어나면서 트로피케이스가 약간 거슬리기 시작했습니다. 위에서 소개한 대로 스트라바는 스포츠 활동을 하는 사람들의 소셜 네트워크 서비스라서 다른 사람들이 어떤 챌린지를 시도하는지도 볼 수 있습니다. 그러다 보면 자연스럽게 다른 사람들이 참여 중인 기업 홍보 챌린지에 참여하게 되고 손쉽게 챌린지에 성공합니다. 이전의 스트라바 챌린지는 어느 정도 마음 먹고 계획적으로 집중해야만 달성할 수 있는 수준이었지만 기업 홍보 챌린지는 난이도가 낮게 구성되기 때문에 아무 생각 없이 참여 버튼을 클릭하기만 해도 이미 챌린지에 성공해버리는 경우도 있습니다. 때문에 챌린지를 대하는 자세가 좀 달라진다는 느낌을 받기 시작했습니다. 이전에는 시간 상 애초에 달성하기 어려운 '디스턴스 챌린지'는 시도하지조차 않았는데 이제는 챌린지에 뭔가 나타나면 읽어보지도 않고 일단 등록하기 시작한 겁니다. 덕분에 챌린지 성공 여부 역시 별로 신경 쓰지 않게 됐습니다.

또 트로피케이스를 대하는 태도 역시 달라졌습니다. 이전에는 트로피케이스는 제법 노력한 결과가 나열되어 있었습니다. 가령 작년 라파 페스티브 500 뱃지에는 영하 10도일 때 밖에서 추위에 벌벌 떨며 물통과 배터리와 폰이 얼어 아무것도 할 수 없는 가운데 달성했고 비슷하게 각 트로피들마다 이야기가 있었습니다만 기업 홍보 챌린지 트로피는 내가 대체 뭘 해서 저걸 달성했는지 이야기가 없었습니다. 덕분에 이 트로피케이스가 나에게 의미있긴 한 것인지 현타가 몰려오기도 했고 스트라바 유료 구독을 취소할 여러 계기 중 하나가 되기도 했습니다.

게임 만드는 사람 입장에서

스트라바 기업 홍보 챌린지와 트로피케이스를 대하는 제 태도의 변화를 보면서 게임의 도전과제가 변화해 온 과정을 생각해봤습니다. 맨 처음 도전과제라는 메커닉을 게임에 집어넣기 시작했을 때 이는 꽤 의미있는 메커닉이었지만 시간이 지나면서 그냥 게임을 진행하기만 했을 뿐인데도 온갖 도전과제가 달성되는 모습을 보며 도전과제하기보다는 그냥 내 아무 행동에나 화면 구석에 토스트를 표시하는 스팸 같은 것으로 인식해버렸고 그대로 몇몇 비슷한 게임을 접한 다음에는 완전히 무시해버리기 시작했습니다. 이에 게임들은 다시 각각의 도전과제에 보상을 부여해 의미를 유지하고는 있지만 이미 마음은 떠나버린 다음이었습니다.

아마도 기업 홍보 챌린지는 유저들로부터 구독요금을 받아서는 충분히 풍족하지 않을 것임에 분명한 스트라바의 지갑에 큰 도움을 줄 겁니다. 또 많은 사용자들이 반응하고 있고요. 아마도 기업 입장에서도 챌린지를 달성한 정도의 고객들이라면 정말로 자사 웹사이트를 관심을 가지고 둘러볼 가능성이 높은 사람들인 것도 맞습니다. 서로 이익일 법한 행동이지만 또 한편으로는 스트라바의 주요 시스템 중 하나인 챌린지를 조금씩이나마 소모하고 있고 장기적으로 챌린지의 역할과 의미는 이전과 크게 달라질 가능성이 높다고 생각합니다. 여러 게임의 도전과제 시스템이 그랬던 것처럼요.

윈도우 재설치

처음으로 윈도우 버전 뒤에 연도가 붙기 시작하던 시대부터 윈도우 재설치를 해 왔으니 더이상 새로울 것도 없는 윈도우 재설치입니다만 한때 조롱 대상이던 윈도우 재설치도 이미 십 수년 전부터는 더이상 그 이전만큼 불안하지 않았고 현대에 가까워질수록 훌륭해졌기 때문에 윈도우 재설치 경험이 특별해졌습니다. 몇 주 전에 어처구니없는 실수로 멀쩡한 윈도우 시스템의 보안을 망가뜨렸다는 의심을 강하게 한 끝에 윈도우를 재설치했습니다. 재설치를 미뤄온 것 치고는 모든 과정이 부드럽게 진행되었고 업데이트가 좀 오래 걸리고 있다는 점을 제외하면 사용하는 소프트웨어 대부분을 편리하게 설치할 수 있었고 데이터 백업과 복원에는 완전히 신경을 끌 수 있었습니다. 또 한편으로는 패스워드를 저장하는데 사용하는 '1Password'의 인스톨 과정이 충분히 안전하지 않을 수 있다는 의심을 하게 됐습니다.

멍청한 행동

시작은 몇 주 전에 PC에서 사용하려고 엑스박스원 컨트롤러를 구입한데서부터 시작합니다. 이전에는 유선컨트롤러를 사용해 왔기 때문에 무선컨트롤러가 특별한 기술을 사용한다고 생각하지 않았습니다. 그냥 데스크탑에 블루투스 동글이 달려있으니 사다가 인식시키면 사용 가능할 거라고 예상했고 별다른 조사 없이 컨트롤러를 주문했습니다. 주문할 때 동글이 포함된 버전과 포함되지 않은 버전이 있었고 의심 없이 동글이 없는 버전을 구입했습니다. 그리고 컨트롤러를 인식시키려고 보니 블루투스 디바이스 목록에는 나타나는데 그걸 선택해서 인식시키려고 하면 매뉴얼에는 없는 일련번호 입력 과정이 나타났습니다. 매뉴얼에는 그냥 인식된다고 적혀있었거든요. 어지간한 블루투스 디바이스의 흔한 일련번호 몇 개를 입력해 실패한 다음 뭔가 잘못됐다는 것을 깨달았습니다.

일이 잘못되려면 한번에 다 같이 잘못된다는 이야기가 딱 맞는 것이 문제를 해결하기 위해 구글링을 시도했는데 애초에 구글링 방향이 잘못되어 있었습니다. 여전히 제 머릿속에서는 아니 다 똑같은 블루투스인데 왜 전용 동글을 사용해야 하는건지 의심하고 있었고 구글은 제가 보고싶은 결과를 보여줬습니다. 몇몇 사람들이 이미 가지고 있던 블루투스 동글에 엑스박스 컨트롤러를 인식시킬 수 없는지 묻고 뭔가 시도한 기록을 읽기 시작했습니다. 몇몇은 블루투스 동글 드라이버를 최신으로 업데이트한 다음 시도해보라고 이야기하고 있었고 합당한 시도방법이라고 생각한 저는 드라이버를 검색하기 시작했습니다. 그런데 블루투스 동글은 구입한지 거의 10년이 되어 가는 물건이라 이미 제조사 웹사이트에서는 사라지고 없었습니다. 이쯤 되면 시도를 그만뒀어야 하는데 왜 그랬는지는 몰라도 출처가 불분명한 드라이버를 모아두는 사이트에까지 흘러가서 출처가 불분명한 실행파일을 실행하고 말았습니다. 그리고 아무일도 일어나지 않았고 저는 결국 마이크로소프트 엑스박스 컨트롤러 전용 어뎁터를 따로 주문해 문제를 해결했습니다. 그리고 시간이 지났습니다.

보안 문제

십 수년 이전부터 윈도우는 이전 시대에 조롱받던 것처럼 불안정하지 않습니다. 또 쉽사리 오동작하지도 않습니다. 때문에 내가 컴퓨터를 사용하며 시도하는 대부분의 행동은 항상 신뢰할 수 있는 응답을 보여줬습니다. 그런데 지난 몇 주 사이에 예상하지 않은 동작이 나타나기 시작했습니다. 가령 브라우저 윈도우가 사라져버린다든지 암만 내가 멍한 상태였다고 해도 내가 윈도우를 잠근 적이 없었는데 윈도우가 잠겨 핀코드를 요구한다든지 하는 상황이 일어났습니다. 처음에는 내가 조작했는데 마이크로치매같은게 일어나서 내 행동을 까먹은 것이 아닐까 의심했습니다만 상황이 낮은 빈도로나마 반복되자 뭔가 문제가 있다고 생각하기 시작했습니다. 하지만 윈도우 디펜더 오프라인 검사는 아무것도 발견하지 못했고 아무래도 윈도우를 재설치하는게 좋지 않을까 싶었지만 또 재설치과정의 귀찮음이 몰려와 이를 미루고 있었습니다. 그러다가 하루는 별 생각 없이 윈도우 디펜더의 전체검사를 실행했는데 이번에는 윈도우 디펜더가 또 아무 메시지 없이 그냥 사라져버린 겁니다. 이쯤 되면 재설치를 더이상 미룰 수 없다고 판단했습니다.

부드러운 재설치과정

백업은 신경쓸 필요가 없었습니다. 재 모든 작업파일은 1테라바이트짜리 원드라이브에 전부 들어갈 수 있는 크기이고 당연히 모두 원드라이브에 올라가 있었습니다. 아무때나 로컬 스토리지가 파괴돼도 잃을 것이 없거나 거의 없었습니다. 그냥 상자에서 윈도우 USB메모리를 꺼내다가 꽂고 재시작해 설치를 시작했습니다. 설치는 수동으로 기존 파티션을 모두 삭제하는 시간을 포함해 십 몇 분 안에 끝났습니다. 설치과정에 마이크로소프트 계정을 입력할 때 좀 불편했습니다. 모든 패스워드는 1Password로 관리한 이래 가능한 긴 무작위 문자열로 되어 있었습니다. 덕분에 윈도우 재설치, 아이폰 재설정 등의 작업에는 처음 한번 암기가 거의 불가능한 문자열을 띄엄띄엄 입력해야만 하는 일이 생깁니다. 원타임패스워드를 설정하고 있었으므로 이게 어떻게 처리될지 걱정했는데 윈도우 설치 프로그램이 아무 문제 없이 원타임패스워드를 물었고 별 일 없이 인증과정을 통과할 수 있었습니다. 최소한의 드라이버는 자동으로 설치됐고 주요 유틸리티는 Chocolatey를 통해 인스톨했습니다. 하지만 과연 이들은 신뢰할 수 있는 출처로부터 입수한 소프트웨어를 패키징하고 있는 걸까요. 거기까지는 의심하지 않기로 했습니다. 재설치를 시도하고 나서 채 1시간이 지나기 전에 이전에 사용하던 환경 거의 대부분을 돌려놓을 수 있었습니다.

1Password의 훌륭하지 않은 설치과정

어지간한 소프트웨어의 인스톨과정은 딱히 문제될 것이 없었습니다. 엔비디아 드라이버 다운로드과정이 좀 거지같다고 생각했지만 딱 그거 하나만 문제였으니 넘어가기로 했습니다. 그런데 패스워드 관리 프로그램인 1Password 설치과정은 좀 문제가 있다고 느꼈습니다.

1Password는 패스워드를 다운로드하기 위해 몇 가지 정보를 요구합니다. 서버이름, 이메일, 시크릿키, 마스터패스워드. 그런데 이미 설치된 상태에서 마스터패스워드를 입력할 때는 시큐어데스크탑을 통해 입력하는 버튼이 있었습니다. 제조사의 설명3)에 따르면 키보드 입력을 가로채는 소프트웨어가 설치되어 있을 때 시큐어데스크탑을 통해 입력하면 이를 어느정도 우회할 수 있다고 합니다. 딱히 불편해보이지도 않아서 항상 마스터패스워드를 시큐어데스크탑을 통해 입력해 왔는데 1Password를 처음으로 인스톨하고 처음으로 등록하는 과정에는 이를 사용할 수가 없었습니다. 윈도우를 설치하고 얼마 지나지 않은 상황이기는 했지만 내 시크릿키와 마스터패스워드를 그냥 데스크탑에서 그냥 텍스트박스에 그냥 키보드로 입력해야 하는 상황이었습니다. 만약 그 상태에서도 이미 키보드 입력을 도난당하고 있다면 1Password 설치 후에 시큐어 데스크탑을 통해 패스워드를 입력해봤자 헛짓입니다. 그렇다고 이 과정을 진행하지 않고서는 내 모든 패스워드에 접근할 수 없으므로 하는 수 없었습니다. 결국 1Password를 무사히 인스톨했지만 아쉬움이 남았습니다.

교훈

윈도우 재설치는 예상과 달리 부드럽게 끝났지만 결국 두어시간을 낭비했습니다. 급한 마음에 출처가 불분명한 드라이버 소프트웨어를 설치하려고 시도했고 그 상태를 몇 주 동안이나 방치했습니다. 덕분에 어디까지 문제가 생겼을지 파악할 수도 없을 상황에 처했을 가능성이 생겼습니다. 이번 경험으로 정말 정말 출처가 확실하지 않은 어떤 실행파일에도 절대로 손대지 말아야 한다는 교훈을 얻었습니다. 또한 이런 상황에서 소프트웨어를 테스트할만한 샌드박스 환경 같은 것이 있어야하지 않나 하는 생각을 해봤습니다. 또 윈도우 재설치 후에 맨 먼저 설치해야 하는 소프트웨어는 패키지매니저나 크롬브라우저, 엔비디아 드라이버가 아니라 원패스워드라는 것도 알게됐습니다. 인스톨과정이 완벽하지 않다면 운영체제 설치 후 맨 처음으로 설치하는 수밖에 없겠죠.

· 2019-06-29 12:14

오래된 항목 >>

1)
과거의 전설에 따르면 SVN 커밋만 전담하는 스탭이 있는 팀도 있었다고 합니다.
2)
성남시는 서울 방향을 제외한 나머지 모든 방향의 경계에 자전거로 오르기 좋은 포장된 오르막이 있습니다.
blog/start.txt · 마지막으로 수정됨: 2019-04-08 20:32 저자 neoocean