Tuesday, May 22, 2018

끔 약을 먹어야 하는 사람에게는 모를 수 있지만 매일 약을 먹어야 하는 사람들은 오늘 아침에 약을 먹었는지 안 먹었는지 잊을 때가 있다. 잠에서 깨어 습관적으로 먹고 잠들었다가 꿈에서 먹었는지 진짜 먹은 것인지 모를 때도 있다. 그래서 요일별로 7개의 칸이 나누어진 약 상자에 넣어두고 오늘 요일에 해당하는 약이 있는지 없는지를 확인하고 먹을 때도 있다. 저녁 약을 먹어야 한다면 비슷하다. 저녁에 약을 먹었는지 아닌지 알지 못할 때가 있다. 요일별로 나누어진 약상자를 가지고 다니면 좋지만 일주일에 한번 일주일 약을 챙기는 것도 귀찮을 때가 있다. 요일 별 상자도 좋지만 저녁에 먹어야 하는 약이 4개 정도라면 4칸 혹은 아예 나누어지지 않은 약 상자를 가지고 다니면서 오늘 저녁 약을 먹었는지 아닌지 확인할 수 있는 방법은 없을지 생각해 본다.


습관적으로 매일 아침, 저녁으로 먹어야 하는 사람에게 약을 먹으라고 알람을 울리는 것도 좋은 방법이다. 지금 하고 있는 일이 있어서 나중에 먹어야 겠다 마음먹고는 잊어버리는 경우도 있고 방금 전에 먹었는지 아닌지도 확실하지 않을 때도 있다. 요일별로 나누어진 약 상자라면 오늘 요일을 확인하면 되지만 만약 요일별로 있지 않을 때도 방법이 있다. 약 상자에 약을 넣을 때 7의 배수로 넣는 것이다. 7개, 14개 약이 작다면 21개 이런 식으로 넣는다. 저녁 약을 잘 먹어오다가 목요일 저녁에 약을 먹었는지 아닌지 모르겠다면 남아 있는 약을 세어 보고 만약 3개, 10개가 남았다면 먹은 것이고 4개, 11개가 남았다면 목요일 저녁에 약을 아직 먹지 않은 것이다.

알약의 개수는 데이터이다. 몇개가 남았는지는 우리에게는 그냥 주어지는 데이터일 뿐이지만 요일 정보와 결합이 될 때 우리가 무엇을 했는지 아닌지를 알 수 있는 개인에게 관련된 정보가 되는 것이다. 데이터는 단순한 숫자 혹은 문자열일 수 있지만 데이터가 개인의 상황 혹은 조건과 결합이 되면 개인에게 의미가 있는 정보가 될 수 있다. 알약의 예에서 3개, 10개가 남은 것은 단순한 데이터이지만 이것이 목요일이라는 정보 그리고 매일 약을 먹는 사람이라는 상황이 결합이 되면 개인이 약을 저녁에 먹었는지 아닌지 알 수 있게 된다. 데이터란 무엇이며 데이터가 가지는 힘, 그리고 그 힘이 우리에게 어떻게 다시 영향을 줄 수 있는지를 이해하는 것은 정보의 바다에서 최소한 익사하지 않기 위한 구명정이라 생각하게 된다.


Datum Era ...

데이터는 번역하면 단순하게 자료로 번역되지만 단순히 조금 부족한 느낌이 들기 때문에 외래어로 데이터로 사용할 것이다. 데이터의 어원은 라틴어 datum 그리고 datum 은 '주다'는 뜻의 dare 에서 유래되었다. 무엇인가를 설명하기 위한 기초적인 자료 누군가를 설득시키기 위해 필요한 모든 자료들을 데이터라고 말하고 수리적으로 계산하기 위한 대상이기도 하다. 예를 들어 건물의 높이를 측정하기 위해서 높이가 몇 m 이고 넓이는 어느정도라고 말하는 대부분의 숫자들은 우리가 건물의 규모를 이해하기 위해 필요한 숫자들이다. 그리고 그 숫자를 통해서 건물의 가치가 어떻게 된다와 같은 논리적인 내용을 이어가기 위한 내용들이다. 쉽게 이해할 수 있지만 실제로 데이터는 숫자 그리고 간단하게 교환될 수 있는 문자 정도로 구성되어 있다. 대부분이 숫자이고 컴퓨터의 발달로 문서 내용이나 사진, 음원 등과 같은 거의 모든 내용들은 0, 1 로 이루어진 숫자로 표현이 가능하게 되었다.

간단하게 모든 데이터는 숫자로 표현할 수 있게 되었다고 설명할 수 있지만 중요한 것은 이렇게 표현된 숫자들이 우리의 삶에서 중요한 의사결정을 하는데 무엇을 평가하거나 계획하는데 필요한 숫자들이라는 점이다. 조금 과장해서 이 세상이 0, 1 로 이루어졌다고 할 수 없지만 0, 1에 의해 세상이 움직일 수 있다고는 말할 수 있을 것이다. 영화 매트릭스 (1999) 는 우리가 살고 있는 세상도 실제로 존재하는 곳이 아닌 데이터로 이루어진 곳이며 우리는 그것을 인식하지 못하고 살아갈지 모른다고 이야기해주었다. 소위 빨간약 / 파란약의 선택에서 파란약을 먹는다면 예전처럼 살던 모습대로 살아가고 빨간약을 먹게 된다면 매트릭스 그리고 데이터가 만들어 놓은 실제 세상에서 싸우게 되는 것이다. 파란약을 먹고 망각과 평온의 세상을 살게 될지 빨간약을 먹고 자각과 고통의 세상을 살 것인지 선택하게 된다. 매트릭스처럼 모든 것이 데이터로 이루어진 세상에 허구로 살아가는 존재는 아니지만 우리가 무의식 속에서 흘러가는 수많은 데이터들을 인식하게 되는 순간 세상은 우리가 생각하는 것만큼 데이터의 주인은 우리가 아니라는 사실을 알게 될 것이다. 그래서 영화 매트릭스가 우리에게 전해주고 싶은 이야기는 허구 / 실체의 구별이 아니라 우리가 얼마나 많은 데이터를 만들어 내고 개인정보들이 흘러 나오지만 우리는 그 데이터의 흐름을 인식하지 못하고 있는지 알려주고 싶었는지 모른다.

매트릭스 (1999)

다시 정리하자면 데이터는 의미없는 숫자나 정보까지도 모두 다 포함한다. 그러나 데이터가 조건 condition 과 상황 circumstance 과 결합이 되면 개인정보가 될 수 있다. 앞서 설명한 것처럼 약의 개수는 단순한 데이터지만 약을 매일 먹는다는 조건과 약을 7의 배수로 상자에 넣은 상황이 결합되면 오늘 약을 먹었는지 아닌지 알 수 있게 된다. 우리가 민감하게 생각하는 개인정보 privacy 란 데이터와 조건, 상황이 포함된 결과물이다. 모든 데이터가 개인정보는 아니지만 모든 개인정보는 데이터라고 말할 수 있다. 개인정보의 저장, 전달 및 가공의 단계를 고려해서 우리가 만든 데이터들이 얼마나 많은 개인정보로 전달 가공될 수 있는지 생각해 볼 필요가 있다.


Data Tsunami ...

개인은 얼마나 많은 데이터를 만들고 있고 내가 만든 데이터는 모두 나의 개인정보가 되는지 그리고 내가 만들지 않은 데이터가 나의 개인정보가 될 수 있는가 고민하지 않는다. 특별히 내가 만드는 데이터가 많지 않을 것이라는 생각과 함께 내가 만든 데이터가 중요하지 않을 것이라고 생각하기 때문이기도 하다. 그러나 결론부터 말하면 데이터의 가치는 중요하지 않다. 다시 강조하지만 데이터가 어떻게 개인정보를 포함해서 어떻게 중요한 정보가 될 수 있는지는 조건과 상황에 따라서 달라진다. 냉전시대 인터넷이 중요하지 않은 시절에는 인터넷을 연결할 수 있는 정보 그리고 관련된 데이터는 분명 중요하다 못해 극비 데이터였지만 이제는 누가 가지라고 해도 쓸모없는 데이터이다.

가장 많은 실수 중 하나는 데이터를 만들 때부터 중요한 데이터 / 중요하지 않은 데이터와 같이 가치 판단을 해서 선별해서 만들려고 한다는 점이다. 그러나 데이터는 많으면 많을수록 좋고 데이터가 가지는 조건과 상황을 같이 고려한다면 우리에게 중요한 정보들이 만들어 질 수 있다. 따라서 데이터의 초기 생성 단계부터 데이터의 가치를 판단한다는 것은 다이아몬드 원석을 찾으면서 반짝이는 것만을 찾는 것과 비슷하다. 컴퓨터나 전자 기기가 많이 보급되지 않은 시절에는 어떤 데이터를 수집할 것인지 선택해야지만 한정된 자원으로 원하는 데이터를 모을 수 있었지만 이제는 그럴 이유가 없어졌다. 움직이지 않아도 내 곁에 있는 핸드폰은 끊임없이 내가 어디에 있고 (정확하게 핸드폰이 어디에 있고) 필요하다면 어떤 소리가 나는지 어떤 뉴스가 전달되는지 끊임없이 데이터를 주고 받는다. 그리고 그 데이터 안에는 이미 가공되어 가치가 있다고 생각되는 정보들도 많이 전달된다. 예를 들어 가치있다고 믿는 뉴스가 나에게 전달되었을 때 읽지도 않고 그냥 지워버렸다면 지워버리는 행동 안에도 사용자는 아주 잠깐동안 읽었다 (실제로는 읽지 않았다) 지워버렸다는 데이터가 발생하고 이 데이터를 사용자는 해당 뉴스에 대해서 관심이 별로 없다는 정보를 얻을 수 있다. 반복적으로 스포츠 뉴스에 대해서 읽지 않고 지워버린다는 행동들이 데이터로 모이게 된다면 해당 사용자는 스포츠에 대한 관심이 크지 않다는 정보를 얻게 된다.


이처럼 우리는 별 생각없이 움직이고 반응하고 행동하지만 이 모든 행동들은 핸드폰과 같이 수많은 센서들이 있는 기기를 통해서 상상하지도 못하는 수많은 데이터들이 만들어진다. 다른 예를 들어보자. 반대로 거의 모든 차량에 있는 영상기록장치 (블랙박스) 는 데이터인가 개인정보인가 묻는다면 거의 대부분은 개인정보라고 대답할 수 있지만 해당 영상기록이 누구의 것인지 모르게 인터넷에 그냥 떠돌아 다닌다면 그것은 개인정보이기 보다는 그냥 단순한 데이터라고 말하는 것이 더 정확할 것이다. 누군지 알 수 없고 그리고 특별한 사고 기록이 있어서 더 이상 알 필요가 없이 정상적으로 잘 주행한 영상기록이라면 개인정보의 가치를 가지지 않을 것이다. 다만 대부분의 영상기록 데이터는 누구의 것이라 내용을 알기 때문에 바로 '누구의 것'이라는 소유의 조건이 포함되어 개인정보가 되는 것이다.


Privacy manufacturer ...

소위 음란물 영상에서 사람들이 중요하게 생각하는 것이 무엇일까? 이 질문에 정확하게 대답하기 위해서는 음란물을 탐독하고 그들의 세상에서 접근하는 것이 중요하지만 그렇게 하고 있다고 해도 그렇고 그것을 위해 탐독한다고 해도 좀 그렇다. 간접적으로 알 수 있는 방법은 사람들이 많이 찾는 제목이나 내용을 통해서 찾아보는 것이다. 개인의 성적 흥분만을 위해서 음란물이 필요하다면 누군지 알 수 없이 알몸만 나온 영상으로 성적 행위를 보여주면 될 것같은데 음란물을 탐독하는 제목은 이상하게 등장인물에 더욱 집중하는 경향을 보인다. 인종별로 분류하거나 얼굴이 나왔는지 심지어 영상에서는 알 수 없는 두사람의 관계에 대해서도 친절하게 설명한다. 음란물의 가장 큰 문제는 결국 영상 데이터가 누구인지 특정될 identify 수 있는 개인정보가 된다는 점과 정확한지 알 수 없는 그리고 알 필요도 없는 수많은 잘못된 조건과 상황이 결합되어 막기 힘든 개인정보가 되어버린다는 점이다. 음란물이 사회적 문제가 된다는 공감대를 가지는 가장 큰 이유는 개인정보 뿐만 아니라 그 개인정보가 전달 속도와 힘이 무섭다는 점이다.

음란물은 아니지만 우리는 수많은 개인정보를 만들어 내고 있다. 개인은 단순히 데이터를 만들고 있다고 생각하지만 인터넷은 충분히 그런 데이터를 개인정보로 만들고 있다. 우리가 사용하는 많은 인터넷 서비스들은 다른 의미에서 우리가 의미없이 만들어내는 데이터들을 개인정보로 가공하는 공장과도 같다. 예를 들어 인스타그램 Instagram 에 수많은 사진들을 올린다. 올리는 순간에는 단순히 데이터지만 개인의 계정을 통해서 전달되기 때문에 자연스럽게 바로 개인정보가 된다. 반대로 개인을 특정하기 힘든 광고 목적으로 만들어진 계정에서 올린 데이터라면 개인정보라고 보기 어려운 데이터도 존재할 것이다. 자기 가족의 사진을 올리는 경우를 자주 볼 수 있다. 공개로 올린 단란한 사진들 속에는 누가 아버지고 누가 어머니고 누가 자식인지 모두 보여준다. 나쁜 맘을 먹는다면 아이들을 납치하고 정확하게 몸값을 요구해야 하는 부모가 누구인지 알 수도 있고 아버지를 납치하기 위해 자식이나 부인에게 가족여행 당첨되었다며 유인할 수도 있을지 모른다. 심지어 인스타그램을 포함한 많은 소셜 미디어는 태그를 통해서 더 특정할 수 있다. 예를 들어 #지역맘 과 같이 특정 지역이 포함된 그리고 육아를 시작한 인물들을 찾아내기 쉬울 뿐만 아니라 오히려 그렇게 찾도록 스스로 태그를 올리기도 한다. 마음만 먹는다면 특정 지역에 육아에 몰두하는 엄마를 찾을 수도 있고 자식이 어떻게 생겼는지도 쉽게 파악할 수 있다.


반대로 자신이 소비하고 즐기는 생활 수준을 자랑하고 싶을 수도 있다. 물론 그렇게 자랑하는 것이 나쁘다고 할 수 없지만 자랑하고 싶은 소비 수준뿐만 아니라 삶의 동선까지도 쉽게 노출시킨다. 어느정도 그런 부분을 노출시킬 수 밖에 없기도 하고 광고나 홍보 목적으로 사용한다면 적극 노출되게 해야겠지만 개인의 삶까지도 광범위하게 노출시켜야 하는지 의문스럽다. 오히려 그렇게 노출되는 범위는 결국 피해볼 수 있는 위험을 높여주기 때문이다. 미국의 정보기관에 들어간 기쁨에 자신의 계정에 정보기관 신분증을 공개된 계정으로 올린 정말 이해할 수 없는 사람이 있었다. 물론 그 기쁨과 함께 기관 신분증 이미지를 올린 것만으로 바로 해고되었지만 종종 출입증과 같이 중요한 정보를 가지는 데이터를 아무렇지 않게 올리는 사람들이 있다. 친절하게 자신의 사진이나 이름 정도는 지우고 올리기에 개인정보가 아닌 단순히 데이터라고 할 수 있지만 동일 기관에 대한 출입증 이미지만 모아보면 위조 신분증을 만들 수 있는 좋은 데이터가 될 것이다.

개인정보의 노출 위험성을 인식하고 조심하는 대표적인 경우가 택배 도착의 기쁨을 알리는 사진일 것이다. 열심히 자신의 주소, 이름 등 개인정보가 될 것 같은 부분을 열심히 지우고 올리지만 정작 바코드는 너무도 선명하게 보인다. 바코드를 읽어서 해당 택배 회사에서 송장번호로 검색하면 생각보다 많은 개인정보가 나온다는 것을 알게 된다. 열심히 숨겨온 개인의 주소도 노출될 수 있고 개인이 올리는 지역의 정보을 모아보면 개인의 동선 뿐만 아니라 조금 더 노력하게 된다면 개인 거주지까지도 알아낼 수 있다. 가끔 #삭제예정 이라는 태그로 올라오는 공개 사진들을 보면 자신의 계정에서 삭제되면 정말로 인터넷에서 삭제될 것이라고 믿는지 모르겠다. 여러가지 목적이 있지만 이처럼 인스타그램에서 공개된 사진들이 거의 실시간으로 수집된다. 그래서 #삭제예정 이지만 이미 #공개완료 라는 사실도 인식해야 한다.


What machine does better ...

인공지능 Artificial intelligence 이 관심의 중심에 놓이면서 항상 재미처럼 붙는 주제가 바로 인공지능이 빼앗아갈 인간의 직업이다. 어떤 직업은 인공지능에 의해서 사라지게 될 것이다. 어떤 분야는 인공지능이 인간보다 더 잘할 것이라고 예상하지만 아직 제대로 존재하지 않는 인공지능의 직업을 사라지게 할 것이라고 말하기도 한다. 인간의 관심사에는 어떤 직업 job 이 사라지게 되는지가 중요할 것이다. 인공지능의 시대에는 선택하지 말아야 하는 혹은 선택할 수 없는 직업이라고 생각하기 때문이다. 그러나 인공지능 더 현실적으로 보아서 직업의 관점이 아니라 작업 work 더 구체적으로는 작업내용 workflow 의 관점에서 생각해 볼 필요가 있다. 알파고 AlphaGo 가 보여준 것처럼 인간과 기계의 대결에서 누가 이기는지가 중요한 것이 아니라 기계가 인간보다 더 잘하는 내용을 찾아야 하는 것이다. 그리고 기계가 잘하는 작업내용을 통해서 기계에게 양보해야 할 내용은 무엇인지 인간이 계속 해야만 하는 것이 무엇인지 결정해야 한다.

우선 인간의 의사 결정 decision making 과정이 정말 논리적이고 합리적인지 생각해 보자. 회사의 최고 경영자나 나라의 지도자 아주 사소한 결정을 내려야 하는 위치에 있는 어떤 사람들도 자신의 선택이 항상 합리적이라 모든 이들이 이해하고 따를 수 있기를 바라지만 현실의 많은 부분은 그렇지 않다. 처음부터 인간의 의사 결정 과정이 정말 합리적인지 의심해야 한다. 많은 자료를 모으고 어떤 결정이 가장 최선의 결과를 얻을 수 있는지에 대해서 고민하지만 종종 인간의 결정은 아주 사소한 그리고 감정적인 선택을 하게 되는 경우를 종종 보게 된다. 단적으로 모든 인간이 객관적 자료에 의해 합리적으로 모두 결정하게 된다면 누군가를 설득시키는 작업도 회사에서 마케팅의 역할도 크게 필요하지 않을 것이다. 그러나 합리적 판단을 위한 충분한 자료 혹은 데이터를 얻지 못하는 경우도 존재하고 잘못된 데이터 혹은 목적을 가지는 데이터를 통해서 잘못된 선택을 하게 되기도 한다. 경영을 잘하기 위해서 도입되는 경영정보시스템 MIS: Management Information Systems 부터 의사결정지원 Decision making support 시스템은 사실상 인간이 좀 더 합리적으로 판단하기 위해서 필요한 데이터를 어떻게 잘 모을 수 있는지 도와주는 것이다. 그러나 결국 마지막 선택은 그 모든 데이터와 분석에도 불구하고 인간이 한다.

출처: IoT for all - https://www.iotforall.com

그래서 모든 직업에서 이루어지는 구체적인 작업내용 workflow 상에서 데이터를 모으고 분석하는 단계는 기계가 인간보다 더 잘할 수 있다고 생각했다. 그러나 현실적으로 그 모든 데이터들은 대부분 인간이 입력해야 하기 때문에 어떤 데이터를 입력하게 되는지도 인간의 의도 bias 가 들어가게 되었다. 그래서 인간은 데이터를 입력하기 보다는 무엇인가 가치판단이 포함되어 선택된 정보가 입력되기 쉬었다. 즉, 인간에게 가치있어 보이는 정보를 만들기 위한 수많은 데이터들은 인간이 보고, 듣고 (혹은 느끼고) 판단하고 필요한 정보로 만들어서 가공해서 만드는 작업을 중요하게 생각했다. 수많은 데이터가 아닌 인간이 한번 분석해준 정보로 판단하고 싶은 것이다.

예를 들어 '요즘 유행하는 혹은 앞으로 유행할 패션은 어떤 것인가?' 라는 질문을 받게 된다면 패션 종사자들은 사람들이 입고 다니는 옷들부터 전문가들의 의견 등 다양한 데이터 혹은 정보를 얻어 결론을 내고 싶을 것이다. 그러나 만약 분석하려는 인간이 자신이 자주 다니는 장소만으로 선택해서 이 지역이 유행하면 전국적으로 유행할 것이라는 가정을 통해서 한 지역만을 조사하거나 인터넷에 나오는 많은 패션 사진을 찾아 보지만 실제로 자신의 기호 혹은 선호도 preference 없이 객관적으로 사진을 모을 수 있을지 그리고 그 결과가 어떨지는 알 수 없다. 그러나 기계가 이런 작업을 수행하게 한다면 최근 패션에 관련된 사진들과 소셜 미디어에 올라오는 사람들의 일상 속에서의 패션들을 모아서 옷에서 나타나는 수치들 예를 들어 원피스의 경우 위와 아래가 구분되는 비율이나 옷의 형태뿐만 아니라 일상에서 어떤 옷을 입고 어떤 장소에 자주 간다와 같이 옷 뿐만 아니라 관련된 배경정보들까지도 포함해서 포괄적인 데이터를 분석할 수 있다. 뿐만 아니라 거의 실시간으로 데이터를 추가할 수 있기도 하고 인간이 궁금해 하는 부분들도 바로 분석할 수 있는 능력을 가진다. 기계가 인간보다 충분히 잘 할 수 있는 부분은 데이터가 많아진다면 그 데이터를 모아서 인간이 원하는 질문에 대답하기 위한 시간이 절약된다. 예를 들어 야외에 나갈 때 선호하는 패션은 무엇인지 물어본다면 인간은 다시 야외라는 조건을 포함해서 해당되는 데이터를 다시 보아야 하겠지만 기계에게는 그런 데이터를 처리하는 시간뿐만 아니라 결정적으로 인간이 제시할 수 있는 다소 모호한 그리고 광범위한 대답 예를 들어 "내년에는 무채색의 정장 스타일..." 과 같은 내용이 아니라 기계는 명도 채도 그리고 스커트의 길이는 어떤 비율과 같이 수치화 된 quantified 새로운 정보를 제시할 수 있을 것이다.

A P P A R E L – Clothing in the age of data accumulation and machine learning.
원문: https://meson.in/2s1GV4x

결국 기계가 인간보다 더 잘 할 수 있는 작업내용을 생각해보면 역시 데이터를 얻어내고 분석하고 이를 수치화 하는 작업을 우선 생각할 수 있다. 역시 좋은 목적으로 기계의 수집, 분석 능력을 사용할 수 있지만 개인이 인지하지 못하고 만들어 내는 수많은 데이터를 개인정보로 만들어 내는 작업도 분명 기계가 탁월하게 할 수 있을 것이다. 예를 들어 특정 인물이 어떤 곳에 살고 있고 가족 관계가 어떻게 되고 아이는 어떤 유치원에 다니는지 우리는 수작업으로 관음증 환자처럼 찾아내야 하는 작업들을 기계는 아주 쉽게 그리고 죄책감도 거의 가지지 않고 쉽게 할 수 있을 것이다.


Such a trivial data ...

대한민국은 주민등록 번호 하나로 수많은 개인정보를 얻어 낼 수 있는 무서운 국가 중 하나이다. 물론 국가가 국민을 쉽게 통제할 수 있는 수단으로 그리고 어떤 측면에서는 범죄자를 쉽게 찾아낼 수 있는 좋은 수단이라고 변호할 수 있지만 범죄자를 위해서 수많은 비범죄자의 개인정보까지 들춰질 권리까지 국가가 가져야 한다고 주장할 수 없다.

한국에서는 수많은 카페나 공공장소에서 인터넷을 쓸 수 있다. 예를 들어 카페에서 접속할 수 있는 소위 비밀번호 (정확한 의미에서 비밀번호는 아니다.) 를 입력하면 무선인터넷을 사용할 수 있다. 그러나 그와 함께 카페의 내부 인터넷에 들어갈 수 있다 혹은 공유기에 접속한다는 말이다. 그리고 공유기 관리를 위한 페이지에 접근할 수 있다. 공유기의 관리자 암호/패스워드가 기본값이라면 카페 관리자가 아니라도 쉽게 관리화면에 들어가서 수많은 설정을 바꿀 수 있다. 이론상 (그리고 현실상) 외부에서도 접근이 가능하다는 말이다. 그리고 공유기 설정값이 기본값으로 되어 있다면 수많은 공유기에 접근해서 원하는대로 설정을 바꿀 수 있다. 가장 쉽게 DNS 를 바꾸는 것을 생각할 수 있다. DNS 는 인터넷의 주소록이다. [ 인터넷의 주소록 DNS 서비스 ─ 기반기술에 대해서... ] 예를 들어 은행 업무를 위해서 yourbank.com 을 입력할 때 해당 도메인 이름이 어디에 있는 서버인지 알려주는 주소록이 DNS 인데 이 DNS 에서 yourbank.com 가 자신들이 만든 은행처럼 보이는 곳으로 알려주어 접근하게 한다. 잘못된 DNS 정보로 들어간 사용자는 자신은 은행업무를 본다고 생각하지만 가짜 은행 사이트에서 자신의 개인정보를 입력하게 된다.

