Wednesday, August 8, 2018

김수환 추기경의 기도하는 손

정호승

서울에 푸짐하게 첫눈내리는 날
김수환 추기경의 기도하는 손은
고요히 기도만 하고 있을 수 없어
추기경 몰래 명동성당을 빠져나와


서울역 시계탑 아래에 눈사람 하나 세워놓고
노숙자들과 한바탕 눈싸움을 하다가
무료급식소에 들러 밥과 국을 퍼주다가
늙은 환경미화원과 같이 눈길을 쓸다가


부지런히 종각역에서 지하철을 타고
껌파는 할머니의 껌통을 들고 서 있다가
전동차가 들어오는 순간 선로로 뛰어내린
한 젊은 여자를 껴안아 주고 있다가


인사동 길바닥에 앉아 있는 아기부처님 곁에 앉아
돌아가신 엄마 얘기를 도란도란 나누다가
엄마의 시신을 몇개월이나 안방에 둔
중학생 소년의 두려운 눈물을 닦아주고


경기도 어느 모텔의 좌변기에 버려진
한 갓난아기를 건져내고 엉엉 울다가
김수환 추기경의 기도하는 손은
부지런히 다시 서울역으로 돌아와


소주를 들이켜고
눈 위에 라면박스를 깔고 웅크린
노숙자들의 잠을 일일이 쓰담듬은 뒤
서울역 청동빛 돔에 올라가
내려오지 않는다
비둘기처럼.



님, 평화의 안식을 주소서...

이땅에 사랑을 남기고 가셨듯이 하늘 나라에서 평화의 안식속에서 편히 쉬소서...


김수환 추기경의 기도하는 손 - 정호승


등에 짐이 없었다면 나는 세상을 바로 살지 못했을 것입니다.
내등에 있는 짐 때문에 늘 조심하면서 바르고 성실하게 살아왔습니다.
이제 보니 내등의 짐은 나를 바르게 살도록 한 귀한 선물이었습니다.

등에 짐이 없었다면 나는 사랑을 몰랐을 것입니다.
내 등에 있는 짐의 무게로 남의 고통을 느꼈고 이를 통해 사랑과 용서도 알았습니다.
이제 보니 내등의 짐은 나에게 사랑을 가르쳐 준 귀한 선물이었습니다.

등에 짐이 없었다면 나는 아직도 미숙하게 살고 있을 것입니다.
내 등에 있는 짐의 무게가 내 삶의 무게가 되어 그것을 감당하게 하였습니다.
이제 보니 내 등의 짐은 나를 성숙시킨 귀한 선물이었습니다.

등에 짐이 없었다면 나는 겸손과 소박함의 기쁨을 몰랐을 것입니다.
내 등의 짐 때문에 나는 늘 나를 낮추고 소박하게 살아왔습니다.
이제 보니 내 등의 짐은 나에게 기쁨을 전해 준 귀한 선물이었습니다.

물살이 센 냇물을 건널 때는 등에 짐이 있어야 물에 휩쓸리지 않고,
화물차가 언덕을 오를 때는 짐을 실어야 헛바퀴가 돌지 않듯이
내 등의 짐이 나를 불의와 안일의 물결에 휩쓸리지 않게 했으며,
삶의 고개 하나하나를 잘 넘게 하였습니다.

나라의 짐, 가족의 짐, 직장의 짐, 이웃과의 짐, 가난의 짐, 몸이 아픈짐,
슬픈 이별의 짐들이 내 삶을 감당하는 힘이 되어 오늘도 최선의 삶을 살게 합니다.





내등에 짐


한민국은 인터넷 강국이다. 인터넷 속도만 생각해봐도 인터넷을 사용할 수 있는 자원, 기기 등을 생각해도 분명 인터넷 강국이다. 이제 인터넷은 선택이 아닌 필수처럼 되어버린 세상이 되어버렸다. 심지어 인터넷을 일부러 사용하지 않는다고 생각하는 사람들도 스마트폰이나 다양한 통로를 통해서 이미 인터넷의 사용자인 것을 모르고 쓰고 있는 중이다. 인터넷을 의도적으로 사용하지 않는 사람이라고 해도 이미 인터넷과 네트워크를 기반으로 하는 다양한 기기들 devices 과 접촉하고 있기 때문에 그 사용 빈도와 사용량이 다를 뿐이지 많은 부분 인터넷에 의존하게 된다.


이렇게 인터넷이 보급되고 보편화되기까지 상당히 빠르게 발전했던 것이 사실이다. 한때 TV 에는 인터넷 서비스를 위한 업체들 ISP; Internet Service Provider 광고들이 가득했었다. 그만큼 인터넷이 기업이나 학교 뿐만 아니라 홈 네트워크를 위한 가정용 인터넷 선 보급은 급속도로 증가했다는 것을 알 수 있다. 어느정도 초기 보급이 끝나고 나면 이후 나타나는 현상은 빠른 인터넷 선으로 확장되는 과정이다. 이런 과정을 통해 인터넷 서비스 업체들은 추가적인 부가가치를 만들어내고 이에 따라 가격을 적정선 유지하거나 약간 올리면서도 사용자 고객을 유지할 수 있는 전략을 세울 수 있다. 한때 100메가 속도를 자랑하던 시대에서 언제쯤 1000메가 = 1기가 선로를 보급시킬 것도 같은데 사실상 현실은 그렇지 않다는 것을 알게 된다. 사실 학교나 기업망은 이미 내부 선로는 1기가인 경우가 대부분이다. 그러나 생각과 다르게 가정용 보급 라인이 1기가로 대체되지 않는 것도 마케팅이나 기업 전략을 공부하는 사람들에게 한번쯤 생각해볼 테마가 아닐까 싶은 부분이다.


터넷을 쓴다는 것은 무엇인가? 

요즘 스마트폰도 속도가 빨라지며 자신이 쓸 수 있는 인터넷 속도가 마치 얼마나 자신이 첨단 기술에 잘 적응했는가를 나타내는 하나의 지표처럼 보인다. 그러나 인터넷을 사용하는 것은 마치 공기와 같이 자연스럽고 당연한 것이 아니다. 이미 수많은 사람들은 그에 대한 상당한 비용을 지불하며 인터넷을 사용하고 있다는 것을 알아야 한다. 인터넷을 사용한다는 것은 무엇을 뜻하는가? 인터넷이란 정확하고 구체적인 형태를 가진 대상인지 아닌지에 대한 생각부터 시작해야 할 것이다. [ 시스템을 바라보는 시선 ─ 구조적 설계 사고 ] 에서 간단하게 설명했지만 단순히 사용자는 웹브라우저에서 자신이 들어가고 싶은 사이트를 입력하거나 터치하여 들어가지만 실제로 이 과정을 수행하기 위해서는 상당히 복잡한 과정과 규칙을 거쳐서 우리에게 보여주는 것이다. 즉, 우리가 원하는 페이지를 보여주는 것이 인터넷 사용자로 당연한 결과로 생각하지만 물리적으로 거대한 장비들이 처리해주고 그 장비들이 모두 연결될 수 있는 물리적인 선로들이 깔려 있고 그 외 필요한 통신 장비들이 존재하기 때문에 우리들이 원활하게 인터넷을 사용하는 것이다. 이 중 몇개의 요소만 사라지거나 작동을 제대로 하지 않는다면 우리는 평소처럼 인터넷을 사용할 수 없다.


이런 인터넷이 빨라졌다는 것은 무엇을 의미한느 것일까? 인터넷이 빨라졌다는 것은 상당히 추상적 개념이다. 그리고 무엇보다 객관적 내용이 될 수 없다는 점을 이해해야 한다. 인터넷이란 세계 어디에 있는 서버 (서비스)에 접속하는 것이기 때문에 인터넷 속도가 빠르다는 것은 상대적 결과가 될 수 밖에 없다. 예를 들어 평소에 자주 들어가던 구글 메인 사이트에 들어가는데 인터넷 업체를 바꿔 보니 예전보다 더 빠르게 들어간다면 비교해서 더 빠르다고 이야기할 수 있을 것이다. 그러나 여기에는 다른 변수도 고려해야 한다. 비교를 하던 그 순간에 구글 사이트가 내가 접속하는 요청을 빠르게 처리했는가 아닌가이다. 정말 운이 안좋아 인터넷 선로를 바꾸고 바로 구글 사이트를 들어가 보니 때마침 구글 사이트가 공격을 받아 반응이 느리다면 사용자는 구글 사이트가 느리다가 아닌 '인터넷이 느리다' 로 판단할 수도 있기 때문이다.

인터넷 사용에 관련된 몇가지 과정을 설명하면 다음과 같다.

[사용자] ─ {접속 기기 (노트북 혹은 스마트폰 등) & 웹브라우저} ─ (입력: june.meson.kr) ─ {june.meson.kr 가 어떤 IP 를 가지는지 확인한다; DNS 서버} ─ {해당 IP 로 접속} ─ {인터넷 상에서 해당 IP 로 접속할 수 있는 경로는 만들어 접근한다} ─ {경로 상에 수많은 장비와 선로를 거쳐서 해당 요청을 서버에 통보} ─ {해당 서버가 요청한 내용에 맞게 결과를 보내준다} ─ {접속 기기의 웹 브라우저에서 수신받은 내용을 구성해서 표시} ─ [사용자 확인]

아주 간단해 보이는 웹사이트 접속조차도 인터넷은 복잡하고 여러 단계의 과정을 거쳐서 어렵게 어렵게(?) 사용자에게 보여주고 사용자의 선택에 따라서 또 다시 적절한 페이지를 보여주는 과정이다. 이 모든 과정이 간단하게 '인터넷 쓴다' 라고 표현하는 과정을 약 1/100 정도로 축약해서 설명한 것이다. 중요한 것은 이런 복잡한 과정을 사용자는 거의 신경쓸 필요가 없다는 것이다. 그러나 인터넷이 빠르다 느리다는 이 모든 과정에 관련된 장비, 선로, 아주 가까이는 사용자가 쓰는 기기의 성능까지도 좌우된다는 것이다.


터넷이 빠르기 위한 조건들 

인터넷이 빠르다는 것은 내가 어떤 사이트에 접속하느냐에 따라서 좌우된다. 자주 사용되고 서버가 빠르게 대응하거나 혹은 나와 물리적인 네트워크가 가까이 있는 (예를 들어 학교 내 서버 등) 경우 인터넷의 속도는 빠르다고 느낄 것이다. 그러나 아프리카 오지에 있는 펜티엄 4 CPU 가지고 만들어진 서버에 접속하는 경우라면 그 서버까지 도달하는 장비의 성능, 선로의 속도, 심지어 서버의 반응 속도까지도 느리다면 전체 인터넷 속도는 느려질 수 밖에 없다. 따라서 인터넷 속도가 빠르다는 것은 내가 목표로 하는 서버까지 가는 길이 느리지 않고, 그 길을 가는데 방해물이나 제한되는 요소가 없고, 사용자의 장비 (클라이언트) 와 서버의 장비 (서비스) 의 성능이 뛰어나 모든 처리를 빠르게 한다는 것이다.

가정용 인터넷이 빨라진 이유 중에 하나는 소위 백본망 backbone networks 에서 나온 가정용 선로의 속도가 100메가 (bps) 를 지원해주기 때문에 체감적으로 속도의 증가를 느낄 수 있게 되는 것이다. 그러나 너무도 당연하지만 한번쯤 생각해야 할 내용은 100메가 라는 속도는 제한속도이고 만약 이 선로를 사용하는 사용자들이 늘어난다면 100메가를 사용자들이 나누어 써야 한다는 것이다. 그런 이유로 가정용 선로로 들어온 인터넷을 여러명의 가족 구성원이 사용하는 기기를 '공유기'라고 부르는 것이다. 즉, 공유하는 대상은 인터넷이기도 하지만 인터넷의 속도를 나누어 쓴다는 것이다.


이런 맥락으로 사용자의 인터넷 지점에서 백본망까지 도달하는 속도도 빨라야 하지만 백본망에서 다른 백본망까지 연결되는 선로도 빨라야 할 것이다. 이런 이유로 나라와 나라를 연결해주는 해저 케이블 및 다양한 고속 선로를 만드는 이유이다. 실제로 일본에서 미국으로 이어지는 태평양 해저 케이블의 경우 일본에 지진이 일어나고 미국에 서버가 있는 웹사이트의 경우 심하게 느려지거나 접속이 불가능한 경우를 경험한 적이 있을 것이다. 이는 아무리 사용자의 컴퓨터가 성능이 좋고 서버의 성능이 좋다고 해도 해저 케이블이란 선로가 제 기능을 수행하지 못해 생긴 현상이다. 따라서 좋은 인프라 infrastructure 가 마련되어 있다면 사용자가 투자해서 인터넷을 빠르게 할 수 있는 부분은 접속 장비와 더 빠른 인터넷 업체의 서비스를 선택하는 것이다. 스마트폰 시장에서 사용자들에게 더 빠른 인터넷 속도를 이야기하는 것도 사용자의 접속 장비와 백본망까지 가는 선로 (무선망 포함) 가 얼마나 빨리질 수 있는가를 포함해서 이야기하는 것이다. 그러나 이 부분이 충분히 빠르다면 사실상 인터넷은 급격하지는 않을 것이다.


터넷이 빠른 것은 좋은 것인가? 

개인 사용자 입장에서 인터넷이 빠르다는 것은 좋은 것이다. 그러나 사실상 그만큼의 투자와 비용은 지불해야 한다는 것을 이해해야 한다. 즉, 자신이 빠른 인터넷 속도를 사용한다는 것은 그만큼 적절한 투자 혹은 환경을 갖추고 있다는 것을 뜻한다. 그렇다면 인터넷 속도가 빠르다는 것이 좋은 것인가? 라는 질문은 상당히 멍청한 질문이 될 수 있다. 그렇다면 질문을 다르게 해본다. 모든 사용자들의 인터넷 속도가 모두 빠른 상태가 좋은 것인가? 뭐 개인의 인터넷이 빠른 것이 좋은데 모든 사용자로 확대한다고 뭐가 나빠질 것이 있을까 생각할 수 있지만 앞서 설명한 인터넷은 무한의 능력을 가진 존재가 아니라는 것을 이해해야 한다.

인터넷 속도가 빠르다는 것은 기본적으로 이를 뒷받침하는 물리적인 장비가 충분한 성능을 가진다는 것을 뜻한다. 즉, 내가 인터넷을 사용할 때 모든 장비가 충분히 뒷받침 해준다는 말은 관련된 모든 장비들이 내가 요청한 내용을 처리하기에 충분한 능력을 가지고 있다는 점이다. 따라서 정량적으로는 모든 장비들이 내가 인터넷을 쓰는데 충분한 자원을 제대로 쓰고 처리하는데 아무런 문제가 없다는 것이다. 그러나 모든 장비는 항상 한계를 가진다. 이런 장비의 한계를 이용한 공격 중 하나가 디도스 (DDoS Distributed Denial of Service; 서비스 거부 공격) 공격이다. 예를 들어 어떤 웹사이트에 동시 처리 접속자수가 5만명이라고 하면 10만명의 사용자가 동시에 공격 웹사이트에 일시에 접속하게 하여 동시에 처리할 수 있는 용량을 초과하게 하는 것이다. 결국 서버도 하나의 컴퓨터이기 때문에 CPU 및 메모리와 같은 물리적 자원 뿐만 아니라 소프트웨어의 성능, 관련 데이터베이스의 튜닝 정도에 따라서 동시 처리 접속자 수가 제한적일 수 밖에 없기 때문에 이점을 노린 것이다. 문제는 10만명의 동시 접속 공격자를 만드는 일인데 이것은 해커들이나 공격자들의 몫이기 때문에 특별히 설명하지는 않는다. 결국 이런 개념으로 접속하여 우리가 인터넷을 쓰는데 써야 하는 장비를 공격하는 방식을 DDoS 라고 한다. 여기에서 앞의 Distributed 란 말은 기존에는 한 클라이언트에서 여러개의 가상 클라이언트를 통해 공격을 하기도 했지만 이제 그정도쯤은 가볍게 막을 수 있기 때문에 분산된 distributed 형태로 클라이언트를 동원하는 것이다. 결국 서버에서는 전세계 각지에서 접속하는 비이상적인 클라이언트의 공격을 경험하게 되는 것이다.


기본적으로 이런 서비스 거부 공격은 다양한 응용이 가능하다. 조금 네트워크 시스템 프로토콜에 대한 이해와 각 장비의 취약점 정도를 파악하면 다양한 장비의 서비스 거부 공격을 통해 인터넷 서비스를 마비시킬 수 있는 방법을 응용(?)할 수 있다. 사실상 가장 효과적인 방법은 우리가 도메인으로 접속할 때 이 도메인 정보를 IP 정보로 해석해주는 DNS Domain Name Server 를 공격한다면 웹브라우저에서 입력한 도메인을 실제 IP 로 해석해주지 못하기 때문에 사용자가 해당 서버의 IP를 직접 입력하지 않는 한 웹사이트를 사용하지 못하는 공격을 만들 수도 있다. 결국 보안이란 양날의 칼과 같은 것이라 사용자의 사용 범위를 제한하지 않으면서 악의적인 공격을 막아줄 수 있는 균형을 어떻게 잡는가의 문제이다.


량문제를 바라보다. 

실제 전달하고 싶은 내용은 제대로 시작도 안된 상태에서 인터넷에 대한 이해를 위해 여러가지 이야기를 서론으로 삼았다. 이제 실제로 이야기하고 싶은 식량 문제에 대한 내용이다. 인터넷이 식량문제와 어떤 관계가 있을까 의구심을 가질 수 있지만 이야기의 전개를 위해 개인적인 궁금증의 시작을 그대로 따라가는 것이 좋을 것 같다.


