IRC 개념

IRC 2014. 4. 20. 19:22
목차
1 IRC
2 Client
3 Server
3.1 Port
3.2 Encoding
3.3 MOTD
4 Network
4.1 Channel
4.1.1 Topic
5 Mask
6 Nick
6.1 Highlight
7 Command
8 Script
8.1 Bot
9 Mode
10 CTCP
11 DCC

Windows에서 HexChat의 모습


① Network
② Channel
③ 1:1 대화 (query)
④ Topic
⑤ Mode
⑥ Mask (아마)

IRC에 대해 알아보겠습니다. 설명에 모르는 단어가 나오면 Ctrl+F로 찾아보시기 바랍니다. 목차의 번호를 누르면 해당 부분으로 이동하고 해당 부분에서 번호를 누르면 목차로 이동합니다.

1 IRC
IRC는 Internet Relay Chat의 약자이다. 아얄씨라고도 부른다. 간단히 설명하면 출입이 자유로운 단체 톡 방이라고 할 수 있다. 단체 톡 방에 있다고 해서 하루 종인 단체 톡 방을 보지 않듯이 IRC에서도 주로 잠수하고 있다가 누가 글 쓰면 보고 할 말이 있으면 쓰고 아니면 계속 잠수한다. IRC는 1:1 대화, 파일 전송, 웹에서 정보 가져오기, 색깔 글, 색깔 닉네임 등등 다양한 것들을 할 수 있다.

2 Client
클라이언트는 IRC를 사용하기 위한 프로그램이라고 보면 된다. 카카오톡으로 사람들과 채팅하려면 카카오톡 앱이 필요하다. 그 앱이라고 볼 수 있다.
WIndows의 경우 AdiIRC, HexChat(XChat의 fork), KVIrc, mIRC, Smuxi 등이 있다.[각주:1]

3 Server
서버는 클라이언트가 접속하는 곳이다. 롤에 로그인 했다고 게임 중인 게 아니듯 서버만 접속한 상태는 일종의 대기실에 접속한 것이다. 클라이언트로 서버에 접속하면 그 서버가 속한 네트웍의 다른 클라이언트와 대화할 수 있다.

서버 주소는 chat.freenode.net, irc.ozinger.org, irc.rizon.net 등 이런 식이다.

오징어 네트웍의 서버 목록은 http://ozinger.org/servers에서 확인할 수 있다.

3.1 Port
포트는 서버로 접속하는 길이라고 볼 수 있다. 일반 포트는 암호화 없이 데이터를 전송하고 SSL(Secure Socket Layer) 포트는 데이터를 암호화 해 전송한다. 예를 들어 6667, 6697, 7000 등이 있다. 보통 6667이 기본이고 6697, 7000은 거의 SSL이다.

3.2 Encoding
인코딩은 문자 표현 방식이다. UTF-8, EUC-KR, CP949 등이 있다. UTF-8은 영어, 일본어, 중국어, 한글 등 다양한 문자를 표시할 수 있어서 많은 서버가 지원한다. EUC-KR과 CP949은 한글과 영어만 표시할 수 있다.

(아마) 서버 단위로 인코딩이 달라진다. 보통 클라이언트로 서버에 접속할 때 인코딩을 정할 수 있다. 만약 서버의 인코딩이 EUC-KR인데 UTF-8로 접속하고 한글을 쓰면 다른 사람에게 글자가 깨져 보인다. 영어는 잘 보인다. mIRC 6 버전까지는 UTF-8 이외의 인코딩을 지원했지만 7 버전부터는 UTF-8만 가능하다.

3.3 MOTD
MOTD는 Message Of The Day의 약자로 서버 접속 시에 나타난다. 서버 단위로 MOTD가 있는데(없는 서버도 있다.) 일종의 공지사항 같은 것이다. 예를 들어 도움을 얻고 싶다면 #help 채널로 오세요, SSL port는 6697입니다 등이다. 보통 서버에 접속 시 자동으로 나오는데 서버 내에서 해서는 안 되는 행동에 대해 나오는 곳도 있으니 읽어서 나쁠 건 없다. ferret.station51.net의 MOTD를 이미지로 보려면 아래의 MORE 클릭.




4 Network
네트웍은 서버들이 모여 형성하는 것이다. 같은 네트웍(같은 색)의 다른 서버에 연결된 클라이언트끼리 서로 채팅할 수 있다. 이래서 relay chat이라고 하는 것 같다. 네트웍은 채팅 앱이라고 볼 수 있다. 카톡끼리(같은 색)끼리 대화를 할 수 있지만 다른 색(마이피플 등)과는 대화를 할 수 없다. 그렇다고 프로그램이라는 것은 아니고 대화를 할 수 있냐 없냐로 앞의 설명을 한 것이다.