일반 가정집에서 사용하는 공유기에 중국 (124.94.30.252) 에서 들어오려고 한다. 공유기의 비밀번호 기본값을 통해 들어오려는 시도를 쉽게 볼 수 있다. 

실제로 내부 인터넷에 들어간다는 것은 외부에서 접근하는 것과는 차원이 다른 많은 부분들이 노출될 수 있다. 대표적으로 CCTV 도 들어가서 볼 수 있다. 인터넷을 제공하는 많은 곳에서 이처럼 자신의 공유기를 제대로 관리하지 않거나 CCTV 도 쉽게 기본값으로 들어갈 수 있는 곳을 자주 볼 수 있다. 종종 이런 이야기를 해주지만 대부분의 반응은 "별로 중요한 것도 없는데요." 혹은 "뭐 볼게 있겠어요." 라고 크게 무서워하지 않는 경우가 대부분 이었다. 그러나 대한민국이 아닌 다른 나라에서 이런 가능성에 대해서 이야기하면 상당 부분 놀라는 경우가 많았고 싱가포르와 같은 나라는 자신의 인터넷을 공개하거나 이렇게 위험에 노출시키면 안되도록 규제하고 있다. 권한이 없는 혹은 주인이 아닌 사람이 들어와서 영상 자료를 보는 것이 무엇이 문제일까 싶지만 개인적으로 생각한 창의적인(?) 생각은 노트북 쓰는 사람의 화면이나 키보드 입력 모습을 통해서 충분히 암호도 알아낼 수 있을 것이라고 생각했다. 실제로 공공장소에서 전혀 모르는 사람이 누구인지 그 사람의 소셜 미디어 계정을 찾아내는 방법은 다양하다. 책에 적어놓은 학번 / 이름 을 통해서도 알 수 있고 옆자리에 앉아 로그인하는 화면에서 이름이 누구인지 알 수도 있고 가끔 거울이나 물건 등에 반사되어 보이기도 한다. 지하철에 서서 가면 앞에 앉아 있는 사람이 무엇을 하고 있는지 시력이 좀 더 좋다면 그 사람의 계정 이름도 알아낼 수 있다.


유명한 사람도 아니고 내 개인정보가 뭐 중요하겠어 라고 생각할 수 있다. 대규모 서버에 공격하는 사람들도 많지만 의외로 전혀 들어올 이유가 없는 아주 사소한 서버에도 공격하는 사람들이 많다. 우리가 느끼지 못할 뿐이지 정말 정체를 알 수 없는 수많은 공격자들은 개인 서버인지 그냥 가정집 공유기인지 생각하지 않고 무조건 공격하는 경우를 자주 볼 수 있다. 개인적으로 관리하는 곳들은 모두 공유기에 접근하려다 실패하는 내용을 보지만 만약 공유기 관리 화면에 기본값으로 접근할 수 있다면 아마 공격자들이 의도한대로 접근해서 자신들이 원하는 작업을 했을 것이다.


How to protect privacy ...

무선랜을 사용하기 위해서 무선랜 비밀번호를 입력한다고 말하지만 정확히 이는 비밀번호는 아니다. 내가 접근하고 싶은 무선랜 이름 (SSID: service set identifier) 를 선택하면 네트워크 보안 키 를 입력하라고 나온다. 소위 '무선랜 비밀번호'는 키 key 이다. 간단하게 설명하면 우리가 입력하는 '비밀번호'는 무선랜을 써도 좋다는 허락을 위한 암호가 될 수도 있지만 사용자의 기기와 공유기가 데이터를 주고 받을 때 전달되는 데이터가 암호화가 될 수 있는 열쇠와 같은 것이다. 예를 들어 내가 데이터를 보낼 때 가장 먼저 공유기에 전달이 되어야 하는데 공유기에 전달되기 전에 내가 보내는 데이터를 '미리 정한(공유한) 키 Pre-Shared Key' 를 통해서 암호화를 해서 보내니 공유기 너는 이 키를 가지고 암호화한 데이터를 풀어서 받아 라고 규칙을 정한 것이다. 간단히 정리하면 사용자의 기기와 공유기 사이에 전달되는 데이터가 암호화하기 위한 것이다. 그래서 공개되어 '비밀번호가 없는' 무선랜은 그 사이에 전달되는 데이터가 암호화되지 않은 상태로 전달된다는 것이다.

데이터가 암호화되고 암호화되지 않은 것에 대해서는 조금은 민감할 필요가 있다. 옛날에는 안방에서 엄마가 전화하고 있으면 다른 방에서 수화기를 몰래 들어 통화를 감청(?)할 수 있었다. 마찬가지로 두 사람이 통화하는 중간 어딘가 똑같이 신호를 받아서 들을 수 있다면 같은 집 수화기를 통하지 않고도 들을 수 있다. 인터넷 데이터도 마찬가지이다. 암호화되지 않은 데이터는 어딘가에서 똑같이 받을 수 있다. 즉, 전달과정에서 동일한 데이터를 여러 곳에서 얻게 된다. 암호화가 되지 않았다면 내가 보내는 데이터 - 채팅 내용, 비밀번호, 주소록 등 - 모든 데이터 내용이 그대로 알아 볼 수 있는 형태로 얻게 된다. 그러나 만약 보내는 A 와 받는 B 둘만이 어떤 키를 가지고 있고 A 가 그 키를 통해서 보내는 데이터를 암호화해서 보내고 B 는 받은 데이터를 미리 공유된 키를 가지고 암호를 풀면 (복호화) 아무리 중간에 데이터를 얻게 된다고 해도 중간에서 데이터를 몰래 볼려고 한 사람은 암호화되어 알아낼 수 없는 데이터만 얻게 되는 것이다. 그래서 공개된 무선랜에 접속해서 인터넷을 쓴다는 것은 최소한 같은 공유기 내에 있는 사람에게는 암호화되지 않은 데이터를 누군가 몰래 볼 수 있다는 말이다.


인터넷에서 데이터 암호화는 상당히 중요하다. 그래서 이제는 거의 모든 웹서비스는 기본적으로 데이터 암호화 기술을 적용해서 사용하게 한다. 인터넷 주소창에 http:// 로 시작하는 주소와 https:// 로 시작하는 주소를 볼 수 있다. http:// 는 공개된 무선랜이라 생각하면 된다. https:// 는 사용자와 서버 사이의 데이터를 암호화해서 전달한다고 생각하면 된다. 다시 말해 http:// 를 보고 입력하는 정보들은 전달되는 과정에서 암호화되지 않은 상태 그대로 누군가에 의해 노출될 수 있다. 반면 암호화가 되어 있는 서버 사이에서는 내가 입력한 정보들은 암호화가 되어서 중간에서 데이터를 가져가도 암호화된 데이터만 가져가 제대로 된 키가 없다면 제대로 된 정보를 얻어낼 수 없다. 그래서 암호화된 주소 https:// 를 가지는 웹서비스만 사용하도록 습관을 가지는 것이 좋다. 조금만 관심을 가지고 보면 알겠지만 대부분 주요 서비스들은 암호화는 기본이고 데이터 암호화 통신의 중요성을 인식하고 있는 단체를 중심으로 개인들도 암호화를 쉽게 그리고 비용없이 적용할 수 있도록 도와주고 있다. 가장 대표적인 곳이 Let's Encrypt 이고 개인도 간단한 설정만으로 적용할 수 있다. 그리고 많은 기업들은 데이터 암호화가 기본이 될 수 있도록 필요한 비용과 지원을 하고 있다. 그만큼 우리가 일상적으로 사용하는 데이터가 누군가에 의해서 탈취당해서 악의적으로 사용될 가능성, 아무리 '사소한' 개인의 데이터라고 해도 보호되어야 한다는 철학을 가지고 있는 것이다.


데이터 암호화가 적용되었는지 아닌지 살펴보면서 인터넷을 돌아다니다 보면 대한민국의 주요 기업들은 여전히 부족하다는 것을 알게 된다. 심지어 인터넷이 사업의 중심인 회사들조차도 자신의 서비스를 제대로 된 암호화를 제공하지 않고 서비스하는 것을 볼 수 있다. 알 수 없는 회사의 심오한 경영 철학이 있다면 할 수 없지만 개인 데이터의 중요성을 누구보다 잘 알고 있고 그런 사용자의 데이터가 어떤 기업보다 기업 경영의 자산인 기업에서 이렇게 보호되지 않는 웹서비스를 한다는 것은 조금 이해하기 어렵다. 뭔가 이해할 수 없는 심오한 그리고 기술적 진보로 암호화되지 않은 인터넷 환경에서도 개인의 데이터를 보호할 수 있는 최첨단 기술이 존재할 것 같지도 않다.


Less better than more ...

보안에서 한가지 원칙은 자신의 민감한 정보들은 자주 입력하지 않는 것이다. 예를 들어 브라우저에 비밀번호를 저장하고 들어갈 때마다 브라우저에서 비밀번호를 넣어주는 것과 들어갈 때마다 사용자가 비밀번호를 입력하는 것 중에서 어떤 것이 더 안전한지 묻는다면 대부분 브라우저에 자신의 비밀번호가 저장되어 있다는 사실때문에 매번 비밀번호를 입력하는 것이 더 안전할 것이라고 생각할 수 있다. 그러나 사용자가 키보드나 터치스크린을 통해서 입력하는 과정에서 발생할 수 있는 시각적인 해킹 - 사용자가 키보드를 입력하는 움직임을 통해서 비밀번호를 알아내는 - 이나 키보드 로그 - 키보드의 기록값을 몰래 저장하는 - 를 통해서 유출될 가능성이 있다. 그러나 브라우저에 저장된 비밀번호를 바로 암호 입력부분에 넣게 된다면 최소한 키보드 입력에 의한 위험성은 줄일 수 있다. 그러나 여기에서 더 중요한 부분이 있다. 사용자가 기억할 정도의 비밀번호는 두가지 위험성을 동시에 가지고 있을 가능성이 높다. 첫번째는 자주 쓰는 비밀번호가 한두개 정도 심지어 아예 동일한 비밀번호를 사용하고 있다면 다른 웹서비스에서 유출된 비밀번호가 바로 다른 웹서비스에서 사용될 수 있게 된다. 그리고 사용자가 입력을 매번 할 수 있다는 것은 사용자가 기억하고 있다는 것이다. 사용자가 기억할 수 있는 memorable 비밀번호란 어느정도 유추할 수 있는 비밀번호일 가능성이 높다.


그래서 비밀번호는 아예 사용자가 모르는 것이 가장 안전할 수 있다. 문제는 자신의 비밀번호인데 자신이 모르고 기억하지 못한다는 것이 말이 안되는 소리같다. 브라우저가 비밀번호를 저장하고 있듯이 비밀번호만 대신 저장해서 관리해주는 프로그램도 가능하다. 접속하는 웹서비스에 맞는 사용자 이름 / 비밀번호를 저장하고 있다가 필요한 항목에 사용자 이름 / 비밀번호를 대신 입력해주는 것이다. 사용자가 입력할 필요가 없다. 만약 각 웹서비스 별로 비밀번호를 저장할 수 있다면 비밀번호를 기억할 필요도 없고 얼마든지 길게 그리고 복잡하게 비밀번호를 입력해도 괜찮다. 다만 비밀번호를 관리하는 프로그램을 실행시키기 위한 비밀번호는 기억하고 입력해야 할 것이다. 모든 웹서비스의 비밀번호가 모두 다르다면 한 웹서비스에서 유출된 자신의 비밀번호를 걱정할 필요가 없을 것이다. 유출된 비밀번호를 통해 다른 웹서비스에 들어갈 수 없기 때문이다. 좀 더 보안에 신경쓰기 위해서는 2차 인증 2-step verification 을 사용하는 것이다. [ 인터넷 보안 - 나의 계정을 지키자 ]

공용 컴퓨터를 자주 사용하기 보다는 정해진 기기에서만 접속할 수 있다면 좋을 것이다. 자주 개인정보가 입력될 수록 분명 노출될 가능성은 높아지기 때문이다. 공용 컴퓨터는 특히 어떤 악의적인 프로그램이 설치되어 있을지 데이터 전달을 위한 안전한 환경인지 확인할 수 없기 때문이다. 인증을 위한 다양한 방법을 제시하는 것도 좋다. 로그인을 하면 2차인증을 통해서 다시 한번 확인할 수 있지만 등록된 스마트폰에 간단한 메세지를 보내 로그인을 위해 확인하는 방법도 있고 확인 메일을 보내서 메일에 포함된 확인 주소를 통해서 인증해서 들어갈 수 있다. 모든 방법들은 사용자의 편의를 위한 부분도 있지만 만약 비밀번호가 유출되었다고 해도 본인을 인증할 수 있는 다양한 방법으로 본인이 아닌 다른 사람의 접근을 막기 위해서이다. 사실 2차인증도 완벽하게 안전하다고 말할 수 없다. 가장 창조적인 방법으로 이미 유출된 개인 아이디와 비밀번호를 통해서 접근을 하고 SMS 로 2차인증 번호를 보내주는 계정의 통신사 SMS 서버를 해킹해서 중간에 2차인증 번호를 받아서 이를 입력해서 들어간 경우도 있었다. 더 강화된 다양한 기술을 적용하지만 최소한 진짜 사용자가 접근하는 모든 방법을 그대로 수행한다면 들어가는 것을 막을 수는 없을 것이다.

그렇다면 이렇게 애쓰며 남의 계정을 들어가려고 하는 것일까? 그 속사정을 알수는 없지만 무엇인가 이득이 있기 때문에 그렇게 애쓴다고 할 수 있을 것이다. 가장 쉽게 볼 수 있는 경우는 광고용으로 사용하기 위해서 타인의 계정에 들어가는 것이다. 이미 만들어진 계정이고 자신의 신분을 효과적으로 숨길 수 있고 유출된 비밀번호라면 특별히 계정을 만드는 것보다 더 안전하기도 하기 때문이다. 그리고 자신의 계정으로는 쉽게 올리기 힘든 강도높은(?) 광고들도 올리고 계정이 삭제되더라도 괜찮기 때문이다. 그리고 여러개의 계정을 가진다는 것은 그만큼 접속 회수를 늘릴 수 있는 도구로 사용될 수 있다는 것이다. 이해할 수 없지만 좋아요 ♥ 가 많이 달린 개시물에 대해서는 알 수 없는 신뢰를 보인다. 다수가 좋아하는데 무슨 문제있겠어 혹은 다수가 인정하니깐... 과 같은 요소는 우리가 냉정하게 판단하기 보다는 처음부터 편향된 방향으로 생각하기 쉽도록 만들거나 특별히 큰 관심을 가지지 않는 부분도 거의 유일하게 신뢰할 수 있는 것은 다수의 긍정이라는 사실이라고 믿기 때문에 타인의 수많은 계정을 동원해서 좋아요 숫자만 올리는 것으로 광고효과가 좋다고 믿는 이들에게는 다수의 계정을 확보하는 것이 중요할 것이다.


Data is flowy ... Information is ...

우리가 인식하지 못한 상태에서 수많은 데이터를 만들어 내고 있고 그 데이터는 우리의 의도와는 다르게 사용되기도 한다. 그 모든 순간에도 생각해 볼 부분은 바로 데이터는 흐름이라는 점이다. 숫자 혹은 단순한 문자에 불과하다고 생각할 수 있지만 데이터는 흐름이 존재할 때 더 많은 가치를 가질 수 있는 가능성을 가지게 된다. 그래서 많이 사용되는 데이터일 수록 정보에 더 많은 영향을 줄 수 있는 가능성이 높고 그만큼 중요한 데이터가 될 수 있다. 그래서 데이터는 가치판단 뿐만 아니라 옳고 그른 판단을 내릴 수 없다. 숫자 3.141595 가 나쁘다라고 말할 수 없기도 하지만 심지어 '살인'이라고 해도 '가족을 지켜내기 위해서 강도를 살인하다' 라고 한다면 살인 하나만으로 나쁘다고 말할 수 없기 때문이다.

그만큼 데이터란 우리에게 알려주는 정보의 단편 혹은 아직 분석되지 않은 사실의 흐름일 뿐이지 그 데이터가 우리에게 좋다 나쁘다를 말해줄 수 없다. 문제는 데이터를 어떻게 관리하고 어떻게 통제하는가의 문제이다. 유리한 데이터만 보여주고 불리한 데이터는 감춘다고 해도 데이터는 흐름을 가지기 때문에 데이터의 흐름이 끊어진다면 우리는 그 데이터를 신뢰할 수 없게 된다. 큰 범위에서 의도적으로 조작된 데이터는 항상 스스로 잘못된 부분을 알려주기 마련이다. 일부러 감추려는 데이터는 그 흐름이 인위적으로 끊길 수 밖에 없기 때문이다. 이러한 데이터의 특징을 잘 모르고 감추기 위해서 데이터를 조작하거나 숨기는 것은 자신에게 유리한 / 불리한 데이터가 존재한다고 가치판단을 하기 때문이다. 조작된 데이터를 보여줄려고 한다면 차라리 아무것도 공개하지 않는 것이 숨기려는 자들에게는 최선의 선택이라는 것 아니면 모든 것을 그대로 밝히는 것이 가장 좋을 것이다.


그래서 데이터란 숨기고 보여주지 않으려고 하고 데이터의 관리를 통제하려고 하는 것보다 투명하게 공개하는 것이 중요하다. 그런 의미에서 있는 그대로의 데이터와 그 데이터의 흐름을 숨기지 않으려는 것을 투명성 transparency 라고 한다. 2000년대 말 사용자의 개인정보를 관리하는 기업 특히 구글을 중심으로 해서 데이터의 투명성이 중요하다고 강조했다. 구글 투명성 보고서 페이지에 소개된 투명성에 대한 간단한 설명은 다음과 같다.

"정부 및 기업의 정책과 조치가 개인정보 보호, 보안, 정보 이용에 미치는 영향을 보여주는 데이터를 공유합니다." 
"Sharing data that sheds light on how the policies and actions of governments and corporations affect privacy, security, and access to information."

결과적으로 공유 (제공) 하는 것은 데이터이다. 그 데이터의 성격은 정부 및 기업의 정책과 조치가 개인정보, 보안, 정보 이용에 미치는 영향을 보여준다. 간단하게 설명하면 정부가 요구해서 어떤 범죄 의심자의 위치, 지역이나 관심 분야 등과 같은 개인정보를 얼마나 제공했는지 그리고 그 이유는 무엇이였는지 알려주는 것이다. 그리고 어떤 이유에서 개인이 올린 데이터를 삭제했는지 서비스 장애에 의해서 개인이 제대로 데이터를 관리할 수 없는 순간은 없었는지 보고하는 것이다. 다양한 내용들이지만 서비스 전반에 걸친 모든 데이터의 흐름이 어떻게 진행되고 있는지 데이터의 흐름에 영향을 줄 수 있는 모든 상황 / 조건을 공개한다는 것이다. 중요한 점은 데이터의 흐름을 막거나 통제하는 것이 아니라 가급적 데이터가 잘 흐를 수 있도록 하고 그 과정에서 그 흐름을 막거나 바꿔야 하는 경우가 있었다면 그 이유와 결과를 보고하는 것이다. 따라서 투명성이란 개인정보가 어떻게 어디로 흘러갈 수 있는지 확인할 수 있는 중요한 부분이다.

NGO 단체인 국가투명성기구 (Transparency International‎) 는 국가의 청렴도 반대로 부패지수를 발표한다. 부정부패는 사회나 국가에서 인간을 억압하고 고통을 주는 요소라고 생각한다. 정직하게 생각하고 이를 행동하려고 해도 부정부패가 만연해 있다면 제대로 자신의 양심대로 살아가기 어려울 뿐만 아니라 대부분 희생자가 될 것이라는 점이다. 그리고 부정부패의 가장 큰 적은 부정부패의 상황을 제대로 밝히지 않고 숨기기 때문이라고 보았다. 그래서 국가의 투명성은 부정부패의 정도를 알려서 얼마나 많은 비정상이 존재하는지 알리는 것이라고 본다. 웹서비스도 비슷하다. 좋은 웹서비스가 존재하고 사용자들이 잘 사용해 유용하다고 해도 자주 서비스가 중단되거나 소수의 이익만을 위해서 운영되면 안되기 때문이다. 어떤 문제도 발생하지 않는다면 좋겠지만 완벽할 수 없다면 문제가 되는 부분을 공개하는 것이다. 그리고 문제가 되는 부분을 투명하게 사용자들이 알게 된다면 자신이 사용중에 발생한 문제가 자신의 문제인지 서비스의 문제인지 파악할수도 있을 것이다. 투명성이란 모든 이들이 사용하는 서비스 그리고 그 과정에서 발생하는 모든 데이터에 대한 흐름을 파악할 수 있도록 해줘야 한다는 생각이다.


GDPR ...

요즘은 메일함에서 GDPR 에 대한 메일을 쉽게 본다. GDPR 는 General Data Protection Regulation 의 약자로 유럽연합이 유럽전역을 우선 대상으로 적용하는 '일반 개인정보보호 규정'이라 부른다. 그러나 General 을 그대로 해석해 일반이라고 표현하지만 적극적으로 일반이 아닌 '모든' 혹은 '통상' 이라고 부르는 것이 더 정확할 것 같다. 다시 말해 특별한 조건이 붙지 않는다면... 데이터의 관리, 처리에서 발생하는 문제는 누구의 책임인지 그리고 그 역할에 대해서 정의내리고 있다. 물론 유럽연합에 적용되는 규정이기 때문에 타 지역에서 지키지 않아도 되겠지 싶지만 데이터는 흐름이고 그 흐름에는 특별히 국경의 의미가 존재하지 않는다는 점 그리고 전략적으로도 유럽은 상당수의 데이터의 관리 주체라는 점에서 실질적으로 유럽연합의 적용은 전세계의 적용이나 다름없다. 뿐만 아니라 이 규정에서는 우선적으로 '확장된 영토 적용 범위'를 통해서 지리적 구분이 중요한 것이 아니라 데이터의 흐름이 중요하다고 강조하고 있다.


GDPR 에서 제시하는 중요한 개념에는 Controller Processor 가 있다. Controller 는 '정보통제자' 혹은 '정보관리자' 라고 해석하기도 하고 Processor 는 '정보처리자' 혹은 '정보가공자' 라고 해석하기도 한다. 그냥 컨트롤러 / 프로세서 라고 그대로 쓰기도 한다. 한국어 번역의 기본 내용이 없어 그대로 컨트롤러 / 프로세서로 표현한다. 컨트롤러란 개인정보를 포함하여 개인이 만들어내는 데이터의 수집, 관리 그리고 광범위한 범위에서의 삭제까지 포함하는 데이터 / 개인정보를 어떤 방식으로 관리해야 하는지 책임의 범위를 확대했다. 개인 계정의 해킹에 의해서 노출된 개인정보라면 그 책임이 누구에게 있는지 범위를 확대하고 컨트롤러가 다양한 수단을 사용하려고 노력했지만 어쩔 수 없음을 증명하지 못한다면 컨트롤러의 책임이 있다는 점을 강조했다. 프로세서는 개인정보를 분석, 가공하는 과정에서 필요한 원칙과 역할을 제시했다. 그리고 무엇보다 어떤 과정에서 개인정보 유출되었을 때 적절한 통지를 해야한다. 예전에는 투명성을 통해서 데이터의 흐름을 파악할 수 있도록 했다면 GDPR 이후에는 개인정보가 유출되거나 남용되는 순간에 개인이 바로 알 수 있도록 알려야 한다. 그래서 개인정보의 주체는 권리가 확대되어 개인이 필요하다면 자신의 개인정보의 보관 삭제에 대한 적극적인 권리를 행사할 수 있도록 보장한다. 즉, 개인정보를 지우고 싶다면 개인정보를 보관, 관리, 가공하는 주체들이 이를 실행하고 이 결과를 개인에게도 알려야 한다.


이 정도 내용이라면 개인의 권리는 증가하고 기업은 불리해지는 것은 아닐까 생각하지만 중요한 점은 개인이라도 충분히 컨트롤러나 프로세서가 될 수 있다는 점을 생각해야 한다. 만약 내가 인터넷에서 우연히 얻은 개인정보를 통해서 분석을 한다고 해도 그 개인정보의 주체가 요구한다면 아무리 상업적 목적이 아니라도 그 요구를 들어주어야 한다. 심지어 개인 서버를 운영하고 있고 개인이 접속해서 남긴 다양한 개인정보 - IP 주소, 지역 등 - 에 대해서 수집하는 순간 개인도 컨트롤러가 바로 된다. 결국 기업 / 개인을 위한 규정이 아니라 어떠한 데이터를 얻고 처리하고 살아가야 한다면 이 규정에 적용받지 않을 수 없다는 것도 인식해야 한다. 결국 개인정보에 대한 중요성을 강조하게 되면서 수많은 데이터의 흐름에 대해서 민감하게 인식해야 하는 세상이 되었다.


Cannot be too sensitive ...

전세계의 거의 모든 데이터를 감시하고 테러와 같은 위험을 알아내서 미리 막을 수 있다면 자신의 개인정보도 기꺼이 제공할 수 있는지 묻는다면 어떻게 대답할 것인가? 역설적으로 데이터를 통해서 테러를 막을 수 있다는 생각은 실제로 데이터가 얼마나 중요한 것인지 심지어 현실에서의 행동까지도 미리 막을 수 있다는 뜻이고 이는 데이터 그리고 개인정보는 우리가 생각하는 것보다 높은 생명력(?)을 가지고 있다는 뜻이다. 개인정보는 우리의 삶과 연결되기도 하고 나쁜 목적이라면 한사람의 삶까지도 좌우할 수 있는 무서운 정보이다.

