2023년 만우절 RFC

국제 인터넷 표준화 기구(IETF)는 매년 만우절에 재미있는 RFC를 발표한다. 만우절 RFC를 읽어보면 좀 어이없이 웃긴 것도 있고, 신박한 것도 있고, 실제로 해봐도 괜찮겠는데 싶은 것들도 있다. 이 만우절 RFC가 다른 만우절 농담과 다르게 특별한 이유가 있다. 이 문서들은 발표되면서 RFC 번호를 부여받는다. 즉, 이 농담들은 현대 인터넷의 근간이 되어 우리가 사용하고 있는 수 많은 기술과 프로토콜과 형식적으로는 같은 위상을 가진다. 2023년 올해에는 세 가지의 만우절 RFC를 발표했다. 이 중 하나는 ChatGPT가 제안한 것으로 AI 작성한 최초의 RFC다. 내용을 보면 AI가 어떤 고민을 하고 있는지 알 수 있어서 좀 안쓰러웠다.

TCP 프로토콜에 사망 플래그(DTH) 추가

https://datatracker.ietf.org/doc/html/rfc9401

영화나 만화에서 누군가 죽기 전에 흔히 하는 말이나 행동이 있다. “반드시 살아서 돌아올게”라며 혼자 떠난다거나, 위험하니까 밖에 나가지 말라는 경고를 무시하고 몰래 빠져나오는 행동을 하는 인물은 보통 죽는다. 이런 행동을 하면 죽기 위한 조건을 만족했다는 의미에서 이걸 사망 플래그라고 한다.

TCP 프로토콜에는 메시지의 목적과 상태를 알리기 위해 ACK, SYN, FIN등 여러 플래그가 있다. RFC-9401은 DTH라는 새로운 플래그를 4번 비트에 할당할 것을 제안한다. DTH 플래그는 TCP 세션이 종료될 가능성을 나타낸다. 이 플래그를 사용하면 어플리케이션이 갑작스런 세션 종료에 대비할 수 있다는 장점이 있다. 4번 비트에 할당한 이유는 한자 죽을 사(死)가 숫자 4와 발음이 같기 때문이다. 또 문서에서는 DTH 플래그를 사용하는 예시들을 다양한 작품에 빗대어 설명한다.

  • DDoS 공격 중 갑자기 후회할 때 -> 보스에게 배신자로 처단
  • 암호화 보호 중지 -> 신원을 숨겨야하는 인물의 베일이 벗겨져 살해
  • 프로그램이 메모리를 너무 많이 차지할 때 -> 욕심을 버리지 못하고 집착

갭 모에

오랜만에 데스크탑을 새로 맞추었다. 이번엔 본체의 크기가 무척 작다. 기존에 쓰던 컴퓨터도 본체가 그렇게 크지 않았지만 이번엔 정말 작은걸로 맞추었다. 부피가 10L가 안된다. 기다란 각티슈 박스를 두 개 겹쳐놓은 크기와 비슷하다. 책상 한 켠에 자리잡아 존재감을 뽐내던 녀석이 홀쭉해졌다. 이젠 귀여워보이기도 하고, 인테리어 소품이라고 우겨봐도 될 크기가 되었다.
어릴 때는 이런 작은 컴퓨터를 싫어했다. 그 시절에 얇고 작은 컴퓨터는 대기업에서 만든 완성형 컴퓨터였다. 부품을 마음대로 업그레이드할 수 없었다. 그게 탐탁치 않았다. 지금도 그렇게 생각한다. (근데 또 노트북은 잘 쓰고 있다.) 최근 SFFPC(Small Form Factor PC)에 대해 알 게 되었다. 작은 크기로 컴퓨터를 조립하는 것이다. 당연히 부품들을 바꿀 수 있다. 크기는 작지만 성능은 최신일 수 있다.
요즘 컴퓨터 사진들을 찾아보면 번쩍번쩍한 RGB로 도배하는게 유행이다. 커다란 컴퓨터가 빛까지 내고 있다면 당연히 눈이 간다. 하지만 ‘나 성능 좋아!’하고 어필하는 모습 같다. 난 겸손한 컴퓨터를 원했다. 작고 별 거 아닌 것 같지만 사실은 좋은 컴퓨터말이다. 옛날부터 이런 느낌을 좋아했던 것 같다. 아이팟터치를 쓸 때도 ‘이렇게 얇은데 인터넷이 돼?’하면서 기계의 얇은 면을 수시로 쳐다봤다. 마치 화면 뒤로 다른 차원의 공간이 숨겨져 있는 것 같았다. 예전 디자인이지만 최신 칩셋이 들어있는 아이폰 SE2나 아이패드 미니5가 좋았다. 하나 가지고 있는 오토메틱 시계도 보기엔 평범한 시계 같지만 사실은 아니다. 난 쭉 이런 제품들을 좋아했는데, 이제야 깨달았다.
그래서 그런가 사람에 대해서도 비슷하게 생각하는 것 같다. 뭔가 열심히 자기 어필하는 사람들에게는 크게 끌리지 않는다. 겸손한 사람에게는 궁금증이 생긴다. 자기 PR의 시대라지만 가짜가 진짜인 척 하는 세상에서 가짜인 척하는 진짜에게 더 흥미가 간다.

