Hacker News

IRCv3

IRCv3 — 오래된 채팅 프로토콜을 확장하는 표준

IRCv3 Working Group은 기존 IRC 클라이언트·서버와 호환되는 프로토콜 확장을 정의합니다. 계정 인증, 메시지 메타데이터, 부재 알림, 채팅 기록 같은 기능을 표준화하고 있으며, 토론에서는 기능 개선과 확장 간 호환성, IRC의 단순성 사이에 논쟁이 이어집니다.

AI 요약

IRCv3는 현대 IRC의 핵심 사양과 IRCv3 Working Group이 만든 확장을 모아 둔 프로젝트입니다. 새 기능은 기존 IRC 클라이언트와 서버의 하위 호환성을 유지하는 방향으로 설계합니다. 개발을 시작하려면 핵심 프로토콜을 다룬 RFC1459와 RFC2812를 살펴본 뒤, IRCv3 사양과 로드맵을 확인하면 됩니다. 사양 작업은 대부분 GitHub에서 진행합니다.

현재 제공하는 기능

SASL을 이용해 계정 로그인과 인증을 표준화합니다. 다른 클라이언트의 계정 정보를 전달하고, 메시지마다 선택형 메타데이터를 붙이는 확장도 마련했습니다. 사용자가 자리를 비우거나 돌아왔을 때 즉시 알리는 기능이 있으며, 메시지 수신 시각을 기록해 IRC bouncer에서 대화 기록을 재생할 때 활용합니다. 관련 메시지를 묶어 클라이언트에서 접거나 표시하는 기능도 제공합니다.

개발 중인 확장

계정 가입과 인증 절차를 표준화하고, 서버나 bouncer가 보관한 채팅 기록을 클라이언트가 일관된 방식으로 찾고 읽도록 하는 작업을 진행하고 있습니다. 보안 연결을 자동으로 감지하고 전환하는 기능, Unicode 닉네임과 채널 이름, 그래픽 클라이언트에 표시할 아바타도 계획에 올라 있습니다.

Hacker News 반응

토론은 IRC의 불편을 프로토콜 확장과 클라이언트 개선으로 해결할 수 있는지에 집중합니다. 특히 모바일 접속, 오프라인 기록, 이미지 공유를 두고 의견이 갈립니다. IRC의 가벼움과 일시성을 장점으로 보는 이용자도 있고, bouncer나 별도 파일 호스팅을 요구하는 구성이 신규 이용자에게는 번거롭다는 지적도 나옵니다.

  • @dewey — 저는 수년째 IRCCloud를 사용합니다. 앱과 푸시 알림도 제공하고 이런 불편을 상당 부분 해결합니다. 여전히 IRC지만, 낡아 보이게 했던 문제를 많이 덜어줍니다.
    • @9dev — IRC를 이렇게 중앙화하면 IRC다운 요소를 다 없애는 셈입니다. XMPP, Matrix, Signal로도 같은 서비스를 만들 수 있습니다.
    • @dewey — Hetzner에서 각자 ZNC를 돌리는 것만큼 중앙화된 서비스입니다. 기본적으로 보기 좋은 웹 인터페이스를 갖춘 bouncer에 간단한 앱을 더한 형태입니다. Libera 같은 네트워크에 그대로 접속하며 서비스 종속도 없습니다.
  • @progval — 프로토콜 차원에 해결책이 있습니다. Chat History 확장을 쓰면 됩니다. 예를 들어 Ergo 같은 최신 서버와 Goguma 같은 최신 클라이언트를 이용하면 오프라인일 때 온 메시지도 받을 수 있습니다.
  • @Retr0id — IRCv3의 가장 큰 문제는 선택형 확장이 너무 많다는 점입니다. 클라이언트마다 같은 대화를 다르게 볼 수 있습니다. 어떤 클라이언트에서는 이모지 반응이 보이고 다른 클라이언트에서는 보이지 않는 식입니다.
    • @progval — 의미 있는 차이를 만드는 확장은 이모지와 반응 기능 정도입니다. 그래서 답글 확정에도 시간이 오래 걸렸고, 반응 기능은 아직 승인되지 않았습니다. 지원하지 않는 클라이언트를 위해 서버가 대체 표현을 제공하는 방안도 논의하고 있습니다.
  • @badsectoracula — IRC에서는 온라인일 때 접속하거나, 자리를 비운 동안 대화를 보관할 bouncer를 설정해야 합니다. Discord에서는 컴퓨터를 꺼 둔 사이에 올라온 메시지를 읽고 과거 대화를 검색할 수 있습니다. 제가 Discord를 쓰는 방식은 대체로 콘텐츠를 올리고, 다른 사람들이 나중에 보고 답하는 형태입니다.
    • @WhyNotHugo — 오프라인 메시지를 보관하려면 어떤 네트워크든 서버가 필요합니다. WhatsApp과 Discord에서는 해당 회사가 서버를 제공하고, XMPP와 Matrix에서는 계정이 있는 인스턴스가 맡습니다. IRC에서는 bouncer를 쓰며, 이 방식은 선택 사항입니다. 계정이나 오프라인 기록 서버 없이 채널에 들어가는 경험은 다른 서비스에는 없습니다.
    • @badsectoracula — 기술적인 우회 방법이 있다는 건 압니다. 다만 그 설정 과정이 번거로워 사람들이 더 간편한 서비스로 옮겨갑니다. 저도 직접 무언가를 호스팅하거나 bouncer를 설정하지 않고 채널에 들어가 지난 대화를 읽고 싶습니다.
  • @SaberUK — 이 두 문제를 해결할 초안 사양이 있지만, 최근에는 작업할 사람과 시간이 없어 진척이 없습니다. IRC 개발의 근본적인 문제는 사람들이 기능을 원하면서도 구현할 개발자를 지원하지 않는다는 점입니다. 저를 포함해 여러 IRC 개발자가 보상 없는 일에 지쳐 있습니다.
  • @theshrike79 — IRC의 불편 대부분은 클라이언트에서 생기므로 클라이언트가 고칠 수 있습니다. URL 제목을 채널에 올리는 봇만 있어도 링크를 열지 않고 내용을 알 수 있어 Discord나 Slack에 가까운 경험을 제공합니다. IRC 봇과 클라이언트는 소켓 연결, 비동기 처리, 텍스트 다루기를 익히기 좋은 첫 프로젝트이기도 합니다.

원문: IRCv3 / 번역·요약: Trawling