오늘 점심으로 더 맛있는 것, 더 건강하게 만드는 것 무엇을 먹을까 고민을 해도 마땅히 굶어 죽지 않을까 걱정하지 않는 대부분의 사람들에게는 사실상 많은 나라의 기아 문제 특히 심각한 출산한지 약 36개월이 되지 않아서 영양실조 및 기아 문제로 죽는 영아 사망에 대해서 특별히 관심을 가지지 않는다면 그 심각성은 인지하기 어렵다. 얼마나 심각한지 아무리 다양한 미디어와 인터넷에 떠도는 사진으로 보아도 막상 그때뿐이고 곧 이어 누군가 음식 사진을 올리면 군침을 흘리며 다시 더 맛있는 것에 집중하는 것이 당연할 것이다. 분명 그렇게 굶어 죽어가는 사람들이 존재하는데 전세계 식량 중 먹지 않고 버려지는 음식 (식량을 포함하여) 은 전체의 1/3 이라고 한다. 다시 말해 어떤 곳은 음식이 남아돌아 버려지고 낭비되는데 어떤 곳은 먹을 것조차 없어 죽는다는 것이다. 단순히 양의 문제를 떠나 이런 문제의 원인이 무엇일까 고민하게 되었다.


아의 문제는 인류 역사의 문제인가? 

문제의 원인을 생각하다가 질문 한가지를 하게 되었다.

아 문제는 인류 역사에 걸쳐 항상 존재하던 문제인가? 

이 문제에 대한 인류학적 해답을 제대로 해준 책이나 지식인은 아직 제대로 만나지 못했다. 그러나 분명한 것은 고대의 역사에서 현대까지 생각해보면 항상 가난은 존재해왔고 빈곤 그리고 그 빈곤의 상태가 생계를 위협하는 '절대 빈곤'은 분명 있었다. 그 원인은 다양했다. 때로는 자연재해나 전염병에 의해서 인간이 가용할 수 있는 자원의 한계, 때로는 이 자원을 가공할 수 있는 노동력의 절대 감소 등으로 식량화하지 못했던 시기도 있다. 그런 시기를 떠나 적절한 부와 경제력이 존재하고 식량도 존재하는 동시에 '절대빈곤'에 의한 죽음이 사회적 현상이 되었던 시기가 있었는가였다. 그리고 이제는 그 영역을 확대해서 전세계를 통해 생각해보자는 것이다. 이 문제에 있어서 대한민국은 '절대빈곤'에서 자유로운 국가인가도 생각해볼 필요가 있을 것이다. 가끔 도시화가 인간의 절대 빈곤을 해결할 수 있는 해결책이라고 주장하는 도시학자들에게 물어보고 싶을 때가 많다.


반대로 역사상 절대 빈곤이 전혀 존재하지 않는 모든 국민들이 먹고 사는 것에 별로 걱정하지 않은 경우가 있는지 생각해보고 싶다. 즉, 최소한 먹는 문제에 대해서 걱정하지 않는 그런 공동체 혹은 국가가 역사상 존재했는가를 묻고 싶다.


대빈곤과 인터넷 

식량문제, 절대빈곤의 문제를 인터넷과 연결시키고 싶은 생각을 하게 되었다. 단순히 인터넷이 식량문제를 해결하기 위한 뭔가 구체적인 장치로 적용하고 싶은 것이 아니라 식량문제가 발생할 수 있는 아직 대답하지 못한 근본적인 원인에 대한 해답을 찾아가는 과정으로 인터넷의 속성을 생각해보고 싶었던 것 같다. 여기에서 아직 대답하지 않은 질문을 다시 해본다.

터넷 속도가 빠르다는 것은 좋은 것인가

인터넷 사용자로 당연히 빠른 것이 좋다라고 대답하겠지만 한편 모두가 빠른 인터넷 속도라는 것은 결국 인터넷 자원은 사용할 수 있는 '사용자'에 한정된다는 사실에 집중한 내용이다. 쉽게 말해 인터넷을 전혀 사용할 수 없는 접속할 수 있는 지점 point 조차 존재하지 않는 사람들에게는 이런 질문은 전혀 상관조차 없는 질문이 되어버린다.


절대 빈곤에 놓인 사람들, 기아 문제를 겪는 아이들에게는 사실상 자신들이 먹을 식량이 있는가 없는가의 존재의 문제가 더 중요하다. 얼마나 많은 양이 있는가가 중요한 것은 아니다. 결국 인터넷이 빠른가 느린가는 인터넷을 사용할 수 있는 사람들의 몫이지 인터넷을 사용할 수 없는 사람들에게는 전혀 중요한 문제가 아니다. 즉, 우리가 항상 친근하게 인사하고 이야기 나누는 인터넷 사용자들, 소셜 미디어의 친구들은 모두 이런 인터넷 절대빈곤 (인터넷 사용을 걱정하지 않아도 되는) 과는 관계없는 사람들이기 때문에 이런 사용자들에게는 더 빠른 속도의 인터넷이 세일즈 포인트 sales point 가 되어야 할 것이다. 따라서 인터넷과 절대빈곤의 문제에서 첫번째로 끌어내고 싶은 문장은...

식량에 풍부한 접근성을 가지는 사용자 (소비자) 와 식량에 접근조차 할 수 없는 절대빈곤 사용자 (소비자) 는 인식의 대상 영역 자체가 다르다

따라서 식량문제 혹은 기아 문제의 해결책을 단순히 연민 혹은 인간애에 의존하는 경우에는 지속적인 관심과 문제의 해결을 위한 근본적인 접근이 어려울 수 있겠구나 싶었던 것이다.


아 문제를 접근하기 위한 가상 실험

한가지 가상 실험을 시도해본다. 인류가 진화(?)해서 인간은 더이상 먹지 않고 일종의 인터넷 식량 internet food 를 먹으면 생존에 문제가 없는 상태가 되었다. 단 하루에 정해진 서버에 접속을 해서 인터넷 식량에 접속해서 해당 페이지를 보아 확인해야 생존에 필요한 영양소를 얻을 수 있다고 가정하자. 즉, 이제 인간은 먹지 않고 심지어 영양성분이 농축된 알약을 먹지도 않고 인터넷 웹 사이트를 접속하는 것으로 충분히 살아가는데 영양소를 얻을 수 있는 최첨단 시대에 살게 되었다. (가상이지만 조금 황당하기는 하다...) 

이제 사람들은 정해진 시간에 웹 사이트에 접속해서 밥(?)을 먹는다. 하루에 필요한 영양소를 얻기 위해서 10군데의 웹 사이트를 들어가야 한다. 이런 상황이 실제 이루어진다면 자본을 많이 가진 사람들은 어떤 행동을 취할 것인가? 인터넷은 생존에 꼭 필요하게 되었을 때 더 많은 사람들이 인터넷에 접속하게 될 것인가 아니면 자본의 힘으로 인터넷 사용을 제한하고 사용하지 못하는 사람들 (절대빈곤) 이 만들어질 것인가? 만약 인터넷 사용이 생존의 문제가 된다면 요즘처럼 공짜 무선랜을 사용하게 하는 일도 거의 사라지지 않을까? 심지어 흔하게 버려지는 구형 스마트폰이 쉽게 버려질 것인가? 가상 실험의 조건에는 인터넷은 현재의 기술 내용을 그대로 반영하고 있어서 서버도 동시 사용 접속자수가 정해져 있고 빠른 인터넷을 사용할 수 있는 사람, 느린 인터넷을 사용할 수 밖에 없는 사람 등 현재와 같은 상황이라고 가정하게 된다.


희망하건데 모든 사람이 동시에 모두 빠른 속도로 접속할 수 있는 획기적인 기술이 개발되기를 바라지만 그것은 한편 자원은 제한적일 수 밖에 없다는 한계성을 고려하면 어려울 것이다. 결국 인터넷 장비, 웹 사이트에 접근할 수 있는 접근성은 현재 얼마나 식량에 접근할 수 있는가와 관련되고 이는 결국 자본에 의해 얼마나 식량을 확보할 수 있는가의 문제로 연결되게 된다. 사실 현재의 인터넷도 공공재의 성격은 아니다. 인터넷 사용에도 직접, 간접적으로 사용료를 제공해야 사용할 수 있고 현재는 다만 그 사용에 있어 상당히 관대한 상황일 뿐이다. 만약 이처럼 인터넷이 식량의 문제, 생존의 문제로 연결된다면 현재처럼 관대하게 되지는 않을 것이다.


든 인류에게 인터넷을! 

인터넷을 사용하지 못해 죽어가는 빈곤층이 발생하면서 이를 보다 못한 유엔과 각국의 정상들은 인도주의적 입장에서 모든 인류에게 인터넷을 사용하게 했다. 모든 사람들에게 인터넷에 접속할 수 있는 기기를 보급시키고 웹 사이트도 확대하여 동시 접속자수를 충분히 확보하였다. 그렇다면 인류는 이제 기아에서 벗어날 수 있는 것인가? 굶어 죽는 사람들은 발생하지 않는 것인가? 이론적으로 기아는 사라질 것이다. 즉, 기술적 가능성을 떠나서 기아 문제의 근본적 문제와 해결 방법을 제시하기 위해서 이런 황당한 가상 실험으로 인류의 전자적 진화(?)까지도 가정해보았다. 이제 온 인류가 기아 문제에서 벗어날 수 있는 해결책은 모든 인류에게 인터넷을 보급하는 것이다.

즉, 이런 황당한 가정과 상상을 한 이유는 인간이 빠른 인터넷을 쓰고 싶어하는 욕심과 더 넓은 범위에서 인터넷을 사용하고 싶어하는 욕심을 통해 다양한 네트워크 장비와 선로 등을 발전시켜 왔다. 즉, 보다 넓은 빠른 환경을 제공하기 위해 기술은 발전해왔던 것이다. 그렇게 네트워크를 확장시키는 과정에서의 특징과 문제점 등을 통해서 기아 문제와 같이 한정된 자원을 보다 다양한 사람들에게 보다 빠르게 전달하지 못하는가의 문제로 환원시켜 문제를 비교해보고 싶었던 것이다. 즉, 인터넷을 보다 많은 사람들이 쓸 수 있도록 노력하는 문제 해결의 구조와 기아 문제의 구조가 비슷하지 않을까 싶었던 것이다. 따라서 가상적이지만 모든 인류에게 인터넷을 사용할 수 있도록, 그리고 충분히 성능 좋은 서버를 제공하여 많은 사람들이 인터넷을 쓸 수 있도록 하면 기아 문제는 해결되는 것이다! 야호! (에휴...)


은 사람들이 빠르게 사용하는 인터넷 

여담이지만 어떤 자원도 한계를 지닌다. 그나마 가장 효율이 좋은 자원이라면 인간의 사고 및 생각이 아닐까 싶지만 그것 역시 신경세포를 혹사시켜야 한다는 점에서 충분한 영양과 관련되기에 이또한 제한된 자원과 연결이 된다. 따라서 모든 인류가 인터넷을 생존을 위해 사용하는 단계가 된다고 해도 인터넷 사용에 불균형은 분명 발생할 것이다. 자본주의의 다른 말은 한정된 자원을 누가 쓸 것인지 정하기 위해 누가 더 많은 토큰 token 을 가지고 있는가의 문제라고 바라본다. 토큰은 시스템 공학이나 컴퓨터 시스템에서 자주 등장하는 개념이다. 예를 들어 웹 사이트에 접근하는데 동시 처리 접속자수가 100명일 때 어는 순간 110명이 접속을 하게 되면 이때 누구의 요청을 먼저 처리할 것인지 결정하는 방법으로 각자의 이름이 적힌 토큰을 내고 원하는 페이지를 요청하는데 이때 동시에 100명까지 처리할 수 있으니 101번째부터 요청한 사용자들은 앞선 사용자들이 다 처리될 때까지 기다리게 할 것이다. 이때 사용자들의 토큰을 제출한 순서대로 처리해주는 것이다. 즉, 한번에 처리할 수 있는 자원이 한정되어 있기 때문에 대기 순번을 만들기 위해서 각자 사용자들의 순서를 정하는 방식이자, 시스템 내부적으로 어떤 작업을 먼저 처리할 것인지 결정하는 것이다.

그런데 여기에서 한가지 재미있는 문제가 있다. 단순히 제출한 순서에 맞춰 처리해주는 것은 사용자들이 요청한 내용이 동일한 일의 처리량을 가질 때는 충분히 효과적이다. 그런데 101번째 사용자가 요청한 내용은 자원의 10만큼 필요한 내용인데, 102번째 사용자는 단지 4만큼 쓰게 되고 앞선 사용자 중 처리가 되어 한명이 빠져 나가 가용 자원이 딱 8이 남는다면 101번째 사용자 내용을 처리하기는 부족하지만 102번째 사용자를 처리하기는 충분하게 된다. 이때 고집있게 101번째 사용자의 내용을 처리하기 위해 자원이 10의 여유가 생길때까지 기다릴 것인지 아니면 102번째 사용자를 처리해줄 것인지 생각해볼 필요가 있다. 즉, 사용자의 대기 순서도 중요하지만 많은 사용자들이 더 빨리 사용하기 위해서 어떤 설계가 더 효과적인가를 생각해보는 것이다. [ ⓐ 작업 최적화 load optimization 의 궁극적 목표 ] 


두번째 문제는 특정 웹사이트에 접속하는 사람들이 상당수가 된다면 서버의 위치, 갯수를 어떻게 정할 것인가이다. 조금 현실적인 영역으로 넘어오자. 수많은 사람들이 구글에 접속한다. 동시 처리해야 하는 접속자수도 엄청난 숫자이다. 그런데 마땅히 구글 검색 엔진은 사용자가 많다고 서비스를 거부하거나 검색 결과가 늦게 처리되는 경우가 그리 많지 않다. (없었다 하기에는 분명 있긴 하였다.) 그렇다면 구글은 어떻게 이런 시스템을 가능하게 했는가? 가장 정답은 사실 자본이다. 돈이 많기 때문에 성능좋은 서버들을 많이 구매해서 가동시킨 것이다. 그러나 단순히 서버의 숫자를 늘린다고 해서 scale up problem 성능이 그에 비례해서 늘어나는 것인가? 절대로 아니다. 즉 자원의 충분한 숫자만큼 그 자원이 쓰이는 곳과 필요한 수요 네트워크에 따라서 어디에 배치할 것인지에 따라서 달라진다. 구글의 경우 이런 문제를 해결하기 위해서 다양한 연구 내용을 만들어 낸다. [ ⓑ 분산 시스템 distributed systems 의 배치 location 문제 ]


