nicknamemohaji / ft_irc

42cursus irc
0 stars 0 forks source link

PART Command Flow #11

Closed alsksssass closed 1 month ago

alsksssass commented 2 months ago

IRC PART 명령어 코딩 시나리오

목적

IRC 프로토콜의 PART 명령어를 구현하여 사용자가 채널에서 나갈 수 있도록 합니다.

명령어 형식

실행 순서

  1. 명령어 파싱
  2. 파라미터 검증
    • ERR_NEEDMOREPARAMS (461): 파라미터 부족
  3. 채널 존재 여부 확인
    • ERR_NOSUCHCHANNEL (403): 존재하지 않는 채널
  4. 사용자의 채널 가입 여부 확인
    • ERR_NOTONCHANNEL (442): 사용자가 채널에 없음
  5. 채널에서 사용자 제거
  6. 클라이언트의 채널 목록에서 제거
  7. 채널에 메시지 전송 (이유가 있다면 포함)

에러 처리

구현 시 고려사항

  1. 다중 채널 동시 처리 로직 구현(루프?)
  2. 채널 이름 유효성 검사
  3. 사용자가 채널의 마지막 멤버인 경우 채널 삭제
  4. 채널 운영자가 나갈 경우의 처리 방식 (새 운영자 선정 등 의논 필요)
  5. 대규모 채널에서의 성능 최적화( 소규모라 고려 안해도 될듯?)

메시지 형식

향후 개선 사항

테스트 계획

  1. 단일 채널 PART 테스트
  2. 다중 채널 동시 PART 테스트
  3. 이유를 포함한 PART 테스트
  4. 존재하지 않는 채널에 대한 PART 테스트
  5. 사용자가 가입하지 않은 채널에 대한 PART 테스트
  6. 채널의 마지막 사용자가 PART할 때의 동작 테스트
  7. 채널 운영자가 PART할 때의 동작 테스트
  8. 대규모 채널에서의 PART 성능 테스트(필요없을듯)