실제로 온라인에서만 이야기를 나누던 상대방에게 화가 나서 마음 먹고 상대방의 실제 거주지와 동선을 파악해서 살인을 했다는 이야기부터 앞서 이야기한 것처럼 가족관계나 사람들에게 협박이 될 수 있는 다양한 정보들을 통해서 두려움에 떨게 만들 수 있기 때문에 개인정보는 충분히 생명력을 가지고 있다. 그리고 생명력이란 타인에게 위협이 될수도 있고 실체하는 physical 위험이 될 수 있기 때문에 스타워즈 1편의 제목인 '보이지 않는 위험 The Phantom Menace' 이 될 수 있다. 현실에서도 인간을 가장 두렵게 만드는 것은 당장 눈앞에 있는 공포나 위험일 수 있지만 단순한 정보 그리고 그 정보에서 나오는 가능성이 큰 공포와 두려움을 만든다. 그리고 인간은 그 공포와 두려움을 피하기 위해서 비논리적인 행동도 하게 된다.


그래서 우리의 개인정보들에 대해서 아무리 민감하게 생각해도 지나치지 않는다. 물론 지나친 생각으로 그 자체가 두려움이 되어 공포 안에서 살아가라는 뜻이 아니라 잘 대처하기 위해서 데이터의 본질과 흐름을 파악하고 개인정보가 어떻게 만들어지고 어떻게 노출될 수 있는지 상식처럼 알아 놓는다면 자신도 모르는 본인의 개인정보로 피해를 보기 전에 대처할 가능성이 높아질 것이다.


Who owns privacy ...?

개인정보는 누구의 것인가? 개인이 보관하고 관리하는 개인의 것이지만 프로세서 Processor - 정보가공자가 만들거나 찾아낸 혹은 분석해서 밝혀진 개인정보라면 그 정보는 누구인지 설명하기 어려울 때가 있다. 예를 들어 자신이 올린 위치 정보가 없는 사진들을 통해서 누군가 사진의 배경이나 주변 정보를 통해서 '누가 사는 곳은 어디이다' 라는 개인정보를 알아냈다면 해당 개인정보는 누구의 것인지 생각해야 한다. 즉, 데이터가 수없이 만들어지고 데이터가 가공되는 과정에서 해당되는 개인들도 인식하지 못하는 정보들은 누구의 것이며 만약 분석한 주체와 상관없이 해당 개인정보 당사자의 것이라고 한다면 당사자는 어떻게 자신도 모르지만 만들어진 개인정보가 있는지 그리고 삭제하고 싶다면 어떻게 할 수 있는지 쉽지 않은 문제이다.

그래서 소위 '잊혀질 권리'를 이야기하지만 정작 잊혀질 권리를 주장할 수 있는 개인정보가 어디에 어떻게 저장되어 있는지 본인도 제대로 확인할 수 없고 검색되지 않는 개인정보는 처리할 수 있는 방법이 없다. 그렇기 때문에 개인정보를 관리하고 가공하는 주체를 나누고 각자의 역할과 책임을 설명하고 있는 유럽연합의 GDPR - 일반 개인정보보호규정 은 지키지 못하거나 책임을 다하지 못한 상황에서 과징금이나 개인 피해에 대한 보상 규정도 포함한다. 그러나 실질적인 문제는 자신이 관리하지도 않는 개인정보를 어디에 있는지 알기 어렵다. 예를 들어 환자의 임상 데이터를 모아서 의학 발전에 도움이 되도록 모을 때 환자가 누구인지 알 수 있는 내용을 제거해서 개인정보였던 내용이 임상 데이터가 된다. 즉, 개인정보에서 개인이 누구인지 알 수 없게 하지만 임상에는 도움이 될 수 있는 데이터로 만드는 것이다. 문제는 제대로 제거했는지 확인하지 못한 상태에서 다른 기관에 임상 데이터를 넘기는데 개인정보가 제거되지 않은 상태로 넘어갔을 때 우리에게 넘어온 임상 데이터가 '당신의 개인정보가 포함되었다' 라고 당사자에게 알려준다면 환자의 의료 정보를 수집한 기관에서 제대로 데이터의 관리를 하지 않았다는 것을 동시에 알리게 된다.


데이터는 흐름이기 때문에 그 흐름에서 누구의 책임인지 찾는 것은 의외로 쉬울 수 있지만 그때 누가 어떤 책임을 가지며 어떤 처벌을 받을 수 있는지는 신중하게 생각해야 한다. 개인정보가 포함된 임상 데이터를 받았을 때 신고하면 신고한 기관은 책임을 면할 수 있다고 해도 그 데이터를 전달해준 기관은 자동으로 책임을 지게 되기 때문이다. 그래서 이런 실수를 제거하기 위해서라도 데이터와 개인정보를 구별하고 정의할 수 있는 방법이 필요하다. 앞서 설명한 것처럼 데이터를 통해서 개인정보를 찾아내는 일을 인간보다 기계가 잘 할 수 있다면 반대로 받은 임상 데이터에서 개인정보가 포함되어 있는지 확인하는 방법도 인간보다 기계가 더 잘 할 수 있을 것이다. 기계에게 임상 데이터를 받게 되었을 때 알 수 없는 환자가 누구인지 알아낼 수 있다면 알아낼 때 단서가 되는 데이터를 제거해서 개인정보가 사라진 임상 데이터로 만들면 되기 때문이다.

역설적으로 데이터에서 알아낼 수 있는 수많은 개인정보들도 기계가 잘할 수 있지만 동시에 개인정보를 찾아낼 수 있는 심지어 그 단서까지도 포함해서 개인정보를 잘 처리할 수 있는 역할을 기계가 잘할 수 있다는 점이다. 이를 응용한다면 사람이 검색과 수작업을 통해서 찾아내고 판단해야 하는 개인정보를 기계가 스스로 학습해서 개인정보를 효과적으로 제거할 수 있다. 가장 대표적인 예는 지도 서비스에서 나오는 수많은 차들이나 사람들의 얼굴 그리고 개인정보로 노출 될 수 있는 많은 개인정보들을 자동으로 흐리게 만들어서 알 수 없도록 하는 것이다. 앞서 예를 들었던 환자의 의료 정보들도 의학적 의미를 살릴 수 있는 수준까지 임상 데이터를 살리고 그 외에 불필요한 정보가 무엇인지 인간보다 더 잘 판단해서 제거할 수 있게 된다.


Human, citizen, ... Identity ...

인간에 관한 권리에 대해서 하나의 문장으로 정리하기 시작한지 그렇게 오래되지 않았다. 정말 반세기 전에는 흑인, 백인이 분명히 구별되어 차별받았던 시절이였고 여성의 참정권이 보장된 것도 그리 오래되지 않았다. 자신이 선택할 수 없는 내용으로 차별을 받지 않아야 한다는 소극적인 형태의 차별금지를 떠나서 자신의 신념, 생각과 같이 스스로 선택했던 것이 인류에 해를 줄 목적이 아니라면 그 어떠한 생각조차도 차별의 대상이 될 수 없다고 해도 여전히 차별과 협오의 시대를 살고 있다. 그러나 조금씩 그 의미에 대해서 고민하고 공론화되면서 다양한 분야에서 그런 차별의 요소를 줄이고자 하는 노력들은 분명 인류의 진보라고 믿게 된다.

예전에는 상상하기 힘들었던 동성애의 사랑을 이제는 드라마에서 쉽게 볼 수 있고 (대한민국은 여전히 아니지만...) 그런 삶의 모습도 우리의 주변에서 일어나는 일들이라고 긍정적으로 받아들일 수 있게 되었다. 그래서 현대 사회에서의 인권이란 우리의 상상력이 어떻게 작용하냐에 따라서 그 범위가 달라질 수 있다. 사회의 변화 이제는 기술의 변화로 인간의 삶이 달라지고 그 결과 얻어지는 모습들이 달라지기 때문에 그런 변화에서 만들어지는 다양한 인권의 범위도 확대해야 하는 것이 사실이다. 그러나 종종 기술이 만든 다양한 모습에 법이 따라가지 못하는 경우를 보면 법이나 규제가 가져야 하는 유연성에 대해서 적극적으로 고민해야 할 시점이라고 본다.


인간에 대한 인권만으로 설명하기 힘들어서 국가 사회에서 시민으로 가지는 권리로 시민권을 생각하게 되었듯 기술의 발달로 만들어지는 개인정보와 데이터에 대한 고민을 통해서 인간이 데이터없이 살아갈 수 없는 그리고 그 데이터로 피해를 보고 때로는 이득을 보는 현실 세상에서 개인정보에 대한 범위까지 포함할 수 있는 정체성을 가지는 자아로 설명될 수 있는 어떤 권리 장전이 필요한 시점이라고 느낀다. 많은 경우 진보적인 생각을 가진 이들과 그런 생각이 필요없는 기득권 사이에서의 계급투쟁으로 얻어지고 그 과정에서 많은 희생이 필요했던 것도 사실이지만 분명 필요한 것은 변화하는 모습에 대해서 어떤 모습의 인간이 더 행복할 수 있는 가능성이 높은지 고민하는 과정일 것이다.

그 과정 속에서 기계 혹은 인공지능으로 대변되는 기계 기술이 영화 터미네이터 (1984) 에서 그려지듯 인간을 억압하는 존재가 아니라 인간의 권리와 확대되는 정체성을 보호할 수 있는 장치로 작용할 수 있기를 바란다. 그리고 그런 작업에서 인간보다 기계가 넓은 범위에서 더 잘 할 수 있다면 기계학습을 통해서 개인정보를 어떻게 보호할 수 있을지 고민하는 것도 필요하다고 본다. 그리고 어쩔 수 없이 수많은 데이터 속에서 작업해야 하는 인간에게 그런 개인정보를 보호할 수 있는 도구로 인공지능이 활용된다면 인간의 직업을 빼앗는 인공지능이 아니라 인간이 특별히 고민하지 않고 좀 더 창의적인 내용에 더 투자할 수 있도록 잡일들을 처리해줄 수 있는 조력자로 인공지능이 존재하고 인간의 직업을 차지하는 역할이 아닌 인간의 작업내용을 더 효율적으로 처리할 수 있도록 도와주는 존재가 될 것이라고 본다.

그렇게 인공지능이 인간에게 도움이 될 수 있는 존재가 될 수 있기를 바란다면 우선 데이터와 개인정보로 넘쳐나는 현실에서 신경쓰이는 수많은 데이터 처리와 개인정보 보호의 역할을 충실하게 수행할 수 있는지 그렇게 도와줄 수 있는 기술의 형태는 어떻게 되어야 하는지 생각해야 할 것이다.


데이터와 개인정보의 시대 ─ 인간이란 무엇인가

Sunday, May 6, 2018


화 브이 포 벤데타 V for Vendetta (2005) 로 유명해진 이미지가 하나 있다. 존재해야 할 의미가 없는 국가에 대한 저항의 의미로 표현되는 벤데타 가면이다. 1600년대 영국은 제임스 1세에 의해서 가톨릭 탄압 정책을 펼쳤고 이에 저항하는 의미로 가이 포크스 Guy Fawkes 는 11월 5일을 기점으로 웨스트 민스터 궁전을 폭파해서 제임스 1세를 암살하려고 했지만 암살 계획이 미리 알려져서 화약에 점화하는 역할을 맡은 가이 포크스는 현장에서 잡혀서 극심한 고문으로 사전 공모자 등을 털어놓고 결국 사건 관련자들은 사지가 찢기는 등의 극형에 쳐해 죽게 되었다. 이후 영국은 11월 5일을 화약음모사건 Gunpowder Plot 을 막은 기념으로 '가이 포크스의 날'로 정하고 사람들에게 싫어하는 인물의 형상을 한 인형도 불태우고 모닥불도 불태우며 보낸다. 사실 가이 포크스는 핵심적인 주동자라기 보다는 실행자였지만 현장에서 잡히고 결국 극심한 고문으로 계획을 발설했지만 그래도 시대를 지나면서 가이 포크스는 하나의 저항의 아이콘이 되어 갔다. 그 이후 저항의 의미 반정부를 뜻하는 의미의 의미로 가이 포스크 가면은 사용되어 왔다. 이제는 가이 포크스의 이미지를 검색하면 실제 모습보다는 '벤데타 가면'이 더 많이 나오기도 한다.


벤데타 가면이나 저항 정신 혹은 무정부주의 anarchism 에 대해 쓰고 싶은 것은 아니고 이렇게 유명한 가이 포크스와 관련된 흥미로운 그렇지만 무서운 그리고 무거운 이야기 하나가 있다. 바로 암살 계획을 듣고도 이를 발설하지 않았다는 이유로 극형을 받은 가톨릭 신부인 헨리 가넷 Henry Garnet 에 대해 전하고자 한다. 헨리 가넷은 폭파시킬 계획을 고해성사에서 듣게 되어 미리 알고 있었지만 이를 적극적으로 알릴 수 없었다. 계획을 알고도 미리 말하지 않았다는 이유와 그렇지 않아도 맘에 안들었던 가톨릭 신부이기 때문인지 헨리 가넷은 사형당하고 사형수의 가죽으로 책을 만들고 (사형수의 가죽으로 먼저 만들어진다음 사형당한 것일까?) 자신의 죄를 상세하게 적어 놓은 형벌을 받게 된다. 그리고 2007년에 공개된 인피책 (人皮冊) 이 헨리 가넷의 것으로 밝혀졌고 책의 표지에는 헨리 가넷의 모습으로 보이는 형상이 나타난 것으로 유명해졌다. 헨리 가넷이 미리 계획을 알고도 이를 알릴 수 없었던 이유는 바로 고해성사 THE SACRAMENT OF PENANCE AND RECONCILIATION 에서 알게 된 내용이였기 때문이다.

헨리 가넷의 인피책 출처: The Guardian  


Confidentiality

드라마나 영화에서는 고해성사를 하는 살인청부업자 hitman 가 신부에게 고해성사를 하고 신부는 이를 경찰이나 수사기관에 말하지 못하는 당혹스러움을 보여줄 때가 있다. 헨리 가넷도 성직자의 위치에서 암살음모를 알고 있지만 이를 왕에게 알릴 수 없었고 계획을 준비하던 가톨릭 신자들에게 찾아가 설득하려고 했었다. 성직자로 지켜야 할 비밀과 암살 계획 사이에서 적절한 절충안을 생각했던 것 같다. 종교 특히 가톨릭의 고해성사를 통해서 알게 된 비밀을 지키기 위해 자신의 목숨까지도 희생하는 이야기를 들을 수 있다. 헨리 가넷의 이야기를 들으면 성직자가 고해성사를 통해서 알게 된 비밀을 지키는 것은 중요하다고 생각하게 된다. 그러나 이런 비밀 유지가 성직자라면 무조건 지켜야 하는 내용인지 그리고 암살계획과 같이 앞으로 일어날 수 있는 위험까지도 가지고 있어야 하는지에 대해서는 의문을 가질 수 있다.

시민 사회 혹은 국가의 의미가 커지고 법이 사회를 안정적으로 운영하는 제도로 받아들이기 시작하면서 오히려 법과 성직자가 가지는 비밀유지 원칙은 자주 충돌하기 시작한다. 그리고 법정 안에서 성직작의 비밀유지가 법적으로 인정을 받을 수 있는지 다시 말해 성직자가 알게 된 범죄 사실 혹은 범죄 가능성에 대해서 증언하지 않아도 법적 처벌을 받지 않을 수 있는지에 대해서 많은 논의가 이루어지기 시작했다. 범죄 사실을 인지하거나 범죄자를 특정할 수 있는 identifying a criminal 어떤 이가 이를 수사 기관에 알리지 않는다고 불고지 (不告知) 죄 가 존재하고 이또한 범죄라고 생각한다면 성직자는 분명 범죄자가 되기 쉽다. 범죄사실이나 범죄자를 알았다는 것만으로 이를 알리지 않았다는 것이 범죄가 되는 것을 가장 좋아하는 혹은 좋아했던 국가 중 하나는 대한민국일 것 같다. 지금 (2018년) 도 살아있는 국가보안법에는 이러한 불고지죄는 국가보안법의 이름으로 존재하고 있고 많은 사람들은 권력이 원하지 않는다는 이유로 국가 공권력에 처벌을 받아왔기 때문이다.


Confidential 은 평범하게 비밀내용 정도로 표현될 수 있다. 사전에 의해서 '기밀'로 번역되고 비밀은 'secret' 로 번역되는 경우를 볼 수 있지만 사실 문서 취급에서 보면 Confidential 이 붙은 문서보다 secret 이고 그보다 높은 문서 보안 수준은 top secret 이다. 느낌으로는 기밀이라고 하면 뭔가 빈틈없이 빠져 나가면 안되는 비밀같은 느낌이지만 그런 느낌이 맞다면 기밀은 top secret 에 더 어울릴 것이다. 사실상 confidential 은 다소 개인적인 내용 혹은 가급적 공개되지 않는 것이 좋을 내용을 뜻하는 경우가 많다. 그런 이유로 기업간의 거래 및 회의 내용들은 confidential 이 되는 것이고 공적 이유로 공개되지 않아야 할 필요성이 있을 때 secret 가 붙는 것이 일반적이다.

성직자와 신자간의 개인적인 내용에 대해서 서로가 (주로 성직자) 발설하지 않을 권리나 의무가 엄격하게 존재하는 것은 아니다. 성직자라는 직업을 가지는 '기능적 자아'에게는 권리처럼 주어질지 모르지만 성직자가 아닌 자연인으로는 발설한다는 자유의지까지 잘못되었다 말하기는 다소 어렵기 때문이다. 그래서 비밀유지를 뜻하는 confidentiality 앞서 살펴본 성직자 / 신자를 뜻하는 priest–penitent 혹은 clergy–penitent 간에 비밀유지가 지켜지는 상태 혹은 지켜야 하는 의지를 confidentiality 라고 부른다. 동일하게 정신(건강의학)과 의사가 환자의 상담 내용을 통해서 알게 된 내용이나 광범위하게 의사가 진료 과정에서 알게 된 환자의 병력 및 질환 상태에 대한 비밀유지를 하는 것도 동일하게 doctor-patient confidentiality 라고 말한다. 또한 법적 대리인과 의뢰인 사이도 동일하게 attorney-client confidentiality 라고 한다. 이와 같이 찾아보면 현대 사회에는 직업상 (기능적 자아) 취득한 개인적인 정보에 대한 비밀 유지에 대한 어느정도의 공감대가 존재한다.


Confidentiality to privilege

앞서 소개한 성직자 - 신자간의 비밀유지  clergy–penitent confidentiality , 의료인 - 환자간의 비밀유지 doctor-patient confidentiality , 법적 대리인 - 의뢰인간의 비밀유지 attorney-client confidentiality 이 뿐만 아니라 다양한 형태의 비밀유지를 말할 때 confidentiality 를 쓰기 보다는 privilege 라고 표현한다. 그래서 clergy–penitent confidentiality 보다는 clergy–penitent privilege 라고 사용하고 의료인 - 환자간의 비밀유지는 doctor-patient privilege 라고 표현한다. 우선 privilege 란 말은 사전에서 찾아보면 '특권'이란 번역이 가장 먼저 나온다. 개인 혹은 일부 소수가 누릴 수 있는 특별한 이득을 뜻할 때 특권이란 말을 사용되기 때문에 대한민국에서는 이러한 특권은 그리 좋은 느낌으로 다가오지는 않는다. '소수 재벌의 특권' 혹은 '권력자들의 특권'과 같이 일반 시민들이 동일한 상황에 놓이게 된다면 에누리 없이 처벌을 받게 되지만 권력이나 자본을 가졌다는 이유만으로 심지어 누군가의 자식이라는 것만으로 처벌을 받지 않게 되는 경우를 보면 특권이란 분명 사라져야 할 것이라 생각하게 된다.


성직자 - 신자간의 비밀유지가 privilege 라면 성직자가 누리는 특권인지 신자가 누리는 특권인지 생각하게 된다. 그것을 생각하기 전에 먼저 privilege 의 어원에 대해서 찾아본다. 개인을 뜻하는 라틴어 'privus' 와 법을 뜻하는 라틴어 -lex (-reg) 가 결합되어 '개인에게 적용되는 법 혹은 법률'이란 뜻으로 'privilegium' 이 시간이 지나 privilege 가 되었다. 어원대로 privilege 는 특별한 권한 혹은 권리라기 보다는 개인에게 적용되는 다양한 법의 내용을 뜻한다. 그래서 다른 이들은 누릴 수 없는 것을 누리는 어떤 지위에 있는 사람이라서 누린다면 그것을 특권으로 부를 수 있을 것이다. 대표적으로 대통령이라는 직무를 수행하는 있는 사람이라면 대통령을 수행하기 위해서 필요한 내용은 대통령 직무 행정부 특권 executive privilege 을 가지게 된다.

다시 돌아와서 성직자 - 신자간의 비밀유지가 privilege 라면 누가 누리는 특권인지 다시 생각해 본다. 그리고 지켜야 할 비밀인데 도대체 무엇이 특권이 되는가? 어원에서 살펴본 것처럼 특권이 '누릴 수 있는 이득'이 아니라 '개인에게 적용되는 법'이라는 것을 생각해 보자. 비밀을 유지하는 상태나 지켜야 하는 상황을 confidentiality 라고 말했지만 이는 법률적 책임이나 의무를 가지지 않는 비밀을 유지하는 상태이다. 헨리 가넷의 사례를 통해서도 보았지만 성직자 - 신자 비밀유지를 떠나서 폭파 계획을 미리 알고도 이를 알리지 않은 것이 범죄자가 되는지 살펴보아야 한다. 확장해서 생각하면 동료 중 누군가 HIV 바이러스 양성자라는 사실을 알게 되었다면 이를 주변에 알려서 미리 조심하게 하도록 해야 하는 것이고 그렇지 않아서 다른 동료 누군가 바이러스 양성자가 되었다면 그 사실을 알았던 사람은 법적 책임은 아니라도 양심적 가책을 가져야 하는가?

이처럼 개인간의 비밀유지가 공적 이익에 반한다고 생각하거나 예상되는 피해를 생각하게 되었을 때 이를 비밀유지를 하지 않는 것이 도덕적으로 옳다고 말하는 이들과 그래도 비밀유지는 지켜야 한다는 내용은 역사적으로 끊임없이 논쟁이 되어 왔다. 특히 그런 논쟁의 중심은 대부분 법정을 통해서 이루어졌고 많은 경우 비밀유지가 인정되어야 할 내용이고 이를 통해서 아무리 공적인 이해관계를 떠나서 자신의 비밀유지를 지킬 개인적 의지에 대해서도 인정해주었다. 그리고 자신이 알고 있는 비밀을 유지하기 위해서 법정에서 말하지 않을 권리 그리고 그렇게 증언을 하지 않아도 법적 책임을 지게 할 수 없다는 내용은 역설적으로 법정에서 가질 수 있는 일종의 '특권'이 되어졌다. 결국 개인간의 비밀유지를 뜻하는 confidentiality 는 법의 울타리에서 '비밀유지를 지키려는 개인'에게 적용되는 법으로 만들어지게 되었다.


Privilege against jurisprudence

법은 항상 상당 부분 허술하다. 직접적으로 증명하기는 어렵지만 만약 법이 완벽하다면 법이 시대에 따라서 변하거나 '법을 이용한다'라는 표현은 자주 사용되지 않을 것이다. 많은 경우 법이 정하는 특권 혹은 예외는 법이 모든 이에게 평등하다는 주장을 부끄럽게 만드는 내용들이다. 범인을 찾는 범죄 드라마에서 범인이 누구인지 정확하게 알고 있어도 범인을 잡아 가둘 수 없는 경우도 많이 보게 된다. 많은 경우 범죄사실은 알고 있지만 법을 집행하는 과정에서의 문제 혹은 법률적 특권이나 예외 사항이 적용되는 경우가 많다. 그래서 '법과 원칙'을 강조하는 나라일 수록 특권과 예외가 많다는 반증이라고 생각한다. 그리고 법앞에 모든이들이 평등하다면 소위 '국민 법 감정'이란 오묘한 감정도 존재할 필요가 없을 것이다.


법리학 jurisprudence 는 법이 가지는 철학이나 원칙이 존재하고 이를 통해 많은 이들이 법 앞에 평등하게 될 가능성을 말하는 학문이다. 좀더 어렵게 표현하면 "법의 본질과 목적, 법의 개념, 법의 객관적 가치 또는 법의 이념, 법의 존재상태 또는 법의 효력 · 타당성, 법현상 등을 일반적으로 구명하고, 다시금 법의 제정 · 해석 · 적용에 특유의 논리 또는 법적 사유(思惟)의 기본적 카테고리나 법학 방법론을 고찰하는 것을 그 임무로 한다."  라고 나와 있다. 여전히 어렵다. 물리학자 하이젠베르크는 인간이 관찰하여 얻어낸 이론이 법칙이 되는 것이 아니라 인간이 감지할 수 없지만 우주 전체를 지배하는 어떤 거대 법칙 universal laws 가 존재한다면 그 법칙만 알아낸다면 물리학은 더 이상 공부할 필요가 없을 수 있을 것이라고 했다. 비슷한 느낌으로 법에도 공정하고 모든 갈등을 해결할 수 있는 원리가 존재하고 이를 알아낸다면 법은 객관적 판단자가 될 수 있다고 본다. 그러나 세상은 너무도 복잡해서 상황에 따라서 해석하고 경험하지 못한 사건이 일어나면 그 사건을 계기로 법의 골격이나 구조가 변화되어 왔다. 놀라운 지혜를 가진 완벽한 사람이 법이란 이렇게 작동한다라고 알려주었다면 사회 안에서 논란이나 갈등이 발생하며 '해석'이 필요한 경우가 줄어들겠지만 현실은 그렇지 않다. 오히려 법은 그러한 해석의 영역이 더 강해지는 영역은 아닌가 의문이 들때가 많다.