결국 인터넷은 결국 사용자 end user 가 어떻게 쓰는가의 문제가 중요하게 된다. 아무리 좋은 장비와 서버가 배치되어서 접속만 해도 되는 인터넷 환경이 만들어져도 사용자가 접속을 해야 가능하다. 그러나 접속하기 위해서는 무엇보다 인간과 인터넷을 연결할 수 있는 접촉 영역 user interface 이 필요하다. 최소한 사용자는 웹브라우저를 실행시키기 위해서 터치를 하거나 더블 클릭을 하는 것과 같은 기본적인 인터페이스에 익숙해야 한다. 컴퓨터를 한번도 경험해보지 못한 사용자에게 컴퓨터를 주고 무엇인가 해보라고 하는 것은 순서가 맞지 않는 비효율이다. 가장 중요한 점은 사용자들이 사용할 수 있도록 학습하고 교육받는 것이다. [ ⓒ 사용자의 교육 및 연습 user's training & practice ] 


모든 인류가 이제 익숙해져 사용할 수 있다고 해도 인터넷은 공짜가 아니다. 이미 언급했지만 인터넷은 수많은 장비와 기기의 지원이 필요하고 이런 부분에 수많은 투자가 필요하다. 결국 인터넷은 자본이 없이는 돌아가지 않는다는 것이다. 그렇다면 결국 모든 인류에게 인터넷을 쓸 수 있게 한다는 것은 자본이 있는 자들에게만! 으로 변경되어야 하는 것인가? 생각해봐야 할 것이다. 이 부분에서 공공재의 수익구조에 대해서 생각해볼 필요가 있을 것 같다. 예를 들어 우리가 아이패드 하나를 구매하면 아이패드 하나가 만들어지는데 필요한 비용과 기업이 가져가고 싶은 이익까지 다 포함해서 최종 소비자에게 부과하고 이에 가치를 느낀 사용자는 이를 구매하는 것이다. 그러나 꼭 이런 수익 구조, 즉, 수혜자 부담의 원칙이 꼭 이루어지지 않는 곳이 공공사업 혹은 공공재이다. 예를 들어 같은 재화 혹은 서비스라고 해도 수혜자의 경제적 부담비율에 따라서 공급가를 차등 적용하는 것이다. 만약 우리가 구글을 검색할 때마다 돈을 내야 한다면, 실제 우리가 검색하는데 필요한 서버의 전기료, 선로 이용료 등을 모든 비용을 계산해서 우리에게 부과한다면 사람들은 인터넷을 거의 쓰지 않거나 일부 소수의 전유물이 될지도 모른다. 그러나 실제 비용이 발생해도 특별히 비용을 사용자에게 부과하지 않는 이유는 검색에 의해 발생하는 비용 구조와 다른 사업을 통해 발생하는 수익 구조를 분리해서 그 이익과 손해를 보정할 수 있기 때문이다. 즉, 구글 검색에서 특별히 비용을 부담시키지 않아도 다른 광고 사업이나 기업 대상 사업을 통해 수익을 만들어 내기도 한다. (사실 개인정보 privacy 차원에서 사용자가 단순히 무료로 사용하는가는 심각하게 생각해볼 문제이지만 이 부분은 잠시 접어둔다.) [ ⓓ 수익구조의 다양화 alternation of business model ]


아 문제 해결을 위해 인터넷을 생각한다. 

앞서 ⓐ, ⓑ, ⓒ, ⓓ 는 보다 많은 사람들이 인터넷을 빠르게 사용할 수 있도록 노력했던 몇가지 네트워크 상의 문제이다. 식량문제도 가상 실험에서 생각해보았던 것처럼 자원의 배분, 공급, 그리고 사용자의 식량 소비와 같은 네트워크 문제로 환원해서 식량문제를 보다 다양한 시각에서 접근할 수 있는 방법을 제공하고 싶은 것이다.

로드 발란스의 문제는 한정된 자원, 특히 같은 시간에 얼마나 많은 문제를 한정된 자원으로 해결할 수 있는가를 생각하게 한다. 식량의 문제로 접근하자. 식량은 단순히 양의 문제 a matter of quantity 가 아니다. 시간의 문제임을 강조하고 싶었던 것이 첫번째이다. 즉, 식량문제를 다룰때 충분한 식량이 있는가가 중요한 것이 아니라 충분한 식량이 필요한 곳으로 얼마나 빠르게 실행되어 공급될 수 있는가의 문제라는 점이다. 따라서 식량이 필요한 지역적 문제뿐만 아니라 시간적 문제까지 포함해서 접근해야 하는 것이다. 또한 의 문제와 같이 생각해보자. 시간의 문제로 제때 필요한 곳에 공급하기 위해서는 이를 실행하기 위한 잘 분산된 실행 시스템이 필요하다. 즉, 식량을 어떻게 공급하느냐는 얼마나 잘 정비된 공급망을 가지고 있는가도 중요하다. 사실 더 중요한 문제는 식량은 직접적으로 식량을 만들어 내는 생산의 문제가 더 중요하다. 마치 분산 시스템을 적절하게 배치하는 것이 식량을 잘 공급하기 위한 공급망이 잘 되어야 하기도 하지만 그보다 더 중요한 것은 분산된 형태의 농업 생산이 가능해져야 한다는 점이다.


인류의 문제에 있어서 고민한 내용 중 하나는 왜 인류는 절대적 식량의 양은 증가하는데 왜 기아는 늘어나는가이다. 단순히 자본에 의해 식량이 아닌 연료나 가축의 사료 등에 증가하는 양을 떠나서 왜 기아가 심각한 곳으로 제대로 공급이 되지 않는가이다. 이는 단순히 공급망의 부실로 생각할 수 있지만 생산되는 곳과 기아 지역과는 상당한 거리가 있어서 분산되어 제대로 지역 내에서 처리할 수 있는 소위 지역 내 자체 식량 자급이 절재적으로 부족한 상황이 되어버리기 때문이다. 따라서 인도적인 차원에서 공급되는 식량에 의존하기에는 부족하고 마치 접속하고 싶은 웹사이트가 아무리 성능이 좋다고 해도 사이트까지 접근하는데 복잡하고 긴 선로가 필요하다면 인터넷 속도는 느려지는 것과 비슷할 것이다. 즉, 분산 시스템이 결국 전체적인 인터넷의 속도를 증가시키는 가장 큰 이유는 가까운 곳에서 처리할 수 있어 멀리까지 가지 않아도 되는 것이기 때문이다. 이처럼 식량 문제를 단순히 전체 식량의 양의 문제가 아닌 지역 단위에서 자급(自給)할 수 있는 능력을 높일 수 있는 방법을 생각해야 할 것이다.

의 문제와 같이 결국 기아 문제를 직접 경험하는 사람들에게도 충분한 교육 시스템이 필요하다는 것을 인식해야 한다. 즉, 당장의 생존의 문제가 달려 마땅히 먼 미래까지 바라볼 수 없는 상황이 되어버리기 때문에 이런 문제가 중요하지 않을 것이라 생각할 수 있지만 어느 정도 기아 문제를 해결하는 과정과 더불어 주민들의 교육에도 힘써야 한다는 점이다. 결국 좋은 핸드폰이 있어도 사용자가 제대로 사용하지 못하면 효율이 떨어지듯이 식량 문제의 효율을 증가시킬 수 있는 좋은 방법 중에 하나는 주민들의 인식을 바꿀 수 있는 자립을 목표로 할 수 있는 의식과 희망을 이루기 위한 환경을 만들어야 한다. 따라서 식량의 지속적 지원과 더불어 식량 자립 구조를 가질 수 있는 농업 기술의 조언과 주민들의 의지를 바꿀 수 있는 교육 환경도 필요할 것이다.


의 문제를 연결하면 식량을 단순히 인도적 차원의 지원이라고 생각하기 보다는 보다 다양한 수익 구조를 만들 수 있는 방법으로 전환할 수 있는 국제적 인식이 필요하지 않을까 싶다. 이런다고 해서 빈민국가를 마치 하나의 수익모델로 삼으라는 것은 결코 아니다. 탐욕적 그리고 약탈적 수익모델을 막기 위해서라도 수익구조와 비용구조가 분리된 일종의 국제적 차원의 공공 사업이 필요하지 않을까 싶은 것이다. 이 부분에 대해서는 좀 더 구체적인 생각을 쓰기엔 아직 정리되지 않은 것들이 많지만 지역 공동체 단위의 생산 소비가 이루어지는 동네 경제 [ 대량 생산의 불편함 - 동네 경제를 꿈꾸며 ] 에서 비슷한 아이디어를 얻을 수 있을 것이다. 분산된 시스템의 장점 중 하나는 분산된 시스템 자체로 지역이 가지는 특징에 따라 지역이 필요한 경제 구조 혹은 수익 구조를 찾아낼 데이터를 만들어 낼 수 있다는 점이다. 단순히 경제적 수요만을 생각하는 것이 아니라 경제적 분위기, 상황이 다른 나라, 지역과 비교했을 때 좀더 보완하거나 더 필요한 내용을 찾을 수 있다는 점이다. 조금 더 접근하면 사실 기아 문제를 경험하는 나라들이 모든 상황이 똑같은 것은 아니다. 예를 들어 어떤 국가는 기아 문제로 40% 의 국민들이 굶어 죽어가고 있을 때 상위 10% 는 호화로운 삶을 사는 나라도 존재한다. 아주 가까이는 우리나라도 이런 형태의 절대 빈곤의 구조가 없다고 장담할 수 없다. (분명 존재한다.) 따라서 이런 문제를 접근할 때 어떻게 수익구조와 비용구조를 설계해서 보다 많은 사람들이 먹을 걱정을 하지 않을 수 있도록 만들 수 있는지 고민해 보는 것이 정책 결정권자들이 심각하게 고민해야 할 내용일 것이다.


... 

가장 중요하게 전달하고 싶은 생각의 중심은 단순히 인터넷 사용과 식량 문제를 연결하고자 하는 것이 아니라 인터넷을 보다 많은 사람들이 빠르게 사용하도록 했던 노력들, 그 과정에서 발생하는 네트워크 문제를 해결하는 과정에서 생각할 수 있는 다양한 아이디어를 통해서 식량 네트워크의 문제를 보다 본질적 문제에서 접근하고 싶었던 부분이다. 따라서 동일한 방법으로 혹은 비슷한 유사성 analogy 로 해결을 쉽게 할 수 있을 것이란 생각은 하지 않는다.


그러나 네트워크의 문제를 해결하는 과정에서 보이는 특징의 유사성을 통해서 인류가 식량 문제를 해결하는 동안 쉽게 지나쳐 온 부분을 생각할 수 있을 것이라 믿는다. 그 중 하나가 바로 식량문제를 단순히 양의 문제가 아닌 시간의 문제로 바라봐야 하고 이런 이유로 식량 문제의 해결은 하나의 시계열 문제로 처리해서 생각하는 것이 더 효과적인 접근이 될 수 있다는 점, 식량의 공급보다 지역 단위의 자급 시스템을 만드는데 더 많은 투자가 필요한 것은 아닐까 하는 점 등은 한번쯤 생각해볼 문제를 던진다고 생각한다. 한순간에 식량문제가 뽕 하고 해결되면 좋겠지만 생소했던 인터넷이 어느 순간 우리에게 보급이 된 것과 마찬가지로 식량문제도 해결될 수 있는 다양한 해결책이 존재할 수 있다는 점을 생각해보고 싶었다.


인터넷과 식량문제 ─ 네트워크를 바라보다

Thursday, August 2, 2018


"데이터가 살인을 할 수 있는가?"

살인이라고 하면 '사람을 죽이다'란 뜻을 가지는 광범위한 뜻을 가지고 있지만 영어로 살인은 여러가지로 표현된다. 먼저 살인하고자 하는 의도를 가지지 않았지만 결과적으로 죽음에 이르게 된 과실치사는 manslaughter 이고, 사람을 계획적으로 죽이는 것은 murder 라고 부른다. 사람의 죽음을 다루는 경찰이나 수사기관에서는 피의자의 살인의도를 제대로 파악하기 힘들기 때문에 일반적 살인을 다루는 homicide 라고 표현한다. 다시 처음 질문으로 돌아와서 "데이터가 살인을 할 수 있는가?"라고 물으면 데이터가 과실치사 혹은 계획된 살인을 만들 수 있는지 묻는 것이다. 거의 대부분의 사람들은 그럴 수 있을까? 라는 의문보다는 그럴리가 하면서 부정적인 반응을 보이기 쉽다. 기본적으로 살인이 주는 구체적인 모습은 흉기로 사람을 찌르는 것과 같은 구체적인 행동과 우선 연결이 되기 때문이다.


그러나 만약 '데이터가 누군가를 죽음에 이르게 할 수 있는가?' 로 질문을 바꾼다면 많은 이들은 그 가능성에 대해서 크게 부정하지 않을 것이다. 개인적으로 쓰는 소설에서는 각국의 사형제도를 통해서 특정 인물을 살해하는 내용을 그리고 있다. 예를 들어 싱가포르에서 소량의 마약을 가지고 입국하다 적발되면 사형이다. 만약 내가 죽이고 싶은 사람에게 경품으로 싱가포르 여행권이 당첨되었다고 하고 그 사람의 짐에 몰래 마약을 넣고 입국하는 과정에서 잡히도록 해서 사형을 당하게 된다면 계획된 치밀한 살인으로 볼 수 있는지 궁금해진다. 결국 사람을 죽음으로 이르게 하는 과정 안에는 수많은 우연들의 결과일 수 있지만 치밀한 계획에 의해서 만들어진 죽음이라고 해도 그 계획의 자세한 내용을 알지 못한다면 우연의 죽음으로 보일 것이다.

싱가포르 입국신고서

사실 우연과 계획의 경계선상에서 우리가 주의깊게 살펴봐야 하는 요소가 있다. 바로 개인정보 privacy 라는 측면이다. 개인정보 그냥 프라이버시라는 것은 종종 '보여주고 싶지 않은 것을 보여주지 않을 권리'로 생각된다.

"그건 내 프라이버시야"

출처: Consumer Reports

라는 말에는 정보 자체가 사실이 아니라는 말이 아니라 누군가 아는 것이 불편하다는 뜻이다. 불편함에는 여러가지 이유가 있을 수 있다. 알려지는 내용이 부끄러울 수도 있고 알려지면 곤란해질 수도 있고 다양한 이유지만 기본적으로 불편하기 때문에 가급적 나만이 알고 있으면 좋겠다는 뜻이다. 그 중에는 알려지면 악용될 가능성이 있는 개인정보들도 분명 있다. 대표적인 것이 바로 대한민국의 주민등록번호일 것이다. 주민등록번호를 안다는 것은 태어난 년도 생일 뿐만 아니라 성별 그리고 더 관심있게 본다면 출생신고를 한 지역까지도 알 수 있다. 꽤 많은 정보들을 포함있지만 대한민국에서 금융을 포함한 다양한 활동을 하는데 주민등록번호를 공유하지 않으면 할 수 없는 것이 많다는 것은 그동안 개인정보를 노출되도록 강요받았는지 생각해봐야 한다.


Material privacy ...

정보 자체가 그대로 개인정보가 되는 경우를 생각할 수 있다. 주민등록번호의 생년월일 뿐만 아니라 남/녀 를 나타내는 숫자를 보고 바로 알 수 있다. 정보가 그대로 개인정보가 되는 경우이다. 법정에서 판결에 중요한 영향을 줄 수 있는 증인은 material witness 라고 부른다. 증인이면 증인이지 material 이 붙는 이유는 무엇일까? 판결에 큰 영향이란 판결의 유무죄를 바로 뒤집을 수 있는 증인이란 뜻이다. 그런 증인 witness 앞에 material 이 붙는 것은 '있는 그대로 바로' 의미를 가진다는 뜻이다. 그런 의미에서 생년월일, 성별과 같은 정보는 바로 개인정보가 되고 이런 성격의 개인정보를 본연적 개인정보 material privacy 라 부르려 한다. [ 데이터와 개인정보의 시대 ─ 인간이란 무엇인가 ] 에서

"개인정보 privacy 란 데이터와 조건, 상황이 포함된 결과물이다."

이라고 소개했지만 본연적 개인정보는 조건 혹은 상황이 포함되지 않아도 그대로 개인정보인 경우이다. 그러나 자신의 생년월일이나 성별은 대상에 따라서 알리고 싶은 경우도 있고 그렇지 않은 경우가 있다. 즉, 본연적 개인정보지만 누군가에게는 성별조차도 알리고 싶지 않을 때도 있다. 개인정보는 정보의 성격뿐만 아니라 대상이 중요한 경우이다. 결과적으로 개인정보란 알리고 싶은 대상에게만 적절하게 in control 알려지기를 바라는 정보라고 생각하게 된다. 그러나 현실적으로 모든 정보를 제어할 수 있다고 생각하는 것은 거의 불가능에 가깝다. 더 정확한 표현은 자신이 통제할 필요가 없다고 생각하는 많은 본연적 개인정보들이 원하지 않는 이들에게 알려지거나 혹은 전혀 알 수 없을 것이라고 생각하는 정보들도 개인정보로 만들어지는 경우도 생각하게 된다.


Manufactured privacy ...

소셜네트워크 SNS 에서 전혀 모르는 이의 계정을 들어가 공개된 정보만으로 계정의 주인이 어떤 사람이고 어디에 살고 어떤 일을 하는지 얼마나 알아낼 수 있는지 살펴보면 상당히 많은 정보들을 알아낼 수 있는 경우가 많다. 물론 본인이 공개한 정보들도 많다. 직장 정보, 지역 등 알리기 원해서 알리는 경우도 있지만 공개하지 않은 개인정보라고 즉, 본연적 개인정보 material privacy 가 아니라고 해도 사진, 글 등을 통해서 어디에 사는지 직업이 무엇인지 알아낼 수 있는 방법도 있다. 즉, 본인이 직접 알린 개인정보가 아니지만 사진 속에 입고 있는 옷이나 주변 건물 등을 통해서도 유추할 수 있는 방법이 없는 것은 아니다. 몇가지 예를 통해서 생각해보자.

ID 카드: 신기한 현상이지만 한국에서 ID 카드란 자신의 직업 혹은 직장을 인증하기 위한 방법으로사용된다. 그래서 사진을 올리는 소셜네트워크인 인스타그램 Instagram 에서 #사원증 태그 수는 2018년 7월 30일 현재 18,780여개가 올라와 있다. 물론 공개된 개수이다. 많은 이들은 사원증의 형태나 모양은 그리 중요한 것이 아니고 자신의 직장을 알리기 위한 좋은 도구라는 생각을 하는 이들이 많은 것 같다. 그래서 특정 기업의 사원증은 거의 동일하게 위변조 할 수 있을 정도로 형태와 구조를 보여주고 있고 같이 찍은 물건을 통해서 사원증의 거의 정확한 크기도 알아낼 수 있다. 역시나 모양을 안다고 해도 카드 내부 정보를 통해서 위변조하기 어렵다고 생각할 수 있지만 그런 생각이 보안에서 가장 취약한 태도라고 볼 수 있다. 많은 경우 출입 허가증의 형태에서 문제가 되는 경우가 가장 일차적인 보안이다. 심지어 ID카드의 형태를 보면 제조회사를 알아내고 어떤 방식의 보안을 사용하는지 알아내는 것도 어려운 일은 아니다. 기본적으로 자신의 중요한 신분증을 공개하는 것에 대해서 수많은 기업들 그리고 관리자들이 가지는 생각을 유추할 수 있게 된다. 비슷한 검색어 태그로 #idcard 를 입력해보면 156,000 여개 공개 게시물을 볼 수 있는데 내용을 들어가서 살펴보면 세계곳곳에 진출한 한국인들의 ID 카드를 볼 수 있다. 많은 기관의 경우 신분증을 공개해서 올리는 것에 대해서 일종의 범죄 혹은 중요 정보에 대한 공개로 자격 박탈할 수 있는 이유가 된다. 그러나 대한민국 사람들은 그런 교육을 받았는지 아닌지 몰라도 자랑하고 싶은 곳일수록 적극적으로 올리는 것을 어렵지 않게 볼 수 있다.


배경이 더 중요한 정보를 주는 경우도 많다. 사진의 배경을 통해서 사진을 찍은 장소가 어디인지 알아낼 수 있다. 물론 친절하게 어디라는 태그 혹은 위치 태그를 붙여주기 때문에 어렵지 않게 알 수 있기도 한다. 그래서 그런 정보를 통해서 계정의 주인의 주요 동선이 어디이고 어디를 가면 볼 수 있는지 어떤 소지품을 가지고 다니기 때문에 아무리 얼굴이 화사하게 처리가 되었다고 해도 진짜 주인을 알아낼 수 있는 많은 방법들이 있다. 계정에서 나타나는 위치 정보들을 모아보면 계정 주인의 동선이나 어느 지점을 중심으로 이동하는지 그리고 시간대와 거리등을 통해서 계정 주인의 주거지가 어디쯤인지 추정할 수 있다. 눈 내리는 모습이 너무 좋아서 집에서 나오자 마자 찍어 올린 동영상에는 주변 아파트의 동 호수가 보일 때가 있다. 많은 사람들은 눈 내리는 장면에 집중하지만 개인정보의 민감함을 생각한다면 이웃 아파트가 보이고 이미 알아낸 동선과 비교해서 주변에 해당 동수가 있는 아파트 단지를 알아내는 것도 어렵지 않다. 사진 혹은 영상에서 나온 물체의 크기를 통해서 몇층에서 찍었는지 알아내는 것도 그렇게 어렵지 않다.


사용자는 절대로 자신이 사는 위치까지는 알리고 싶지 않았을 것이라고 생각한다. 그리고 이 정도면 사는 곳을 알아내는 것은 어려운 것이라고 생각했을 것이다. 그러나 주어진 정보에서 유추할 수 있는 많은 다른 정보들을 통해서 알리고 싶지 않았던 개인정보까지도 알려질 수 있다는 것은 한번쯤 개인정보를 다루는 직업을 가진 사람들이라면 생각해봐야 할 내용이다. 이처럼 자신은 알리고 싶은 개인정보가 아니고 직접 들어난 정보는 아니지만 다른 정보들을 통해서 알아낼 수 있는 개인정보도 있다는 것이다. 그리고 이를 본연적 개인정보 material privacy 와 구별하기 위해서 가공된 개인정보 manufactured privacy 라고 부르려 한다.


A being of analogy ...

인간이 동물과 구별되는 특징이 무엇인지 논의할 때 몇가지는 항상 빠지지 않고 나온다. 언어를 가지고 있다. 이성을 가지고 있다 등과 같이 설명을 하지만 막상 동물의 한 종류인 인간이 다른 동물들과 달리 어떤 특징을 가지고 있는지는 그 동물이 되어보지 않거나 동물들의 능력을 제대로 살펴보지 않고서는 알 수 없다. 그럼에도 불구하고 인간은 뭔가 특별한 능력을 가지고 있다고 항상 믿어오고 있다. 인간만의 특별한 능력인지 알 수 없지만 인간의 언어 능력 분석 능력 등이 종합적으로 나타나는 것으로 '유추하는 능력'을 볼 수 있다. 유추하다는 infer 를 주로 사용하지만 '유추'라는 것은 보통 'analogy' 라고 말한다. analogy 는 서로 다른 대상 사이에서 유사한 점을 찾아내서 그 유사점을 통해서 비슷한 성격 혹은 비슷한 반응을 나타내는 대상이지 않을까 미루어 짐작하는 것이다. 유추를 할 수 있는 것은 수많은 경험을 통해서가 아니라 기존에 경험한 내용 혹은 경험하지 않았지만 배운 내용만으로 미루어 짐작할 수 있는 방법들을 알고 있다는 뜻이다.


예를 들어 사진의 배경 안에 있는 나무와 나무의 그림자를 통해서 사진을 찍었을 때 몇시였고 어느 높이에서 찍었는지 와 같은 내용을 유추할 수 있는 이유는 광학과 기본적인 기하학을 이해하고 있기 때문에 가능하다. 그래서 많은 학문을 배우는 이유는 시험 점수로 경쟁하기 위해서가 아니라 삶에서 유추할 수 있는 능력을 증가시킬 수 있는 도구들을 가지기 위함일 것이다. 사용자의 사진들의 위치를 통해서 거주지를 유추하는 것도 특별한 의도를 가지지 않는다면 거주지를 중심으로 사용자가 움직일 것이라고 생각했기 때문이다. 범죄 심리학에서 피의자가 범죄를 일으키는 패턴의 모습과도 유사함을 생각할 수도 있고 다양한 이유로 한 사용자의 계정이 보여주는 위치를 통해서 사용자의 거주지를 추정할 수 있다는 것은 합리적인 생각이 될 수 있을 것이다.

이처럼 좋은 의도를 가진다면 인간이 가지는 유추란 세상의 원리를 알아내고 세상이 움직이는 모습을 이해할 수 있는 좋은 도구가 될 수 있지만 나쁜 의도를 가지고 어떤 사용자가 어디에서 살고 어디에서 움직이고 그래서 어디에 가면 만날 수 있는지와 같은 용도로 사용된다면 결국 인간의 유추 능력은 스토킹을 위한 도구가 되는 것이다. 사용자는 의도하지 않았지만 결국 유추된 개인정보들을 앞서 표현한 것처럼 가공된 개인정보 manufactured privacy 라고 불렀고 이런 개인정보는 한가지 정보를 통해서 유추할 수 있기도 하지만 여러가지 정보들을 모아서 한가지의 결정적인 정보를 찾아낼 수 있다. 그리고 많은 경우 인간의 선한 의도만을 믿는 세상이 아니라면 이런 가공된 개인정보는 더욱 더 위험한 형태의 개인정보가 되어서 사용자를 힘들게 할 수도 있을 것이다.


A machine of analogy ...

이런 인간이 유추해 알아낼 수 있는 개인정보를 인간이 아닌 기계 machine 에게 맡긴다면 더 잘 할 수 있을까? 물론 기본적으로 유추할 수 있는 기본이 되는 원리들은 이해하고 있어야 한다. 빛의 직진성 등과 같은 물리학의 원리 뿐만 아니라 사진에서 나오는 배경에 나오는 간판 혹은 특정한 배경을 통해서 어디에 있는 것인지 찾아낼 수 있는 능력과 같은 것이다. 아주 짧은 그리고 거의 보이지 않는 정보를 통해서 위치를 알아내는 방법도 인간의 집요함만큼이나 기계가 수행할 수 있는지 생각해봐야 한다. 그러나 기계는 기본적으로 짜증을 내지 않는다. 인간처럼 유추하는 과정에서 궁극적인 결과를 알아내는데 실패해도 짜증내지 않을 것이고 다시 다른 정보를 통해서 다른 정보들을 알아내려고 할 것이다. 어떤 면에서는 사진 정보를 확대해서 더 정확하게 인식할 수 있는, 예를 들어 인간이 확대해서 눈으로 확인하기 어려운 간판을 기계가 확대할 때 좀 더 선명하게 구분할 수 있는 사진 확대 방법을 적용한다면 인간보다 더 정확한 그리고 더 빠른 정보를 얻어낼 수도 있다.


결국 기계학습 machine learning 에 대한 다양한 설명을 할 때 막연하게 기계에게 인간의 지식 정도를 학습시킨다고 설명할 때가 많지만 실질적으로 기계 학습에서는 기계가 알아내려고 하는 목표를 정하고 그 목표를 달성하기 위해 필요한 학습 내용이 추가되어야 한다. 이런 경우 인간이 어떤 공개된 사진을 통해서 나온 본연적 개인정보 material privacy 를 통해서 가공된 개인정보 manufactured privacy 를 알아내는 다양한 유추 방법들을 알려준다. 우선 사진 정보를 통해서 위치를 알아내는데 사용자가 친절하게 올린 위치 정보와 함께 사진에 포함된 간판 혹은 길거리 특정하게 알아낼 수 있는 부분을 통해서 사용자의 위치 정보를 알아낼 수 있을 것이다. 그리고 기계에게 특정 사용자가 사는 곳이 어딘지 알아내 라고 할 수 있다. 사용자가 집 안에서 찍은 구름 사진을 통해서 건물들을 찾아낼 수 있다면 해당 건물이 보일 수 있는 위치를 지도에서 찾아내고 사용자가 사진 찍은 위치를 알아낼 수 있을 것이다. 인간도 할 수 있지만 기계에게 지도의 정보와 함께 사진이 찍힌 구도, 그림자 등과 같은 부분적인 정보를 통해서 더 정확한 정보를 인간보다 더 빠르게 알아낼 수 있다.

내용이 그렇지만 결국 사용자 계정이 주어지면 사용자가 어디에 사는지 정확하게 알아낼 수 있는 일종의 '스토킹 기계'를 만든 것이나 다름없다. 그리고 학습 내용이 정교하면 그만큼 더 적은 정보를 통해서도 더 정확한 개인정보를 알아내기 쉽다. 결국 인간이 평소에 유추해내는 다양한 방법을 기계에게 학습시킨다면 기계도 일종의 유추잘하는 기계가 될 것이다.


A thing of manufactured privacy ...

악의적인 의도를 가지지 않고 전혀 모르는 몇몇 사용자들의 인스타그램 계정에서 정말 이렇게 알아낼 수 있을까 궁금해지게 되었다. (이미 오래전이다.) 그래서 그때 적용했던 몇가지 예를 통해서 기계의 의한 학습 그리고 그 기계 학습으로 개인정보, 더 정확하게 '가공된 개인정보'를 얼마나 정확하게 알아낼 수 있는지 그 과정을 설명하고자 한다.

사용자 A 는 주기적으로 카페를 방문하고 방문하고 반나절 혹은 하루 정도 지난 후 인스타그램에 자신의 셀피 selfie 와 함께 올린다. 세 곳은 자주 가고 일주일에 한번 이상은 항상 방문하고 비정기적으로 가는 곳도 있다. 카페 이름은 친절하게 사용자가 태그로 올려놓거나 위치정보를 같이 올리기 때문에 정확한 위치를 파악하게 된다. 방문 시간과 올린 시간이 같지 않기 때문에 몇시에 방문하는지 알 수 없지만 이동 중에 찍은 셀피를 통해서 주로 이동시간이 오후 2시에서 3시 사이임을 알 수 있다. 이동 시간은 주로 그림자 등으로 유추가 가능했고 일관된 시간을 나타냈다. 방문한 위치들을 지도에 찾아본다. 이동 중에 찍은 사진에서 나타난 길가 표지판 혹은 특정 상호를 통해서 이동에 포함되는 거리를 추정하게 된다. 해당 정보와 도보와 버스를 이용할 때의 동선을 고려해서 가장 가능성이 높은 거주 위치를 추정하게 된다.
사용자 B 는 자주 다니는 사진도 많이 올라오지 않고 배경이 있는 사진이 아닌 책과 소품과 같은 물건들을 배경으로 찍은 사진들이 대부분이다. 태그도 거의 없기 때문에 위치를 추정할 수 있는 정보도 많지 않다. 어느 겨울날 사용자는 첫눈이 너무 좋아서 출근길에 아파트 복도에서 멈춰서 눈이 내리는 풍경을 찍었다. 그리고 그 사진 안에는 이웃 아파트의 동수가 나와 있었다. 다른 몇개의 사진을 통해서 사용자가 사는 지역 (시단위) 를 확인하고 그 지역에서 해당 동수가 어디에 있는지 찾고 아파트의 외관을 통해서 사진을 찍은 위치 뿐만 아니라 복도식 아파트라는 사실과 나무와 이웃 아파트의 높이 등을 고려해서 해당 사용자가 사는 정확한 위치를 알아내었다.
사용자 C 는 거의 고양이 사진만을 올리는 사용자였다. 위치 정보를 알 수 없었지만 고양이가 창문에 있는 사진이 올라왔다. 창문 너머로는 주변 건물이 보인다. 비슷한 방법으로 건물 이름을 통해서 해당 건물이 있는 건물 주변에 비슷한 형태가 존재하는지 확인할 수 있다.

사실 이정도까지 노력하지 않아도 수많은 개인정보를 올리는 사용자들이 많다. 자신의 자식들이 다니는 어린이집 이름부터 자신의 집을 스스로 위치 태그를 만들어서 친절하게 알려주는 경우도 많기 때문에 생각보다 직접적으로 개인정보를 알아내는 경우가 많다. 그러나 사용자 스스로는 알리지 않으려고 노력했다고 했지만 여러가지 단서를 통해서 아주 중요한 개인정보를 알아내는 경우도 쉽지 않게 찾아낼 수 있다. 이 정도 기계가 할 수 있게 시킨다면 많은 이들은 도대체 왜 이런 것을 기계에게 시키냐고 물어볼 수 있다.


먼저 본연적 개인정보 material privacy 와 가공된 개인정보 manufactured privacy 에 대한 구별을 하고 사용자들이 조심해도 생각보다 많은 개인정보를 바로 알거나 유추를 통해서 알아낼 수 있는 다양한 예가 있다는 것을 말하고 싶은 것도 있지만 이런 가공된 개인정보에 대한 개념을 만들고 싶었던 근본적인 이유는 다음에서 소개하려 한다.


A better thing of machine ...

앞의 사용자 A, B, C 의 경우 결국 사용자의 거의 정확한 거주지를 알아낼 수 있다. 심지어 대략적인 동선과 일정을 예상할 수도 있다. 그렇다면 인간이 할 수 있는 일을 좀 더 수고를 덜하게 하고자 기계에게 이런 '스토킹스러운' 일을 시킨 것인가?

여기에서 기계와 인간을 비교하면서 기계가 인간보다 더 잘 할 수 있는 특징이 무엇인지 생각해 볼 필요가 있다. 인간은 논리적이고 이성적이고 수많은 판단을 합리적으로 하는 존재라고 인간 스스로는 믿고 있다. 만약 이 명제가 사실이라면 인간은 더 넓게 보아 대다수의 인간들은 소위 가짜 뉴스 fake news 에 속으면 안될 것이다. 스스로 판단할 수 있는 이성 그리고 수많은 검색 방법을 통해서 인간은 많은 것을 확인하고 무엇이 사실인지 알아낼 수 있기 때문이다. 그런데 많은 경우 가짜 뉴스의 제목만으로도 어느정도 확증편향 confirmation bias 를 가지고 사물을 바라보게 된다.

기계에게 인간의 유추 방법과 자연 원리 등을 학습시키고 임의의 사용자의 거주지를 알아내도록 한다면 결론에 이르는 모든 단계에서 왜 그런 판단을 했는지 이유 reason 을 가지고 찾게 된다. 인간도 당연히 그럴 것이라 생각할 수 있지만 인간은 전체 데이터를 종합적으로 분석하지도 못하고 일부 단서가 되는 내용을 통해서 가설을 만들고 그 가설이 맞는지 아닌지 검증하는 과정을 거칠 때가 많다. 여러개의 사진을 통해서 결론을 내려고 하기 보다는 한 두개의 사진을 통해서 결론이 무엇인지 않을까 그리고 다른 사진을 통해 보니 자신이 생각한 결론이 부합되면 먼저 생각한 결론으로 확증하기 쉽다. 좋은 표현으로 인간에게는 감 gut 이 있다고 말하기도 하지만 사실 우연히 자신의 결론에 부합되는 몇가지만을 통해서 결론을 내는 경우도 생각해야 한다.


그러나 기계는 결론에 이르는 과정들을 검증하고 데이터가 제대로 부합되는지 여러가지를 검증할 수 있다. 그리고 결론을 낼 수 있는 중요한 단서 clue 가 무엇인지 정확하게 기록하고 결론을 낸다. 즉, 예를 들어 사용자 A 의 경우 카페 이름에서 단서를 얻을 수 있었지만 정확한 거주지 정보를 알아낼 수 있는 정보는 아니다. 다만 사용자가 카페를 가기 위해 장거리를 가지 않는다는 생각을 통해서 카페 주변에 거주지가 있지 않을까 생각한다. 사용자 B 의 경우 다른 사진에서는 정보를 거의 알아낼 수 없었지만 눈 내리는 풍경을 찍다 이웃 아파트를 촬영하여 결정적으로 알아내게 되었다. 정확한 결론에 이르는 정보의 양은 중요하지 않다. 오히려 얼마나 결정적인 정보가 어떤 역할을 하게 되었는지가 더 중요할 때가 많다. 그리고 기계 학습을 통해서 기계는 어떤 정보가 결정적인 정보인지를 구체적으로 알고 있다. 즉, 기계 스스로 논리적으로 유추하는 reasoning 과정에서 결정적인 단서 clue 가 무엇이었는지 알고 있다. 사용자 B 의 이웃 아파트의 동수와 모양이 바로 그런 부분이다. 사용자 C 의 경우에도 건물 이름 그리고 주변 건물들의 높이 등도 결정적인 단서가 된다.

개인정보가 복잡해지고 알아내기 더욱 어려울 수록 이런 결정적인 단서들의 역할은 더 커진다. 즉, 정보의 양이 중요하지 않다. 인간도 이런 결정적인 단서가 무엇인지 기억할 수 있지만 중요한 것은 유추의 단계가 복잡해지면 결국 인간도 직감 intuition 의 영역이 되기 쉽다. 그러나 기계는 그 과정에서 최초의 단서가 되는 것이 무엇인지 기록하고 있을 뿐만 아니라 추가적으로 알아낸 다른 단서 혹은 가공된 개인정보가 얼마나 정확한지 평가할 수 있다. 이때 최초의 단서가 된 정보가 무엇인지 알고 있다면 그 최초의 단서를 사진에서 다른 사용자에게 공개하지 않는다면 결정적 단서는 사용할 수 없게 된다. 사용자 B 의 경우 최초의 단서가 된 아파트 동수를 알아낼 수 없도록 보정한다면 우연히 그 풍경을 알고 있던 사람이 아니라면 일반적으로 알아내기 어렵다. 다시 말해 기계에게 스토킹을 시키고 민감한 개인정보를 알아낼 수 있는 정보들이 사용자들에게 노출되어 있다면 시스템은 사용자에게 이 부분을 알려주고 적절한 조치를 취할 수 있다.


시스템의 취약점을 알아내는 가장 좋은 방법은 시스템에 침투해보라고 하고 어떤 문제가 있는지 확인하는 방법이다. 그래서 소위 화이트해커 white hacker 의 역할이 지금처럼 복잡한 시스템의 세상에서는 더욱 더 중요하다. 비슷한 방법으로 화이트 해커의 역할과 같이 사용자가 미처 생각하지 못한 개인정보의 취약한 정보들을 제거할 수 있기 위해서는 우선 개인정보를 스토커처럼 알아내도록 하고 결정적 단서들만 잘 제거한다면 생각보다 많은 의도하지 않은 가공된 개인정보들을 막아낼 수 있다.


A era of artificial intelligence ...

많은 이들이 인공지능의 시대에 내 직업이 사라질까 아닐까를 고민하지만 사실 상당히 인문학적 고민일 뿐이다. 기술적인 측면에서 바라본다면 더 정확한 것은 내 직업이 기계에 의해 대체될 수 있는 작업들은 얼마나 있을까 생각해봐야 할 것이다. 예를 들어 미래 세상에 어떤 기계에게 특정 정치적 성향을 나타내도록 댓글을 쓰도록 학습시킨다면 특별히 댓글을 쓰도록 사람들을 몰래 계정을 만들고 숨어서 댓글 남기지 않아도 될 것이다. 기계는 열심히 돈 받지도 않고 열심히 써주고 심지어 동일한 댓글을 계속해서 복사해서 붙이지 않고 다양하게 창의적으로 댓글을 남길 수도 있을 것이다. 그런 세상이라면 댓글 조작을 위해 많은 돈을 쓰지 않아도 될 것이다.

인간이 할 수 있는 일 그리고 기계가 할 수 있는 일이 중요한 것이 아니라 인간이 할 수 있을 때 장점을 가지는 일 그리고 기계가 했을 때 장점을 가지는 일을 생각하는 것이 더 합리적인 접근일 것이다. 특별히 기계학습 machine learning 과 인공지능 artificial intelligence 를 구별할 필요가 있다. 많은 경우 '인공지능이 대체할...'이란 수식어가 붙는 직업들은 대부분 인공지능의 영역이기 전에 기계학습이 충분히 인간의 작업을 대신하는 영역을 많이 다루기 때문이다. 기계학습과 인공지능의 경계가 단순히 문제의 복잡함이라 말하기 어렵다. 바둑을 잘 두는 알파고 AlphaGo 의 경우 바둑 경기를 이기는 목적으로 만들어진 기계학습인지 인공지능인지 묻는다면 기계학습에 더 가깝다고 할 수 있다. 역설적으로 지능에 대해서 생각해본다면 주어진 목표가 아닌 스스로 목표를 만들고 그 목표가 가치있는지 생각할 수 있는 영역이 인간 지능의 가장 중요한 부분이라고 생각한다. 따라서 만약 인공지능을 가진 기계가 존재한다면 아마도 자신의 존재 이유와 자신이 하는 일에 대한 가치에 대해서도 고민하고 결론을 내리게 될지 모른다. 물론 그 결론이 옳은 혹은 합리적인 결론이라고 할 수 없지만 그래서 그런 생각을 시도한다는 것이 기계학습과 인공지능을 구별할 수 있는 부분이 될지 모른다.


영화 '엔더의 게임, Ender's Game (2013)' 에는 다음과 같은 대사가 나온다.

"When I understand my enemy
well enough to defeat him,
then in that moment,
I also love him."
— Andrew "Ender" Wiggin

내가 충분히 적을 이길만큼
적을 이해하게 되었을 때,
동시에 난 적을 사랑하게 되었다.

— 앤드류 "엔더" 위긴 

적을 이기기 위해서 이해하기 하지만 그 이해는 사랑하기에도 충분하다. 비슷하게 개인정보를 지키려는 노력과 개인정보를 훔치거나 알아내려는 소위 스토킹스러운 노력들은 거의 비슷하다. 그리고 그 개인정보를 보호해줄지 아니면 악용할지는 결국 그 개인정보를 알아낸 이의 선택에 맡겨야 한다. 이처럼 정보는 양면성을 가지고 있고 인간의 의도에 따라서 그 결과는 전혀 달라지게 되기 때문에 오히려 기계학습을 통해서 잘 훈련된 기계가 악용되지 않도록 한다면 선한 의도를 가진 기계 Good Samaritan's machine 로 이용할 수 있다. 이 말은 결국 기계학습의 능력이 뛰어나다면 인간이 해오던 민감한 정보에 대한 관리 권한을 인간이 다룰 이유가 없어진다는 뜻이기도 하다. 예를 들어 회사의 기밀을 담당하는 업무를 하는 사람은 자신의 직급이나 권한에 비해 넓은 범위의 보안 권한 clearance 를 가지고 있는 경우가 많다. 전산 관리와 같은 물리적인 관리를 뜻하는 것이 아니라 정보 혹은 데이터의 측면에서 살펴볼 때 말이다. 예를 들어 데이터베이스 관리를 해야 하는 사람이 병원에 외주로 들어가서 데이터베이스 성능 향상을 위해 들어갔을 때 외주 직원들은 병원 환자의 개인정보를 볼 수 있는 권한을 가지게 될 때도 있다. 이런 위험성을 막기 위해 개인정보가 전혀 존재하지 않거나 완전한 익명이 보장되는 가상의 환자 데이터베이스를 만드는 기계가 존재한다면 현재 상태와 거의 동일하지만 개인정보를 노출시키지 않아도 되는 가상의 데이터베이스 혹은 노출되어도 전혀 개인정보가 될 수 없는 정보로 가공할 수 있다.


How fragile being's analysis is ... 

기계학습을 통해서 단서를 알아내고 그 단서를 통해서 특정 개인정보를 알아내도록 실행하면 재미있는 결과를 볼 수 있다. 때로는 인간인 그냥 지나칠 수 있는 정보조차도 아주 간결한 단서로 알아내거나 반대로 인간이 그냥 보았을 때 충분히 단서가 되는데 왜 이 정보는 사용하지 않았지 하는 경우이다. 먼저 인간이 그냥 지나칠 수 있는 정보들은 대부분 기계의 뛰어난 검색 능력 그리고 대조 능력 comparison 때문일 때가 많다. 다른 표현으로 인간이 알아낼 수 있는 정보의 분해력 resolution 이 인간의 분해력보다 더 뛰어나기 때문이다. 반면 인간이 보았을 때 충분히 알아낼 수 있는 정보같은데 왜 그냥 지나쳤을까 하는 부분들을 다시 살펴보면 오히려 인간의 편견이나 검색해서는 알아내기 힘든 심리적인 내용이나 문화적인 내용들이 많이 있다는 것을 알 수 있다.

인간 스스로 뛰어난 능력이라 생각하는 유추 능력에는 수많은 함정이나 편견 때로는 이미 원하는 결정을 위해 조작하는 능력까지 포함한다는 것을 생각해 볼 필요가 있다. 예를 들어 한 기술 기업의 간부가 기술 유출 소위 기술 스파이 혐의로 재판을 받게 되었다 하자. 경쟁 회사와 연락한 적도 없었고 유출된 정보가 무엇인지 명시하지 못하고 회사에서는 간부가 헤드헌터 회사와 연락해서 이직을 하려는 시도가 있었다는 내용을 법정에서 강조했다. 그리고 이직을 하려는 시도는 곧 기술 유출을 했다는 의심을 할 수 있다고 주장한다면 헤드헌트 회사는 실제로 이직을 도와주는 회사가 아니라 기술 유출을 하려는 이들을 신고하는 것으로 더 큰 수익을 얻을 수 있을 것이다. 이와 같이 정황상 혹은 단순히 느낌상 그럴 것 같다는 주장만으로 쉽게 판단하는 것이 인간의 특징이기도 하다. 수많은 단서와 논리를 통해서 결론을 내리는 것이 아니다. 그래서 법정에서도 이를 구별하기 위해 실질적 증거를 material evidence 그리고 정황 증거는 circumstantial evidence 으로 부른다.

출처: 뉴스타파

만약 법적 논리와 합리성을 학습한 기계에게 맡긴다면 인간의 수많은 법정 논리 중 어느정도가 억지에 가까운 내용들인지 알게 될 것이다. 정치적인 이유로 억지 주장을 하고 심지어 인간의 목숨까지도 아주 쉽게 법정에서 죽음으로 몰고가는 것이 인간이라면 인간의 주장에는 얼마나 단서가 존재하지 않은 상태에서 억지 쓰는지 수많은 사법 살인들을 보면 이해할 수 있다. 정말 법조인의 양심에 따라서 우리의 삶을 맡겨도 되는지 생각해봐야 한다. 최소한 그들의 논리가 합리적인지 그리고 최소한의 단서를 가지고 생각하는 것인지 아니면 인간의 편견과 믿고 싶은 그리고 내리고 싶은 결론을 위해 인간은 그저 양심없이 말하는 것인지 확인해야 할 필요는 있다고 생각한다.

개인정보를 보호하기 위한 목적이지만 그 시작은 개인정보를 철저하게 파헤치는 스토커같은 역할로 학습을 하고 그 학습한 내용을 통해서 어떤 단서가 개인정보를 위험하게 하는지 인간이 제대로 파악하지 못한 단서를 찾아내는 역할로 기계학습은 괜찮은 도구이다. 뿐만 아니라 비슷한 방법으로 단서를 통한 논리 logical steps only by clue 를 만들어야 하는 곳이나 증거 중심 evidence based 학문의 영역에서는 인간의 양심에 맡기기 전에 한번쯤 검증할 수 있는 도구로 사용할 수 있다.


Quantum leap or Machine Step ... 

사실 인간의 비약적인 생각 혹은 엉뚱한 생각들이 인간을 좀 더 발전시켰다고 믿지만 그 비약이 너무도 심하면 편견과 오만에 가득한 인간들의 근거없는 주장들이 더 강해지게 될 때가 많다. 예전에는 소위 집단 지성 collective intelligence 에 의해서 많은 이들이 모일 수 있는 플랫폼이 만들어진다면 잘못된 주장은 사라지고 제대로 된 지식만 남을 것이라고 믿었던 적이 있었다. 2000년대 초반이였으니 그리 오래전 이야기도 아니다. 제대로 된 플랫폼이 없어서인지 아니면 집단 지성이 잘못된 이론인지 모르지만 많은 이들이 쉽게 참여할 수 있는 지금 오히려 가짜 뉴스와 잘못된 편견이 더 쉽게 유통되는 것을 보면 집단지성에 대한 진지한 고민을 해볼 필요는 있을 것이다.

단서없이 다시 말해 뜬금없이 새로운 생각을 할 수 있는 능력은 분명 인간의 상상력으로 존중받아야 할 능력이기도 하지만 지금 당장의 사실과 가치에 대해서 판단할 때 좀 더 객관적인 단서를 통해서 생각하는 능력또한 인간에게 필요한 부분일 것이다. 야심차게 어떤 기업들은 가짜 뉴스를 검증할 수 있는 자동 시스템을 생각하고 개발하기도 했지만 막상 인간의 그 뜬금없는 clueless 생각들을 따라갈 수 있는 방법은 그렇게 쉽지 않아서 제대로 작동하지 못하고 있다고 한다.

개인정보를 본연적 개인정보와 가공된 개인정보로 구별한 근본적 이유도 여기에 있다. 가공된 개인정보에는 단서를 가지고 만들어진 개인정보이다. 그렇게 가공된 개인정보의 경우에는 단서를 통해서 개인정보를 보호할 수 있는 방법이 있다는 것이다. 반면 본연적 개인정보는 그 개인정보 자체를 보호해야 한다는 점이다. 단순히 개인정보지만 그 개인정보가 어떻게 만들어졌는지를 구별하고 관리할 수 있는 능력은 인간보다 잘 훈련된 기계가 더 잘할 수 있다는 점도 고민해야 한다. 그리고 그 개인정보를 잘 관리하는 것에서 잘 훈련된 인간을 고용하는 것보다는 잘 훈련된 그리고 여러곳에서 잘 훈련된 방법을 서로 공유해서 잘 학습된 기계가 잘 관리할 수 있도록 해주는 것이 더 효율적이고 더 적극적인 방법이 된다.


출처: MEGA.COM

대한민국은 별 큰 생각을 하지 않지만 이미 유럽의 많은 기업들 심지어 유럽의 사용자들을 GDPR, (데이터보호에 관한 일반 규정) 에 대해 고민하고 있다. 그 영향인지 모르지만 많은 소셜미디어 업체들을 탈퇴하거나 스스로 제대로 관리하지 못하는 데이터를 파기하거나 아예 개인정보가 악용될 수 없도록 데이터를 수용하지 않는 방법 등 구체적인 방법을 실행하고 있다. 이 규정에 영향을 직접 받을 수 밖에 없는 대한민국의 많은 기업들은 여전히 개인정보에 대한 보호 방법도 미약하고 악의적인 해킹을 통해서 이루어진 개인정보 유출에 대해서 가장 관대한 나라이기도 하다. 일반적인 사용자들의 개인정보에 대한 인식의 정도에 따라서도 달라지겠지만 개인정보를 담고 서비스를 해야 하는 많은 기업들에게 어떻게 보호를 하고 사고가 일어났을 때 어떻게 대처해야 하는지에 대한 대비 계획도 마련되어야 한다. 그러나 그전에 개인정보가 어떤 의미를 가지는지 그리고 우리가 생각하지 못한 개인정보의 다양한 모습들을 고민하고 이를 어떻게 막을 수 있는지를 고민하고 해결한다면 앞으로 더 많은 개인정보를 보호해야 하는 의무가 주어지게 될 때 가장 현명한 해결책을 제시하는 기업이 된다면 오히려 기회가 될 수 있다는 것을 생각해야 할 것이다.

첫 질문으로 돌아간다.

"데이터가 살인을 할 수 있는가?" 

살인을 할 수 있다 없다의 답이 아닌 만약 데이터가 살인을 할 수 있다면 반대로 데이터가 살인을 막을 수 있다는 점도 생각하고 싶다.


개인정보를 대하는 우리의 자세 ─ 인공지능 시대 개인정보란 무엇인가?

Sunday, July 1, 2018

은 기술이라면 충분한 수요를 가지고 많은 이들이 사용하게 될 것이라고 생각하지만 현실에서는 아무리 좋은 기술이라도 현실에서 익숙하게 쓰이는데 많은 시간이 걸린다는 것을 생각해야 한다. 그래서 막상 대학교나 연구소의 수많은 기술들은 당장 세상을 바꿀 것 같은 창의적인 생각으로 도전하고 있지만 막상 현실에서는 어떤 쓸모가 있는지 찾을 수 없을 때도 많다. 그래서 기술은 많은 이들이 충분히 사용하고 있을 때 그 쓸모가 오히려 만들어진다고 생각한다. 다시 말해 이 기술은 좋은 기술이야 설명하는 것이 중요한 것이 아니라 이미 많은 사용자들이 자신도 모르게 사용하고 있고 사용자들의 많은 사용 중에서 무엇이 불편한지 무엇이 좋은지 찾아가면서 기술은 대중화된다고 본다.


그런 시선에서 바라보면 인터넷은 참 신기한 기술이다. 인터넷을 이루는 수많은 기술들은 이미 많은 사용자들이 사용하고 있다. 그리고 무엇이 좋은지 무엇이 나쁜지 많은 이들이 잘 알고 있다고 생각하지만 많은 사용자들은 인터넷이 어떻게 작동하고 있고 우리가 생각하는 것보다 많은 작업들이 필요하다는 것을 인식하지 못하고 충분히 잘 사용하고 있는 이들이 많기 때문이다. 누구나 핸드폰만 들면 쉽게 인터넷을 하고 있다고 생각하지만 자신이 접속하고 있는 인터넷이 어떤 원리로 이루어지고 있는지 알지 못하고 사용한다면 많은 경우 인터넷에 의해서 악용되는 피해자가 되기 쉽다. 그래서 누구나 다 사용하는 것 같은 인터넷이고 수많은 사용자들이 많지만 인터넷을 가장 잘 이해하는 방법은 인터넷에서 제공되는 많은 서비스를 자신이 직접 활용할 수 있는 능력을 가지는 것이라고 본다. 활용할 수 있는 단계에 이르면 사용자는 결국 무엇이 불편하고 지금까지 잘못 써온 것은 무엇이고 발전시킬 수 있는 방법은 무엇인지를 알 수 있는 계기가 될 수 있기 때문이다.

하루에도 몇번씩 검색창을 열거나 자신이 원하는 홈페이지에 들어간다. 당연하게 웹브라우저를 열고 주소창에 자신이 원하는 인터넷 주소를 입력하고 들어간다. 홈페이지에서 자신이 필요한 정보를 얻거나 물건을 주문하고 이제는 인터넷 상에서의 많은 작업들은 사용자의 많은 일과와 연관이 되어 있음을 알고 있다. 만약 우리가 어떤 물건을 팔고 싶다면 가장 먼저 인터넷에서 자신의 물건을 어떻게 보여주고 어떻게 팔 수 있는지 알아보게 된다. 인터넷에 내가 원하는 정보를 올리기 위한 간판같은 역할을 하는 것이 바로 인터넷 주소이다. 그리고 인터넷 주소의 가장 기본이 되는 부분이 도메인 이름 domain name 이다.

인터넷의 주소록 DNS 서비스 ─ 기반기술에 대해서... ] 에서 이미 도메인 이름과 인간이 쉽게 사용할 수 있도록 만든 주소록인 DNS Domain Name Server 에 대해서 설명했으니 먼저 읽으면 좋을 것 같다. 본 글에서는 DNS 에 대한 일반적인 상식을 가지고 자신만의 도메인을 최소한의 비용으로 (거의 무료로) 할 수 있는 많은 활용법에 대한 내용이다. 인터넷에 자신만의 주소를 가지고 싶어서 도메인을 구매를 했지만 그 후 얼마 더 지불하면 이메일도 쓸 수 있다 뭐할 수 있다 추가비용이 계속 들어간다고 생각하는 사람들이 추가적인 비용없이도 많은 활용을 할 수 있다는 것을 보여주는 안내서가 되었으면 하는 바람에서 정리하게 되었다.