유명한 네트웍으로 freenode, Rizon, HanIRC, Luatic, Ozinger등이 있다.


클라이언트가 서버에 접속하고 서버들이 모여 네트웍(그림에서 굵은 테두리, 같은 색을)를 구성한다. 같은 색끼리 채팅할 수 있다. (기술이 없으니 이미지 만들기 넘 어렵다. ㅠ_ㅠ)

4.1 Channel
채널은 네트웍 상에 존재하는 단체 톡 방이라고 할 수 있다. 단체 톡 방과 다른 점은 주제에따라 나눠진다는 것이다. 톡 방은 같은 사람들로 이루어져 있으면 두 개를 못 만들지만 채널은 주제 단위로 존재해서 똑같은 사람들로 이루어진 채널이 여러 개일 수 있다.

채널 명은 #channel, #freenode 이런 형식이다. #은 채널이란 것을 알려주는 것이고 그 다음이 채널의 이름이다. 아무도 없는 채널에 접속하면 그 채널이 생긴다.

4.1.1 Topic
토픽은 채널의 주제이다. 채널 접속 시 보인다. 공지사항 용도로 쓰이기도 한다. 예를 들어, 욕설 금지, 도배 금지 등등.

5 Mask

6 Nick
닉은 아이디, 닉네임, 대화명 같은 것이다. 한 네트웍 안에서는 채널이 달라도 닉이 같다. (한 네트웍에서 여러 닉을 사용할 수 있긴 하다.) 만약 여러 채널에 접속해 있다가 닉을 변경하면 모든 채널의 닉이 다 바뀐다.

닉을 묶어서 사용할 수 있다. 예를 들어, 닉을 '이끼소년'으로 정하고 그 닉에 '이끼소년 자리비움'등을 묶을 수 있다. 닉 묶기 기능을 하려면 계정을 등록해야 한다. 보통 앞에서처럼 닉을 묶는 경우는 자리 비움 같은 상태를 표시하기 위한 게 많은 것 같다.


이런 기능이 필요 없다면 등록 없이 닉을 사용할 수 있다. 하지만 r 모드인 채널은 등록된(채널에 등록하는 게 아니고 네트웍에) 계정만 접속할 수 있다.


Ozinger 네트웍에서 닉 관련 설정이다. 계정 등록 후 몇일 동안 접속하지 않으면 다른 사용자가 사용할 수 있다. 오징어 네트웍의 경우 위 이미지에 나온 것처럼 120일이다. GROUP 기능이 위에 설명한 묶는 기능이다. 계정(닉)을 등록할 때 비밀번호와 이메일을 설정한다. 비밀번호를 알아야 다음에 접속할 때 해당 닉을 사용할 수 있다. 이메일은 계정을 등록할 때 이메일로 확인을 하는 네트웍이 있고 아닌 곳이 있다. 이메일로 확인하는 네트웍라면 제대로 된 이메일 주소를 적어야한다. 위 그림을 보면 계정 암호를 이메일로 보내는 기능도 있다.

6.1 Highlight
하이라이트는 강조 기능이다. 채널 내에서 다른 사람의 닉을 치면 해당 사용자를 highlight한 것이다. 꼭 닉만 쳐야 되는 게 아니고 글 내용에 들어가기만 하면 된다.



누가 나를 강조하면 채팅창의 그 줄 전체의 색이 바뀌거나 작업 표시줄의 프로그램이 깜빡 거리거나 소리가 나거나 트레이 아이콘이 반짝 거리거나 팝업 창이 나타나는 등 알려준다. 이 모든 것들은 클라이언트 프로그램의 설정에 따라 다르다.

7 Command
커맨드는 여러 가지 기능을 할 수 있는 명령어다. 명령어를 입력할 때는 /를 쓰고 명령어를 쓴다. /server, /join 등등. '/server irc.ozinger.org' 이렇게 쓰면 오징어 서버에 접속한다. '/server irc.ozinger.org 6667' 이렇게 하면 포트를 지정할 수 있다. '/join #채널명'으로 #채널명이란 채널에 접속한다. 대부분의 클라이언트에서 '/help'를 치면 명령어 목록을 볼 수 있다.

8 Script
스크립트는 IRC 프로그램 내에서 자동으로 여러 기능을 수행하는 sets of instructions이다. 예를 들어, 누군가 채널에 들어오면 자동으로 '누구누구님 안녕하세요!'라고 입력하거나 클라이언트를 시작하면 자동으로 서버, 채널에 접속하거나 서버에 접속했을 때 자동으로 모드를 주거나 채널에 누군가 들어왔을 때 자동으로 모드를 줄 수 있는 등 다양하다. '@imdb 영화 이름' 이렇게 치면 IMDb에서 평점 같은 것을 받아오게 할 수도 있다. 사람들이 많이 쓰는 mIRC가 이런 스크립트가 많이 퍼져있다.

