client 에서 구현되어야 할 것들
1. 서버 접속(IN)
2. 회원가입 또는 로그인
> ID/PW 입력
3. 닉네임 설정
> 닉네임 중복 시 재입력
4. 채팅방 목록 요청 및 출력
> /r 명령어로 채팅방 목록 요청
5. 채팅방 생성 기능
> /c <방이름> 명령어로 새 채팅방 생성
6. 채팅방 선택 후 입장
7. 전체 채팅 메시지 전송
> 본인이 입력한 문자열을 채팅방 내 모든 사용자에게 전송
8. 귓속말 전송
> /w <닉네임> <메시지> 입력 시 특정 사용자에게만 전송
9. 채팅방 나가기
> /e 등으로 현재 채팅방 퇴장
10. 명령어 도움말 출력
/help 명령어로 사용 가능한 명령어 목록 표시
11. 서버 종료 또는 비정상 종료 감지 및 대응
서버 접속이 끊긴 경우 사용자에게 안내 메시지 출력 후 종료
12. 서버 접속(OUT)
server 에서 구현되어야 할 것들
1. 클라이언트 접속 대기 및 처리 (멀티 클라이언트)
2. 회원가입 및 로그인 처리
> mysql db를 통해 회원정보를 저장 혹은 구별을 위해 사용
3. 닉네임 등록 및 중복검사
> 닉네임은 서버 메모리에 별도 저장
> 저장된 닉네임 중 중복된 닉네임인 경우 거부, 새 닉네임 요청
4. 채팅방 관리
> 채팅방 목록 유지 및 생성 처리
> 채팅방마다 참가자 목록 관리
5. 클라이언트 채팅방 입장 안내
> 입장 시 닉네임 포함 안내 메시지 브로드캐스트
6. 메시지 구분 및 처리
> 전체 메시지 / 귓속말(/w, /W) 구분
> 귓속말 대상이 존재하지 않으면 오류 전송
7. 메시지 전송
> 전체 메시지는 해당 방 사용자 전체에 전송
> 귓속말은 지정한 사용자에게만 전송
> 메시지 최대 길이: 512바이트 제한
8. 클라이언트 접속/종료 및 퇴장 처리
> 채팅방 나가기(/e, /E)
> 서버 종료 요청(/q, /Q)
> 비정상 종료 클라이언트 정리
8-2. 채팅방 나가기 시 모든 접속 클라이언트에게 해당 유저 정보 출력
9. 접속 클라이언트 목록 유지
> 닉네임, 파일 디스크립터 등 정보 저장
'LMS 7 > 개발일지' 카테고리의 다른 글
| 25.07.16 개발일지 / 채팅 프로그램 5팀 (0) | 2025.07.29 |
|---|---|
| 2025.07.15 개발일지 [채팅 프로그램 5팀 / 테이블 명세서 / ERD] (0) | 2025.07.29 |
| 25.07.12 학습일지 / mySQL, C (0) | 2025.07.29 |
| 25.07.10 학습개발일지 / mySQL (0) | 2025.07.28 |
| 25.07.08 학습개발일지 / thread (5) | 2025.07.28 |