항상 그렇지만 소개되는 서비스의 기능 등은 변경이 되거나 서비스가 중단되는 경우도 존재한다. 그래서 어떤 특정 서비스를 소개할 때마다 고민은 많지만 중요한 것은 어떤 서비스를 사용하는 것이 아니라 활용할 수 있는 기본적인 정보를 알게 된다면 비슷한 다른 서비스에서도 동일하게 활용할 수 있음을 강조하고 싶다. 그래서 본 글을 쓰는 시점에서는 정상적으로 서비스를 하고 있지만 시간이 지나면 해당 서비스가 사라질 수 있지만 그 어딘가 비슷하거나 동일한 서비스를 해주는 곳은 있을 것이라 믿는다. 서비스 제공자 및 설정 내용만 알고 싶다면 (긴 글이 맘에 안드신다면...) 간단하게 정리해둔 [ 개인 위키 페이지 (영문) ] 을 참고하면 좋을 것이다.


A. 도메인 이름 구매

도메인 이름은 가장 기본이 되는 주소이다.  회사이름 기관이름에 따라서 원하는 도메인을 구매할 수 있다. 가격은 도메인 끝에 붙는 주소 .com, .net 등에 따라서 다르며 1년단위로 결재할 수 있다. 도메인을 구매할 수 있는 업체는 많은데 자신이 원하는 주소가 이미 다른 사람에 의해 사용중인지 확인해보고 구매하면 된다. 업체 중에는 자신의 업체에서 구매하도록 첫해의 경우 가격을 할인해서 제공하는 경우가 있다. 규모가 큰 업체들이 오히려 더 할인 비율이 높은 경우도 많기 때문에 몇군데 확인해보고 구매하는 것이 좋다.