on *:START:{
  server irc.ozinger.org +16667 -u hepaticboy -i hepaticboy -an hepatic_boy -r hepaticboy
}

on *:CONNECT:{
  if ($network == Ozinger && $me == hepaticboy) msg 오징오징어 nameentify 비밀번호
}

on $*:NOTICE:/주인/:*:{
  if ($nick == 오징오징어 && $network == Ozinger && $me == hepaticboy) { mode hepaticboy +xiI | join #hepaticboy }
}


제가 AdiIRC에서 쓰고 있는 mIRC 스크립트의 일부입니다. mIRC 스크립트는 명령어를 입력할 때 /를 안 써도 됩니다. 프로그램 시작 시(on START) 서버에 접속하고 접속하면(on CONNECT) 계정을 로그인 하고 로그인이 되면(on NOTICE) 모드를 설정하고 채널에 접속합니다.

설정 창에서 start와 connect까지 할 수 있지만 notice라는 이벤트에 딱 맞춰 실행할 수 없습니다. 그리고 설정 창에서는 서버 창 클릭하고 irc.ozinger.org 입력, 포트 창 클릭하고 16667 입력, user name 클릭하고 입력, 클릭 입력, 클릭 입력의 반복입니다. 서버가 많아지면 더 귀찮아집니다. 저는 스크립트가 더 편합니다.[각주:2]

8.1 Bot
봇은 자동으로 특정 기능을 수행하는 프로그램 같은 것이다. 앞의 스크립트는 능력자가 아니면 만들어 사용하기 힘들다. 그래서 능력자분들이 잘 모르는 사람들도 스크립트를 사용해 편해질 수 있게 가짜 유저(봇)를 만들고 그 유저에 앞의 편리한 스크립트를 설정해 놓으면 해당 봇을 여러 사람이 이용할 수 있다. 예를 들어 닉을 등록하려면 서비스 봇(대부분 NickServ)을 통해야 한다. 봇을 통해서 모드를 얻거나 줄 수도 있다. 또, 채팅창에 '!g 이끼소년' 이렇게 치면 인터넷 브라우저로 구글에 이끼소년을 검색하는 봇도 있을 수 있고 '!imdb the secret life of walter mitty'라고 치면 imdb에서 해당 영화의 정보를 불러올 수 있는 봇도 있고 '!next modern family'을 치면 Modern Family의 다음 에피소드가 언지 방영하는지 알려주고 'http://hepaticboy.tistory.com/165'처럼 URL을 쓰면 'IRC 개념'이라고 타이틀을 보여주는 등 다양한 기능을 할 수 있다.


9 Mode
모드는 채널이나 사용자에게 주어지는 속성이다. 예를 들어 채널에 i(invite?) 모드를 설정하면 초대받은 사람만 입장할 수 있고, 사용자가 닉을 등록하면 r(register?) 모드를 얻는다.
모드는 네트웍 단위로 설정할 수 있는 것 같다. 네트웍마다 설정할 수 있는 모드가 다르다.

오징어 네트웍의 모드는 http://ozinger.org/manual/modes에서 확인할 수 있다.

10 CTCP
CTCP는 Client-To-Client Protocol의 약자이다. 명령어의 일종이다. 예를 들어, '/ctcp 닉 time'을 치면 해당 닉의 시간대를 보여준다. '/ctcp nick version'은 해당 닉의 클라이언트가 뭔지 알려준다.

11 DCC
DCC는 Direct Client-to-Client의 약자이다. 보통 IRC가 서버를 거쳐 클라이언트끼리 연결되어 있는데 DCC는 클라이언트끼리 직접 연결하는 것을 말한다. DCC로 채팅할 수도 있는데 주로 파일 전송을 위해 쓰이는 것 같다. XDCC란 것도 있다. 둘이 뭐가 다른지 모르겠지만 둘 다 주로 파일 전송에 쓰이는 것 같다.

vhost/cloak


bnc(bouncer)

일단 발행



References
https://en.wikipedia.org/wiki/Internet_Relay_Chat
http://irchelp.org/
http://ozinger.org/


  1. http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients [본문으로]
  2. irc.nordicirc.com/adiirc에 있는 AdiIRC 개발자 kr0n님이 on NOTICE 부분을 도와주셨습니다. 고맙습니다. [본문으로]
comments powered by Disqus

설정

트랙백

댓글