"인위적인 법률과 그 가치에 대칭되는 것으로 자연히 존재하는 언제, 어디서나 유효한 보편적 불변적 법칙"으로 존재하는 자연법과 대비되어 복잡한 세상에 더 적극적인 해석을 하기 위해 존재하는 법을 실정법 positive law, ius positum 이라 부른다. "경험적이고 역사적인 사실을 통하여 현실적인 제도로 시행되는 법" 그리고 더 구체적으로는 "일반적으로 새로운 권리를 만드는 법"이라 부른다. 앞서 설명한 많은 특권이나 예외는 실정법에서는 '새로운 권리'로 표현되며 인간 세상에서의 다양한 상황에 '조금 더 정의롭다고 추정되는 방향'으로 추진하려는 노력이다. 결과적으로 우리가 따라야 하는 많은 실정법들은 그렇게 느끼기 어렵지만 많은 권리를 보장하기 위한 과정들이다. 막상 법이 주는 느낌은 무엇인가 할 수 있는 권리보다는 할 수 없는 제한들로 가득하지만 많은 부분은 앞서 설명한 다양한 관계에서 발생하는 특권 privilege 들은 법이 좀 더 합리적이고 많은 이들이 인정할 수 있는 실정법으로 진행하는 과정에서 많은 역할을 해왔던 것도 생각해야 한다.


Privilege under jurisdiction 

실증법은 그래도 개인의 사생활 개별 인격이 가지는 권리를 보장하는 방향으로 변화되어 왔다고 생각할 수 있다. 사회가 필요해서 만들어 낸 성직자, 의사 등 개인의 사생활을 알 수 있는 직업들이 나타나고 만약 성직자나 의사가 신자나 환자의 사생활을 지켜주지 않는다면 사회가 필요해서 만든 직업이 존재하는 의미가 사라지게 되기 때문에 결국 다양한 관계에서 발생하는 비밀유지 혹은 특권은 단순히 사생활 보호가 아니라 직업이 유지되기 위한 조건이 되기도 한다. 예를 들어 모든 성직자들이 개인의 고해성사 내용을 다른 사람들에게 쉽게 말한다면 어떠한 신자들도 성직자를 믿지 못하게 되고 결국 고해성사가 가지는 종교적 의미가 아무리 성스러워도 기능할 수 없는 고장난 기계나 다름없게 된다. 그러나 가끔은 어떤 생각에서 개인의 사생활보다는 공공 혹은 국가를 위해서 사생활이 제한받아야 하고 사생활의 내용이 국가를 위험하게 한다면 이는 비밀유지를 지킬 필요가 없다고 생각하는 이들도 존재한다. 그래서 국가의 안보를 위해서 위험을 찾아야 하고 개인들이 나누는 사생활 속에서 이러한 위험을 감지하기 위해서 개인의 사생활을 감시해도 된다고 생각하기도 한다. 그리고 사람들의 활동, 대화, 심지어 생각까지 감시하기 위해서 인터넷이나 휴대폰 등에서 얻어낸 개인적인 내용을 수집할 수 있다고 믿는다.

9.11

극단적 충격은 인간의 이성을 충분히 마비시킬 때가 있다. 9.11 테러를 목격한 이들에게는 이런 테러가 일어나 수많은 생명이 사라진 것의 공포와 어쩌면 내가 희생자가 될 수 있다는 두려움에 "테러는 막을 수 있다면 막아야 해"라고 생각하게 된다. 당연하다. 테러를 계획하는 사람이 아니라면 '막을 수 있는' 테러는 당연히 막아야 한다고 생각한다. 그러나 '막을 수 있는'이란 가정은 인간을 참 어지럽게 만든다. 그 막을 수 있는 방법이 개인의 사생활을 감시하고 알아낸 테러의 징후를 통해서 막는다면 자신을 포함해서 거의 모든 이들의 사생활을 볼 수 있는 권리를 수사기관이나 정보기관에게 쉽게 내줄 것인지 말이다. 많은 이들은 나는 테러와 관계없는 사람이기 때문에 상관없다고 할 수 있지만 개인의 사생활을 들여다볼 수 있는 권한을 가진 이들이 항상 정의로울 수 있는지에 대해서는 생각하지 않고 테러를 막아줄 수 있다는 것에만 집중하게 된다.

가상이지만 현실적인 예를 들어 본다.

1. 노동조합을 설립하려고 하는 노동조합장은 아내가 임신한 상태이다. 시위 관련법을 위반했다고 해서 경찰에서는 체포하려 한다. 아내가 다니는 병원을 알아내고 담당의사에게 언제 진료하러 오는지 알아내고 다음에 올 때는 남편도 같이 오라고 하라고 의사에게 강요한다. 의사는 환자의 정보를 알려줄 수도 없지만 아내가 임신 중 주의 관찰해야 하는 산모라는 정보까지 수사당국에 알려준다. 
2. 모기업의 비리를 폭로한 내부 고발자가 있다. 정신적 압박에 아무에게도 알리지 않고 정신(건강의학)과 상담을 받는다. 기업은 내부 고발자를 미행해서 이 사람이 다니는 정신과 의사에게 접촉해서 어떤 상담 내용을 받았는지 회유하며 거액을 제시한다. 그리고 앞으로 상담 내용을 알려주면 더 많은 사례를 하겠다고 약속을 한다. 
3. 정부 정책을 반대하는 어떤 학자가 다니는 가톨릭 성당에 가서 신부에게 정부의 정보기관 담당자가 접근해서 학자에 대해서 물어본다. 처음에는 어떤 사람인지에 묻지만 그 사람은 위험한 행동을 할 수 있는 국가에 위험이 될 수 있는 사람이라고 말하면서 앞으로 그 사람의 고해성사 내용을 알려달라고 한다. 

앞서 설명한 관계에서 알게 되는 비밀을 유지해야 하는 입장에 있는 이들이 그 비밀유지를 깨는 대신 황금의 유혹이나 권력의 공포를 이용해서 개인의 사생활을 알아내는 경우가 있을 수 있다. 헨리 가넷 정도 되는 사람이라면 자신의 신념을 지키고 목숨을 내놓겠지만 현대 사회에서 자신의 목숨만큼 소중한 것이 있을까 싶기도 하고 비밀유지를 해야 하는 상대방이 '위험한 사람'이라는데 뭐가 문제가 되겠어 하면서 쉽게 알려주기도 할 것이다. 비밀유지에 대한 신념이 존재하지 않는다면 오히려 자신은 위험한 사람이 위험한 행동을 하지 못하게 하는데 공헌한 사람이라고 스스로 자부할 수도 있을 것이다. 특히 그 사람이 겉으로 보기엔 그렇게 안 보이지만 앞으로 테러를 할 계획을 하고 있는 사람이라고 한다면 권력기관의 말을 믿고 심지어 특별한 보상이 주어지지 않았는데도 적극적으로 상대방의 사생활을 알아내려고 할지도 모른다.

9.11 테러 이후 테러 방지를 위해 열심히 일하는 DHS

권력에 반하는 어떤 존재도 쉽게 무너지게 할 수 있다는 생각은 사실 권력이 주는 큰 유혹일 것이다. 그리고 그렇게 권력은 신뢰와 관계 속에서 만들어진 비밀유지까지도 쉽게 포기할 수 있도록 만들기도 한다. 더욱 더 큰 문제는 그렇게 쉽게 무너진 사생활에서 자신이 깨버린 비밀유지의 상대방은 극심한 고통에 놓일 때가 많다는 것이다. 다행히(?) 상대방이 진짜 나쁜 놈이라면 나름 자부심을 느끼는 것은 뭐라 할 수 없지만 진짜 나쁜 놈이 아니라 권력에 저항한 의인이라면 비밀유지를 깬 이들은 어떤 자부심을 가질 수 있는지 생각하게 된다.


Perjury against privilege 

인간의 이성은 스스로 옳은 것을 알아낼 수 있다는 자신감에 가득찰 때 가장 위험하다고 생각한다. 제이 애셔 Jay Asher 의 소설이자 2017년에 드라마로 만들어진 13 reasons why 를 보면 자살을 선택한 한 소녀가 자신이 왜 자살을 선택하게 되었는지에 대해서 육성으로 남긴 내용으로 회상하며 말하는 내용이 전해진다. 여러가지 이유들을 생각할 수 있지만 자신의 비밀을 감추기 위해서 적극적으로 거짓증언 perjury 이 어떻게 진행되고 사건 what it happened 보다 더 중요한 것은 사람들이 적극적으로 믿을만큼 얼마나 강하게 말하는지를 보여준다. 특히 자신이 감추고 싶은 것을 적극적으로 가리기 위한 이야기는 얼마나 자극적인지 느끼게 된다.

13 reasons why (Netflix)

"Smith Johns 는 테러범이다." 

냉전시대에 미국에서 활동하는 스파이의 숫자보다 미국 정보기관이 찾아낸 스파이의 수가 더 많다고 한다. 평범한 사람이였지만 러시아계라는 이유로 스파이라고 미국 정보기관에서 의심을 받아 감시를 받다가 진짜 스파이가 된 사람도 있었고 정말 스파이였던 사람은 미국에 협조한다고 하고 제거하고 싶은 사람들을 스파이라고 지목하여 무고한 사람들이 사생활이 감시를 받고 일상 생활에서 고통을 받기도 했다. 문제는 그렇게 사생활을 감시했으면 스파이가 아니라는 것을 알아내는 것이 정상일텐데 '저 사람은 스파이다'라는 전제하에 감시를 하면 모든 행동들이 스파이 활동을 위한 몸짓이라고 해석해서 보고했다는 것이다. 때로는 스파이가 아니라는 것을 알았지만 스파이를 찾아내 높은 위치에 오르고 싶은 명예욕에 아무런 혐의가 없는 사람들을 스파이로 만드는 것을 자랑스럽게 생각하거나 심지어 나중에는 자신이 잡아낸 사람들은 진짜 스파이라고 믿는 확증 편향 confirmation bias 을 보이기도 했다.

그래서 권력이 만든 거짓 증언은 그만큼 그 피해와 고통은 생각보다 크다. 1920년대 사코와 반제티 사건은 그 당시에 보아도 많은 이들이 이해하기 힘든 과정이었을 것이다. 많은 사람들이 그들의 사형에 대해서 이성적으로 판단해서 무엇이 정의인지 아는 것과는 다르게 결과는 그들은 전기의자에서 사형을 당하고 말았다. 그러나 그 당시 그들이 무정부주의자라는 단 하나의 이유만으로 그들은 진범이라고 믿는 이들도 많았다는 것도 사실 생각해 봐야 한다. 그들의 범행을 증명하는 과정이 아닌 그들이 가진 사상 사건과 전혀 관계없는 무정부주의자라는 이유만으로 그들이 살인범일 수 있다고 믿었던 이들도 많았다는 것이다. 대한민국도 비슷하다. "누구는 빨갱이다" 라고 크게 소리지르면 자신은 빨갱이가 되지 않을 가능성이 높아졌고 자신이 살기 위해 쉽게 누군가를 빨갱이로 만들었다.

사코와 반제티

거짓증언 perjury 혹은 위증이란 말은 라틴어 perjurium 에서 유래되었다. 이는 false oath 란 뜻이다. 단순한 거짓말을 뜻하는 것이 아니라 거짓을 통해서 자신이 지켜야 할 것을 깨버렸다는 뜻에서 비밀유지 confidentiality 을 깨는 것과 의미가 더 통할 것 같다. 개인도 자신을 지키기 위해서 비밀유지와 거짓증언을 하기도 하지만 권력과 같은 구조도 알고 싶은 정보를 위해서 거짓증언을 비밀유지를 쉽게 깰 수 있는 도구로 활용한다. 정보기관에서 "Smith Johns 는 테러범이다." 라고 말하면 환자나 신자와 같이 비밀유지를 해야 하는 상대방의 정보를 얼마나 쉽게 제공하는지 아니면 제공하지 않는지 궁금할 때가 많다.


How to protect privilege 

프랑스의 정치인 중 피에르 베레고부아 (Pierre Eugène Bérégovoy, 1925년 12월 23일 - 1993년 5월 1일) 우크라이나 이민 2세이고 정규 교육은 제대로 받지도 못했지만 프랑스 노동자들과 사회적 약자들을 위해서 평생을 싸워왔고 16세부터 금속 노동자로 일하다가 정치에 입문해서 1992년에 부패 척결 정책을 추진하겠다고 총리에 올랐지만 다음해 5월 1일 노동절에 자살을 했다. 자살하게 된 이유는 부패 척결 정책을 펼치던 베레고부아 총리 자신이 '자신의 지위를 이용해 친구에게 '거액'의 돈을 받아 아파트를 구입했다'고 했고 이에 대한 언론의 보도에 수치심을 이기지 못하고 자살한 것이다. 그러나 언론에서 크게 떠든 내용과는 다르게 그의 자살 이후 그가 얼마나 청렴하게 살았고 자신의 돈마저도 더 어려운 이들을 위해 쓰고 월세를 내기 위해 친구에게 돈을 빌렸다는 사실을 알게 되었다.

피에르 베레고부아 (Pierre Eugène Bérégovoy)

개인적으로 불면증으로 고생하던 때 한강공원을 매일 산책한 적이 있었다. 그때 한강공원에서 만난 한 사람을 잊을 수가 없다. 너무도 유명한 연예인이어서 아무리 얼굴을 가리고 있어도 쉽게 알아볼 수 있었다. 한국에 들어온지 얼마 되지 않았고 연예기사에 전혀 관심이 없었기 때문에 서럽게 우는 모습에 그저 연예인으로 힘들구나 정도로 생각했지만 그 이후 며칠이 지나지 않아서 생을 마감하셨다. 사건 이후 알게 된 내용 중에는 증권가 직원이 소위 증권가 찌라시 내용을 올린 내용이 있었다. 사실 여부를 떠나서 증권가 직원은 고인을 얼마나 잘 아는 사람인지 모르겠고 그런 내용이 아무리 공인이라도 어떤 고통이 될지에 대해서 얼마나 이해하고 있는지 의문이 갔었다.

자신이 말하는 내용이 사실인지 그다지 큰 관심을 가지지 않는다. 그리고 그렇게 말하는 내용이 가져올 누군가의 고통에 대해서도 별로 관심이 없다. 그저 쉽게 말하고 쉽게 전달한다. 성직자를 믿고 자신의 어려운 이야기를 했는데 그 내용을 통해서 성직자가 많은 사람들이 모인 곳에서 "그 아이는 어떤 성격의 아이야" 라고 말하거나 심지어 고해성사 중 나눈 이야기의 일부를 말해서 사람들이 공연하게 알게 되버린 경우도 있다고 한다. 의사가 집에 와서 자신의 환자 이야기를 하면서 무용담 삼아 자신이 얼마나 대단한 일을 하는지 자랑하지만 그 안에서 환자를 특정할 수 있는 내용을 포함하거나 누구나 아는 공인이라면 "그 배우가 우리 병원에 왔는데 내가 맡았잖아." 하며 환자의 질환을 아주 쉽게 이야기하는 경우도 볼 수 있다.

아주 가벼운 가쉽 안에서 우리가 얼마나 많은 비밀유지 내용을 깨고 있는지 느끼는 이들이 얼마나 많을지 그리고 확인되지 않은 내용을 자신도 들은 이야기라며 쉽게 가쉽으로 말하는 것이 어떤 이들에게는 가벼운 이야기가 아닌 큰 고통이 될 수 있다는 것에 대해서는 자신이 피해자가 되어야만 느끼게 되는 몇 안되는 공감이 안되는 내용이다. 비밀유지를 지킬 것이라는 믿음으로 신자나 환자는 자신의 개인적인 이야기를 하게 되지만 지키지 않은 사람은 큰 고통을 느끼지 않을 때가 많고 반대로 믿었던 사람은 고통을 얻게 되기도 한다. 막상 확실한 대안은 존재하지 않는다. 비밀을 유지할 상대로 믿지 말고 어쩌면 깰 수도 있는 사람이라고 생각하는 것도 하나의 방법이다. 비밀을 말한 사람이 누구인지 찾아내는 방법 중 하나는 말을 할 때 인상적인 그리고 유일한 impressive and unique 표현을 적당히 섞으라는 것이다. 정신과 의사와 상담을 받았던 환자가 정신과 의사를 비밀유지를 깨서 정신적/물질적 피해를 보았다는 소송을 걸었고 정신과 의사는 자신만이 그 사생활을 아는 유일한 사람이 아니라는 점을 강조했지만 결정적으로 다른 친구에게 말할 때는 쓰지 않았던 성적 행위에 대한 특별한 단어를 정신과 의사에게만 이야기했다는 점으로 소송에서 이긴 적이 있었다. 결국 상대방에 대한 믿음이 중요하지만 그것이 깨졌을 때의 상황도 생각해야 하는 복잡한 세상이 되어버린 것 같다.

영화 Doubt (2008)

그래서 영화 Doubt (2008) 에서는 가쉽에 대해서 다시 모을 수 없는 찢어 흩어진 베개의 깃털을 비유해서 전달했다. [ About Gossip ]  사람에 대한 단정적인 이야기를 하는 사람들을 항상 경계하게 된다. 스스로 확인하고 증명할 수 없는 사실인데 들은 내용만으로 단정하는 사람들은 자신이 만든 결과에 대해서는 책임지지 않고 누군가에게 탓하고 심지어 자신은 옳은 행동을 했다고 믿을 것이다.

윌리엄 W. 영의 오두막의 한 장면을 소개하며 글을 마치고자 한다.

"네? 저요? 저는 그렇지 않은데요." 그는 말을 멈추었다 다시 말하였다. "나는 판단할 능력조차 가지지 않았는데요"

"정말 그게 사실일까요," 바로 대꾸하며 이제는 조금은 비꼬는 듯이 말을 이어갔다. "당신은 이미 우리가 함께 있는 지금 이 짧은 순간에도 그런 능력이 있다는 것을 증명했습니다. 심지어는 당신은 당신의 인생을 통해 많은 판단을 해왔습니다. 당신은 다른 사람들의 행동과 심지어 얘기하지 않은 동기조차 판단해왔고 그런 당신의 판단은 항상 진실이라고 생각해왔습니다. 당신은 상대방의 피부색, 몸짓 뿐만 아니라 체취까지도 판단했습니다. 당신은 상대방의 과거와 관계에 대해서도 판단했습니다. 당신은 당신만의 심미적 기호를 통해 바라보며 한사람의 가치마저 판단해왔습니다. 이런 모든 것을 통해 보건데, 당신은 상당히 판단하는데 잘해왔음을 알 수 있지 않나요. [원문]


사회 안에서 비밀유지 ─ 지키기 너무 가벼울 수 있는 비밀에 대해서

Sunday, April 29, 2018

[ 본글은 2014년 04월 20일에 이전 블로그에서 작성된 내용으로 일부 내용을 변경, 편집해서 다시 올리는 글입니다. ] 

마트폰을 비롯한 다양한 전자기기가 보급되면서 큰 저항감없이 듣게 되는 용어가 있다. UI ;User Interface 가 그것이다. 이미 interface 에 대해서는 [ 컨텍스트를 생각한다 - 모바일 UI 를 바라보다.  ] 에서 생각해 보았다. 국문으로 번역하기도 어색한 인터페이스 interface 란 어원적 기원을 물질의 성질에 관련된 물성 물리학이나 물리화학 Physical Chemistry 을 통해서 그 의미를 더 구체적으로 찾을 수 있다. 요약하자면 인터페이스는 서로 다른 물성을 가지는 물질간에 서로 혼합되지 않고 생기는 경계 interface 가 핵심이 된다. 즉, 전자 기기와 사용자(인간) 은 생각하는 방식에서 의사소통의 방법까지도 다르기 때문에 인간 (who) 전자 기기에 (whom) 자신이 원하는 목적 (what) 을 위해 전자 기기가 이해할 수 있는 방식 (how) 으로 이야기하는 것을 인터페이스라 한다. 만약 궁극적으로 전자 기기 (devices) 가 인간의 일상적인 conventional 의사소통 방식 communication 을 이해한다면 특별히 인터페이스란 말을 사용할 필요도 없는 것이다.

Flickr @limaoscarjuliet

청각장애인의 경우 일상적으로 사용될 수 있는 소리를 통해 의미를 전달할 수 없기 때문에 이 사이를 연결해줄 수 있는 글이나 혹은 수화와 같이 다른 방법이 적용되어야 하는 것과 마찬가지이다. 기본적으로 전자 기기는 인간의 일상적인 활동을 제대로 이해할 수 없기 때문에 인간 (user) 과 전자 기기 (devices) 간에는 인터페이스가 필요한 것이다. 가장 먼저 우리가 생각할 수 있는 방법은 우리가 선택 가능한 기능을 버튼에 연결시켜 놓거나 우리가 입력할 수 있도록 자판을 보여주는 방식 모두 인터페이스의 가장 기본적인 요소가 된다. 문제는 사용자가 하고 싶은 기능이 존재하지 않거나 존재하지만 해당 기능에 접근하는 방식이 까다롭거나 알아내지 못한다면 그것은 실패한 인터페이스가 되는 것이다. 전자 기기 (이후 디바이스) 는 이해하고 준비하고 있지만 그 기능을 사용자가 활성화할 수 있는 방법을 모르기 때문이다. 따라서 사용자가 디바이스에게 제대로 원하는 작업을 전달하는 것도 중요하지만 디바이스가 할 수 있는 적절한 기능들을 사용자가 알 수 있게 해주는 것도 중요한 내용이 될 것이다.


디바이스가 사용자에게 무엇을 전달하나...? 

디바이스가 사용자에게 전달해 줄 수 있는 내용이 무엇이 있을까? 오랫동안 고민해왔던 이 질문을 사용자 인터페이스 전문가와 같은 분들에게 질문을 하면 여러가지 대답이 이끌어져 나온다. 그런데 사실상 자신의 전문 분야에 초점이 맞추어진 상당히 어려운 내용을 알려주시거나 혹은 사용자 인터페이스에 대한 상당히 기초적인 개론부터 설명하는 경우가 많다. 사용자 인터페이스에 개인적인 관심을 가지게 된 것은 학과 서버인 유닉스를 접하면서 시작했다. 지금도 비슷하지만 예전 유닉스 서버에 달린 비싼 자판에는 일반 자판에서 보기 힘든 키key들을 볼 수 있었다. 상단의 기능키 function key 뿐만 아니라 뭔가 복잡한 설명이 쓰여진 키들이 왼쪽에 두줄로 무엇인가 있었던 것이다.

    "왜 이 키들이 필요한 것인가?", "나보다 훨씬 똑똑한 누군가가 만든 기계인데 허투루 만들었을 것 같지 않은데 왜 이런 것들이 있을까?" 

란 의문이 들었고 "이런 기능 키들은 일반 컴퓨터에서는 필요가 없는 것인가?" 라는 의문을 가지게 되었다.

사용자 인터페이스 (UI) 전문가들에게 항상 질문하던 내용이 바로 이 부분이었다. 유닉스는 사용자가 디바이스에게 전달해줄 내용이 더 존재하는 것인가? 어떤 운영 체제를 사용하냐에 따라서 사용자가 디바이스에 전달할 수 있는 전달 내용의 범위가 정해져 있다는 것이 정말 제대로 된 것인가? 하는 의문이 들기 시작했던 것이다. 즉, 디바이스가 무엇이든 사용자가 디바이스에게 전달되어야 하는 내용은 인간의 목적을 이루기 위해서 디바이스에게 기대하는 내용을 할 수 있도록 명령하는 것이다. 그런데 디바이스조차 인간의 발명품이라 그런지 디바이스에 따라, 그 디바이스를 운영하는 소프트웨어 (운영체제) 에 따라 인간이 전달할 수 있는 내용조차 제한된다는 것이다. 그리고 기술의 발달로 이런 제한은 점점 풀리기 시작했지만 여전히 존재한다는 것은 여전히 느낄 수 있는 부분이다.

Sun Solaris 서버를 위한 전용 키보드 왼쪽에는 별도의 기능키가 존재한다.

반면 디바이스가 사용자에게 목적하는 내용은 기술이 아무리 발달하여도 그 본질적 내용에는 큰 차이가 없다는 것이 개인적인 결론이다. 아무리 다양한 기술이 인간에게 얼마나 빨리, 얼마나 효과적으로 운영되는가의 문제는 있지만 본질적으로 세가지의 목적으로 정리가 가능한 것이 아닐까 생각한다.

1. alarm or inform (알려주다) : 아주 사소한 아침 기상 알람부터 복잡한 결과물을 알려주는 내용까지 결국 디바이스는 사용자에게 무엇인가를 알려주기 위한 내용이 대부분이다. 인터넷에서 우리가 원하는 정보를 검색하는 것도 사용자가 원하는 정보를 검색어로 넣고 그 검색어의 결과로 필요한 내용 혹은 정보를 사용자에게 알려주는 것이다. 즉, 사용자가 원하는 내용을 디바이스는 사용자의 필요에 따라서 적절할 때, 적절한 방법으로 알려주는 역할을 하는 것이다. 