마지막에 붙는 주소 중에는 일반적인 .com .net .org 와 같은 고전적인 주소들도 있지만 현재는 .cafe .systems .institute 와 같이 사업 혹은 직업의 성격을 보여주는 주소들도 있다. 물론 그럴수록 가격은 올라갈 가능성이 높다. 나라를 나타내는 도메인 주소도 있는데 한국은 .kr 미국은 .us 싱가포르는 .sg 등과 같이 국가를 나타내는 도메인 주소 ccTLD: A country code top-level domain 도 있다. 구매에 제한이 있는 경우도 있으니 확인해 볼 필요가 있다.

  • [ GoDaddy ] 개인적으로 사용하는 업체이고 무엇보다 서비스가 좋다. 
  • [ Google Domains ] 구글이라서 써보고 싶었는지 모른다. 나쁘지 않다. 
  • [ name.com ] 도메인 주소에서 모든 것을 말해준다. 

특정 도메인 주소의 경우에는 일부 업체에서만 등록 가능할 수 있다. 자신이 원하는 도메인 주소의 가격이 적당하다면 구매하면 된다. 참고로 미국 업체에서는 달러 (현지 통화) 로 구매하는 것이 좋다. 이렇게 해서 own.my 라는 도메인을 구매했다고 가정해보자. ( .my 은 말레이지아 국가의 최상위 도메인이다.)

