IRCv3 3분 소요

채팅방은 누구의 것일까: 디스코드 시대에 IRCv3를 생각하는 이유

핵심 요약

  • IRCv3는 기존 IRC에 기능을 더하기 위한 공개 확장 규격을 다룹니다.
  • 공개 규격은 서버와 클라이언트를 고를 여지를 넓혀줍니다.
  • 실제로 어떤 기능을 쓸 수 있는지는 서버와 클라이언트가 함께 지원하는 기능에 달려 있습니다.
  • 플랫폼에 덜 의존하려면 운영 부담과 커뮤니티가 옮겨가는 데 드는 비용도 고려해야 합니다.

디스코드나 슬랙에 대화가 쌓일수록 채팅방은 커뮤니티의 기억이 됩니다. 하지만 다른 서비스로 옮기려고 하면 막막해집니다. 그동안 나눈 대화를 어떻게 가져갈지, 익숙한 앱을 쓰던 사람들이 새 서비스에 어떻게 적응할지 고민하게 됩니다. 편리하게 대화하면서도 특정 서비스에 덜 묶일 방법을 찾는다면 IRCv3를 살펴볼 만합니다.

채팅방을 옮기려면 앱만 바꿔서는 안 됩니다

가령 100명이 모인 기술 커뮤니티가 채팅 서비스를 옮긴다고 해보겠습니다. 새 채팅방을 만드는 일 자체는 어렵지 않을 수 있습니다. 하지만 방을 만든 뒤에도 할 일이 남습니다.

기존 질문과 답변을 찾아볼 수 있어야 하고, 운영진의 권한과 봇도 다시 설정해야 합니다. 무엇보다 100명이 새 앱에 들어와 알림을 확인하는 데 익숙해져야 합니다.

이렇게 옮기는 데 드는 비용이 플랫폼 종속, 이른바 ‘록인’의 핵심입니다. 데이터를 내려받을 수 있다고 해도 다른 서비스에서 같은 형태로 쓸 수 있는지는 별개입니다.

편리한 기능이 한곳에 모여 있으면 평소에는 쓰기 쉽습니다. 그러는 사이 커뮤니티의 운영 방식도 그 기능에 맞춰 굳어집니다. 채팅 도구를 고를 때 가입하기 얼마나 쉬운지 살펴보듯, 나중에 떠나기는 얼마나 어려울지도 생각해야 하는 이유입니다.

IRCv3는 오래된 채팅 규격을 어떻게 확장할까요?

IRC는 서버와 클라이언트가 대화를 주고받는 방식을 정한 프로토콜입니다. 프로토콜은 서로 다른 프로그램이 주고받는 내용을 같은 뜻으로 이해하도록 정해둔 통신 약속입니다.

IRC에서는 같은 네트워크에 접속하더라도 각자 다른 클라이언트를 쓸 수 있습니다. 누군가는 데스크톱 앱으로, 다른 사람은 웹 클라이언트로 대화에 참여하는 식입니다. 대화에 참여하는 일과 특정 앱을 쓰는 일을 분리할 여지가 있습니다.

IRCv3는 이 IRC에 기능을 더하기 위한 공개 확장 규격을 다룹니다. 메시지에 부가 정보를 붙이는 기능이나 서버가 기록한 메시지 시각을 전달하는 기능 등이 여기에 포함됩니다.

이때 쓰는 중요한 장치 중 하나가 ‘기능 협상’입니다. 접속할 때 클라이언트와 서버가 어떤 확장 기능을 지원하는지 확인합니다. 이렇게 서로 쓸 수 있는 기능을 맞춰가며 기존 IRC를 확장합니다.

다만 IRCv3 지원이라는 표시가 있다고 해서 모든 앱에서 똑같이 쓸 수 있는 것은 아닙니다. 원하는 기능이 있다면 서버와 클라이언트 양쪽에서 그 기능을 지원하는지 살펴봐야 합니다.

공개 규격의 자유는 어디까지일까요?

공개 규격을 쓰면 선택의 폭이 넓어집니다. 같은 통신 규칙을 구현한 다른 클라이언트를 고를 수 있고, 직접 서버를 운영할지도 검토할 수 있습니다.

여기서 말하는 독립성은 두 가지로 나눠볼 수 있습니다.

  • 앱의 선택권: 같은 대화 공간에 다른 클라이언트로 참여할 수 있는가.
  • 운영의 선택권: 대화 공간을 어떤 서버에서 누가 운영할지 결정할 수 있는가.

둘은 연결돼 있지만 같은 문제는 아닙니다. 클라이언트를 바꿔도 참여 중인 네트워크의 운영 정책은 여전히 따라야 합니다. 별도의 서버를 연다고 기존 네트워크에 있던 사람과 채널이 자동으로 따라오는 것도 아닙니다.

대화 기록도 따로 살펴봐야 합니다. 공개 프로토콜을 쓴다고 해서 모든 기록이 저장되거나 다른 서버로 옮겨지는 것은 아닙니다. 기록을 어디에 보관하고 어떻게 보여줄지는 사용하는 서버와 클라이언트를 어떻게 구성했느냐에 달려 있습니다.

공개 규격이 주는 것은 종속을 줄일 수 있는 선택권입니다. 그 선택권을 실제로 쓸 수 있도록 기능을 구현하고 운영해야 독립성도 확보할 수 있습니다.

편리함과 독립성을 함께 얻으려면 누군가 운영해야 합니다

사용자가 채팅 앱에 바라는 것은 꽤 구체적입니다. 앱을 다시 열면 지난 대화가 보여야 하고, 여러 기기에서 접속해도 대화의 흐름을 따라갈 수 있어야 합니다. 필요한 알림은 제때 받되 스팸에 시달리고 싶지는 않습니다.

채팅 앱이 이렇게 작동하려면 통신 규격을 바탕으로 여러 기능을 만들고 운영 체계도 갖춰야 합니다. 서버를 직접 운영한다면 업데이트와 장애 대응은 물론, 계정 관리와 백업도 맡아야 합니다.

이용자 사이의 갈등을 조정하고 스팸을 처리하는 일도 해야 합니다. 공개 규격 덕분에 이런 운영 문제를 해결할 도구를 고를 수는 있지만, 그 도구를 쓰며 운영을 맡을 사람은 따로 필요합니다.

채팅 환경을 고를 때는 기능 목록을 살펴보면서 다음 사항도 확인하는 편이 좋습니다.

  • 구성원이 쓰는 기기에서 필요한 기능이 작동하는가.
  • 대화 기록을 보관하고 옮길 방법이 있는가.
  • 서버와 커뮤니티를 꾸준히 관리할 사람이 있는가.

특히 운영을 계속할 수 있는가를 따져봐야 합니다. 독립성이 높아질수록 직접 결정할 수 있는 일도 많아지지만, 그 결정에 따르는 책임도 함께 늘어납니다.

IRCv3는 공개된 통신 약속을 바탕으로 채팅 도구와 운영 방식을 고를 여지를 넓힙니다. 편리함과 플랫폼 독립성을 함께 얻으려면 필요한 기능을 구현하고 꾸준히 운영해야 합니다. 각 커뮤니티는 자신들의 채팅방에서 어떤 선택권을 꼭 지킬지 정해야 합니다.

IRCv3 오픈 표준 플랫폼 종속

댓글

    댓글을 불러오는 중...