2. record or keep (저장하다) : 비록 알려주지 않는다고 해도 사용자가 필요한 내용을 기록하고 저장한다. 사용자가 입력하는 내용은 단기간 혹은 장기간에 따라 다르지만 저장하고 간직하는 목적을 가지고 있다. 따라서 디바이스는 사용자의 데이터를 저장하고 이를 이용해서 다른 목적을 수행하는데 사용하게 된다. 물론 디바이스의 메모리에 잠깐 저장되는 경우도 있지만 이 경우도 저장 시간의 문제이지 결국 사용자의 데이터를 저장한다는 목적을 위한 내용이다. 

3. perform or act (수행하다) : 로봇의 최종 목적은 아마도 '인간의 행동을 모두 수행'하는 것일지 모른다. 결국 모든 기계의 궁극적 목적은 인간이 원하는 대신 수행해주는 것이다. 아주 간단하게 로봇 청소기를 생각해보자. 로봇 청소기는 인간이 청소기를 가지고 돌아다니며 청소하는 수고까지도 대신 해주기 바라는 목적을 수행하기 위해 만들어진 기계이다. 경우에 따라 사용자에게 별도로 ① 알려주지 않거나 사용자의 데이터를 ② 저장하지 않고도 스스로 청소를 하는 일을 수행할 수 있다. 

그러나 기술이 발달하면서 사용자가 디바이스에게 바라는 세가지 목적 중 하나만을 위해 만들어지기 보다는 세가지를 모두 포함하는 디바이스의 형태를 추구하게 된다. 개인적으로 특정 디바이스의 성숙도 (maturity) 라는 이름으로 부르고 싶다. 즉, 어떤 디바이스가 세가지의 목적을 얼마나 잘 충족시키면서 얼마나 효과적으로 처리하는 정도를 평가할 수 있다는 생각이다. 예를 들어 마지막으로 예를 들었던 로봇 청소기의 경우 단순히 먼지 빨아들이는 역할만 하는 것이 아니라 먼지를 측정하여 집안의 청결도를 알려줄 수 있을 것이다. 그러나 단순히 먼지의 양에 따라 청소를 하는 것이 아니라 청소를 하면 안되는 취침시간을 사용자의 데이터로 저장하여 이를 자신의 청소 수행에 반영해서 사용자가 원하는 최적의 시간과 공간을 활용할 수 있다면 단순히 청소만 수행하는 청소기보다 디바이스의 성숙도가 높다고 표현하는 것이다.


디바이스가 성숙해지면...? 

디바이스의 성숙도가 높으면 사용자는 어떤 일들이 더 가능해질까? 비슷한 개념을 소프트웨어에 적용해보는 것도 재밌을 것 같다. 개인적으로 꼭 구매하는 소프트웨어가 있다. 바로 데이터 백업을 위한 소프트웨어인데 지금 사용하는 백업 소프트웨어는 매번 업그레이드 하며 꾸준히 구매하는 제품이다. 주요 목적은 지금 사용하고 있는 컴퓨터의 전체 시스템을 그대로 백업해서 불의의 상황에서 바로 복구할 수 위해서이다. 문제는 아무리 백업의 기능이 좋아도 주기적으로 잘 백업해 놓지 않으면 소용이 없다. 따라서 백업 소프트웨어의 사실상 중요한 기능은 '일정 작업 (scheduled works)' 이다. 초기에는 이러한 작업이 가능했지만 사용자에게 너무 많은 것을 알려주었다. '백업 작업을 곧 시작한다' 부터 '백업을 위해 지금 작업하는 내용을 모두 저장해라' 와 같이 백업을 하면 다른 컴퓨터 작업을 할 수 없게 되었다.

그러나 이제 소프트웨어는 상당히 안정되었고 몇단계 전만 해도 백업 설정이 하나라도 잘 적용이 되어 있지 않으면 원하는 백업 내용을 기대하기 어려웠다. (예를 들어 백업 파일의 분할, 암호 설정, 외장 하드가 연결되지 않을 때 어떻게 할 것인가 등) 그러나 이제는 사용자가 백업이 되었는지 모르게 조용히 백그라운드 (background) 에서 작업을 시작하고 조용히 마무리한다. 입력해야 하는 설정 내용도 거의 없고 몇가지 경우 중 가장 맘에 드는 시나리오를 선택하면 소프트웨어는 사용자의 사용 환경에 따라서 유연하게 대처하고 백업을 수행한다.

점점 소프트웨어는 사용자에게 많이 물어보지 않는 방향으로 만들어진다.

개인적으로 이런 소프트웨어의 발전 방향은 대부분의 디바이스가 겪어야 하는 성숙도의 증가를 위해 고려해야 하는 부분이란 생각을 하게 된다. 백업이란 특정 목적을 달성하기 위해서 사용자가 설정해야 할 내용이 많아진다면 혹은 설정에 따라서 사용자가 원하는 목적을 쉽게 달성하지 못하거나 목적을 달성해도 원하는 결과가 이루어지지 않을 때는 결국 설정 configuration 이 목적 objective 를 망치게 된다. 두가지 부분을 생각하게 된다.

1) 설정이 어떤 변화를 이루어 내는지 사용자는 잘 모른다... : 사용자가 어떤 기능을 설정했을 때 (checked) 해당 설정이 어떤 변화를 만드는지, 사용자가 원하는 변화인지 쉽게 알기 힘들다. 이런 이유로 설정 화면을 왔다갔다 하는 경우가 발생할 것이다. 사용자 인터페이스 (UI) 를 말할 때 대부분 얼마나 편하게 설정할 수 있는지, 화면 터치가 얼마나 용이하게 되는지를 고민하지만 막상 이런 부분보다는 설정에 따라 어떤 변화와 그 변화를 통해 사용자가 어떤 이득(마음에 드는 화면도 포함해서) 을 얻을 수 있는지 미리 알 수 없는 것이 가장 슬픈 인터페이스가 아닌가 싶다.

2) 디바이스는 결정적으로 예외적 상황에 대처하지 못한다... : 디바이스는 사용자처럼 유연하거나 다양한 상황에 대처할 수 있는 능력이 부족하다 (혹은 없다.) 따라서 이러한 예외적 상황 exceptional condition 에 대해서 디바이스는 대처하지 못한다. 따라서 사용자가 원하는 목적을 수행하는 중 예외 상황이 발생하면 중단하게 된다. 그러나 디바이스가 어느정도 유연한 태도(?) 를 가지고 있다면 예외적인 상황에 대한 적절한 대처를 할 수도 있다. 이 부분은 디바이스가 수행할 프로그램을 만들 때 예외적 상황을 어떻게 처리할지에 대한 정책의 문제이기도 하다. 허용하는 것이외는 수행하지 않도록 하는 화이트리스트 whitelist 방식과 허용하지 않는 것 말고는 수행할 수 있는 블랙리스트 blacklist 방식 중 어떤 것을 선택할지를 결정하고 기본값 default 이 실행되는 것이고 그 중 원치 않는 것을 제거하는 Opt-Out 방식과 기본값은 실행되지 않는 것이고 그 중 원하는 것만 실행하도록 하는 Opt-In 방식을 생각해 볼 필요가 있다.


궁극적인 사용자 인터페이스 (UI) 란 무엇일까...? 

설정을 위해 터치 화면이 큰 것이 좋은 사용자 인터페이스 (UI) 인가? 화면 구성을 쉽게 해서 사용자가 원하는 기능을 잘 찾을 수 있는 것이 좋은 UI 인가? 초기 스마트폰의 등장과 함께 이 문제는 여러 사람들에 의해서 이야기되지만 무엇이 좋다라는 결론이 나기 보다는 오히려 디바이스 운영체제 (안드로이드, iOS, Windows Mobile 등) 개발 회사에서 제시되고 사용자는 이에 평가를 내리는 과정이 거의 대부분이었다. 예를 들어 iOS 가 나왔을 때 한쪽에서는 혁신 혹은 사용자 인터페이스가 훨씬 좋아졌다 등을 이야기하지만 다른 쪽에서는 별로라는 이야기도 종종 나오는 것을 보면 정말 인터페이스가 좋아지는 것인지 확신하기 힘들 때가 많다. 단순히 아이콘의 디자인, 혹은 터치감이나 화면 전환의 속도 등이 사용자 인터페이스에서 추구해야 하는 내용인지 확신이 들지 않는다.

앞서 설명한 디바이스의 성숙도의 개념으로 접근해 본다. 결국 성숙도란 한 디바이스가 인간이 원하는 목적을 수행하기 위해 얼마나 인간에 가까운 활동을 할 수 있는지 생각해보는 것이다. 즉, 인간이 어떤 행동을 하는데 있어 그냥 습관적으로 혹은 본능적으로 수행하는 것처럼 보이지만 그동안 다양한 경험을 통해서 데이터를 저장하고 상황에 대한 적절한 대처를 하기 위한 정보를 수집하는 과정을 거치게 된다. 즉, 디바이스가 사용자에게 전달하는 세가지 내용을 모두 종합적으로 분석하며 수행하는 과정이다. 예를 들어 강남에서 광화문을 찾아갈 때 인간은 그냥 교통 수단을 타고 가면 된다 생각하지만 약속 시간에 밀리지 않도록 교통 통제가 있는 정보가 있는지 (마라톤 대회가 있다는 표지판을 본다; 알림) 광화문까지 가기 위해 지하철을 탈때 어디서 타면 환승이 편한지와 같은 사전 정보를 미리 수집할 수 있고 이를 위해 기억이나 메모라는 효과적인 저장 (기록) 장치를 사용하게 된다. 그리고 이를 분석하고 언제 어떻게 출발할지 결정하게 된다.


디바이스의 성숙도란 이처럼 인간의 행동이 시행착오 trial & error 를 통해 목적을 이루는 것이 아니라 사용자의 경험과 기록에 의해 최적의 해결책을 찾아서 이를 수행하는 과정이 얼마나 사용자에게 만족스런 결과를 주는지와 관련이 된다. 만약 사용자가 매일 아침 강남에서 광화문까지 출퇴근을 하는 정보가 계속 쌓이고 7시 반에 출발한다는 것을 디바이스가 알게 되고 사용자가 출근때마다 버스가 언제오는지 습관처럼 버스 정보를 알기 위한 앱을 실행한다면 이런 일련의 행동들은 사용자가 특정 목적 (출근) 을 수행하기 위해 필요한 정보들이라는 것을 알게 된다. 따라서 성숙도가 높은 디바이스는 이에 맞춰 미리 버스가 언제 오는지 미리 알림을 줄 수 있을 것이다. 즉, 사용자가 ① 화면을 켜서 버스 정보를 보는 ② 앱을 실행시켜 특정③  버스 번호를 입력시키는 과정을 단축시켜 바로 화면에 알람으로 몇분 후에 버스가 온다고 미리 알림을 줄 수 있을 것이다. 만약 디바이스가 사용자가 필요할 것으로 추정되는 presumed 정보를 미리 알려준다면 사용자는 ① ~ ③ 의 입력의 과정이 필요없게 된다.

구글 나우 (Google Now) 는 미리 입력된 집, 직장 정보를 통해 현재 시간, 위치에서 얼마나 걸리는지 막히는 구간은 없는지 출근 시간에 알려준다.

이런 시나리오가 가능한 디바이스라면 특별히 좋은 터치감이나 입력하기 편한 화면은 크게 중요하지 않을 것이다. 즉, 개인적으로 생각하는 궁극적 인터페이스란 사용자가 하는 행동과 정보를 디바이스도 비슷하게 수행하여 특별히 사용자가 입력하는 횟수를 줄이는 것이라 본다. 역설적이지만 "사용자 인터페이스의 궁극적 목표는 인터페이스를 거의 하지 않는 것"이라 생각한다. 즉, 디바이스의 성숙도란 얼마나 인간같이 정보를 수집하고 분석하고 사용자에게 필요한 정보만 제공하는 정도에 따라서 측정할 수 있을 것이다. 앞서 백업 소프트웨어를 보아도 초기에는 사용자가 설정을 얼마나 해주느냐에 따라서 백업의 질 quality 이 달라지지만 이제는 사용자가 별도의 설정을 하지 않아도 효과적으로 백업을 수행하게 되고 궁극적으로 사용자는 백업이 이루어졌는지 아닌지 신경쓰지 않아도 원하는 목적을 이루게 되는 것과 비교해보면 좋을 것 같다.


목적이 이끄는 사용자 인터페이스라 부를까...? 

백업 작업과 같이 사용자가 큰 관심을 가지지 않아도 알아서 수행되는 작업도 있지만 대부분 디바이스가 우리에게 알려주는 내용들은 사용자가 무엇인가를 즉, 목적을 이루게 하기 위한 도움을 주는 경우가 대부분이다. 개인적인 내용으로 한번 생각해본다. 아침에 일어나 약을 먹는다. 대부분 약을 식후 30분에 먹으라는 이유는 특별히 공복에 먹으면 안되는 약도 있기도 하지만 빼먹지 말고 먹으라는 이유이다. 즉, 식사가 약을 먹을 수 있도록 알려주는 일종의 알람같은 역할을 하는 것이다. 스마트폰은 사실 식사보다 더 성능좋은 알람시계를 제공해준다. 아침에 먹는 약은 특별히 공복을 피하는 약이 아니라 일어나 정해진 시간에 약을 먹으라고 알람을 준다. 만약 다른 일을 해서 알람을 줄 때 약을 먹지 못한다면 snooze (알람 연기) 를 눌러 일정 시간 후 다시 알람을 준다. 매월 초 신청해야 할 것이 있다면 알람에 해당 신청 페이지를 링크로 알려주면 알람 내용에서 바로 해당 신청 홈페이지로 들어갈 수 있다. 이처럼 디바이스가 주는 가장 효과적인 작업은 알람 alert 이다. 반복적인 내용에는 더욱 더 효과적이고 매번 기억할 필요가 없다. 단순히 알람만 주는 것이 아니라 해당 작업이 사용자에 의해 수행이 되었는지 아닌지 확인 (check) 할 수 있다면 더욱 더 효과적이다. : 반복적인 작업 recurring tasks 에 디바이스는 좋은 도구가 되어준다.

반복적인 작업을 사용자에게 알려주어 사용자가 반복적인 작업을 잊지 않고 수행할 수 있도록 해준다.

어느날 마음에 드는 책 구절을 인터넷에서 보았다. 해당 구절의 영문 원문이 어떻게 되는지 궁금해졌다. 이를 위해 할일 목록 todo 에 기록했다. (구체적으로 Google Keep) 에 입력했다. 문제는 지금 당장할 수 있는 작업이 아니고 만약 도서관을 갔다고 해도 내가 도서관에서 해야할 일이 있다는 사실을 기억 (사용자의 기억) 하지 못하면 도서관을 갔다가 할일 목록의 일은 하지 못한다. 결국 아무리 좋은 디바이스가 있어도 사용자의 기억이 없으면 무용지물에 가까워진다. 이 문제를 해결할 수 있는 방법은 크게 두가지가 있다. 도서관을 가기로 마음 먹고 날짜 (더 자세히 시간까지) 를 정해 해당 할일 목록에 알람 날짜를 지정하는 것이다. 다른 방법은 대부분의 스마트폰이 위치정보를 효과적으로 수집하기 때문에 이를 이용해서 위치 알람 location reminder 를 지정해서 해당 도서관의 위치를 알람으로 설정하면 다른 일때문에 도서관 근처를 가게 되어 할일을 수행할 수 있게 된다. : 위치 알람 location reminder 는 스마트폰과 같은 위치 정보를 처리하는 디바이스는 더 효과적인 도구가 된다.

결국 사용자에게 디바이스가 알람 (reminder, alert, alarm) 을 주는 방식에는 다양하지만 알람의 대상은 두가지로 결정된다는 것을 알 수 있다. 시간 (time)공간 (space) 이다. 철학적으로 생각하면 결국 인간의 행동은 시간과 공간에 의해 하나로 결정되고 그 수행의 결정은 인간만이 할 수 있다는 것이다. 즉, 아무리 알람을 효과적으로 디바이스가 제공을 해도 사용자가 수행하려는 의지가 없다면 소용없다.

간단하게 메모할 수 있는 구글킵 (Google Keep) 은 시간 및 장소에 대한 알람 (reminder) 기능을 제공한다.

이와 같은 알람을 잘 이용하면 다양한 응용을 할 수 있다. 맛집 정보를 아무리 모아도 결국 가서 맛보지 않으면 무슨 소용이 있는가. 이때 맛집 정보와 함께 위치 알람을 저장하면 매일 뭐 먹을까 고민하며 삶의 낙을 잃어버리는 사람들에게 좋은 동기 부여를 줄 수 있지 않을까? 결국 인간이 원하는 목적을 수행하기 위해 디바이스는 잊어버리지 않도록 알려주고 원하는 목적을 수행할 수 있도록 도와주는 것이다.


작업 단계를 줄이는 것이 왜 중요한가...? 

사용자 인터페이스를 좀 더 생각해보자. 스마트폰 양대 산맥 (안드로이드, iOS) 공통으로 중요하게 생각하는 기능이 있다. 바로 음성 명령이다. iOS 는 Siri 라는 이름으로 안드로이드는 특별히 이름이 없지만 음성명령 뿐만 아니라 기본 입력 키보드, 앱 차원에서도 (예: 구글 번역기) 음성 인식을 기본적인 기능으로 제공하려고 하고 있다. 음성 인식 (명령) 은 사용자가 심심할 때 디바이스와 이야기 나누고 싶어서 만들어진 이유도 있을 수 있지만... 그보다 음성 인식을 통해 사용자가 원하는 목적을 직접 수행할 수 있는 방법을 제공하기 위해서 더 필요하다고 본다. 즉, 인간이 원하는 목적을 달성하기 위해서 디바이스는 적절할 때, 적절한 곳에서 알람을 줄 수 있지만 목적은 항상 다양하다. 따라서 다양한 조건과 환경을 고려해서 사용자가 가장 필요로 하는 내용을 제공하는 것이 중요하다.

일이 있어 김포에 갔다가 집에 가는 교통편을 알고 싶을 때 사용자는 선택하는 방법은 ...

1) 지도 앱을 실행한다. → 현재 위치와 목적지 (집) 을 입력한다. → 목록에서 원하는 방법을 선택

2) 음성 명령을 바로 실행 (단축 기능으로 가능) → 집에 가고 싶다 말한다. → 목록에서 선택

3) 집 주소가 목적지로 지정된 바로가기를 실행 → 목록에서 선택

 [ 참고: 왜 안드로이드폰을 사용하는가?  ]

그런데 이 상황에서 집에 대한 정보가 저장된 계정 (구글 계정) 으로 로그인 한 스마트폰이 바로 알람으로 집에 가기 위한 정보를 보여준다. 구글 나우 (Google Now or Google Assistant) 라는 이름으로 소개된 이 기능은 앞서 말한 것처럼 사용자의 정보에 맞추어 지금 현재 필요한 정보를 제공해 준다. 김포라는 조금은 낯선 곳에 있고 집에 갈 시간이 되었다면 집에 가는 교통편을 사용자가 찾지 않아도 미리 찾아서 알려주는 것이다.

4) 디바이스가 미리 정보를 수집, 분석해 사용자에게 알람

1) ~ 4) 의 방법 모두 사용자가 목적 (집에 가는 작업) 을 이루는 것은 동일할 수 있지만 목적을 이루기 위해 필요한 정보를 구하는 내용에서 방법에 따라서 작업 단계는 다르다. 1) ~ 4) 의 경우 모두 최소한 한번 이상은 스마트폰을 켜서 확인하는 작업은 있지만 1) 의 경우 사용자가 입력해야 하는 내용은 4)에 비해 많게 된다. 스마트폰을 쓴다면 이 정도쯤이야 쿨하게 넘길 수 있다. 번역 기능을 통해 작업 단계에 대해서 좀 더 생각해 본다.

구글 번역 (Google Translate) 앱 은 대단한 앱이다. 단순히 번역만 하는 것이 아니라 왜 번역이 필요한지에 대한 고민을 하게 해주는 앱이다. 사용자가 번역 앱을 사용하는 목적에는 단순히 해석하기 위해서도 있지만 때로는 외국인과의 대화를 제대로 알고 싶을 때도 있다. 이런 목적을 위해 음성 인식 + 번역을 통해 각자의 모국어를 음성으로 인식시켜 상대방에게 번역을 해주는 기능을 제공한다. 그 외 필기체 입력이 가능해서 한자를 입력하거나 자판으로 입력하기도 귀찮을 때 필기체로 입력이 가능하다. 그런데 번역 앱을 사용하다 보면 불편한 부분이 생겼었다. 앱을 실행시키면 번역할 언어와 번역될 언어가 최종 사용된 설정으로 되어 있다. 즉, 지난 번에 프랑스어 → 한국어 로 번역했다면 그대로 설정되어 있어서 영어로 번역하고 싶을 때 영어로 변경해줘야 하는 다소 번거로움이 존재한다. 이런 부분까지 고려해 프랑스어로 되어 있어도 영어를 입력하면 영어를 번역할 것인지 물어본다. 이 정도되면 충분히 사용자를 위한 훌륭한 인터페이스라고 말할 수 있지만 구글 번역 앱은 바로가기 기능으로 좀 더 충분히 가치를 가진다. (안타갑게 iOS 는 이 기능을 근본적으로 제공해주지 않으므로 안드로이드만 가능하다.)

구글번역기를 실행시켜 영어 / 한국어를 설정하는 것이 아니라 이미 설정된 위젯 (바로가기) 를 만들 수 있다. 입력방법은 키보드, 이미지 입력, 음성, 필기체가 가능하다.

구글 번역 앱의 바로가기 기능은 사용자가 목적하는 내용을 구체적으로 설정할 수 있다는 점에서 의미를 가진다. 구글 번역의 바로가기를 만들면 네가지 입력방법 (키보드, 이미지, 음성, 필기체) 중 선택할 수 있고 번역할 언어 / 번역될 언어 를 선택할 수 있다. 앱을 실행시켜 설정해도 가능하지만 번역 앱을 실행할 때는 사용자는 이미 목적을 정하고 실행한다는 점을 생각해야 한다. 즉, 구글 번역 앱을 그냥 재미로 실행시키지 않는다면 설정에 필요한 입력방법, 번역할(될) 언어 는 이미 마음 속에 정하는 경우가 대부분이다. 또한 사용자는 자주 사용하는 설정이 분명 존재할 것이다. 예를 들어 영한사전으로 사용하고 싶다면 키보드 + 영어 → 한국어 의 설정으로 바로가기를 만들면 구글 번역 앱의 이전 사용된 설정에 관계없이 (설정하지 않고) 바로 원하는 구체적인 기능을 사용할 수 있게 된다.

비슷한 예로 구글 드라이브 (Google Drive) 의 이미지 저장을 볼 수 있다. 종종 특정 내용을 기록할 시간이 부족해서 사진을 찍어 내용을 저장해 놓는 경우를 볼 수 있다. 지인 중에는 자신이 기억해야 할 내용을 문서가 아닌 사진을 찍어 간편하게 저장한다고 스마트한 사용을 자랑하기도 한다. 그러나 막상 사진으로 기록된 이미지는 이후 필요한 내용을 가공해서 문서로 만들어야 할 필요가 있다. (데이터 측면에서 볼 때 문서보다 이미지가 삭제, 손상될 가능성이 더 높기도 하다.) 결국 멋진 풍경이나 사람을 찍기 위한 사진이 아닌 특정 정보를 기록하기 위한 내용이라면 사진으로 남기기 보다는 사진의 내용을 저장하는 문서 형태 (PDF) 저장하는 것이 더 현명할 것이다. 구글 번역 앱과 같이 구글 드라이브의 바로가기를 선택하면 Drive scan 을 볼 수 있다. 원하는 구글 계정을 선택하고 저장 경로를 지정하면 바로가기라 만들어지는데 이 바로가기를 실행하면 사진을 찍을 수 있게 되고 찍힌 이미지는 바로 바로가기에 지정한 위치에 저장되게 된다.

구글드라이브의 바로가기 기능 중 Drive Scan 을 이용하면 사진으로 이미지를 찍어 PDF 파일로 자신의 구글 드라이브 계정으로 저장하는 기능을 한번에 실행가능하다.

구글 번역 앱, 구글 드라이브 뿐만 아니라 바로가기가 가능한 앱들의 기능을 살펴보면 바로가기 기능이 사용자의 작업 단계를 얼마나 효과적으로 줄여주는지 보여준다. 작업 단계를 몇단계 줄이는 것이 중요한가를 물어보면 두가지로 대답할 수 있을 것 같다.

1) 설정의 정확도를 증가시켜 준다. : 아무리 화면 터치의 고수라고 해도 원하는 설정이 모두 저장된 바로가기보다 더 실수할 가능성이 높아진다. 
2) 목적을 더 명확하게 할 수 있다. : 스마트폰은 앱을 실행하기 위한 목적을 위해 존재하는 것이 아니다. 결국 목적이 무엇인지 우리가 스마트폰을 통해 무엇을 할 것인지 명확하게 해준다. 


자동화는 사용자를 나태하게 만들까 성실하게 만들까...? 

목적성을 높이고 작업 단계를 줄이는 과정을 통해 얻을 수 있는 것은 무엇인가? 앞서 말한 것처럼 사용자 인터페이스의 궁극적 목적은 인터페이스 하지 않는 것 (The ultimate purpose of user interface is 'interfaceless') 이란 생각은 목적성을 높이고 작업 단계를 줄이는 과정을 통해 더욱 더 견고해질 수 있다. 이전 글 [ 완전 자동화 스마트폰을 꿈꾸며 ] 를 통해서 안드로이드는 상당히 세부적인 자동화 기능을 구현할 수 있음을 소개했다. 예를 들어 회의 시간으로 일정에 등록되면 자동으로 무음모드가 되도록 하거나 사진 편집 혹은 뷰어 앱을 실행하면 자동으로 화면 밝기가 증가하거나 새벽시간에는 무음모드가 되도록 할 수 있다.