이처럼 도메인 주소를 구매할 수 있도록 그리고 등록해주는 업체를 도메인 등록 대행사업자 domain registrar 라고 부른다. 등록 대행사업자은 구매한 도메인을 사용자가 사용할 수 있도록 해주는 역할과 함께 인터넷에 해당 주소가 제대로 된 주소임을 등록해주는 역할을 한다.

그렇다면 모든 도메인은 구매해야만 사용할 수 있는 것인가? 아니다. 가장 먼저 교육기관이나 비영리단체를 위한 도메인들도 있기 때문에 자격이 된다면 해당 도메인을 무료로 사용할 수 있다. 그런 경우가 아니라도 개인 사용자들을 위한 특별한 도메인 주소들이 있다.

[ Freenom ] A name for everyone


모든이에게 (도메인) 이름을 ... 표방하며 무료로 도메인을 제공해주는 곳이다. .tk .ml .ga .cf .gq 5개의 최상위 도메인으로 자신이 원하는 이름이 있다면 무료로 가질 수 있다. 무료이기 때문에 일정 기간 다시 확인해야 하기도 하고 무료이기 때문에 악용되어서 제한이 있을 수 있지만 도메인을 실험적으로 사용하거나 활용 연습을 하기 위한 목적으로 충분하다. 짧은 도메인 이름이나 자주 사용되는 단어에 대해서는 구매를 해야하기도 하지만 대부분 무료로 제공한다. 특히 .ml 은 markup language 혹은 mail 을 연상시키거나 .cf 는 cafe 를 연상시키기도 한다. (일단 무료인데...)

List of Internet top-level domains ] by Wikipedia


B. 도메인 네임 서버 (DNS) - 인터넷 주소록

도메인 등록 대행사업자 registrar 를 통해 도메인을 구매했으니 이제 본격적으로 활용한다. DNS 에 대한 기능적인 설명은 생략한다. 일반적으로 도메인 등록 대행사업자가 DNS 도 제공한다. 그러나 DNS 를 중심적으로 하는 서비스를 선택할 수 있다. 도메인 등록 대행사업자 설정 화면 어딘가에는 네임서버 (NAMESERVER) 를 등록 대행사업자의 것을 쓸 것인지 다른 네임서버를 사용할 것인지 정할 수 있다. 무료로 사용할 수 있는 서비스를 소개하면 다음과 같다.

  • [ Cloudflare™ ] 그냥 믿음직 한 서비스이다. 
  • Hurricane Electric ] 화면은 믿음이 덜 가지만 상당히 안정적인 서비스이다. 
  • Free DNS by Afraid.org ] 안정적이지만 속도는 다소 느리지만 다양한 기능들이 신선하다. 
  • DNSZi ] 국내 업체 / 한글 화면이고 무료 계정에도 다양한 기능이 제공된다. 
  • [ ClouDNS ] 다양한 기능들이 있다. 무료 계정은 3개의 도메인 등록이 가능하다. 

출처 KeyCDN | https://meson.in/2MDf6Zb

원하는 곳을 선택해서 들어가서 가입 후 자신이 구매한 도메인 이름을 등록하면 네임서버 목록을 알려준다. 예를 들어 Hurricane Electric 의 경우 ns1.he.net ns2.he.net ns3.he.net ns4.he.net 과 같이 4개의 네임서버를 제공한다. 해당 네임서버를 도메인 등록 대행사업자 서비스에 들어가서 설정에서 네임서버를 변경해주면 된다. 네임서버가 죽어버리면 내 도메인 주소를 인터넷에서 사용할 수 없게 된다. 예를 들어 blog.own.my 를 내 블로그에 연결을 했는데 네임서버가 모두 죽어버리면 해당 주소가 어떤 IP 를 가지는지 알 수 없기 때문이다. 그래서 안정성을 위해서 일반적으로 4~5개를 제공한다.


메인 름을 지고 수 있는 들 ...

도메인 이름을 구매하고 DNS (네임서버) 에 등록을 했다면 다양한 활용을 할 준비가 끝난 것이다. 자신만의 도메인 이름을 가지고 무엇을 할 수 있는지 알아보고 이를 통해 자신만의 다양한 활용법을 생각해보는 것이 좋을 것 같다.


1. 나만의 인터넷 주소

블로그 서비스는 사용자들이 접속할 수 있는 주소를 부여해준다. longlongblogname.blogspot.com 과 같이 어떤 블로그 서비스를 사용하고 있는지 도메인이 나타난다. 그러나 많은 경우 자신이 원하는 주소를 가지기 어렵거나 가능하다면 짧은 기억하기 쉬운 주소를 가지고 싶을 것이다. 이런 경우 자신이 구매한 도메인이 있다면 해당 도메인을 블로그 주소로 사용할 수 있다. 거의 모든 블로그 서비스가 이를 지원해주기 때문에 설정에 들어가면 자신의 도메인 주소를 사용할 수 있도록 도와준다. 자세한 설정 방법도 알려주기 때문에 그대로 따라하면 된다. 블로그 뿐만 아니라 모든 인터넷 상에서 IP (인터넷 주소) 를 도메인 주소로 연결할 수 있다. 예를 들어 longlongblogname.blogspot.com 주소가 너무 길고 기억하기도 어렵고 더 짧은 주소를 원해서 이를 june.own.my 으로 주소를 부여한다. 블로그 등을 포함하여 다양한 인터넷 자원에 접속하고 이용하기 위해서는 기억하기 쉬운 주소나 자신의 정체성을 가지는 이름으로 사용하는 것이 좋을 것이다. 자신의 것만이 아니라 자주 들어가는데 다른 인터넷 서비스 예를 들어 자신의 도메인을 구매한 곳이 godaddy.com 이라면 dns.meson.kr 과 같이 별명을 붙여서 쉽게 접속할 수도 있다. 이렇게 인터넷 자원이 어디에 있는지 어떤 인터넷 주소를 가지는지 알려주는 주소록이 DNS 이고 자신이 구매한 도메인의 DNS 를 자신이 관리할 수 있다고 생각하면 된다.

출처: teachable support | https://meson.in/2tSZSY4

인터넷 자원 resources 를 도메인으로 연결해주는 mapping 기본적인 부분이 A 레코드 (AAAA 레코드) 와 CNAME 이 있다.

A 레코드: home.own.my 을 주소창에 입력했을 때 어떤 인터넷 주소를 가진 기계로 접근해야 하는지 알려준다. home.own.my 을 192.230.64.122 으로 설정해 놓으면 주소창에 home.own.my 입력하면 컴퓨터는 열시히 해당 주소가 어떤 IP 를 가진 것인지 찾기 시작해서 own.my 를 관리하는 DNS 에서 home 이란 A 레코드는 192.230.64.122 을 가지고 있다고 알려주고 해당 IP 로 접근한다. 한 도메인에 대해서 여러 개의 IP 를 할당할 수도 있다. 
AAAA 레코드: A 레코드는 IPv4 주소 체계에 해당하고 만약 기계가 IPv6 주소를 가지고 있다면 AAAA 레코드 값을 입력할 수 있다. 
CNAME 레코드: 도메인의 별명이라고 생각하면 편하다. home.own.my 도 좋지만 casa.own.my 도 쓰고 싶다면 casa.own.my 에 A 레코드로 192.230.64.122 을 입력해도 되지만 casa.own.myhome.own.my 의 별명이라고 알려준다면 이후 home.own.my 의 IP 값이 변경되어도 casa.own.my 의 값을 변경할 필요가 없기 때문에 편리하다. 일반적으로 물리적인 기계는 동일하지만 다양한 도메인을 사용해야 하는 경우에 CNAME 레코드를 사용하면 편리하다. 뿐만 아니라 블로그에 자신의 도메인 주소를 설정한 경우에도 블로그 서비스에 접속하기 위해서는 서비스 업체의 주소에 접속해야 한다. 이 경우도 개별적으로 IP 를 부여하기도 어렵고 대형 서버를 이용하기 때문에 서버의 주소에 자신의 도메인을 별명으로 부여하게 된다. 예를 들어 longlongblogname.blogspot.com june.own.my 를 연결하기 위해서 자신의 DNS 에 june 의 CNAME 레코드 값을 ghs.google.com 으로 설정한다. 

DNS 의 거의 대부분은 A (AAAA) 레코드와 CNAME 레코드가 전부라고 해도 과언은 아니다.


2. 나만의 이메일 주소

이메일 주소도 myid@own.my 와 같이 사용자 이름과 도메인으로 구성되어 있다. 예를 들어 myownid@gmail.com 으로 메일을 보낸다는 말은 gmail.com 이란 곳으로 내 이메일을 보내는데 그 중 사용자 이름이 myownid 란 사람에게 보내달라는 뜻이다. 따라서 own.my 이란 이메일 주소를 사용하기 위해서는 own.my 이 어떤 메일 서버인지 알려주면 된다. 이처럼 이메일 서버가 어디에 있다는 것을 알려주는 DNS 레코드 값을 MX 레코드라 한다.

출처: iwantmyname blog | https://meson.in/2lLkgqj

예전에는 자신의 도메인 주소를 가지는 이메일을 사용하는 것은 번거롭기도 하고 보안 문제로 관리하기 어려울 때가 많았지만 이제는 주요 이메일 서비스에서 자신의 도메인을 이용할 수 있도록 해준다. 도메인을 구매하면 이메일 사용할 수 있도록 더 추가 비용이 발생한다는 이야기를 들을 때가 많다. 그러나 (2018년 6월 기준) 여전히 무료로 자신의 도메인을 이메일 주소로 사용할 수 있는 서비스들은 많이 있고 오히려 보안문제에 있어서도 유로로 서비스해주는 곳보다 더 안정적일 때가 많다. 개인은 자신의 도메인 주소를 가지는 이메일 가지는데 큰 관심이 없는 편이지만 기업이나 단체의 경우 도메인 주소를 가지는 이메일을 가져야 하기 때문에 가장 편한 도메인 구매 업체를 통해서 이메일 서비스를 유료로 사용하는 경우가 많다. 대부분이 당장 사용해야 하기 때문이기도 하고 관리 차원에서 문제가 발생하면 해결하기 쉽게 위탁하는 것이라 본다. 주요 고객이 기업이기 때문에 이런 서비스는 이메일 뿐만 아니라 일정 calendar, 자료 저장을 위한 클라우드 서비스 등을 사용할 수 있는 형태로 많이 존재한다.

  • [ Google G Suite ] 광고가 될 것 같아 조심스럽지만 단순히 이메일 주소만 사용할 수 있는 형태에서 기업형 솔루션의 형태를 제공하기 시작했던 곳이 구글이다. 개인적으로 서비스 초기부터 가입해서 무료로 사용하고 있지만 지금은 유료이다. 초기에 무료로 가입한 경우는 계속 무료로 유지한다. (몇가지 부가적인 서비스가 제한되지만 일반적으로 사용하기에는 충분하다.) 이메일, 일정, 구글 클라우드인 구글 드라이브 등의 서비스를 제공해주고 궁극적으로는 모든 기업/단체의 작업을 할 수 있는 형태로 제공한다. 
  • [ Zoho Mail ] 구글 G Suite 의 유료화에 가장 대안이 되는 ... 이라고 하지만 유료로 쓰기에 불편없는 무료 서비스이다. 무료의 경우 한 도메인 당 20명 사용자 등 제한이 있다. 자신이 쓰기 위한 master@own.my 란 이메일 주소를 만들고 친구를 위해 friend@own.my 으로 만들어 친구가 사용할 수 있도록 20명까지 지원하는 것이다. 메일 이외에도 다른 서비스 (일정 등) 를 사용할 수 있다. 
  • [ Yandex.Mail ] Yandex 는 러시아의 구글과 같은 기업이다. 본 글을 정리하면서 찾게 된 서비스인데 혼자 사용하기 좋고 사용자 인터페이스 뿐만 아니라 표준과 편리성에서도 높은 점수를 주고 싶다. 역시 무료이다. 
  • [ Daum Smartwork ] 외국 서비스 만 소개하는 것 같아서 국내 서비스를 추가하긴 하지만 개인적으로 적극 추천하고 싶지는 않다. 다만 다음 한메일에 익숙하거나 이미 잘 사용중이라면 설정하는 것도 좋을 것 같다. 

구글을 제외하고 나머지는 모두 무료이다. (2018년 6월 기준) 필요하다면 좀 더 다양한 기능 혹은 용량 등의 문제로 유료 서비스를 사용하는 것도 좋다. 그러나 기업 업무라고 해도 일반 이메일을 해도 크게 문제가 되지 않고 있었다면 무료 서비스를 사용해서 도메인 주소로 이메일을 받고 받은 이메일을 자신의 개인 이메일 주소로 전달하기 forwarding 해서 사용하는 것도 좋은 방법이다. 다음 스마트워크를 제외하고 나머지는 (해외 서비스는) 기본적인 전달하기 기능을 제공하고 있어서 메일이 오자마자 바로 원하는 개인 이메일 주소로 보내주는 기능을 제공해주고 있다. 전달하기 방법이 아니라도 별도 설정을 통해서 메일 가져오기를 사용할 수도 있다. 구글과 Zoho 의 경우 mail.own.my 과 같이 메일 서비스로 접근할 수 있도록 설정할 수도 있다.

MX 레코드: 자신의 도메인으로 이메일 주소를 사용하기 위해서 앞서 A 레코드 설정과 같이 자신의 DNS 관리에 들어가서 MX 레코드를 추가해야 한다. 각 서비스 별 MX 레코드 설정방법 / 설정값은 다음 과 같이 찾을 수 있다.


이런 것까지 필요없고 master@own.my , myid@own.my 이나 friend@own.my@own.my 주소로 보내는 모든 이메일을 자신의 이메일로 모두 전달받는 서비스도 있다.

  • [ ImprovMX ] - Free painless email forwarding for your domains

설명이 이야기 해주듯 너의 모든 도메인 메일을 고통없이 다 전달해준다. 다만 여러 사용자들이 개별적으로 사용할 수 없고 이메일을 변경하는 것과 같은 세부적인 설정을 할 수 없는 단점들이 있다.

결론적으로 자신의 도메인 주소를 가지는 이메일을 사용하고 싶을 때 필요한 것이 MX 레코드 값인 것을 기억하면 된다. 그러나 이메일을 생각하면 가장 먼저 떠오르는 것이 스팸 메일인 것처럼 다양한 스팸을 만들 수 있기 때문에 이메일 설정에서 보안관련 설정을 추가해주는 것이 좋다. 이메일에 관련된 보안기능에는 다양한 방법이 있는데 가장 일반적으로 사용되는 설정은 추가해주는 것이 좋다.

  • SPF 설정: 이메일 서버를 사용하지 않아도 보내는 사람 메일 주소에 myid@own.my 를 입력해서 보내는 경우가 있다. 이를 스푸핑 spoofing 이라고 한다. 이를 방지하기 위해서 DNS 서버에 외부 사람이 이메일 주소만 가져가서 보내는 것인지 아니면 진짜 서버에서 보낸 메일인지를 검증하기 위해서 DNS 에서 공개된 SPF 설정 값이 일치하면 메일에 SPF=PASS 를 메일 헤더 header 에 추가해서 해당 메일은 스푸핑 된 메일이 아니라는 것을 알려주는 기능이다. 
  • DKIM 설정: SPF 는 메일의 발송이 악용되었는지 검증하는 과정이라고 한다면 DKIM 는 발송에는 문제가 없다고 해도 메일의 내용이 전달 과정에서 변경되었는지 검증하는 과정이라고 생각하면 된다. DNS 에 공개키를 올려 설정하면 된다. 
  • DMARC 설정: 자신의 도메인 주소로 들어오는 이메일에 대해서 SPF / DKIM 검증 후 이를 어떻게 처리할 것인지에 대한 정책에 대한 설정이다. 일반적으로 설정해주지 않아도 되지만 메일 서비스가 지원해준다면 얼마나 엄격하게 혹은 느슨하게 메일을 받을 것인지를 정할 수 있다. 엄격하게 하면 꼭 받아야 하는 메일도 거부될 수 있기 때문에 적당히 설정하는 것을 권한다. 

출처: DZone | https://meson.in/2yZVV9V

이처럼 이메일은 여러가지 악용될 수 있는 보안 문제가 존재하기 때문에 이를 해결할 수 있도록 장치를 마련해 놓고 이를 검증하기 위한 내용으로 DNS 의 TXT 항목을 이용한다. TXT 항목은 말그대로 일반 텍스트 내용을 저장하는 레코드지만 도메인에 관련된 다양한 설정을 위해서 사용되는 항목이다.