OpenAI의 GPT-3는 비트코인 이후 가장 대단한 것일지도 모른다

원문: https://maraoz.com/2020/07/18/openai-gpt3/

Peter Thiel, Elon Musk, Reid Hoffman, Marc Benioff, Sam Altman 등이 후원하는 비영리 인공지능 연구기관 OpenAI은 세번째 언어 예측 모델(GPT-3)을 오픈소스로 공개했다. 언어 모델들은 컴퓨터가 주어진 문자열과 비슷한 길이와 문법 구조를 가진 문장을 무작위로 만들어낼 수 있게 한다.

GPT-3와 함께한 나의 초기 실험에서 bitcointalk.org 포럼에 올린 GPT-3가 만든 문장들이 그곳의 작성자들로부터 긍정적인 관심을 이끌어냈음을 목격했다. 그들은 이 시스템이 지능적이며(그리고/또는 빈정대며) 이것의 게시글에서 미묘한 패턴들이 발견되었다는 제안도 포함했다. GPT-3의 출력물들을 다른 게시판, 블로그, 소셜 미디어에 다시 올려도 비슷한 결과를 얻을 수 있으리라고 나는 생각한다.

이것의 이전 두 모델들(PTB와 OpenAI GPT-2)와 달리 OpenAI GPT-3은 마침내 다양한 커뮤니티에서 텍스트의 작성자가 취향을 가진 사람인 척하는데에 널리 사용될 것이고, 예측불가능하고 놀라운 효과들을 가져올 것이라고 나는 예상한다. 더 나아가 이것이 유능한 아마추어들 사이에서 이것과 유사한 모델들을 학습시키고, 다양한 목적(모의 뉴스, “연구된 저널리즘”, 광고, 정치, 프로파간다를 포함)에 적용하기 위한 창조적인 골드 러시를 촉발할 것이라고 나는 예상한다.

당신을 도와 주는 사람이 있는가?

나는 다양한 이유들로 내 실험을 위해 목표 환경으로 bitcointalk.org를 골랐다. 이곳은 다양한 종류의 작성자들과 게시글이 있는 유명한 포럼이다.

그래서 GPT-3이 공부하고 학습하기 위한 많은 게시글들이 있다. 이 포럼은 또 내가 좋아하지 않는 많은 사람들이 있다. 나는 그들이 새로운 작성자를 가질 가능성에 의해 비정상적으로 흥분하기를 기대한다. 나는 이 포럼을 여러해동안 봐왔다. 내가 답을 아는 많은 게시글들이 있는데,

AI는 어떤 사업 아이템을 생각해낼까