반복되거나 사용자 입장에서 10번 중 9번 정도 동일한 설정으로 작업이 이루어진다면 이런 부분에 대해서는 특별한 설정이 없다면 사용자가 기본적으로 원하는 설정 내용을 자동으로 구현해주는 좋을 것이다. 즉, 자동화의 목적은 사용자가 원하는 작업을 빠르게 수행할 수 있도록 도와주기도 하지만 사용자가 불필요한 설정에 시간 낭비하지 않고 혹은 놓치기 쉬운 설정 내용을 저장하여 작업의 정확도를 증가시켜주기 위한 것이 더 중요할 수 있다. 디바이스는 자동화를 통해 사용자가 놓치기 쉬운 부분을 점검해주고 사용자가 원하는 목적에 더 집중할 수 있도록 도와준다는 점이다. 즉, 디바이스가 사용자에게 전달하는 세가지 요소 중 알람은 줄이고 정보(데이터)는 더 정밀하게 그리고 수행은 정밀하게 도와준다. 회의시간마다 무음모드로 매번 설정하는 사용자와 회의시간이 되면 자동으로 무음모드를 만들어주는 디바이스 중 누가 덜 실수할지 생각해본다면 자동화는 생산성을 높이는 도구라기 보다는 목적을 위해 부수적인 것들을 신경쓰지 않게 만들어주는 역할이 강조될 필요가 있다.

Image Credit: LifeHacker Australia

자동화를 위해 사실 기본적으로 필요한 조건이 있다. 사용자는 회의 시간을 일정에 기록해야 할 필요가 있는 것이다. 많은 경우 일정을 기록하지 (저장하지) 않을 수 있다. 이 경우 정말 방법이 없다. 대부분 충분히 기억할 수 있는 회의 일정을 뭐하러 일정에 저장하는지 필요성을 느끼지 못하기 때문에 공유되는 일정 기능을 통해서 회의 참석자들이 모두 가능한 회의 시간을 제시해주거나 입력하는데 음성으로 아주 간단하게 빠르게 입력할 수 있거나 회의 제안자가 만들고 자신에게 공유한 일정도 자신의 데이터로 보일 수 있도록 하는 등의 다양한 기능을 통해 '효율성'을 강조한다. 사용자가 얼마나 성실하게 자신의 데이터를 저장하여 자신에게 필요한 기능을 디바이스가 알아서 수행할 수 있도록 만들어 주는 것이 플랫폼의 중요한 역할이다. 단순히 데이터를 저장하는 것이 아니라 플랫폼은 이 데이터를 분석해서 사용자에게 유용할 수 있는 정보와 알람을 제공해주는 것이 필요하기 때문이다. 물론 이 부분은 개인의 사적 영역 privacy domains 의 문제와도 관계가 되기 때문에 민감할 수 있는 부분이다. 결국 얼마나 신뢰할 수 있는 서비스 (플랫폼 platform) 을 선택해 자신의 데이터를 얼마나 효과적으로 저장하고 활용할 수 있는가는 개인의 선택으로 돌아오게 된다.


따라서 자동화를 마치 인간이 해야하는 기본적인 모든 활동과 데이터를 자동으로 만들어주는 과정이라고 생각하면 안될 것이다. 오히려 인간의 성실한 협조가 자동화를 더 가치있게 만들어 주는 가장 기본적인 내용이 된다. 그렇다면...

용자의 성실한 입력값과 충분히 신뢰하고 성능좋은 플랫폼 (서비스) 와 충분히 이를 분석하고 제공하는 서비스와 디바이스가 존재한다면 사용자의 삶은 풍요롭게 되는가? 더 나아가 이런 것들이 인간의 행복을 증가시켜줄 내용인가? 

라고 묻는다면 뭐라고 대답해야 할까?


이상적 사용자 인터페이스가 구현된다면...? 

미래 세상을 그린 드라마나 영화를 보면 스마트폰과 같은 디바이스를 항상 달고 다니며 정보를 얻기 보다는 기계와 인간같은 대화를 나누는 (자연어) 것을 보기 쉽다. 개인적으로 스마트폰은 인간이 두손을 이용해 만물의 영장이 될 수 있던 그 엄청난 기회를 다시 퇴화시키게 만드는 도구가 아닐까 생각한다. 거리를 걸으며 핸드폰을 보거나 심지어 운전하면서도 문자 보내는 것을 전혀 위험하지 않다고 생각하는 사람들도 많다. 스마트폰에 시력과 한손을 빼앗겨 버린 퇴화된 인간이 정말 스마트폰으로 스마트해졌는지 모르겠다.

아직은 초기 단계이지만 구글 글래스(Google Glass)를 이용한 프로젝트를 하면서 느끼는 것은 아직까지 구글 글래스가 주는 이득보다 번거로움이 더 많은 것이다. 그러나 구글 글래스와 같은 웨어러블 디바이스의 가장 큰 장점은 인간이 스마트폰에 빼앗긴 시선(시력)을 다시 일상으로 되돌릴 수 있는 가능성이었다. 특별히 손에 가지고 다니거나 화면을 보기 위해 일부러 꺼내지 않아도 스마트폰이 주는 모든 기능을 획득할 수 있다면 오히려 손에 가지고 다니거나 화면을 보는 행동이 거추장스러운 행동이 될 것이란 것이다. 기계와 인간, 디바이스와 사용자 간의 인터페이스의 궁극적 목적은 인터페이스 하지 않은 것처럼 자연스러움이라는 측면을 생각한다면 결국 우리는 디바이스가 우리에게 있는지 없는지 조차 알 수 없는 경우를 생각해볼 수 있을 것이다. 마치 드라마 컨티뉴엄 (Continuum 2012) 이나 드라마 인텔리전스 (Intelligence 2014) 와 같이 인체 안에 컴퓨터 기능을 하는 칩이 이식 implementation 되어서 특별히 인터페이스 하지 않아도 필요한 내용을 전달받고 명령을 내릴 수 있는 상상을 할 수 있을 것이다.

드라마 인텔리젼스 (Intelligence 2014- ) 의 주인공은 컴퓨터 칩을 뇌에 이식되어 검색결과를 화면이 없어도 볼 수 있는 능력을 가졌다.

앞서 소개한 '디바이스의 성숙도'가 인간과 거의 똑같아, 특별히 인터넷 검색을 위해서 ① 스마트폰을 꺼내고 ② 화면을 켜고 ③ 브라우저 앱을 찾고 ④ 브라우저 앱을 실행시키고 ⑤ 검색어를 입력하고 ⑥ 검색 결과 중 원하는 정보를 선택하는 작업단계가 사라지고 바로 원하는 ① 검색어만 생각하거나 말하면 ② 검색 결과를 알려주고 더 나아가 검색결과 중 내가 당연히 선택할 것 같은 항목을 선택해서 골라주게 된다면 사용자 인터페이스란 새로운 패러다임으로 접근해야 할 것이다. 그리고 디바이스의 성숙도가 얼마나 인간에게 접근하는가를 측정하기 위해 앞서 설명한 ⓐ 목적성ⓑ 작업 단계의 최소화를 이야기했다. 그리고 이에 더 접근해서 ⓒ 자동화의 요소도 고려해야 할 중요한 부분이란 것을 이야기했다. 세가지의 요소가 얼마나 자연스러운가 (인간스러운가) 를 측정하여 소위 디바이스의 성숙도가 발전하는지 생각해볼 수 있을 것이다.

역설적으로 인간에게 더 많은 기능 feature 을 주기 위해서 만들어진 수많은 설정 configuration or settings 은 인간에게 참 쓸데없는 인터페이스를 강요하는 요소가 되었다. 설정을 잘못하여 자신이 원하는 목적을 이루지 못하게 되는 경우도 생기고 설정때문에 필연적으로 작업 단계는 늘어날 수 밖에 없다. 또한 앱을 새로 설치하거나 디바이스를 바꾸면 설정을 다시 해주거나 최소한 백업한 설정을 되돌리는 기능을 수행해야 하는 불편함을 감수해야 한다. 잠시 생각해보면 사용자를 위해 만들어진 소프트웨어, 앱들은 온전하게 인간을 위한 도구라기 보다는 사용자가 '제대로' 설정했을 경우만 만족할 수 있기에 설정을 제대로 할 때까지는 소프트웨어, 앱을 위해 사용자가 필요한 결과를 만든다.


마무리하며... UI / UX 란 무엇일까? 

항상 의문이 들때가 많다. UI 는 그래도 본론에서 언급한 것처럼 어느정도 이해가 되는 개념이고 사용자 인터페이스 (UI) 의 궁극적 목표는 인터페이스 하지 않는 것 (interfaceless) 라고 설명해 보았다. 그리고 이제 약속된 규칙에 모든 사용자들이 편리함을 느낄 수 없게 되자, 예를 들어 화면에 나온 리스트 중 하나를 오른쪽으로 끌어내기 (swipe) 하는 것이 삭제 혹은 보관하기라는 운영체제가 정한 규칙이라고 받아들이지 못한다면 영원히 그 기능을 사용하지 못하거나 몇단계를 거쳐 불편할 수도 있다. 즉, 좋은 사용자 인터페이스란 운영체제가 정한 규칙에 잘 따른 사용자에게만 좋다고 말할 수 있게 된다. 아무리 좋은 시스템이라고 해도 사용자들이 제대로 받아들일 수 없는 규칙을 사용한다면 좋은 사용자 인터페이스라 말할 수 없다. 결국 사용자 인터페이스의 가장 큰 문제점은 사용자는 너무도 다양하다는 것이다. 그리고 인터페이스를 설계한 사람이 원하는대로 사용자는 절대 안따라 준다는 것이다. 그런 비극적 상황에서 새로운 개념이 도입되었다.

이게 도대체 무슨 말일까?

사용자 경험 (UX; User eXperience) 이 뭘까? 한참을 고민하게 한다. 한때 물류라고 이야기하면 뭔가 고상해 fancy 보이지 않고 공급망사슬 Supply Chain 이라고 불러야 뭔가 있어 보이는 것 같아 심지어 공급망사슬이라고 부르지도 않고 꼭 [서~플라이 체인] 이라고 불러 줘야 뭔가 있어 보이는 현상이랑 비슷하단 생각까지 들때가 많다. 그리고 UI / UX 에 대한 수많은 블로그와 글을 보아도 그다지 설득력이 있어 보이지 않을 때가 많다. 예를 들어 많은 ⒜ 사용자 인터페이스의 통계적 유의성을 가지고 UX 가 만들어진다. ⒝ UI는 화면, UX는 제품,시스템,서비스 ⒞ UI 는 기술적인 것이고 UX는 감성적인 것이다 등... UX 에 대한 다양한 설명이 있고 그에 대한 제품에 적용한 예를 소개하지만 거의 대부분 두 개념을 명확히 구별해주는 경우는 거의 보지 못했다. 심지어 UX 는 목적성을 가지고 UI 는 이를 조작하기 (operating) 위한 개념이라 설명한다. 그러나 UI 도 인간이 이루고자 하는 목적을 달성하기 위해 필요한 디바이스와의 대화이다.

개인적으로 UI / UX 를 가지고 논의를 심화하는 것은 결국 디자인 부분에서도 그리 큰 영역으로 발전할 수 없을 것이라고 생각한다. 그 이유는 앞서 설명한 것과 같이 디바이스의 성숙도가 증가하면 할수록 인터페이스의 기회는 점점 줄어들거나 인터페이스를 위한 작업 단계가 극적으로 줄어들 것이라고 생각하기 때문이다. 즉, 사용자 인터페이스의 궁극적 목표인 인터페이스 하지 않는 기술이 좀더 확대된다면 UI / UX 의 의미는 점점 줄어들 것이라 생각하기 때문이다. 오히려 인간 (사용자) 이 기계 (디바이스) 에 명령을 내려 목적을 달성하기 위해서 디바이스가 제대로 수행하는가를 제대로 확인할 수 있는 시각화 visualization 기술이 더 큰 의미를 가질 것이라고 믿는다. 즉, 디바이스가 처리한 내용을 오히려 인간이 제대로 이해할 수 있는 형태로 어떻게 가공할 것인지 보여주는 부분이다.

Pinterest Flat Design UI : 플랫 디자인은 아이콘의 트렌드가 아닌 보여줄 것만 보여주는 시각화의 차원에서 접근해도 재미있을 것 같다.

구글 글래스를 착용하면 구글 글래스가 보여줄 수 있는 영역은 생각보다 좁기 때문에 이 좁은 영역에서 얼마나 효과적으로 우리가 원하는 정보를 보여줄 수 있는지는 전혀 다른 기술이 필요할 때가 많다. 결국 iOS 의 아이콘 디자인이 변화했다고 해서 예전에 사용할 수 없는 사람이 갑자기 사용할 수 있는 것은 아니다. 터치를 하거나 더블터치, 밀어내기 (swipe) 와 같은 조작은 결국 잘 쓰는 사람들에게만 유용한 것이다. 구글 글래스를 착용하고 스마트폰에 연결해서 음성명령으로 내리는 것은 전혀 다른 개념이다. 그리고 보여지는 화면이 작기 (아니 협소하기 때문에) 스마트폰이 보여주는 정보를 보여줄 수 없다. 인간이 기계에게 전달되는 방식좀더 인간적인 방법 (주로 음성, 문서, 코드) 을 사용하지만 반대로 기계가 인간에게 보여주는 방식디바이스에 따라 달라져야 한다. 따라서 디바이스도 좀 더 인간이 좀 더 원하는 목적이 무엇인지 고민하여 사용자에 따라서 다른 결과 형태를 보여줄 필요가 있다.


다르게 보여준다는 것에 대한 짧은 예를 통해 글을 마무리해본다. 사용자는 매일 통계 자료를 다루는 사람이고 이 통계 자료를 마케팅에 활용하는 회사 간부이다. 매일 통계 자료가 데이터베이스에서 스프레드시트로 뿌려진다. (구글 드라이브의 쉬트 [sheet]) 로 저장된다. 사용자는 통계 자료를 분석하기 위해서 주로 사용하는 파이 pie 그래프로 그려본다. 주요 항목의 비율 (%) 을 확인하고 저장한다. 회의 시간에 회장님이 갑자기 전년도 영업이익 중 특정 사업의 비중을 물어본다. 구글 글래스에 명령을 내린다. "2013년 4분기 영업이익 데이터" 란 명령을 받고 자신의 계정에서 검색해서 찾아낸다. 그리고 디바이스는 구글 글래스에서 보여줄 때 어떤 형태로 데이터로 보여줄지 고민한다. 그래프를 제대로 다 보여줄 수 없기 때문에 파이 그래프를 선호하는 (선호하는 것은 디바이스가 알아낸다) 것을 통해 사용자는 비율에 집착(?)한다는 것을 고려해서

ITEM 1: 25.3% , ITEM 2: 11.43% , ... 

와 같이 비율로 먼저 보여준다. 사용자가 설정해야 하는 설정값은 사용자가 그동안 처리했던 데이터의 형태를 통해서 설정된다.


좋은 UI 에 대한 단상 ─ 목적성과 작업 단계를 통해서

Wednesday, April 18, 2018


퓨터는 기계의 속성을 잘 보여주는 대상 objet 이라 생각한다. 시간이 지나면 시장에는 내가 쓰는 제품보다 좋은 성능을 가지는 제품들이 나와 있고 그렇다고 내가 원하는 제품으로 정확하게 만들어 내기에는 신경쓸 것이 많다. 그래서 가급적 기성품을 사용하려 하지만 이미 만들어진 제품으로 사용을 하다 보면 기계 자체의 결함으로 문제가 발생하기도 하지만 거의 대부분은 사용자의 잘못된 사용이 원인이 되어 기계가 힘들어지는 경우가 많다.

컴퓨터를 기계로 표현하면 듣는 사람의 반응에 따라 기계와 컴퓨터를 어떻게 구별하고 있는지 느낌이 온다. 기계를 말하면 보통 단단한 금속으로 이루어진 무엇으로 공장에서 끊임없이 일을 하고 있는 대상을 생각할 수 있고 정밀한 톱니바퀴, 다양한 부품으로 이루어진 정밀시계도 생각할 수 있다. Mechanical engineering 을 기계공학으로 번역하지만 machine 도 기계라고 번역한다. mechanics 는 더 정확하게는 '역학'을 뜻한다. 역학이란 물리학 법칙을 이용한 학문이며 여기에는 물리학을 기본으로 하고 기계장치에 사용되는 유체역학 혹은 수리학 hydraulics 과 같이 기계 장치를 작동시킬 수 있는 다양한 힘의 학문을 다루는 분야이다. 그래서 mechanical engineering 은 기계공학이라기 보다는 '역학공학'이 더 어울릴 것 같지만 익숙하지 않아 차라리 machine 과 mechanics 를 혼재해서 사용하는 것이 더 편하게 되었다.

익숙하게 쓰고 있는 기계가 무슨 뜻인가

뜻하지 않게 기계에 대한 새로운 인식이 다가오기 시작했다. 인공지능이 우리에게 익숙한 용어가 되고 동시에 machine learning 이 부각되기 시작했는데 이를 한국어로 번역하면 '기계학습'이라 번역하게 되었다. 사실 machine 과 mechanics 에 대한 혼재로 기계학습과 기계공학이 같은 기계일까 의문을 가지게 되었다. 중국의 경우 기계공학은 우리와 비슷하게 기계공학 機械工業 으로 쓰지만 기계학습은 機器學習 으로 사용하고 있다. 발음 상으로는 기기학습이다. 器는 '그릇 기' 이지만 기계란 뜻도 포함하고 더 나아가 유기적인 조직을 가지는 대상 (예: 신체 기관) 에도 사용된다. 즉, 소프트웨어를 담는 그릇으로 하드웨어로 그릇의 모양도 중요하지만 그릇에 담기는 것도 중요하다는 설명이다.


Computer as machine ...

컴퓨터는 가장 대표적인 기기 machine 이다. 공장의 자동화 설비에 사용되는 많은 기계들도 생각할 수 있지만 이런 기계들은 소프트웨어의 의미가 크게 부각되지 않은 하드웨어의 이미지가 더 강하다. 반면 컴퓨터는 자연스럽게 컴퓨터 본체만 가져오면 깡통이나 다름없다는 것을 잘 안다. 그래서 컴퓨터는 하드웨어만큼 소프트웨어 - 가장 먼저 컴퓨터를 운영할 수 있는 운영체제라는 소프트웨어를 생각하게 된다. 우리가 잘아는 마이크로소프트 원도우, 애플의 맥OS 그밖에도 리눅스 유닉스 등이 있고 아주 작은 알람시계에 들어가는 무엇인가도 운영체제를 가지고 있다. 간단하게 인간의 목적을 위해 무엇인가 해주는 것에는 운영체제가 들어가 있다고 생각하면 된다. 같은 생각으로 핸드폰이란 기계에도 운영체제는 당연히 들어간다.

기계의 하나인 컴퓨터는 하드웨어 만큼 소프트웨어의 중요성을 잘 보여준다.

하드웨어의 성능이 사용자가 원하는 목적을 이루기에 부족하다면 성능이 좋은 최신의 하드웨어를 원하게 된다. 어떤 CPU 를 썼는가 메모리는 얼마인지 그래픽 카드가 무엇인지 따지는 것은 바로 소프트웨어를 떠나 기본적으로 사용자가 원하는 목적을 이루기 위해 필요한 하드웨어를 말한다. 게임을 계속 해야 한다면 좋은 그래픽 카드는 당연하고 최고의 성능을 가지는 하드웨어를 필요로 한다. 그러나 게임을 하지 않는다면 최고의 그래픽 카드는 항상 10% 미만의 성능만 사용하고 있을지 모른다. 결국 하드웨어는 사용자의 목적이 무엇인지 알아내는 것이 중요하다. 문서 작업만 하고 인터넷을 주로 본다면 최고급 성능의 그래픽 카드와 엄청난 클럭수의 CPU 그리고 바다를 헤엄칠 것 같은 광활한 메모리를 일부분만 쓸지 모른다.

소프트웨어도 사용자의 목적이 무엇인지에 따라서 선택된다. 노트북으로 이동하면서 문서작업을 자주하는지 누군가에게 웹페이지나 파일을 제공할 목적으로 컴퓨터를 쓰는지에 따라서 당연히 운영체제는 달라져야 한다. 우리가 인터넷에 접속하는 웹사이트는 '누군가의 컴퓨터'에 접근해서 제공하는 페이지와 데이터를 얻어오는 것이다. 누군가에게 서비스를 해주는 '서버 server' 는 항상 누군가 어떤 목적으로 접근하는지 대기하고 있어야 한다. 놀고 있다가 누군가 접근하면 그때 필요한 서비스를 메모리에 올리고 처리하면 그만큼 느려진다. 컴퓨터 자체는 빠르더라도 누가 언제 어떻게 접근할지 대비하고 있지 않으면 그만큼 느려진다. 따라서 서버란 메모리에 가능한 많은 프로그램을 올려놓고 필요할때 빠르게 접근하는 사람에게 서비스를 바로 제공해줄 수 있는 형태가 되어야 하고 노트북과 같이 개인적인 용도를 쓴다면 사용자가 노트북에서 쓰는 만큼만 빠르게 실행시켜주고 빠르게 메모리에서 제거하는 형태가 되어야 할 것이다.

서버는 많은 이들에게 서비스해주기 위한 성능좋은 컴퓨터이다.

그래서 컴퓨터의 성능은 단순히 비싼 컴퓨터에서 좌우되는 것이 아니라 하드웨어의 성능을 얼마나 잘 활용할 수 있는 소프트웨어의 지원이 기본이 되고 어떤 환경에서 어떤 목적으로 사용되는지에 따라서 알맞은 목적성을 가지는 운영체제를 운영하는 것이 가장 중요하다.


Mobile as machines ...

거의 모든 사람들이 가장 가까이 두고 다니는 기계는 이제는 스마트폰이 되었다. 주머니에 넣을 정도로 작은 기기지만 그 작은 기기가 할 수 있는 일들은 컴퓨터와 거의 동일하다고 본다. 스마트폰이 컴퓨터의 역할을 하기에 아직 부족한 부분은 화면과 입력 편리성 정도지만 스마트폰이 주변기기와 확장하기 편리해지고 주변에 있는 모니터에 연결이 되고 키보드를 같이 가지고 다닌다면 기존에 노트북을 가지고 다니며 할 수 있는 작업들은 거의 할 수 있다고 본다. 노트북은 가질 수 없는 통신의 자유로움은 노트북보다 장점이 될 수 있는 부분이다. 중요한 것은 어떤 작업을 하는지에 따라서 다르겠지만 거의 대부분 컴퓨터가 할 수 있는 작업의 영역을 이미 작은 모바일 기기가 할 수 있도록 도와주고 있다는 점이다.

두가지 측면을 살펴볼 필요가 있다. 첫번째는 초기의 스마트폰이 가진 여러가지 컴퓨팅 능력을 극복하고 있다는 사실이고 두번째는 정말 우리의 작업이 상당한 컴퓨팅 능력을 요구하는 것이 많지 않다는 것이다. 컴퓨터에서 중앙처리장치 CPU 와 메모리 및 연결을 위한 장치 소위 Northbridge & Southbridge 를 포함하는 작은 사이즈의 장치를 만들어 모바일 기기가 작동할 수 있도록 하는 것은 초기에는 쉽지 않았기 때문에 성능을 희생시키는 방법을 사용했지만 반도체 집적 기술과 모바일 기기에서 어떤 프로세서를 많이 사용하는지에 대한 연구와 함께 표준화가 이루어지면서 모바일 AP 의 발전은 놀랍게 발전하고 있다. 그래서 기술 개발을 하는 사람이 아닌 사용자의 입장에서 하드웨어의 성능 다른 말로 해서 컴퓨팅 능력 computing power 에 대한 걱정은 이제는 그리 크게 하지 않아도 될 것이다. 동시에 근본적으로 정말 인간이 일상적으로 하는 작업들은 컴퓨팅 능력을 심하게 요구할만큼 필요로 하는 작업들은 아닌 것이 아닌지 생각해 볼 필요가 생긴다.


많은 사용자들은 자신의 모바일 기기가 느려지거나 어떤 작업을 하다가 순간 멈추는 장면을 목격하면 반사적으로 생각하게 된다. "그래 핸드폰을 바꿔야 할 때가 왔구나" 혹은 시간이 지나면 기기는 성능이 떨어져서 제대로 사용하기 어려워진다는 것을 당연하게 받아들인다. 컴퓨터의 경우 부품 사이에서의 청결 문제나 접촉 문제 등에 의해서 하드웨어의 문제가 발생하는 경우는 존재하지만 거의 대부분 소프트웨어의 사용 상에서 무리를 주거나 필요 없는데 컴퓨터에 무리를 주는 어떤 요인이 상주하며 발생하는 경우가 많다. 말을 돌려 이야기했지만 제대로 된 프로그램을 깔지 않거나 제대로 된 프로그램도 문제를 일으킬 수 있다는 것이다. 모바일 기기도 비슷하다. 열에 의해 전체 시스템에 영향을 크게 주어 성능이 떨어질 가능성이 분명 존재하지만 그렇다고 쉽게 성능이 떨어지는 것은 대부분 소프트웨어의 문제일 가능성이 더 높다는것을 생각해야 한다.