3. 나만의 짧은 주소 만들기

웹사이트에서 할 수 있는 기능들이 많아진다는 것은 그만큼 주소창에 표시해야 할 주소 내용이 많아지게 되고 주소를 복사 / 붙여넣기 가 아니면 공유하기 힘들어지기 때문에 동일한 주소를 짧게 만들어 주는 서비스를 Shorten URL 서비스라고 한다. 가장 대표적인 서비스가 goo.gl 로 직관적으로 구글을 연상시킨다. 구글의 지도 혹은 구글의 검색 결과 등은 수많은 값을 가지고 있기 때문에 주소의 길이가 길어진다. 물론 복사해서 공유할 수 있지만 주소를 짧게 줄여줘서 공유하는 것이 보기도 좋고 어디서 공유했는지를 알려주기도 한다. 그래서 주요 기업 특히 언론사는 기업 이름을 연상할 수 있는 짧은 주소를 가지고 있는 경우가 많다. 예를 들어 Economist 는 자신의 기사를 공유할 때 economist.com 의 긴 주소가 아니라 econ.st 의 짧은 주소를 이용해서 공유한다. 이런 짧은 주소 서비스를 자신의 도메인을 이용할 수 있다.


자신의 도메인을 사용할 수 있는 서비스 중에 무료 계정도 제공하는 곳으로 두군데를 추천하면 다음과 같다.
  • [ bit.ly ]  — 무료 계정에 1개의 도메인 (custom domain) 을 사용할 수 있다.
  • Rebrandly ]  — 무료 계정은 5개의 도메인을 추가할 수 있다.

a. 주소 줄이기

앞서 설명한 기능처럼 긴 주소를 짧게 만들어주는 기능이 기본적인 기능이다. bit.ly 를 살펴보면 자신이 원하는 주소를 입력하면 bit.ly/dk3dle3 과 같은 주소를 준다. / 뒤에 붙은 문자열을 slash 뒤에 있다고 해서 slash-tag 라고 부르기도 하고 임의의 길이 (긴 주소) 의 자료를 일정 길이의 임의 문자열로 바꾸는 작업을 보통 해시 hash 라고 부르기 때문에 해시된 hashed 주소라고 부른다. bit.lyRebrandly 서비스에서 도메인 주소를 연결하면 own.my/dk3dle3 와 같은 주소를 만들 수 있다. 물론 link.own.my/dk3dle3 와 같은 형태로도 가능하다.

b. 기억하기 쉬운 주소 만들기

공유 등을 목적으로 임의의 문자열 형태의 주소를 만들어 사용할 수 있지만 해시된 주소 hashed link 를 자신이 원하는 주소로 바꿀 수 있다. 예를 들어 구글 드라이브에 공유한 주소를 만들기 위해서 own.ly/drive_public 과 같이 변경할 수 있다. 물론 한번 사용한 주소는 다른 것에서 사용할 수 없고 많은 경우 자신이 이미 이전에 사용한 주소는 다시 사용하기 어려운 경우도 있다. 그러나 바로 기억하기 쉽고 다른 이들에게 알려주기도 편하다. 역설적으로 기억하기 힘든 해시된 주소를 주로 사용하지만 주소를 바꿀 수 있게 되면 더 쉽게 기억할 수 있는 주소가 된다. 자신이 자주 가는 곳, 예를 들어 자막을 받는 곳을 own.my/subtitle 과 같이 설정해 놓으면 웹주소를 기억하지 않아도 된다.



c. 인증키를 포함하는 주소 만들기

클라우드 폴더를 공유하거나 어떤 서비스를 가입하기 위해 초대장을 보내줄 때 보면 주소 자체에 인증값이 들어가 있는 경우가 있다. 예를 들어 onedrive.live.com/?authkey=%21AO1rY168C1B78%2123094&cid=D3…168C1B78 와 같은 주소 안에는 공유하려는 대상뿐만 아니라 접근할 수 있는 인증키 authkey 등을 포함한 복잡한 형태의 주소를 가진다. 이를 짧은 주소로 만들면 인증키 등을 포함해서 짧은 주소만으로도 쉽게 다른 이들이 공유한 자료를 볼 수 있게 해준다. 위의 주소를 own.my/myspecialsharing 이라고 줄인다면 필요할 때마다 들어가게 할 수 있기도 하고 지속적으로 공유할 목적이라면 상대방이 기억하기 쉬운 주소가 된다.

d. 접속 통계 및 분석

공유 및 기억하기 쉬운 주소로 만들기 위한 기능도 있지만 해당 서비스를 이용해서 공유를 하면 접속 통계 및 분석을 할 수 있다. 자세한 형태는 아니지만 접속자 수, 접속 지역 접속한 기기의 형태 등을 보여준다. 그래서 자신이 공유한 주소가 얼마나 많은 사람들이 접속했는지 확인할 수 있다. bit.ly 의 경우에는 own.my/dk3dle3 짧은 주소에 + 를 붙여서 own.my/dk3dle3+ 를 들어가면 해당 주소에 대한 통계를 볼 수 있다. 이런 기능을 응용하면 자신의 블로그에 보여줄 이미지 주소를 짧은 주소로 만들어서 짧은 주소를 웹페이지 소스에 넣으면 해당 블로그에 대한 간단한 접속자 통계를 볼 수 있다. 또한 이메일은 기본적으로 상대방이 메일을 확인했는지 알 수 없지만 이미지를 짧은 주소로 만들어서 서명 등에 포함시키면 이를 통해서 상대방이 읽었는지를 유추할 수 있는 방법으로 사용할 수 있다.




4. 웹페이지 주소를 간단하게

짧은 주소 서비스의 경우와 겉으로 보이는 기능은 비슷할 수 있지만 조금 다른 형태가 있다. 웹포워딩 (웹주소 전달하기) 이다. 짧은 주소는 own.my/myownstring 과 같은 형태지만 웹포워딩은 sharing.own.my 가 같이 서브도메인 subdomain 형태를 가진다. 형태는 A 레코드나 CNAME 레코드 같지만 기능은 짧은 주소 서비스라고 생각하면 된다. 웹포워딩 기능은 DNS 서비스에 따라 다르다. 지원하지 않는 서비스도 있고 서비스를 지원하지만 형태가 조금씩 다르다. 그만큼 같은 웹포워딩이라고 해도 사용법이 조금씩 다르고 활용법도 달라지게 된다.

구글 도메인 Subdomain forwardpaypal.me/mynameisalreadytaken 과 같은 주소는 너무 길다. 그래서 이를 donate.own.my 으로 연결하면 간단하고 외우기 쉬운 주소를 가질 수 있다.

출처: duda support | https://meson.in/2yVYQAc


FreeDNS by Afraid.org : 구글 도메인과 같은 가장 기본적인 형태의 웹포워딩을 제공하고 있지만 FreeDNS 의 재밌는 기능으로 다른 이들이 등록한 도메인 중에서 공개한 도메인에 대해서도 웹포워딩을 만들 수 있다. (심지어 A 레코드나 CNAME 레코드도 만들 수 있다.) 예를 들어 다른 누군가 yours.us 와 같은 도메인을 FreeDNS 에 등록하고 다른 이들도 자유롭게 쓸 수 있도록 해노으면 mysharing.yours.us 를 웹포워딩 주소로 사용할 수 있다. 물론 mysharing 을 다른 누군가 사용하고 있다면 사용할 수 없다.

Cloudflare™ : 일단 Cloudflare 에서는 웹포워딩이 안 보인다. 대신 더욱 강력한 기능으로 Page Rules 라는 기능이 있다. 이는 웹포워딩 뿐만 아니라 도메인에 관련된 다양한 기능을 주소에 따라서 설정할 수 있는 기능이다. 그 중 웹포워딩이 있는데 단순하게 1:1 의 웹포워딩이 아니라 와일드카드 ( * ) 를 이용할 수 있다. 개인적으로 가장 잘 활용하는 웹포워딩 예를 통해 설명한다.

구글메일 gmail 을 읽을 때 안읽은 메일만 보고 싶을 때가 많다. 구글메일에 들어간 이후 검색창에 label:unread 를 입력하면 아직 읽지 않은 메일들만 보여준다. 그러나 검색창에 입력하는 수고조차도 하기 싫을 때가 많다. 우선 구글메일에서 label:unread 를 검색하면 나오는 주소를 확인할 수 있다. https://mail.google.com/mail/#search/label%3Aunread 과 같이 나온다. 주소창에 이 주소를 입력하면 첫화면이 아니라 읽지 않은 메일 목록으로 바로 볼 수 있다는 뜻이다. 개인적으로 구글 메일을 여러개 가지고 있기 때문에 계정에 따라서 (로그인이 되어 있다고 가정하고) 안 읽은 메일을 보고 싶다. 예를 들어 firstgmail@gmail.com secondgmail@gmail.com 라고 가정한다.

먼저 read.own.my 라는 이름으로 A 레코드 혹은 CNAME 을 만든다. 적당한 곳으로 지정한다. (예를 들어 CNAME 으로 read.own.my home.own.my 으로 설정한다.) Cloudflare 의 Page Rules 화면에 들어가서 웹포워딩 (Forwarding URL) 을 설정한다.

If the URL matches 라는 항목에 read.own.my/* 이라 입력한다.
여러개 기능 중 Forwarding URL 을 선택하고 301 - Permanent Redirect / 302 - Temporary Redirect 중 하나를 선택한다. (이번 경우에는 302)
포워딩 당할(?) 주소로는 https://mail.google.com/mail/?authuser=$1#search/label%3aunread 입력한다. ?authuser=$1* 의 값을 그대로 받아서 주소로 만든다는 뜻이다. 예를 들어 read.own.my/secondgmail@gmail.com 이라고 입력하면 https://mail.google.com/mail/?authuser=secondgmail@gmailcom #search/label%3aunread 으로 접속하고 secondgmail 계정으로 로그인해서 읽지 않은 메일을 바로 보여준다는 뜻이다.


여기서 와일드카드 ( * ) 는 순서대로 사용이 된다. 예를 들어 tran.own.my/*/* 과 같이 입력하고 웹포워딩 주소를 https://translate.google.com/#$1/$2/ 으로 설정하고 나면 주소창에 tran.own.my/en/ko 를 입력하면 https://translate.google.com/#en/ko 가 된다. 만약 https://translate.google.com/#$2/$1 와 같이 한다면 반대로 .../#ko/en/ 이 될 것이다. 즉, * 의 순서대로 $1, $2, ... $n 이 되는 것이다.


5. 변화하는 인터넷 주소를 잡아라

주요 인터넷 서비스는 인터넷 주소 (IP) 가 거의 변하지 않지만 가정용과 같이 작은 규모는 항상 동일한 IP 를 가지고 있기 어렵다. IP 개수가 한정되어 있는데 모든 이들이 동시에 사용하지 않기 때문에 사용하지 않는 주소를 필요할 때 할당해주는 형태를 가진다. 그래서 인터넷을 사용할 때마다 IP가 변화하는 경우가 있다. 그런데 집에 서버를 두고 해당 서버에 항상 접속하고 싶어서 myserver.own.my 를 A 레코드로 현재의 IP 를 등록했는데 IP 가 변화하면 myserver.own.my 주소는 소용이 없거나 전혀 엉뚱한 곳을 찾게 된다. 이렇게 IP 주소를 요청할 때마다 받아서 사용하는 것을 동적 IP (Dynamic IP) 라고 부른다. IP 가 변할 때마다 IP 주소를 기억하는 것은 힘들기 때문에 바뀐 IP 를 DNS 에 알려주고 바꾸도록 하면 도메인 주소만으로 접속할 수 있다.


공유기란 인터넷 주소 (IP) 를 공유하는 장치이다. 공유기는 인터넷 주소를 받아서 인터넷에 연결된 장치이다. 그리고 그 안에서 사용하는 기기들은 공유기가 받은 같은 인터넷 주소를 사용한다는 뜻이다. 그래서 공유기에 연결된 모든 기기들은 인터넷을 사용할때 모두 같은 인터넷 주소로 활동한다. 공유기 받은 인터넷 주소를 실 IP public IP 라고 부르고 공유기에 연결된 기기들이 공유기와 통신하기 위해서 사용되는 주소를 내부 IP private IP 라고 부른다. 내부 IP 로 사용되는 주소 형태를 기억하면 편할 때가 많다. 내부 IP 용도로 사용되는 IP 는 192.168.0.0 - 192.168.255.255 (65,536개) / 172.16.0.0 - 172.31.255.255 (1,048,576개) / 10.0.0.0 - 10.255.255.255 (16,777,216개) 이 있다. 실 IP 를 같이 (공유) 해서 사용하기 때문에 인터넷 주소를 효율적으로 사용할 수 있을 뿐만 아니라 내부 / 외부를 구별해서 사용할 수 있는 장점도 생각할 수 있다.

만약에 집 안에 서버를 운영하고 있다면 서버에 접속하려면 실 IP 를 알아야 하고 공유기는 서버가 어떤 내부 IP 를 가지고 있는 기기인지를 통해 연결해주는 과정이다. 그래서 우리가 업데이트해야 하는 인터넷 주소는 실 IP 이다. 그런 이유로 공유기에 동적DNS (DDNS: Dynamic DNS) 를 지원해준다면 공유기가 할당받은 실 IP 와 특정 도메인 주소를 연결시켜 주면 된다. 그래서 공유기 제조사에 따라서 기본적으로 동적DNS 를 지원해준다. 예를 들어 D-Link 란 회사에서는 myown.dlinkddns.com 와 같은 도메인 주소를 설정할 수 있다. 그리고 자신의 도메인 DNS 관리 페이지에서 CNAME 으로 myserver.own.my myown.dlinkddns.com 으로 설정해주면 된다. 대부분의 DNS 관리 서비스에서 동적DNS 는 지원해주고 자세한 방법도 알려주기 때문에 이를 따라 하면 될 것이다.

데비안 (Debian) 계열의 서버를 통해 동적DNS 를 설정하는 방법으로 Cloudflare™ 와 구글도메인을 통한 방법은 개인 위키에 정리해 놓았다.


[ No-IP ] 와 같은 서비스를 사용하는 것도 좋은 방법이다. 일단 설정해 놓는다면 IP 주소를 매번 찾아서 변경시키는 수고를 하지 않고 항상 myserver.own.my 로 접속하면 된다.


6. 좀 더 다양한 활용을 위해서 ...

본 블로그를 정리한 목적은 너무도 익숙하게 사용하는 도메인 주소지만 많은 사람들은 개인이 사용하기 힘든 것이라 시도하지 않는 이들에게 용기를 주기 위해서이다. 가끔 자신의 도메인을 통해 블로그 주소도 바꿀 수 있고 이메일도 만들 수 있다고 말하면 얼마나 드는지 물어본다. 그만큼 비용이 많이 드는 일이라고 생각하는 이들도 많고 심지어 자신의 도메인 주소 앞에 붙는 blog.own.my , myserver.own.my 등의 서브도메인을 만들때마다 돈이 든다고 생각하는 이들도 만날 수 있었다. 자신이 원하는 도메인 하나로 생각보다 많은 것을 할 수 있다는 것을 정리하고 단순하게 인터넷 주소가 아니라 자신의 작업 효율성 뿐만 아니라 삶의 운영 방법도 바꿀 수 있는 도구가 될 수 있다는 것을 알리고 싶었다. 그리고 이 모든 것을 하는데 도메인 구매/유지 비용이외는 모두 무료로 가능하다는 점도 다시 한번 강조하고 싶다. (무료 도메인의 경우 도메인 구매 비용도 없다.)

a. A 레코드의 활용법

아무리 다양한 설정 내용이 존재해도 도메인 활용의 기본은 A 레코드이다. 자신이 원하는 도메인과 인터넷 주소를 연결하는 기본이 A 레코드이기 때문이다. 한개의 인터넷 주소 (IP) 에 여러 개의 도메인 주소가 연결될 수 있는 것은 쉽게 알지만 반대의 경우도 가능하다. 즉, 한개의 도메인에 여러 개의 IP 를 연결할 수 있다. 많은 사용자들을 처리하기 위해서 한개의 서버 (기계) 가 아닌 여러 대의 서버를 이용할 때도 있지만 이를 활용하면 공유기의 관리 화면으로 간단하게 접속할 수 있다.

공유기는 내부 IP 를 나누어 주는 역할을 하고 공유기도 기기이기 때문에 공유기 설정을 위한 화면이 있다. 제조 회사별로 관리 화면에 접속하는 주소가 다르다. 간단하게 네트워크 설정 화면을 조회하면 ( Windows 에서 ipconfig , Linux 에서 ifconfig 등) 공유기 (게이트웨이) 의 주소를 알 수 있지만 간단하게 주요 공유기 관리를 위한 내부 IP 를 A 레코드에 등록하면 편리하게 사용할 수 있다.

먼저 A 레코드로 router.own.my 를 등록하고 여기에 IP 로 192.168.0.1 뿐만 아니라 192.168.1.1, 192.168.35.1, 192.168.15.1, 192.168.219.1172.16.1.1, 10.0.0.1, 192.168.5.254 등 주요 공유기 관리를 위한 내부 IP 를 입력한다. 그리고 주소창에 router.own.my 을 입력하면 A 레코드 중 접속가능한 곳으로 접속해준다. 입력한 주소 이외의 주소를 사용한다면 찾지 못하겠지만 해당 내부 IP 도 A 레코드에 추가해주면 된다.


이 활용을 통해서 보면 A 레코드는 실 IP 뿐만 아니라 내부 IP 에도 사용할 수 있다는 점을 알 수 있고 가능성 있는 모든 주소를 입력해 놓으면 나중에 하나씩 내부 IP 를 입력하지 않고 도메인 하나로도 쉽게 접속할 수 있다는 것을 알 수 있다.

b. 웹포워딩과 짧은 주소 서비스의 차이점