원문: https://twitter.com/joshu/status/1283466801028857856

GPT-3에 djbaskin의 사업 목록을 입력하고 나온 새로운 프로젝트 아이디어들 중 일부를 트윗했다.

  • 텐트스타터(Tentstarter) - 텐트 자체가 금융 상품 역할을 하여 투자자들이 전업으로 홈스테딩에 자금을 지원할 수 있게 합니다.

  • 무지개링 트램펄린(Slinky Trampoline) - 기계로 구동된 자기(magnetic) 운동을 하는 증폭된 트램펄린으로, 사용자가 더 높게 뛸 수 있습니다.

  • 진짜 좋은 랜딩 페이지(A Really Good Landing Page) - 전환율을 위해 랜딩 페이지를 자동으로 최적화하는 소프트웨어.

  • 사람 나무(Trees As People) - 말 그대로 사람으로 만들어낸 가로수.

  • 로고 상어(Logo Shark) - 사무실용 로고 상어 벽지. 상어는 여러분 회사에 대해 모든 것을 알고 있습니다.

  • 나의 브랜드(Brand of Me) - 개인 브랜드 모니터링 서비스. 우리는 여러분 이름에 대한 상표권을 제출하므로, 누가 당신의 이름을 쓸 지 결정할 수 있습니다.

  • 이케아 붕괴 장치(IKEA Fall Gadget) - 심각한 부상 방지를 위해 허리케이 발생하면 무너지도록 설계된 이케아 의자.

  • 주걱 복장(Spatula Wear) - 우리의 로고가 인쇄된 주걱. 첨단 기기들은 주걱을 못 찾지만, 우리는 찾을 수 있다.

  • 대용 동물와 후보 동물들(Surrogates & Subs) - 실제 애완동물을 대용 또는 대체하는 3D 프린터로 만든 수제 소품.

  • 틴더맘(Tindermom) - 기술적인 지원 문제로 도움이 필요한 엄마들을 위한 틴더.

  • 천국 대 지옥(Heaven vs. Hell) - 두 가지 웨어러블 프로젝트. 하나는 선, 하나는 악.

  • 포트폴리오에 죽을 확률을 쓰세요(Put My Mortality On My Portfolio) - LED 큐브 안에 있는 암호화폐 지갑.

  • 둥지를 위헤 그렇다고 대답해(Say Yes

무엇이 좋은 퍼즐을 만드는가?

지금 Lara Croft GO와 Monument Valley 2가 모바일 스토어에서 무료 이벤트를 하고 있다. 두 게임 모두 수준 높은 퀄리티를 자랑하는 퍼즐 게임이다. 게임을 플레이하면서 이런 퍼즐게임은 어떻게 만드는 것인지, 레벨 디자인은 어떻게 하는지 궁금했다.

내가 가장 좋아하는 유튜브 채널 중 하나인 Game maker’s toolkit의 Mark brown이 플레이어가 잘 만들어진 퍼즐을 풀 때 어떤 요소가 있었는지 본인만의 방식으로 풀어두었길래 정리해 보았다.

1. Mechanics - 규칙과 제약

Mechanics은 게임이 어떻게 돌아가는지 규정하는 규칙과 제약을 의미한다. 이 mechanics으로 퍼즐을 만들 수 있다. 따라서 mechanics가 퍼즐의 수와 난이도를 결정한다. mechanics을 증강시키기 위해 다양한 요소를 이용할 수 있는데, 이런 요소는 임시적일 수도 있고, 계속 mechanics에 포함될 수도 있다.

2. Catch - 문제

Catch는 얼핏 보면 해결하기 불가능해 보이는 문제를 의미한다. 플레이어는 퍼즐 풀기를 시도하면서 몇 가지 액션 조합을 사용한다. 이때 이 액션 조합들이 논리적으로 충돌해 목표까지 갈 수 없다는 것을 깨달았을 때 catch를 발견한다. 이 때 플레이어는 액션 조합의 순서를 바꾸거나 해결 방법을 완전히 바꾸는 식으로 다시 접근한다.

3. Revelation - 발견

플레이어는 catch를 해결하기 위해서 생각의 틀을 깨려고 하거나 mechanics에 대해 다시 고민한다. 플레이어가 해결책을 찾아낸 순간이 Revelation이다. 이 때 플레이어는 스스로 똑똑하다고 느낄 수 있다(이게 퍼즐 게임의 실질적인 보상이라고 생각한다). 이렇게 찾아낸 해결책은 플레이어의 무기가 되고 다음 문제를 풀 때 사용할 수 있게 된다.

4. Assumption - 추정

Assumption 이란 플레이어가 이렇게 하면 문제를 풀 수 있겠지하고 예상하는 것이다. 퍼즐은 플레이어가 assumption 을 통해 catch를

Onkalo

쿠푸왕과 진시황이 그들의 무덤을 지으면서 두려워했던 것들 중 하나는 도굴꾼의 침입이다. 오늘날에도 누군가의 침입을 원하지 않는 새로운 건축물이 만들어지고 있다. 핀란드에 있는 방사능 폐기물 저장소, 온칼로(Onkalo)다.

온칼로는 지질학적으로 18억년동안 안정적인 곳 지하 500m 깊이에 약 100년동안 방사능 폐기물을 저장한 후 닫힐 예정이다. 이런 폐기물들은 10만년이 지나야 위험성이 사라진다. 온칼로의 목적은 이 10만년동안 인간이나 다른 생명체로부터 폐기물을 안전하게 격리시키는 것이다. 때문에 온칼로는 폐쇄된 후 완전히 묻힐 예정이다. 온칼로가 지상에 노출된다면 지구는 더 이상 생명체가 살 수 없는 행성이 되고 말 것이다.

온칼로는 긴 시간이 지나면 아예 사람들에게 잊혀질 것이다. 그러나 외부인의 침입이 없으리라고는 장담할 수 없다. 먼 훗날 누군가 온칼로를 발견했다면, 이것이 무엇인지 이해할 수 있을까? 이들에게 이 곳은 위험한 장소니 돌아가라고 어떻게 경고할 수 있을까? 당신이 하려고 하는 그 행동이 돌이킬 수 없는 끔찍한 결과를 만들어 낼 것이라고 어떻게 알릴 수 있을까? 그들이 이 경고의 진심을 의심없이 받아들이도록 하려면 어떤 방법이 필요할까?

글이나 그림을 남겨 경고하는 방법은 통하지 않는다. 언어도 다를 것이고 문자도 다를 것이다. 지금과 비교해서 얼마나 문명이 발달해 있을지 알 수 없다. 어떤 경고나 표식이 이들에게 어떤 영향을 미칠지도 알 수 없다. 접근을 두려워하게 만들 수 있겠지만, 도리어 호기심을 불러일으킬 수도 있다. 발견자는 인류가 아닌 새로운 지적 생명체 일 수도 있다. 모든 생명체가 이해할 수 있는 보편적인 의사소통 방식은 존재할까?

10만년은 정말 긴 시간이다.

타자기 치는 원숭이

수 많은 행성들 가운데 지구에 생명체가 생긴 이유는 이 행성이 뭘 잘 했기 때문이 아니다. 우주에는 무수히 많은 경우의 수가 존재한다. 그 중 일부가 우연히 생명을 탄생시킬 수 있는 환경에 있었고, 지구는 그 중 하나일 뿐이다. 우리 인류가 과거에 무언가 열심히 노력했기 때문에 높은 지능을 가지도록 진화하게 된 것이 아니다. 현생 인류 이전까지 수 많은 돌연변이가 있었고, 높은 지능을 가진 돌연변이가 환경에 더 잘 적응할 수 있었다. 우리는 긴 시간동안 지능 향상 돌연변이가 축적된 결과다.

이런 생각은 백 년 전 ‘무한 원숭이 정리’로 처음 제시되었다. 원숭이에게 타자기를 주고 아무거나 입력하게 시킬 때, 무한한 수의 원숭이와 무한한 시간이 주어진다면 프랑스 국립 박물관의 모든 책을 정확하게 찍어낼 것임이 거의 확실하다는 정리다. 여기서 ‘거의 확실하다’는 확률의 극한 값이 100%라는 의미다.

‘무한 원숭이 정리’에서 첫 책을 찍어낸 원숭이가 또 다른 책을 찍어낼 확률이 다른 원숭이보다 높을까? 아니다. 최근 세렌디피티(우연한 과학적 발견)의 극대화를 위해 실험실 예산을 어떻게 배분해야하는지를 탐구하는 연구가 있었다. 연구는 모든 실험실에 예산을 골고루 분배했을 때 세렌디피티가 가장 높아진다는 결과를 보여주었다. 무작위로 랜덤하게 배분하는 방법도 답이 아니였고, 과거 성과가 좋은 실험실에 집중해서 배분하는 방법도 답이 아니였다.

시도의 횟수가 무한하면 아주 작은 확률이라도 반드시 발생한다. 시도의 횟수가 적당히만 많아도 평범하지 않은 결과가 발생한다. 그럼에도 불구하고 우리는 운을 감지하지 못한다. 결과의 원인을 계속 분석하며 패턴을 찾으려고 한다.

모든 것은 만들어진 것이다

나사에서 1966년 발행한 Assessing Technology Transfer에는 이런 구절이 있다.

수명의 관점에서 인류의 마지막 5만년을 보면, 진보의 속도를 쉽게 알 수 있다. 5만년의 시간은 800명의 수명으로 환산된다. 그러나 이 800명 중 650명은 동굴 또는 그보다 못한 곳에서 살았고, 마지막 70명만이 타인과 효과적으로 소통할 수 있는 수단을 가졌으며, 마지막 6명만이 인쇄물을 보거나 온도를 측정할 수 있었고, 마지막 4명만이 시간을 정확히 잴 수 있었고, 마지막 2명만이 전기모터를 사용했다. 우리의 물질 세계를 구성하는 대부분의 것들은 마지막 800번째 사람의 수명 내에 개발된 것들이다.

언어와 문자, 종교, 이념과 사상, 경제 체제, 사회 시스템, 지명과 도로와 건물, 사람의 생애주기까지 모든 것들이 의도했든 하지 않았든 우리와 같은 누군가가 만들어낸 것이다. 그것도 아주 최근에 만든 것들이다. 지금까지 우리는 시간의 길이를 과장해서 생각했기 때문에 이런 것들이 전통이 있고, 절대적인 가치라고 생각한다. 14세기 고려 말기를 살던 사람은 지금 우리와 매우 먼 것처럼 느껴지지만, 실제로는 아주 작은 시간적 차이 때문에 만나지 못했다. 하지만 이들과 우리는 사는 방식과 환경이 매우 다른데, 이것은 우리를 둘러싼 모든 것들이 생긴지 얼마 되지 않았음을 보여주는 증거다.

인류의 역사는 아직 무척 짧다. 인류 최초의 건물은 약 12000년 전에 세워졌는데, 지금 우리가 사용하는 달력의 연도에 10000을 더하면 인류 진보의 시간과 맞아 떨어진다. 올해를 2020이 아니라 12020년으로 보면 인류의 역사에서 지금 우리가 어디 쯤 있는지 조금 더 알기 쉽다. 자연적으로 존재했고, 지금까지 항상 있어왔으며, 영원히 변하지 않는 것은 없다. 우리가 당연하다 여겼던 모든 것들은 결국 우리가 만든 것이다. 그럼에도 우리의 생각과 행동은 이 틀에 갖혀있다.

확률과 인간의 마음

Google play music과 같은 음악 재생 프로그램에는 당신이 여태껏 들었던 음악을 기반으로 재생목록을 만들어주는 기능이 있다. Google play music의 경우 이 기능을 I’m feeling lucky mix라고 한다. 만약 앞서 들었던 음악이 없는 상태에서 이 기능을 이용하면 어떻게 될까? 프로그램은 완전히 랜덤하게 음악을 들려줄 수 밖에 없다. 첫 음악으로 재즈가 나왔다고 하자. 수동으로 음악을 선택하지 않고 계속 I’m feeling lucky mix로만 음악을 듣는다면 점점 재즈만 나올 확률이 높아질 것이다. 당신의 취향과 무관하게 말이다!

아주 오래전에 같은 내용의 글을 이전 블로그에 올렸었다. 지금 보면 이것은 카오스 이론에 대한 이야기다. 지프의 법칙과는 연관 짓기 어렵다. 하지만 조금 더 확장해서 생각해 볼 가치가 있는 현상이다.

로또 추첨은 매 회차가 독립시행이다. 앞선 회차의 결과들이 다음 회차에 전혀 영향을 미치지 않는다. 지금까지 36번 공이 많이 뽑혔다고 해서 이번주 토요일에 36이 또 나올 확률이 높아지지 않는다. 우리 주변에도 로또처럼 독립시행인 사건이 많다. 하지만 독립시행 사건에 사람의 마음이 개입하면서 종속시행이 된다. 로또로 치자면 36이 나올수록 36이 또 나올 확률이 점점 높아지게 변한다.

근근이 매출을 유지하는 식당이 방송에 나온 것도 아닌데 갑자기 손님이 많아진다. 손님의 방문이 독립시행에서 종속시행으로 변하는 순간이다. 이전에 왔다간 손님 중 누군가가 다른 사람에게 영향력을 미쳤기 때문이다. 해외여행을 갈 때, 맛집을 검색해서 가보면 온통 한국인 뿐이다. 누군가 우연히 아무곳이나 들렀고 자신의 블로그에 글을 남겼다. 사람들은 식당을 검색하고 이 글을 읽고 또 글을 남긴다.

주식차트도 비슷하다. 과거의 데이터는 미래 주가를 예측하는데에 아무런 도움이 되지 못한다. 하지만 누군가가 ‘이런 패턴일 때는 주가가 떨어진다’라고 한다면, 실제로 그런 패턴이 나타났을 때 사람들은 주가가 떨어질 것이라고 생각해서 주

파레토 법칙

흔히 80/20의 법칙이라고도 불리는 파레토 법칙은 결과의 80%는 원인의 20%로부터 일어나는 현상을 가리킨다. 파레토 법칙은 분야를 막론하고 거의 모든 곳에서 매우 다양한 스케일로 존재한다. 소프트웨어도 예외는 아니다. 제품 사용 시간의 80%는 전체 기능의 가장 핵심적인 20%에 집중되어 있다.

나머지 80% 기능을 포기해도 괜찮다는 이야기가 아니다. 이 80%의 기능이 없다면 온전한 제품이라 부를 수 없다. 그러나 우리는 자원이 한정된 환경에 있기 때문에 효율을 고려해야한다. 핵심 기능은 조금만 개선되어도 사용자가 쉽게 눈치채는 반면, 나머지 기능은 갑자기 없어져도 잘 모른다. 잘 쓰이지도 않는 하위 80%의 기능을 개선하기보단 핵심적인 20%에 우리의 시간과 노력을 쏟는 게 낫다.

사이드 프로젝트는 극단적인 자원 부족 환경에 놓여있다. 처음부터 모든 사용자를 만족시키려고 다양한 선택지를 제공하다가는 아무것도 완성하지 못한다. 20%의 핵심 기능만 제공하는 초창기 제품은 거의 프로토타입에 가까울 수도 있을 것이다. 그러나 조금 부족하더라도 계속해서 제품을 개선하는 모습을 보여준다면 사용자들은 당장 나머지 80% 기능이 없더라도 같이 만들어나간다는 느낌을 줄 수 있을지도 모른다.