Internet Relay Chat or IRC is a text-based communication protocol on the Internet. It offers real-time messaging that can be either public or private. Users can exchange direct messages and join group channels.
2023/02/09 ~ 2023/03/03
- 공유 레포지토리 생성
- 깃 컨벤션 정리
- irc 개념, 허용 함수 정리
- 대략적인 프로그램 구조 잡기
- 메이크파일, 메인파일, 헤더파일 생성
- reference IRC client 정하기 (irssi, limechat)
- 클라이언트와 서버의 소켓 통신 불완전 연결 (polling - Select 이용)
- 연결된 클라이언트에서 보내는 메세지 출력
- 클라이언트가 보내는 메세지 출력하는 과정에서 생긴 오류 해결
- 소켓 통신 안정화
- 소켓 통신 후 메세지 받아보기 구현 완료!
- Client - 메세지 파싱 구현
- PASS 관련 구현 내용 상의
- Channel 클래스 작성
- 커맨드 실행을 함수 포인터로 구현
- User state 추가
- JOIN 커맨드 임시 구현
- Server, Channel, Client에 필요한 멤버 추가하기
- 클라이언트 목록 업데이트
- KICK 커맨드 임시 구현 (channel operator command)
- trim Utility 함수 추가
- JOIN 커맨드 구현
- younjkim의 일본여행으로 인해 쉬어감 😶🌫️
- numeric reply
- Channel Class 일부 리팩토링
- Command 클래스 구현
- 명령어 리팩토링
- KICK 커맨드 구현
- Command 클래스 적용
- 일부 Numeric Reply 구현
- PART 커맨드 구현
- NOTICE 구현
- client 인증 시스템 보완
- 끊어서 보낸 커맨드 '\n' 만날 때까지 ReadBuf에서 이어붙이기
- reply 추가
- 자잘한 리팩토링
- 채널 삭제 관리
- QUIT 명령어 구현
- 연결 끊기는 문제 해결
- 리팩토링 및 클린업
- 테스트
- 강제종료 후 leak 검사
- 평가 준비
- 평가 완료