그래서 어쩌면 여전히 어느정도 계산 능력을 가지고 일반적인 작업을 충분히 할 수 있는 모바일 기기들이 쓰이지도 못하고 버려지고 더 좋은 핸드폰을 바라는 것은 그냥 실증난 옷을 바꾸는 것과 비슷할지 모른다. 조금 더 좋아 보이는 핸드폰을 들고 사용하고 싶은 것이고 미디어에서는 새로운 핸드폰을 사용하면 지금까지는 할 수 없는 무엇인가 할 수 있을 것이라고 계속 자극하고 있기 때문에 버려지는 핸드폰은 지금도 계속 늘어나고 있을 것이다.


Something as machine ...

궁극적으로 기계 machine 를 말할 때 컴퓨팅 능력 computing power 을 가지고 있는 모든 것을 말할 수 있다. 심지어 디지털 알람 시계도 어느정도의 컴퓨팅 능력를 가지고 있기 때문에 이 또한 기계라고 말할 수 있다. 즉, 컴퓨팅 능력를 가지고 있는 모든 사물 중 통신 능력을 가지고 있는 것을 요즘 말하는 사물인터넷 (IoT; Internet of Things) 이라 부를 수 있다. 그렇다면 컴퓨팅 능력이란 무엇인가 생각해봐야 한다. 복잡하게 설명할 능력이 되지 않으니 개인적으로 생각하는 정의를 다음과 같이 표현하고 싶다.

어떠한 문제를 해결하기 위한 순차적인 체계와 논리처리할 수 있는 능력

그래서 단순히 기계란 전기가 들어오는 컴퓨터를 먼저 떠올릴 수 있지만 넓은 의미에서 DNA 가 생화학 법칙 (자연 법칙) 을 통해서 필요한 단백질을 만들어내는 과정도 컴퓨팅 능력에 포함되어야 한다고 생각한다. 전자 시계가 아닌 일반 태엽으로 돌아가는 시계를 바라보아도 시간을 알고 싶다는 문제를 해결하기 위해서 부속품들이 가지는 기계적인 특징 mechanical properties 을 통해서 우리에게 시간을 알려주는 능력을 가지고 있기 때문에 넓은 의미에서 아날로그 마저도 컴퓨팅 능력을 가지고 있다고 말 할 수 있다. 그리고 앞에 말한 '어떠한 문제를 해결하기 위한 순차적인 체계와 논리' 를 보통 알고리즘 algorithm 이라고 부른다. 따라서 컴퓨팅 능력이란 '알고리즘을 처리할 수 있는 능력'이다.

화성 탐사선 큐리오시티 Curiosity 는 바퀴로 모스부호를 만들거나 거리 측정을 위한 주행 패턴을 변화시키는 알고리즘을 적용했었다. - NASA Jet Propulsion Laboratory

현실 세상에서 '어떤 문제를 해결하기 위한' 은 인간의 불편함으로 연결되는 경우가 많다. 그래서 인간의 발명품은 인간의 불편함을 제거하기 위한 노력들이다. 그런데 그 불편함을 느끼는 감수성이나 문제의 근본적인 원인을 알아내는 능력은 개인마다 다르기 때문에 발명품의 품질이나 효용성은 달라지게 된다. 그리고 역사에서 보면 해결책이 좋다고 대중화되는 것이 아니라는 것도 알고 있다. 더 효율적이고 더 좋은 것이지만 정치 경제 그리고 시대의 흐름에 따라서 더 좋은 발명품은 역사에 사라지고 한동안 많은 문제를 가지는 발명품이 당연하게 받아들여지는 경우도 있다. 가장 대표적인 예로 전기 자동차와 내연기관 자동차를 생각한다. 전기 자동차가 개발된 것은 우리가 생각하는 것보다 상당히 오래된 일이지만 여전히 낮은 기름값(?)과 내연기관 산업 발전을 위해서 전기 자동차는 만들어졌다가 정책적으로 사라지는 과정을 겪게 되었다. 그리고 우리에게 남아 있는 것은 내연기관이 만들어 낸 다양한 공해 물질과 내연기관 연료를 만들기 위한 높은 석유의존성을 남기게 되었다. 더 길게 보면 무엇이 인류에게 좋은 것인지는 알 수 없지만 내연기관은 쉽게 끊기에는 너무도 광범위한 기계가 된 것은 인정해야 할 것이다.

결국 기계란 인간의 불편함을 해결하기 위한 작업들이다. 우리의 일상 생활에서 느끼는 불편함이 무엇인지 확인하고 불편함을 해결할 수 있는 적절한 재료들이 존재한다면 그 재료를 가지고 적절하게 조합해서 만들어 내는 과정은 결국 인간이나 기계의 컴퓨팅 능력을 요구하게 된다.


Useless means ...

기계를 사용하는 사용자로 인간은 종종 '쓸모없음 uselessness' 에 대해서 쉽게 말한다. 어쩌면 완제품의 시대 era of ready-made product 에서는 완제품이 제공하는 모양과 기능에서 조금이라도 벗어나면 쓸모없다고 말하는지 모른다. 예를 들어 3G 통신 제품은 지금은 쓸모없는 스마트폰일 뿐이다. 어쩌면 쓰고 싶지 않다고 말하는 것이 솔찍한 표현일 것이다. 그래서 기계를 사랑하는 사람들의 모임은 두 종류로 구별되기도 한다. 새로운 제품과 뛰어난 성능을 보여주고 싶어하는 모임이 첫번째이다. 새로운 제품 그래서 대체로 뛰어난 제품을 통해서 성능을 보여주는 데 집중하는 모임이 있고 다른 종류는 고물상같은 느낌으로 버려지고 쓸모없는 제품들의 사용 가능성을 보여주거나 필요하다면 부품으로 분해해서 새로운 제품을 만드는 모임이다. 개인적으로 후자를 좋아한다. 완제품이 주는 매력적인 성능의 이끌림이 나쁘다고 말할 수 없지만 많은 경우 우리에게 한계로 다가오는 것은 그만큼 무엇을 발전시킬 수 있는 부분이기도 하기 때문이다.


무제한 통신 요금제를 사용하면 편리해서 좋을 수 있지만 어떤 프로그램 (앱) 이 얼마나 네트워크를 사용하는지 신경쓰지 않을 것이다. 핸드폰에서 어떤 앱을 보면 통신요금이 적용되지 않는 네트워크 환경 (주로 무선랜) 에서 필요한 내용을 받았다가 모바일 환경에서도 통신요금에 영향을 주지 않게 만든 앱들이 있다. 무제한 통신 요금제를 사용하지 않아서 소위 통신 요금 폭탄을 걱정하는 이유이기도 하지만 기본적으로 무제한 통신 환경을 생각하고 앱이나 프로그램을 만드는 것은 다른 한편으로 생각하면 통신이 되지 않는 환경에서는 제대로 작동하지 않는 것을 말하기도 한다. 그래서 개인적으로 모바일 통신 환경이 아닌 오프라인에서도 제대로 사용할 수 있는 환경을 제공하는 앱이나 프로그램에 대한 신뢰를 더 가지게 된다. 왜냐하면 어떤 환경에서도 쓸모없이 되는 것을 최소화하려는 생각을 하는 개발자의 작품이기 때문이다.

인간의 쓸모있음 usefulness 은 절대적인 대상의 문제가 아닌 인간이 얼마나 활용하고 인간이 얼마나 활용할 수 있도록 환경을 만들어주는지에 따라 변화하는 문제라는 것이다. 그래서 가끔 쓸모없는 대상을 어떻게 하면 쓸 수 있을까 고민하는 과정은 문제를 해결하는 과정에서 필요한 부분이라고 생각한다.


Brand new born as ...

예전에 [ 오래된 컴퓨터 활용기 ─ 사라지는 것들에 희망을... ] 글을 통해서 사용하지 않는 노트북을 서버로 만들어 사용하는 방법을 소개한 적이 있다. 하드웨어 성능이 좋지 못해 일반적 작업에 사용하기 어려운 노트북을 서버로 만들어서 남는 저장장치와 연결해서 집안 내부에서 사용하는 홈 네트워크 서버로 사용하는 내용이였다. 시대가 변화해서 이제 큰 부피를 차지하는 노트북을 이용하지는 않지만 그 노트북에 연결된 저장장치는 거의 15년이 넘어가는 시점에서도 문제없이 계속 사용하고 있다. 다만 조금 더 적은 공간과 다양한 활용을 위해서 구형 노트북에서 라즈베리 파이 Raspberry Pi 로 바꾸었다. 그러나 여전히 저장장치로 사용하는 외장하드들은 대부분 10년 이상 넘어가고 있는 구형 장치들이다. 그래서 USB 3.0 도 아닌 USB 2.0 속도이고 네트워크도 전설에서나 들을 법한 100Mbps 속도이다. 그러나 활용도에서는 그 어떤 서버보다 더 즐거움을 줄 때가 많다.

소형 컴퓨터인 Raspberry Pi

구형 저장장치를 이용한 서버 뿐만 아니라 몇년전 부터는 핸드폰을 더이상 구매하지 않게 되었다. 개인적으로 좋아하는 넥서스 시리즈가 사라지고 이제는 구글에서도 픽셀 Pixel 시리즈를 내놓았지만 넥서스 5X [ Nexus 5X in Júne's Wiki가 2년째 쓰는 핸드폰이다. 2013년쯤 얻은 넥서스 4 [ Nexus 4 in Júne's Wiki ] 도 여전히 잘 쓰고 있는다. 확실히 연산 능력은 떨어지기 때문에 느린 부분이 존재하지만 여전히 통신도 잘하기 때문에 일종의 사물 인터넷 지휘소 fleet beacon 같은 역할을 하게 두었다. 그렇게 넥서스 시리즈의 다양한 핸드폰을 사용하고 더이상 쓸모없어 버린 제품들을 모아서 기존 운영체제가 아닌 최신 운영체제에 맞춰 사용할 수 있도록 도와주는 커스텀 롬 custom rom 을 설치해서 사용하게 된다. 기기의 특성이나 품질에 따라서 달라질 수 있지만 커스텀 롬 하나만 바꾸어 보면 사용하는데 전혀 지장이 없는 정도로 사용할 수 있게 된다. 개인적으로 사용하는 롬은 리니지롬 [ Lineage Rom ] 이다.

Lineage Custom ROM 사용이 가능한 기기들

보통 쓸모없어 버리거나 방치한 기기들을 모아서 쓸수 있는 부품들을 모아서 새롭게 핸드폰을 만들기도 한다. 이런 과정 속에서 재미있는 것도 있지만 가장 기본적인 내용들을 알게 되는 경우가 더 많기 때문이다. 혹시나 핸드폰에 새로운 롬을 깔아서 완전히 쓸 수 없게 망가지는 것은 아닐까 걱정할 수 있지만 어짜피 버려진 기기라면 해봐서 나쁠 것도 없다. 뿐만 아니라 새롭게 시도하는 과정 속에서 발생하는 문제들을 해결하다 보면 나와 같은 경험을 하는 사람들이 세상에 많다는 것 그리고 그 해결책을 누군가는 가지고 있고 문제가 일어나는 이유를 알게 되는 과정 역시 새로운 탐험이다.

그러나 항상 구형 기기만으로 해결할 수 있는 것은 아니다. 문제 해결 과정에서 절대적으로 필요한 컴퓨팅 능력이 있을 수 있다. 예를 들어 아무리 잘 구성하고 빠른 서버를 구축했다고 해도 동영상 실행에 필요한 하드웨어가 존재할 수 있다. 이런 경우 자신에게 필요한 것이 무엇인지 고민하는 과정에서 컴퓨팅 능력이 가지는 한계와 극복 방법도 함께 생각할 수 있을 것이다.


Useless to Useful ...

몇가지 예를 통해서 어떤 과정으로 구성하고 활용할 수 있는지 간단하게 소개하려 한다. 또한 구성하는 과정에 필요한 매뉴얼은 동시에 개인 위키 (영문) 를 통해서 소개하려고 한다.

A. Home network storage ...

클라우드 서비스가 일상적이지만 기본적으로 클라우드는 용량 제한과 속도를 생각해 일정 네트워크에서 사용할 수 있는 파일 공유를 생각하는 경우가 많다. 그래서 그런 필요성을 충족하기 위해 많은 제품들이 만들어진다. 외장하드 형태이지만 네트워크에 연결해서 사용자들이 필요한 자료를 올리고 내려받거나 바로 실행해서 사용할 수 있는 환경을 만들어 준다. 그러나 많은 경우 제품 제조사들이 만든 앱이나 프로그램을 사용해야 하거나 문제가 발생했을 때 자신이 스스로 해결할 수 없는 경우 그래서 다음 번 펌웨어를 기다려야 하는 경우가 종종 생긴다.

그래서 앞서 소개한 구형 노트북을 리눅스 서버로 만들어서 네트워크에 연결해 기본적으로 리눅스가 제공하는 파일 공유 서비스 samba 등을 사용하는 방법을 사용할 수 있다. 구형 노트북을 사용하는 방법도 좋지만 개인적으로 손바닥 크기의 라즈베리 파이란 기계를 사용한다. 소형이고 가격도 저렴하고 기계에 사용할 운영체제도 호환성이 좋고 무엇보다 많은 이들이 이를 활용한 활용법이 많기 때문이다. 확장성은 좋다고 할 수 없지만 기본적인 내용은 모두 가능하기 때문에 별 문제없이 사용할 수 있다.


삼바까지 설정하고 나면 설정한 아이디 / 비밀번호를 통해서 다른 컴퓨터에서도 저장장치를 사용할 수 있게 된다. 위에 링크된 내용들은 개인적인 용도로 정리한 것이기 때문에 다른 곳을 찾아보는 것이 더 유용할 것 같다.


이렇게 삼바 서버를 설정하고 나면 사용하는 컴퓨터의 필요없는 자료를 백업하거나 동영상과 같이 용량이 큰 자료들은 옮겨 놓고 사용할 수 있을 것이다.

B. Wish to wiki my own ...

무엇인가 새롭게 알게 된 것을 잘 정리하고 싶을 때 노트를 위한 앱이나 프로그램 (예: 구글 킵 Google Keep, 에버노트 Evernote 나 원노트 OneNote) 와 같은 프로그램을 사용할 수 있지만 만약 동기화된 핸드폰이나 노트북이 없다면 다시 찾기 어려울 때가 많다. 보통 많은 사람들이 모여서 지식을 정리하고 소위 집단 지성을 만들기 위해 위피피디아 Wikipedia 를 만들었지만 이런 필요성은 개인에게도 필요할 수 있다. 또한 자신이 한번 설정하고 반복적으로 그 설정값을 적용하고 싶을 때는 어딘가에 적힌 메모에서 반복해서 복사해서 사용하기 보다는 웹에서 바로 복사해서 사용하면 더 편리할 것이다. 그래서 개인적인 용도로 위키를 만들 수 없을까 싶었다.

웹에서 사용할 수 있는 위키 종류는 그렇게 많지 않다. 위키피디아를 구성하는 미디어위키 MediaWiki [ MediaWiki ] 가 좋은 방법이지만 설치해야 할 서버가 필요하고 필요한 서버를 호스팅하는 방법도 있지만 비용뿐만 아니라 접근성의 문제로 불편할 것이다. 그래서 생각한 것이 이왕 사용하고 있는 라즈베리 파이를 이용해 웹서버로 만들고 위키를 올리는 것이다. 다만 미디어위키의 경우 데이터베이스를 사용해서 원래 사용하려는 용도에 비해 무거울 수 있을 것 같아 다른 대안을 찾아 데이터베이스를 사용하지 않는 위키를 올리기로 했다.

기본적으로 삼바 서버까지 설정하는 과정을 그대로 거치고 추가적으로 웹서버를 설치한다. 웹서버로 Nginx (엔진엑스라 읽는다) 를 설치하기로 결정했다. 웹서버를 설치하고 나서 기본적으로 필요한 SSL 설정 (보안웹 설정) 을 위해 Let's Encrypt 의 인증서 서비스를 설치하고 등록했다.



이후 나에게 맞는 위키로 생각한 DokuWiki [ DokuWiki ] 를 설치한다. 위키를 설치하고 나서 운영하면서 작업의 여러 변화들이 일어난다. 간단한 설정값을 확인하기 위해 노트 프로그램을 찾거나 다른 웹 서비스에 들어가 확인하는 과정이 아니라 위키에 잘 정리된 내용이 있기 때문에 항상 위키에 먼저 접근해서 해당 설정을 찾아내거나 네트워크 관리도 간단한 php 스크립트를 통해서 관리하는 서버가 지금 문제가 있는지 아닌지 바로 페이지에서 확인할 수도 있다. 어떤 문제가 발생했을 때 다음 번에도 동일한 문제가 발생하는 경우가 많은데 예전에는 인터넷에서 검색해서 똑같은 페이지에서 해결방법을 찾았지만 위키에 한번 정리를 하고나면 동일한 문제에 바로 위키에서 해결할 수 있게 된다.

C. Security sensor using phone ...

잘 사용하지 않는 오래된 핸드폰이라도 기본적인 기능은 가지고 있다. 특히 센서 기능은 유용하게 쓸 수 있다. 활용도가 떨어지는 핸드폰은 다양한 용도로 쓸 수 있다. 핸드폰으로 가지고 다니며 사용하기는 힘들지 몰라도 집이나 사무실에 두고 다양하게 사용할 수 있다. 특히 스마트폰의 괜찮은 앱들은 그런 용도를 바로 구현하기 좋은 경우도 많다. 예를 들어 A 라는 서버에 있는 자료들을 B 서버에 정기적으로 옮겨 놓고 싶을 때 컴퓨터로 그 작업을 생각날 때마다 하는 것이 아니라 동기화 기능을 제공하는 앱 (예: FolderSync) 을 설치해 놓고 A 서버와 B 서버를 등록해서 A 서버에 변화가 생기면 바로 동기화 해주거나 주기적으로 동기화 Synchronization 를 해주도록 설정해 놓는다.

본인이 집을 비운 동안 누군가 집에 몰래 들어오지 않을까 걱정이 된다면 사용하지 않는 구형 핸드폰을 이용할 수 있다. 핸드폰에 있는 근접 센서 proximity sensor 를 이용할 수 있다. 문에 핸드폰을 올려 놓을 수 있도록 하고 핸드폰을 가릴 수 있는 적당한 가림막을 놓아 문을 열면 핸드폰이 가림막에서 멀어지게 하거나 반대로 가까워지게 한다. 근접 센서에 변화가 발생하면 특정 프로그램을 실행시키거나 집 주인에게 메세지를 보내도록 하는 것이다. 구체적인 방법은 활용하고 싶은 이들의 상상력으로 더 발전시킬 수 있기를 바라며 이런 작업이 가능하게 하기 위해서는 소위 자동화 앱 (프로그램) 이 필요하다.

전화 통화 중 귀에 가까워지면 화면이 꺼지는 이유는 근접 센서 때문이다.

자동화 앱 (프로그램) 이란 특정 조건이 이루어지면 triggered 정해진 내용을 실행 execute 하도록 만든 것이다. 예를 들어 새벽 1시가 되면 알람 소리를 제외하고 모든 소리가 나지않게 한다거나 읽기 위한 앱들 예를 들어 웹브라우저나 책 읽는 앱을 실행시키는 동안에는 화면이 꺼지는 시간을 길게 하도록 하거나 무선랜을 사용할 수 없으면 네트워크 사용량이 많은 동기화 auto-sync 나 다운로드 받는 작업을 중단하도록 한다 와 같이 반복적으로 실행하는 내용을 자동으로 구현해주는 것이다. 가장 대표적인 안드로이드 앱은 Tasker [ Tasker ]이다. 이런 자동화 앱을 사용한다면 문에 설치한 핸드폰에서 근접 센서가 변화가 있을 때 집주인에게 메세지를 보내고 그 이후 자동으로 녹음을 하도록 할 수 있다.

앞에서 설명한 '어떠한 문제를 해결하기 위한 순차적인 체계와 논리' 를 핸드폰에서 구현하는 것이다. 이런 자동화 앱은 순차적인 체계와 논리를 구현해주기 때문에 사용자는 프로그래밍 능력 ability to code 을 가지고 있지 않아도 문제를 해결할 수 있게 된다.


Algorithm without programming ...

종종 알고리즘을 프로그래밍 할 수 있는 능력 as a coder 과 동일하게 생각하는 경우가 많다. 그러나 개인적인 생각으로 '알고리즘을 구현할 수 있는' 다양한 방법 중 가장 근본적인 능력은 프로그래밍이 될 수 있지만 앞서 본 자동화 앱이나 정리가 잘된 운영체제로 일반 사용자들이 쉽게 쓸 수 있다면 알고리즘은 그 본연의 뜻인 '순차적인 체계와 논리' 로 돌아갈 수 있고 일반 사용자들도 쉽게 자신이 원하는 알고리즘을 구현할 수 있을 것이다. 프로그래밍 능력을 가지고 있다면 좀 더 다양한 범위에서 해결할 수 있게 되는 것도 생각해야 한다. 즉, 자동화 앱이나 일반적인 설정에서 제시되지 않은 문제가 발생하거나 제대로 실행이 되지 않을 때 문제를 해결할 수 있는 능력은 문제의 더 근본적인 부분을 찾아서 해결할 수 있어야 하고 근본적인 해결책은 대부분 프로그래밍 능력을 요구하는 경우가 많기 때문이다.


예를 들어 리눅스를 누구나 쉽게 화면에 나오는 안내에 따라서 잘 설치하고 사용할 수 있고 심지어 내용은 알 수 없지만 인터넷에 잘 설명된 명령어를 그대로 따라해서 성공할 수 있지만 만약 그 과정에서 문제가 발생한다면 해결하기 위해서는 리눅스 시스템의 기본적인 내용을 알고 있을 때 더 쉽게 문제를 해결할 수 있다. 또한 기본적인 명령어 체계와 구조를 이해하고 있다면 인터넷에 소개된 따라하기 내용들도 자신에 맞게 응용해서 적용할 수 있다.

결과적으로 알고리즘은 프로그래밍으로 해결하는 과정만이 아니라 인간의 모든 문제들을 해결하는 체계와 논리를 모두 다 포함하고 그것을 얼마나 효율적으로 해결할 수 있는지에 고민하는 과정에서 인간은 자연스럽게 컴퓨팅 능력을 요구하게 되었다. 예전에는 사람들이 수작업으로 확인하고 정리하는 과정에서 컴퓨터가 자료를 읽어내고 자동으로 분류하고 실수없이 결과를 만들어 내는 과정은 수작업에서 소요되는 시간이 길고 실수에 의한 효율성이 떨어지는 불편함을 해결하기 위한 과정이다. 인간의 불편함은 좀 더 정확할 수 있는 가능성이 상당히 높은 컴퓨터의 데이터 처리 능력에 더욱 더 의존하게 되는 것이다. 그리고 알고리즘도 컴퓨팅 능력에 좀 더 의존하게 되는 것이다.

그러나 이제는 프로그래밍을 몰라도 알고리즘을 구현할 수 있는 다양한 도구를 제공한다. 앞서 소개한 자동화 작업 automatic workflows 은 안드로이드에서만 가능한 것이 아니라 웹서비스에서도 가능하다. 예를 들어 트위터에 올린 글을 자동으로 페이스북에도 올리게 하거나 내가 유투브에서 좋다고 누른 혹은 특정 리스트에 저장한 동영상을 내 블로그에 자동으로 올라가게 하게 하는 것처럼 웹서비스 사이에서 데이터의 이동이나 저장을 도와주는 서비스이다. 가장 대표적인 서비스가 IFTTT [ IFTTT ] 이다. IFTTT 은 if this, then that 란 뜻으로 서비스의 이름에서 바로 알 수 있듯이 안드로이드의 자동화 앱과 동일한 내용임을 알 수 있다. 이론상으로 기기 내부에서 자동화가 이루어지는 앱과 웹 서비스 사이에서 이루어지는 자동화 서비스를 연결한다면 궁극적으로 거의 대부분이 자동화가 이루어질 수 있음을 상상할 수 있다.

IFTTT - IF This, Then That


Lazy makes creative ...

인간의 창의력은 어디서 오는 것이냐 누군가 묻는다면 개인적으로 '게으름'이라고 대답하게 된다. 가끔 반복적으로 하는 작업들이 있다. 예를 들어 맘에 드는 음악의 음원을 구매하고 나면 초기에는 어디에 저장을 할까 고민을 하게 되어 일정한 공간에 저장하지 않아서 결국 다시 구매한 내역에서 다시 다운받기도 한다. 클라우드가 보급되고 사용할 수 있는 용량이 늘어나서 음원 파일을 클라우드에 올려놓기도 했지만 클라우드 서비스가 무료 사용자에게 파일 당 용량 제한을 해서 제대로 사용하지 못하게 되고 다시 고민하게 되기도 한다. 여러가지 우여곡절 끝에 지금은 개인 서버에 저장해서 용량 걱정도 하지 않고 저장하게 되었지만 개인서버에서 매번 연결해서 듣기가 불편하기 때문에 구글 음악 Google Music 에 올려놓고 모바일 기기나 웹브라우저를 통해서 듣게 된다. 그런데 음원 파일을 가수별로 정리를 하고 파일 이름도 내려받은 그대로 사용하기에는 불편함이 있어서 음원을 앨범이나 가수별로 잘 정리를 해주는 iTunes 를 이용한다. 이처럼 필요에 의해서 다양한 서비스나 프로그램을 사용하게 되지만 목표는 하나일 것이다. 그냥 잘 듣고 잘 보관하고 잘 정리했으면 좋겠다.

