Gemini 프로토콜

마지막 수정일: 2024-1-4

비전문가의 Gemini 소개글을 시작하며

저는 개발자가 아닙니다. 그저 IT, 개발 기술에 관심이 많은 학생이고 최근 우연히 Gemini 프로토콜을 알고 관심을 가지게 되었으며 이걸 제 작은 블로그에 올리기로 결심했습니다. 때문에 정확하지 않은 내용이 있을 수 있습니다. 만약 틀린 내용이 있다면 아래 마스토돈 계정으로 멘션해주시면 정말 감사드리겠습니다!

@sunwoo1524@pointless.chat

현재의 웹이 너무 무거워졌다고 생각한다면

과거와 달리 현재의 웹은 확실히 무거워졌습니다. 더 이상 React같은 무거운 자바스크립트 라이브러리를 로드하지 않으면 페이지를 볼 수 없습니다. 현재의 이런 웹이 싫으시다면 한번 Gemini 프로토콜을 이용해보시는 건 어떨까요?

Gemini 프로토콜은 인터넷 문서를 위한 프로토콜로, Gemini 공식 웹사이트에서는 '우리는 문서는 그저 문서일 뿐인 작은 온라인 공간을 만들기 위해 노력하고 있다.' 라고 말하고 있습니다.

이 소개처럼 정말 Gemini 프로토콜은 정말 단순합니다. Gemini의 문서 형식은 Gemtext로, 마크다운과 유사한 간단한 마크업 언어입니다. 정말 정말 간단해서 제목도 3종류가 끝이며 볼드, 이텔릭같은 효과도 없습니다. 이외에도 마크업 언어라면 있을 것 같은 여러 요소들이 없습니다. Gemtext로 만들어진 문서는 정말 '그저 문서일 뿐'입니다.

그 뿐만이 아닙니다. 스타일 시트도, 클라이언트 측 스크립트도 없습니다. 이것은 HTML에서 CSS와 자바스크립트가 없는 것과 같습니다. 이 때문에 페이지를 입맛대로 꾸미고 기능을 추가할 수는 없지만, 스토커처럼 이용자를 끈질기게 쫓아오는 트래커도, 페이지에 덕지덕지 달라붙어 내용을 가리고 로딩을 늦추는 광고도 없습니다.

Gemini 프로토콜의 특징

Gemini 프로토콜은 서버의 TLS 인증서를 필수로 하고 있습니다. 또 위에서 말했듯 스타일 시트와 스크립트가 없습니다.

그리고, Gemini는 '클라이언트 측 인증서'라는 시스템이 있는데요, 클라이언트(사용자)에서 인증서를 발급하면, 그 인증서를 서버에 제출하여 일반적인 웹사이트들의 '인증' 기능을 구현할 수 있는 것입니다. 클라이언트 측 인증서를 이용하여 인증 기능을 구현한 대표적인 Gemini 웹사이트는 Astrobotany입니다. 이 웹사이트는 온라인에서 자신의 식물을 기르는 간단한 게임? 입니다.

gemini://astrobotany.mozz.us/

어떻게 사용하나요

Gemini 프로토콜을 사용한 웹사이트는 크롬, 파이어폭스같은 일반적인 웹 브라우저로 열 수 없습니다. 대신 Gemini(그리고 또 다른 인터넷 문서 프로토콜)를 위한 클라이언트를 이용할 수 있습니다. 아래 페이지에서 다양한 클라이언트들을 볼 수 있습니다.

https://geminiprotocol.net/software

제가 추천하는 클라이언트는 Kristall입니다. Kristall은 Gemini와 그와 유사한 프로토콜들을 지원하는 브라우저로 GUI이기 때문에 개발 관련 지식이 없는 일반인이 사용하기 좋습니다. 터미널에서 Gemini 페이지를 열 수 있는 TUI 클라이언트들도 있지만(그리고 GUI보다 더 많지만) 저는 GUI를 더 선호하기 때문에 현재는 Kristall을 애용하고 있습니다.

https://kristall.random-projects.net/

Kristall 브라우저 스크린샷

다만 제가 느끼기에는 Kristall을 포함해서 대부분의 GUI 클라이언트들의 UI가 조금... 별로더라고요. 뭔가 00년대에 나온 프로그램같은 느낌이랄까...?

볼만한 Gemini 웹사이트들

Gemini는 워낙 이용자수가 적기 때문에 볼게 없으리라 생각되겠지만 다행히도 몇가지 흥미로는 웹사이트들이 조금 있습니다.

Astrobotany - 위에서 설명했기 때문에 패스하겠습니다. 식물 기르는 재미가 좀 있습니다. 90년대 느낌 난달까...

Kennedy - Gemini 검색엔진입니다. 이미지도 검색할 수 있습니다.

Gemigit - Gemini Git 서버입니다. 어떻게 이런게 있을 수 있는지 마냥 놀랍기만 합니다...

Delorean Time Machine - 웨이백머신처럼 이전의 Gemini 웹사이트들을 볼 수 있습니다.

대부분은 Gemini를 블로그나 문서 용도로 사용하기에(그러라고 만들었으니) 제가 찾은건 이게 다 인 것 같습니다. 또 알고 있다면 위의 제 마스토돈 계정으로 멘션 주시면 감사드리겠습니다!

직접 Gemini 웹사이트를 열어보기

Gemini 웹사이트는 쉽게 열 수 있습니다. '서버만 있다면' 말이죠. 아래는 파이썬으로 개발된 Gemini 서버입니다. 설치부터 TLS 인증서 발급까지 설명하고 있습니다. 지금 보고계시는 이 작은 블로그 겸 개인 웹사이트도 이걸로 운영중입니다.

https://github.com/michael-lazar/jetforce

만약 서버가 없거나 개발 지식이 부족하더라도 걱정하지 마세요. 무료로 Gemini 웹사이트를 호스팅해주는 서비스도 있으니까요.

참고: 계정을 만들거나 글을 썼을 때 나오는 링크는 HTTP 프록시 링크인데 그 프록시가 좀 문제가 있는지 접속이 안됩니다. 꼭 그냥 클릭하지 말고 주소를 직접 드래그해서 복사해서 Gemini 클라이언트나 다른 프록시로 접속하세요.

https://gemlog.blue/

Gemini는 Gemtext를 사용해야하기 때문에 Gemtext 문법 문서를 보면 좋습니다.

https://geminiprotocol.net/docs/gemtext.gmi

참고할만한 자료, 사이트들

Awesome Gemini - Gemini 관련 소프트웨어들(클라이언트, 서버 등등)을 모아뒀습니다.

Gemini 프로토콜 공식 웹사이트입니다. 공식 문서도 함께 있으니 꼭 살펴보세요!

위키백과 Gemini 프로토콜 문서입니다. 이 글을 쓸 때 공식 문서와 함께 참고하기도 했습니다.

HTTP에서 Gemini 웹사이트를 열 수 있는 프록시 서비스입니다. 간단히 Gemini를 탐색해보고 싶다면 이용해보세요.

끝으로

Gemini를 소개함과 동시에 이런저런 관련 자료들도 엄청 올린, 소개글이라기 보다는 그냥 자료 아카이브 글이 되어버린 이번 글을 이제 마치려고 합니다. 제 글 읽어주셔서 감사드리고, 맨 위의 제 마스토돈 계정으로 오류나 추가사항 말씀해주시면 감사드리겠습니다!