기능적으로 보면 웹포워딩과 짧은 주소 서비스는 비슷하다. 짧은 주소 혹은 기억하기 쉬운 주소를 통해서 복잡하고 긴 인터넷 주소에 빠르게 접근할 수 있다. 짧은 주소 서비스를 통해서 기억하기 쉬운 주소를 가질 수 있지만 own.my/memorable 과 같이 도메인 이후 슬래쉬 slash, 사선기호 이후에 추가 된다는 점에서 형태상의 차이점도 있지만 무엇보다 짧은 주소 서비스는 별도의 서비스를 통해서 이루어지기 때문에 주소를 재활용하거나 포워딩되는 주소를 변경하는데 제한이 있을 수 있다는 점이다. 기본적으로 짧은 주소를 만들고 공유하고 잊어버리기 위한 것이 목적이였기 때문에 이 부분을 잘 생각해야 한다. 따라서 목적지 주소가 자주 변경되거나 변경해야 할 필요가 있는 경우라면 짧은 주소보다는 DNS 를 통해서 웹포워딩을 이용하는 것이 유리하다.

그렇지만 짧은 주소의 경우 공유하는 이가 누구인지 알려줄 수 있다는 브랜드 이미지의 측면과 자료의 일관성을 가지기 때문에 예를 들어 자신의 짧은 주소 도메인이 검색어로 사용하면 공유한 자료들을 찾는 방법으로도 이용할 수 있다. 그리고 앞서 설명한 통계 및 분석 기능은 가장 유용하게 사용할 수 있는 부분이다.

예를 들어 자신의 공유 폴더를 위해 웹포워딩으로 sharing.own.my 을 이용할 수도 있고 짧은 주소를 통해 own.my/sharing 을 사용할 수 있다. 웹포워딩에서 설명하지 않은 부분이 있는데 웹포워딩의 종류이다. 웹포워딩을 설정하다 보면 301 - Permanent Redirect302 - Temporary Redirect 을 선택하라는 부분이 나온다. 사용할 때 차이점은 별로 알 수 없지만 301 / 302 는 검색엔진에서 검색되는 결과에 영향을 주는 부분이다.

301 - Permanent Redirect (영구이동 / 영구전달) : 301 은 옛날 주소는 잊어버리고 전달되는 주소를 남겨달라는 요청이다. 예를 들어 old.host.com 을 사용하다가 blog.own.my 으로 주소를 변경하고 old.host.com 으로 들어오는 요청은 모두 blog.own.my 으로 301 전달을 하라고 한다면 검색 엔진에는 이전 old.host.com 의 주소로 나타나지 않고 blog.own.my 만이 나타나게 된다. 이전 주소가 검색 엔진에서 나타나지 않기 바랄 때 사용할 수 있다.

302 - Temporary Redirect (임시이동 / 임시전달) : 302 는 검색엔진에서 옛 주소와 현 주소를 동시에 모두 검색되어 나오기 원할 때 사용한다. 옛 주소와 현 주소의 구조 차이가 있어서 모두 동일하게 전달하기 어려운 상황이나 옛 주소도 동시에 사용해야 하는 경우이다.

출처: MEGAPlaze  | https://meson.in/2KyEeTq

기본적으로 301 / 302 는 주소를 변경할 목적으로 사용되지만 기억하기 쉬운 도메인 주소로 복잡한 주소로 가기 위한 (A → B) 것이기 때문에 오히려 중요한 것은 목적 주소 (B) 가 아니라 입력하는 주소 (A) 가 된다. 그리고 개인적인 목적으로 웹포워딩을 사용하는 것이라면 검색엔진에 어떻게 나타나는 것이 중요한 것이 아니라 오히려 나타나지 않게 하는 것이 필요할 것이다.

c. 호스팅을 위한 내 공간은 없다.

도메인은 만들었고 블로그 서비스나 다양한 웹출판 (웹퍼블리싱) 서비스를 통해서 개인 도메인 주소를 포함하는 공간은 만들었지만 막상 간단한 홈페이지 하나 올릴 공간은 그렇게 많지 않다. 도메인 등록 대행업체나 다양한 인터넷 기업들은 간단한 홈페이지만이라도 올릴 공간을 무료로 잘 제공해 주지 않는다. 제공해주어도 많은 제한이나 광고가 포함되는 경우도 많아서 자신이 원하는 충분한 모양을 만들 수 없는 경우가 많다. 안 쓰고 있는 컴퓨터 하나 웹서버로 만들어서 넓직한 공간을 만들 수 있지만 유지하고 관리하는데 여간 신경쓰이는 것도 아니고 조금 인기좀 얻어 많은 사람들이 들어오면 속도도 느려지고 웹서버도 죽어버리기 쉽다.

그래서 자체 서버를 제대로 운영하지 못할 것이라면 전문 업체에서 제공해주는 공간을 유료로 사용하기도 한다. 그런데 조금만 찾아보면 간단한 자신의 홈페이지를 만드는 것도 무료로 가능하다는 것을 알게 된다. 여러가지 방법이 있지만 여기에서는 GitHub [ https://github.com ] 을 소개한다. 원래 GitHub 는 프로그래밍 소스가 변경되고 여러 개발자가 참여해서 공동작업하고 작업 소스를 편하게 공유(공개)하기 위한 목적의 공간이다. (최근에 마이크로소프트가 인수했다. 좋은 것인지 나쁜 건지 아직 판단이 되지는 않는 중이다.) GitHub 의 자세한 사용 방법은 개발자가 아니라면 불필요한 부분이 많을 수 있지만 GitHub Pages 는 간단한 홈페이지를 올리는데 충분한 공간이다. [ GitHub Pages ]


설명은 복잡한 듯 보이지만 우선 GitHub 계정을 만들고 계정에서 Repository 를 만들고 페이지 주소를 myown.github.io 와 같이 설정하고 해당 repository 에 이미 만들어 놓은 홈페이지 소스를 드래그 앤 드롭 Drag & Drop 하고 Commit 하면 홈페이지를 올릴 수 있다. 그리고 DNS서비스에서 web.own.my 와 같은 CNAME 을 myown.github.io 로 연결시키면 간단하게 홈페이지를 만들 수 있다.

무료이긴 하지만 역시나 용량 제한은 존재한다고 한다. 파일당 100M 총 용량이 한 repository 당 1G 를 넘길 수 없거나 종종 50M 에서도 에러가 나온다거나 일부 파일이 용량 제한으로 올릴 수 없는 경우도 존재하지만 학생 개발팩 (Student Pack) 을 사용하면 용량 제한도 없이 사용할 수 있다. 예상할 수 없는 용량제한이 있기는 하지만 막상 100메가를 넘는 (홈페이지) 소스코드는 도대체 어떤 것일까 궁금해지기도 한다. GitHub 와 비슷한 소스관리를 위한 Git 호스팅 서비스를 찾아보면 생각보다 호스팅을 위한 내 공간은 충분할 것이다.

d. 삶 가까이 더 가까이 ...

위에서 Cloudflare™  의 Page Rules 기능을 통해서 복수 계정의 구글메일에서 읽지 않은 메일로 바로 들어가는 방법을 소개했다. 무료 계정에서는 매력적인 Page Rules 기능을 3개만 사용할 수 있어서 아쉬움이 있지만 인터넷 주소만 잘 활용하면 필요한 작업을 위해 검색창에서 검색어 먼저 넣고 매번 똑같은 곳에 들어가는 것을 간단하게 줄일 수 있다. 개인적으로 자주 사용하는 활용법을 소개하는 것으로 마무리 하고자 한다.

기본적으로 검색엔진에 반복해서 찾아보는 검색어가 있다. 오늘의 날씨나 내가 타야 할 버스가 오는지 스팸메일을 자주 보내는 사람이 어디에서 보내는지 IP 조회를 할 때 등 검색하는 형태를 관찰할 필요가 있다. 예를 들어 자신이 타야 하는 버스를 검색하는 사람들의 모습을 살펴보면 검색엔진에서 지도 서비스를 검색해서 들어간다. 한국인의 대부분은 인터넷이라고 하면 네이버 앱을 실행시키는데 그런 것까지 다 포함해서 보면 검색엔진에서 원하는 정보를 얻고 싶은 서비스 (지도, 날씨 등) 를 찾고 들어가서 자신의 위치 혹은 버스 정보를 입력한다. 그리고 지금 내가 있는 버스정류장 위치 등을 파악하고 버스 정보를 본다. 많은 경우 검색엔진 / 서비스 / 정보찾기 의 과정을 거친다. 자주 반복된다면 검색엔진은 생략하고 바로 지도 서비스 주소를 바로 입력하거나 지도 앱을 실행할 수 있다. 그러나 만약 타고자 하는 버스와 버스정류장 정보를 바로 나타낼 수 있는 주소가 있다면 이 주소를 웹포워딩으로 설정해 놓는다면 지도 서비스를 입력하는 대신 자신만의 주소를 입력하면 된다.

예를 들어 매일 아침 답십리역에서 버스를 타고 광화문을 가는데 370 번 버스를 탄다고 하자. 370 번 버스 정보는 웹 주소에서

https://m.map.naver.com/bus/lane.nhn?busID=1044 보여준다. 네이버 지도 서비스에서 370번 서울 버스의 고유번호를 1044 으로 보여준다. (더 직관적이였다면 좋았겠지만...) 출퇴근 길에 항상 타는 버스로 자주 버스 정보를 찾아본다면 bus.own.my/370 혹은 own.my/bus-370 과 같이 쉽게 기억하고 입력할 수 있는 주소로 설정해 놓으면 된다. 정류장 정보도 보여줄 것이다. 그래서 찾아보면 https://m.map.naver.com/bus/station.nhn?stationID=107489&busID=1044 과 같이 버스정류장 고유 번호 (107489) 와 버스 고유번호 (1044) 를 변수로 포함하는 주소를 찾을 수 있다. 이 주소를 gowork.own.my 으로 웹포워딩을 해 놓는다면 바로 정보를 얻을 수 있다. 물론 요즘은 기술이 좋아져서 위치 정보를 통해서 바로 알고 싶은 정보를 보여주도록 (사용자의 움직임을 통해서 어떤 버스를 탄다는 것도 알아내기도 한다.) 도와주기도 하니 선택은 개인의 몫일 것이다.


이처럼 자주 반복해서 검색을 한다면 내가 원하는 정보를 보여주는 곳은 항상 정해져 있을 가능성이 높다. 다른 예로 스팸 메일을 계속 보내는 특정 아이피를 찾았을 때 IP 관련된 정보를 찾기 위해서 구글 검색에서 ip lookup 을 입력하고 항상 같은 곳을 들어가게 된다. 결과를 보여줄 때 자신이 넣은 검색값이 주소에 바로 나타나는 경우가 있다. 예를 들어 ip 정보를 얻기 위해 자주 들어가는 서비스로 https://dig.whois.com.au 를 이용하는데 여기에서 119.100.94.179 를 검색하면 검색결과와 같이 https://dig.whois.com.au/ip/119.100.94.179 처럼 주소가 나온다. 웹포워딩을 이용해서 ip.own.my https://dig.whois.com.au/ip 으로 등록하고 이후 URI path 를 그대로 유지하는 형태로 웹포워딩을 설정하면 ip.own.my/119.100.94.179 을 입력하면 바로 원하는 결과를 얻을 수 있다. 물론 dig... 이후 주소를 기억하고 있어도 되지만 그보다는 자신의 도메인을 기억하는 것이 더 빠를 것이다.



e. 적극 응용해 보기 

많은 경우 그냥 복잡하니깐 귀찮으니깐 이렇게 설정하는 것을 싫어하는 사람들이 많지만 사실 이렇게 하는 가장 큰 이유는 정말 귀찮기 때문이다. 만약 100여개 이상의 공유기 / 네트워크를 관리해야 한다고 가정해보자. 공유기 접속을 외부에서 할 수 있도록 동적 IP 도 설정하고 보안 설정도 하게 되는데 설정을 해주거나 업그레이드를 해주기 위해서 100여개 이상의 공유기에 접속을 해서 로그인하고 원하는 설정 페이지에 접근하기 위해서 클릭 클릭 해서 들어가게 된다. 그런데 이런 접속하고 클릭하는 과정조차도 귀찮은 것이였다. 한국의 대표적인 공유기 업체인 아이피타임 공유기를 예로 설명해 보자. 공유기 관리도 결국 웹에서 이루어지기 때문에 웹 주소를 가진다.

들어가고자 하는 메뉴에 놓고 오른쪽 클릭을 하면 메뉴에 접속하는 주소를 얻을 수 있다.

http://router.address/cgi-bin/timepro.cgi?tmenu=sysconf&smenu=swupgrade 

와 같은 구조이다. 펌웨어 업그레이드를 위해서 tmenu=sysconf 이고 smenu=swupgrade 의 값을 가진다. 해당 주소로 바로 접속하면 복잡한 메뉴 화면이 아닌 펌웨어 업그레이드를 위한 화면으로 바로 들어갈 수 있다. 그런데 관리해야 하는 공유기가 하나라면 바로 웹포워딩으로 등록해서 사용하면 되지만 여러 공유기를 관리해야 한다면 각 공유기마다 웹포워딩 주소를 만들 수도 있지만 그럼 더 귀찮아질 것 같다.

구조적으로 보면 아이피타임의 공유기 관리 화면은 두개의 변수값 (tmenu smenu) 로 구성되어 있고 두개 값이 정해지면 원하는 설정 화면으로 들어갈 수 있다. 문제는 여기에 공유기 주소도 포함되어야 한다. 이 문제를 해결하기 위해서 웹포워딩을 두번 사용한다. 그리고 Cloudflare™ 의 Page Rules 는 내가 관리하고 싶은 공유기 주소를 받아 이를 웹포워딩에 사용할 수 있다. 그 전에 두 변수값을 넘겨줄 수 있는 웹포워딩을 만들어 본다.

firmup.own.mlroutersetup.own.my/sysconf/swupgrade 로 포워딩 하도록 한다. 펌웨어 업그레이드를 하겠다는 뜻이고 메뉴 구성을 위한 두개의 변수를 넘겨준다. 그리고 Cloudflare™ 에서는 routersetup 을 CNAME / A 레코드로 등록한 뒤 Page Rules 에서


routersetup.own.my/*/*/*

의 주소를 받으면

http://$3:8088/cgi-bin/timepro.cgi?tmenu=$1&smenu=$2  (공유기 관리 설정 포트를 8088 로 설정한 경우) 


으로 웹포워딩을 설정한다. 이후 mysecondrouter.iptime.org 공유기 펌웨어 업그레이드를 하고 싶다면 주소창에 firmup.own.ml/mysecondrouter.iptime.org 을 입력하면 첫번째 포워딩은

 routersetup.own.my/sysconf/swupgrade/mysecondrouter.iptime.org  으로 주소를 보내주고 두번째 Page Rule 에 의해서 최종적으로

 http://mysecondrouter.iptime.org:8088/timepro.cgi?tmenu=sysconf&smenu=swupgrade

으로 접속하게 된다. 다른 메뉴를 보지 않고 내가 하고싶은 화면으로 바로 들어가게 된다. 같은 방법으로 VPN 설정 화면은 expertconf 와 vpn  변수를 가진다. 따라서


 vpn.own.ml  routersetup.own.my/expertconf/vpn 으로 설정하면 된다. 공유기 제조사가 웹주소를 변경한다면 안되겠지만 궁극적으로 전달하고 싶은 내용은 웹포워딩을 통해서 자신의 귀찮은 반복 작업을 작업 단계를 줄이며 수행할 수 있다는 점을 강조하고 싶다.


마무리하며 ... 

이 글을 작성한 이유는 많은 이들이 어렵게 생각하는 개인 도메인을 어떻게 사용할 수 있는지 그리고 활용할 수 있는지 알리고 싶었기 때문이다. 개인이 활용할 수 있는 인터넷의 영역 그리고 그 영역안에서 어떤 활용 도구가 있는지 알 수 있다면 예전에는 할 수 없었던 혹은 어렵게 했던 작업들을 쉽게 해결할 수 있는 경우가 많다. 특히 지금과 같은 많은 작업이 인터넷을 이용해서 이루어지고 있는 경우에는 더욱 그렇다. 인터넷의 자원을 얼마나 잘 활용할 수 있는지는 작업의 효율성 뿐만 아니라 인터넷 서비스의 방향도 생각할 수 있게 된다.

인터넷 주소체계가 얼마나 체계적으로 잘 구성되어 있는지에 따라서 사용자들의 활용도가 증가하는 것을 알게 된다. 사용자가 선택할 수 있는 항목(값)을 주소에 바로 보여줄 수 있다면 웹포워딩 등을 통해서 자신에게 필요한 작업을 바로 활용할 수 있다. 예를 들어 비밀번호를 만들 때 사용하기 위해서 일정 길이의 무작위의 문자열을 만들고 싶을 때 https://www.random.org/passwords/ 을 이용하는데 항상 15길이의 무작위 문자열을 10개 보고 싶다면 매번 페이지에 들어가서 입력값을 1015로 입력해서 받아 볼수 있지만 https://www.random.org/passwords/?num=10&len=15&format=html&rnd=new 주소를 pw.own.my 에 웹포워딩을 하면 곧 바로 원하는 형태의 비밀번호를 추가적인 입력없이도 바로 얻을 수 있다. 이와 같은 작업 단계의 단축이 가능한 이유는 자신이 원하는 이미 정해진 입력값을 바로 얻을 수 있는 주소 구조를 가지고 있기 때문이다.


사용자의 다양한 접근과 사용을 위해서 다양한 방법들이 있지만 프로그래밍 기술이 없어도 충분히 프로그래밍의 결과를 인터넷에서는 얻을 수 있다. API 등과 같은 형태도 중요하지만 서비스를 제공하는 입장에서도 사용자들이 인터넷 주소만으로도 다양한 활용이 가능하도록 서비스를 설계하는 것이 중요하다고 생각한다.

출처: Visual-Diagram Know-how | https://meson.in/2IGJaAs


※ 도메인 관련 문제가 생겼을 때 도움이 필요한 분들은 [ Slack ] 에 들어오시면 가능한 범위에서 도움을 드리도록 하겠습니다. 


나만의 인터넷 주소 ─ 도메인을 구매하는 히치하이커를 위한 가이드