음원을 받고 나면 거의 동일한 작업이 이루어진다. ① 음원 파일을 내려 받고 음원 파일의 태그 tag 정보를 편집해주는 프로그램으로 불필요한 정보를 지워주고 구글 뮤직에 올려도 비 라틴 문자 non Latin characters 를 제대로 보이게 하기 위해서 편집해준다. (mp3tag 를 사용한다.) ② iTunes 를 열어 음원 파일을 끌어 넣으면 자동으로 iTunes 는 음악가에 따라서 폴더를 형성하고 파일명도 자동으로 정리해서 저장한다. iTunes 는 별도로 음원 파일을 관리해 준다. ( 기본값은 %USERPROFILE%\Music\iTunes\iTunes Media\Music ) ③ 내려받은 음원은 앨범 단위로 압축하고 ④ 압축한 파일들은 특정 클라우드 및 개인 서버에 올리고 ⑤ 올린 파일들은 삭제한다. ⑥ 구글 뮤직에 업로드 하기 위한 프로그램을 실행하면 자동으로 iTunes 에 올린 음원을 구글 뮤직에 업로드해준다. (업로드를 위한 프로그램만 실행하면 된다.)


간단하게 여섯 과정 정도이지만 이런 작업들조차 하고 싶지 않을 정도로 귀찮아지면 음원은 받아 놓고 관리도 안하고 쌓여갈지 모른다. 이런 과정 다 귀찮고 그냥 음원 스트리밍으로 들으면 될 것 아니냐고 하면 별로 할말은 없지만 특정 서비스에 귀속되거나 스트리밍을 통해 발생하는 안 써도 되는 모바일 데이터도 그냥 개인적 취향에 맞지 않다고 하자. 내가 필요로 하는 목적 - 음악을 잘 듣고 싶어요 - 을 이루기 위해 태그도 편집하고 iTunes 에 옮기고 구글 뮤직에도 업로드 하지만 순간 이 모든 것을 맘먹고 하기에 너무 귀찮아지고 하나의 생각이 든다.

"좀 더 편하고 덜 움직일 수 없을까?"

최소한 음악을 고르고 음원은 내려받는 것 까지야 어쩔 수 없다고 해도 특정 폴더에 음악을 내려 받으면 자동으로 모든 과정을 다 해주어 나는 그냥 음악을 구글 뮤직에서 들을 수 없을까 하는 생각이 들었다. 그런 생각의 근원은 아마도 귀찮음일 것이다. 그리고 그 귀찮음은 결국 여러가지 찾아보게 된다. 한번 고생하고 계속 귀찮아 보자

① 당장 자동화할 수 있는 방법이 없어 프로그램 (mp3tag) 를 실행시키고 태그를 편집한다. (사용자 작업: 프로그램 실행 및 편집)
② 편집이 완료된 음원 파일은 iTunes 에 있는 Automatically add to iTunes 폴더로 복사하면 자동으로 iTunes 에 등록된다. (사용자 작업: 복사, 프로그램 실행 필요 없음)
③ 폴더 별로 압축한다. rar 명령어를 이용해서 자동으로 폴더별로 압축 파일을 만들어 놓는다. (사용자 작업 없음) - rar 명령어를 포함하는 스크립트로 폴더 별 압축 파일을 만든다.
④ 압축 파일 *.rar 을 지정된 클라우드와 개인 서버로 동기화 한다. (사용자 작업 없음)
⑤ 동기화 프로그램에서 동기화 이후 압축 파일을 삭제한다. (사용자 작업 없음)
⑥ 구글 뮤직 매니저가 알아서 iTunes 의 변화된 내용을 업로드 한다. (사용자 작업 없음)

동기화 프로그램 GoodSync - 특정 폴더에 변화가 발생하면 동기화를 실행한다.

이 과정에서는 음원을 다운 받아서 MP3 태그를 편집해서 iTunes 의 특정 폴더 (Automatically add to iTunes) 에 복사하면 나머지 과정은 특별히 사용자가 손 댈 필요없이 클라우드에 올려 음원을 백업하는 과정도 구글 뮤직에 올리는 과정도 신경쓸 필요없이 바로 구글 뮤직으로 음악을 즐기면 된다. 이 과정에서 사용자 작업이 필요없는 과정들은 해당 작업이 자동으로 실행되기 위한 방법이 있어야 한다. 예를 들어 특정 폴더에 변화가 생기면 자동으로 특정 작업을 수행하게 된다. 참고로 여기에서 동기화 작업을 위해 GoodSync [ GoodSync ]란 프로그램을 사용한다. 이 정도만 하면 적당히 귀찮지 않을 수 있지만 이제는 귀찮음을 떠나 더 체계적인 구조를 원하게 된다.


Push all behind ...

적절한 그리고 좋은 프로그램은 인간을 좀 더 게으르고 좀 더 편하게 만들 수 있고 잘 조합을 하면 목적을 이룰 수 있을 적당한 (혹은 훌륭한) 수준의 결과를 얻을 수 있다. 바로 앞의 예를 통해서 음원 파일을 받아서 태그만 편집하고 특정 폴더에 넣고 나면 모든 것이 자동으로 이루어지는 편리함도 좋지만 무엇보다 수작업에서 만들어지는 실수를 줄일 수 있다는 것이 더 좋은 점이다. 그런데 이 정도에서 만족하고 그냥 쓸 수 도 있지만 좀 더 욕심이 생기게 되고 귀찮아서 시작한 자동화의 목표는 더 많은 일과 귀찮음을 만들게 되는 역설을 만든다. 좀 더 체계적으로 프로그래밍으로 내가 원하는 섬세한 과정을 만들어 보고 싶은 것이다.

앞의 예들을 통해서 생각해 볼 부분이 바로 자동화 automation 라는 과정 속에서 생각해볼 것이 있다. 우리는 그래픽 환경으로 이루어져 마우스로 키보드로 작업하는 환경에 익숙해져 있다. 눈 앞에 어떤 창이 떠서 내가 원하는 작업을 실행할 수 있는 화면이 있어야 무엇인가 할 수 있다. 그런 그래픽 환경에서는 사용자가 어떤 입력을 원하는지 대기하고 있어야 한다. 그렇기 때문에 사용자를 귀찮게 한다. 그래서 알아서 자동화가 이루어진다는 것은 사용자 눈앞에 '어떻게 해주세요' 라고 명령을 기다리는 것이 아니라 정해진 조건이 충족되면 정해진 작업을 알아서 해야 하고 그렇기 때문에 그래픽 환경의 작업은 적당하지 않다는 것을 알 수 있다. 오히려 사용자가 원하는 작업을 자동으로 할 수 있는 명령어들로 실행되어야 한다. 이러한 환경을 그래픽 사용자 환경 (GUI; Graphic User Interface) 와 대비되어 명령어줄 환경 (CLI; Command Line Interface) 라고 부른다. 그래픽 환경이 사용자들이 작업하기 편리할 수 있지만 사용자의 선택을 기다려야 prompt 하기 때문에 사용자의 반복적인 작업에서는 오히려 더 불편할 수 있다.

명령어줄 환경

예를 들어 여러 파일들이 들어있는 폴더에서 파일명을 일괄적으로 다 바꿔버리고 싶을 때 원도우에서 어떻게 바꿔야 하는지 난감할 때가 있다. 파일명 변경을 원하는 파일들을 모두 선택하고 (Ctrl-A) 파일변경 단축키 (F2) 를 누르고 탭 (Tab) 을 누르면 순차적인 번호를 붙이며 변경될 수 있지만 옛 도스 DOS 시절 와일드 카드 문자 wild card characters 로 더 편리하고 유연한 변경이 가능하다는 것을 생각해보면 그래픽 환경이 편리하다고 보기 어려울 때가 많다. 특히 정해지고 반복된 작업들 대량의 데이터를 처리하는 과정은 더욱 더 그렇다. 그래서 원도우도 이런 작업을 할 수 있도록 명령어를 통해 작업할 수 있도록 하기도 하고 기능을 더 확장해 사용자가 그래픽 환경없이도 원하는 작업을 수행할 수 있도록 한다. 다른 예로 네트워크 환경에서 새롭게 IP 주소를 받고 싶을 때 원도우 그래픽 환경에서는 네트워크에 관련된 설정 화면을 들어가서 해당 버튼을 눌러 작업을 할 수 있지만 명령어 줄로는 ipconfig /renew 로 명령을 하면 화면을 찾아 들어갔던 작업을 바로 실행할 수 있기 때문이다.

기본적으로 리눅스는 그래픽 환경도 제공하지만 주된 작업은 명령어줄로 이루어진다. 그래서 간단한 명령어만으로도 설정 settings 이나 구성 configuration 을 할 수 있다. 외부에서 서버로 접근해서 원격으로 관리하는데 명령어줄 환경은 아주 큰 장점이다. 그래픽 환경이 필요한 경우라면 원격 서버를 화면으로 뜨게 해서 관리해야 하지만 명령어줄은 간단하게 텍스트로만 들어갈 수 있는 터미널로 접속해서 명령어로 거의 대부분을 관리할 수 있다. 원격 서버의 화면을 멀리서 불러오는데 네트워크 속도가 좋지 않다면 제대로 보여주지 못할 수도 있고 보안 상으로도 불리하다.


Back-front workflows ... 

만약 원도우나 맥에서 일반 사용자들이 하는 작업들을 모두 명령어줄로 해결할 수 있다면 앞서 예를 든 음원 파일의 관리처럼 특정 조건 trigger 이 발생하면 필요한 작업 action 을 실행하도록 하고 작업에 필요한 명령어가 존재해서 그래픽 환경을 요구하지 않는다면 어떨지 상상해 본다.

안드로이드 기기 안에서는 앞서 설명한 것처럼 자동화가 광범위하게 가능하다. 필요하다면 아주 섬세한 수준까지 가능하다 예를 들어 평소에 밝기 수준을 낮게 했다가 이북 리더를 실행시켜 읽는다면 화면 밝기를 독서에 좋은 화면 밝기로 유지하고 자동으로 화면이 어두워지거나 꺼지는 것도 끄거나 길게 변경하고 알람도 소리없이 진동만 유지하도록 할 수 있다. 그리고 사용자가 설정하기 어려운 시스템 단위의 설정도 특별한 권한 root 을 가지고 있다면 리눅스 서버와 같이 사용할 수도 있다. 웹서비스와 클라우드 저장 공간은 이러한 개념으로 확장할 수 있다. 클라우드에 저장된 데이터를 특정 웹서비스에 자동으로 처리하게 해서 자신이 원하는 파일 형태로 유지할 수 있다. 예를 들어 녹음 파일이 wav 포맷으로 저장되어 있는데 필요에 의해 mp3 로 유지하고 싶다면 파일포맷을 변경해주는 웹서비스를 통해서 자신이 클라우드에 가지고 있는 파일들을 일괄적으로 변환할 수도 있다. 웹서비스 사이에서의 데이터의 교환과 유지도 가능하다.


그래서 자연스럽게 원도우나 다른 운영체제에서도 비슷한 자동화 작업이 가능하지 않을까 생각하게 된다. 전혀 없는 것은 아니지만 그렇게 만족스러운 것은 아니다. 동영상을 볼 때는 화면 밝기를 최대로 바꾸고 싶을 수 있다. 방법이 없는 것은 아니다. 원도우는 기본적으로 전원 프로파일 power profiles 를 가지고 있고 전원에 관련된 설정을 변경할 수 있는 powercfg 명령어가 존재하기는 하지만 문제는 조건과 실행을 연결해서 관리할 수 있는 구조가 편리하게 있는지 살펴봐야 한다. 물론 방법이 전혀 없는 것은 아니다. 기본적으로 명령어들이 있고 powershell 이란 참 괜찮은 도구도 있지만 사용하기 익숙하지 않기도 하고 근본적으로 그래픽 환경의 운영체제는 자동화 작업 automatic workflows 이 필요한 환경이 아닐 수 있지 않을까 생각해 볼 필요가 있다.

그러나 여전히 반복 작업은 존재한다. 개인적으로 웹에 올리기 위해 필요한 이미지 파일들을 압축해서 용량을 줄이고 올리고 싶은 욕심이 생겼다. 웹에 올리기 위해 이미지 파일들을 내려받고 이미지 압축을 해주는 도구를 사용해서 압축을 하고 올리면 된다. 이때 다양한 도구들이 있다. 웹서비스도 많아서 쉽게 사용할 수 있지만 해당 서비스에 들어가서 내려받은 파일들을 올려서 압축하고 다시 압축된 결과물을 내려받아야 한다. 이 과정조차도 귀찮다고 생각해서 방법이 없을지 찾아보았다. 쉽게 말해 웹서비스에 접속을 해서 압축을 하고 내려 받는 과정을 명령어로 해결할 수 없을지 찾아보게 되는 것이다. 당연히 방법이 있다. 개인적으로 사용하는 서비스인 TinyPNG [ TinyPNG ] 에 들어가면 개발자 API Developer API 를 제공해준다. 개발자 API 를 통해서 특정 폴더에 있는 이미지 파일들을 한번에 압축해서 결과물을 만들 수 있다. 따라서 자동화 작업 과정을 다음과 같이 설계할 수 있다.

ⓐ 이미지 파일을 특정 폴더에 내려 받는다. → ⓑ 폴더에 변화가 발생하면 이미지 압축을 위한 명령어를 실행한다. 폴더 내에 있는 모든 이미지 파일을 압축한다. 이미 압축된 이미지 파일이 있다면 더이상 압축이 되지 않고 그대로 남아 있는다. → ⓒ 압축된 결과물을 블로그 등 개인적 용도로 사용한다.

품질 변화를 최소로 하며 이미지 크기를 줄여주는 TinyPNG 서비스의 개발자 API

반복적으로 실행되는 작업들은 실제로 사용자의 주의 (혹은 참여) attention 가 필요하지 않다면 컴퓨터는 보여주지 않고 백그라운드 background 에서 작업을 끝내는 것이다. 예전에 웹서버나 데이터베이스서버를 백엔드 오피스 back-end office 라고 부르고 워드나 엑셀과 같은 프로그램을 프론트엔드 오피스 font-end office 라고 부른 적이 있다. 백엔드 back-end 는 주로 기반 fundamental 서비스에 해당하고 워드나 엑셀과 같이 키보드로 입력하고 마우스로 작업해서 사용자가 필요했던 오피스를 프론트엔드로 불렀다. 그러나 이제 자동화 작업이 가능해지고 유연해진다면 사용자가 필요한 작업을 정의 define 하고 반복적인 작업을 줄일 수 있다. 이런 의미에서 실행해서 돌아가는 것은 background 이지만 실제 작업의 성격은 frond-end 의 내용이기 때문에 백-프론트 작업 back-front workflows 이라 부르고 싶다.


Lean Computing as Practical ... 

이제서야 제목에 나온 Lean Computing (충분한 한국어 표현을 찾지 못해 그대로 영문으로 표현한다.) 에 대해 설명하게 된다. Lean 은 '결핍'이란 뜻도 있고 '기대다'란 뜻도 있다. 그러나 여기에서는 아마도 '군살없는' 정도가 아닐까 싶다. 즉, 사용자가 원하는 작업을 할 수 있는 충분한 자원을 대기해 놓고 작업하는 것이 아니라 작업에 필요한 적당한 수준을 유지하며 사용하는 것이다. 게임을 주로 하는 사용자와 계산을 주로 하는 컴퓨터 작업을 떠나서 일상적인 작업들을 해결하기 위해 필요한 컴퓨터는 이제 충분한 자원을 가지고 있다고 본다. 그리고 그 반증이 이미 많은 스마트폰이 일반 컴퓨터가 할 수 있는 작업의 영역을 포함할 수 있게 되었고 일부는 오히려 스마트폰이 더 장점을 가지는 경우가 많다. (지역기반이나 모바일 환경 등) 따라서 더 좋은 컴퓨터 기술과 자원을 챙겨 놓고 컴퓨터를 사용하는 과정이 아니라 적당한 자원을 가지는 다양한 기기들을 통해 컴퓨팅 환경을 구축할 수 있지 않을까 생각한 것이다.

그래서 Lean Computing 이 구축되기 위해서는 두가지를 먼저 충족시켜야 한다.

1. 하드웨어 성능을 최적화할 수 있는 소프트웨어 환경이 존재해야 한다.

다양한 커스텀 롬으로 하드웨어 성능을 최적화 한다.

안드로이드 초기 버전을 쓰다보면 안드로이드에 대한 많은 실망을 하게 되는 경우가 많다. 하드웨어의 문제인 경우에는 어쩔 수 없지만 충분히 사용할 수 있는 하드웨어지만 소프트웨어 특히 운영체제의 최적화가 이루어지지 않아서 제대로 사용할 수 없는 경우도 많기 때문이다. 그래서 너무 오래되거나 호환되지 않는 하드웨어는 제외한 여러 기기의 다양한 커스텀 롬들이 나오는 것을 보면 여전히 구형 하드웨어를 돌릴 수 있는 충분한 소프트웨어 개발 가능성이 존재한다는 것을 알게 된다. 그리고 LineageOS 와 같은 개발 공간을 보면 5~6년이 넘어가는 기기들도 충분히 쓸 수 있도록 롬을 제공하고 있다. 어떤 기기들은 커스텀 롬을 설치하고 예전에는 볼 수 없던 성능과 사용 편의성을 가져오는 경우도 많이 볼 수 있다.

2. 자동화 작업을 극대화할 수 있는 사용자 환경이 존재해야 한다.

사용할 수 있는 기기의 충분한 최적화가 이루어졌다면 기기들이 실행해야 하는 작업을 최소화할 수 있는 자동화 작업 환경이 필요하다. 앞에서 본 이미지 파일 압축 과정을 스마트폰에서 할 수 없는 것은 아니다. 스마트폰도 웹브라우저에 접근할 수 있기 때문이다. 그러나 만약 이미지를 내려받고 웹브라우저를 실행하고 해당 파일을 웹에 올리고 내려받는 과정을 스마트폰에서 한다면 분명 느리고 불편하고 때로는 원하는 작업을 성공하지 못할 수 있다. 그러나 자신의 서버에 특정 폴더를 만들어 놓고 해당 폴더에 이미지를 올리기만 한다면 (복사) 자동화 작업을 통해서 특정 폴더에 있는 파일들을 알아서 압축해서 만들어 놓아 준다면 스마트기기는 아주 간단하게 복사할 능력정도만 되는 구형 스마트폰이라도 충분히 가능하다는 것이다.


그래서 처음 의도에서 Lean Computing 의 Lean 이 '군살없는' 뜻이였지만 실제로는 '기대어'라는 뜻도 통하게 된다. 사용자의 모든 작업들을 한 기기에서 하기 위해서라면 최신 핸드폰만이 살아남을 수 있지만 자동화 작업을 잘 만들어 놓는다면 구형 스마트폰도 사용 가치를 가지게 될 것이다. 그리고 사용 가치란 제품 혹은 기기 자체가 만들어 내는 것이 아니라 그 기기를 어떻게 쓸 수 있는지 고민하고 상상하는 과정에서 오히려 인간의 상상으로 더 극대화 된다는 사실은 강조하지 않아도 충분할 것이다.


Your Highness, Performance ... 

한동안 고성능 컴퓨팅 High Performance Computing 환경이 주목받았던 적이 있었다. 여전히 중요한 분야이긴 하다. 계산과학에서는 계산하기 효율이 떨어지는 문제를 어떻게 잘 변환해서 빨리 풀 수 있는 문제로 바꿀지 심지어 그런 것도 잘 해결이 되지 않아 결국 무조건 계산해도 언제 해결될지 모르는 많은 문제들을 풀기 위해서는 분명 빠르게 계산하는 고성능의 컴퓨터가 필요할 때도 있다. 그러나 일상 생활에서 사용자들이 필요한 고성능은 아니다. 역설적으로 컴퓨터 하드웨어가 이렇게 빠르게 발전해도 부팅하는데 얼마나 걸리는지 얼마나 빨리 파일을 복사하는 성능에 크게 관심가지지 않는다. 오히려 사용자의 작업을 관찰해 보면 충분히 자동화 작업으로 금방할 수 있는 작업들을 컴퓨터라는 작업공간만 빌려 사용하는 경우가 많다.

충분히 자동화가 가능한 영역이 왜 사용자의 진부한 수작업으로 여전히 이루어지고 있는지 생각해보면 자동화가 가져다 줄 수 있는 가능성 뿐만 아니라 인공지능 영역이 자율형주행시스템이나 바둑같은 엄청난 능력(?)을 가지는 것이 아니라 오히려 인간의 사용자 영역 앞서 표현한 프론트엔드 front-end 영역에 더 큰 가능성을 보여주고 있다고 생각한다. 자동화 작업의 가장 큰 장애는 그렇게 자동화 작업을 제대로 할 수 있는 명령어가 무엇인지 그리고 실행하다 생기는 예외에 대해서 어떻게 처리할지 exception handling 확신할 수 없었기 때문에 여전히 사용자들은 자동화 실행 과정을 믿지 못하는 것도 있다. 만약 적당한 능력의 인공지능을 가지는 기기가 존재한다면 특별히 모든 기기들이 똑똑해질 필요가 없다고 생각한다. 앞서 설명한 것처럼 최소한의 작업만 할 수 있는 기기들이라면 적당히 똑똑한 기기와 통신할 수 있는 능력만 존재한다면 전체 네트워크의 기기는 충분히 똑똑해(?) 질 것이라 예상한다.

음성 명령의 최종 목표는 무엇인가?

결국 Lean Computing 의 핵심은 기기들의 최적화도 필요하지만 기기 자체에서 해결할 수 없는 문제나 컴퓨팅 능력이 필요한 문제 해결은 어떤 특정 기기에 의존해야 한다는 것이다. 지금은 검색엔진이라는 조금 대화 능력이 떨어지는 아주 괜찮은 성능의 기기가 있지만 개인의 작업 내용까지 구글이 해결해줄 수 있는 것은 아니다. 예를 들어 "구글 내 이미지 파일들을 웹에 올리기에 적당하게 압축해줘!" 라고 명령을 내린다면 지금은 그냥 그렇게 할 수 있는 방법정도를 검색엔진에서 찾아서 검색 내용만 보여줄 것이다. 그러나 만약 적당히 컴퓨팅 능력을 가지는 서버를 자신의 네트워크에 놓고 자신이 자주 반복적으로 하는 내용을 자동화 작업으로 만들어 놓는다면 복사만 하면 된다. 좀더 멋지게(?) 구축하고 싶다. 기기에 음성 명령으로

"알파 기기 (임의의 기기)에 있는 이미지 폴더의 이미지 파일들을 솔라 서버 (임의의 서버이름) 이미지 압축 작업에 올려줘"

대상 (기기 및 폴더 이름 등) 을 정의내리면 아마 영화에서 보는 작업을 멋지게 할 수 있을 것이다. (지금도 전혀 불가능하지 않다. 구글 어시스턴트 Google Assistant 와 태스커 Tasker 를 연결하면 된다.)


What further next ... 

글이 너무 길어지기 때문에 모든 자동화 작업 및 실행 automatic workflows & execution 을 웹으로 올려서 설계할 수 없을까? 하는 내용은 이 글을 통해 소개하기 어려울 것 같다. 웹의 발전 과정을 보면 2차세계대전의 핵개발보다 더 빠른 것이 아닐까 싶어진다. 한때는 웹에서 채팅을 한다는 것은 정말 인내심을 요구하고 이래서 '온라인 데이트는 성공할 수 없어'란 한숨을 들었지만 이제는 거의 실시간으로 대화하는 것 뿐만 아니라 대화 환경 내부에서 여러 개발자들끼리 작업을 해서 웹서비스를 개발할 수도 있는 세상이 되어버렸다. 이제 거의 대부분 사용자 작업은 웹에서 거의 모두 가능하게 되고 개인 컴퓨터에서 필요한 컴퓨팅 능력은 크게 향상되지 않아도 된다. 개인적으로도 10년 가까이 되는 고물이 되어가는 노트북이 있지만 여전히 Windows 10 을 돌리기도 충분하고 거의 대부분의 작업을 웹에서 하기 때문에 별 무리없이 사용하고 있다. 점점 웹 (클라우드 포함)이나 서버에 컴퓨팅 능력을 의존하게 되기 때문에 사용자가 눈 앞에서 작업하는 컴퓨터에게 요구하는 능력이 그리 크지 않아도 된다.


그런 의미에서 궁극적으로 지금 당장 생각할 수 있는 Lean Computing 의 도착점웹 환경에서 이루어지는 자동화 작업이라고 생각한다. 웹에서 자동화 작업은 오히려 원도우 환경보다 더 수월할 수 있다. 특히 리눅스 서버 환경에서는 많은 개발자들이 문제 해결을 위해서 명령어줄 환경에서 만들어 놓은 뛰어난 스크립트 나 프로그램이 존재한다. 심지어 대부분 사용에 큰 제한도 없는 오픈 소스이기 때문에 개인적 필요에 의해서는 자유로운 편집으로 개인에게 맞게 고칠 수도 있다. 그래서 원도우 환경과 같은 그래픽 환경보다 오히려 웹 환경은 자동화 작업 및 실행을 위해 더 유리한 환경이라 생각한다.

Lean Computing 에 대한 소개는 마무리하며 앞으로는 웹에서 자동화 작업이 이루어지는 과정과 왜 점점 개인화되는 컴퓨팅 환경이 필요한지에 대한 내용으로 이어갈 예정이다.


자동화 작업을 통한 Lean Computing ─ 인간은 왜 기계를 필요로 하는가