TCP 프로토콜과 클라이언트-서버 기반의 채팅 프로그램.
기본적인 텍스트 채팅과 이미지 전송 기능 제공.
여러 클라이언트가 동시에 연결될 수 있으며, 채팅방 생성과 관리 가능.
- 목적 : Unity Engine 및 Socket 프로그래밍에 대한 숙련도 향상
- 개발 기간 : 23.05.15 ~ 23.06.21 (24.10.03 수정 및 보완)
- 기술 스택
- Unity: 직관적이고 강력한 게임 개발 엔진으로 빠르게 프로토타이핑이 가능해 선택함.
- C# & .NET Socket: 네트워크 통신을 구현하는 데 필요한 고성능 소켓 프로그래밍을 지원함.
- TCP: 안정적인 데이터 전송을 위해 TCP 프로토콜을 사용함.
- 서버/클라이언트 역할 선택
- 채팅: 실시간 텍스트 메시지 전송.
- 이미지 전송: 이미지 파일 전송 및 표시.
- 채팅방 관리: 방 생성, 참여 기능 제공.
- 채팅방 생성 시, 입력값 검증 절차를 거침.
- 사용자 관리: 서버에 연결된 모든 사용자 목록 자동 갱신 및 클라이언트에서 이를 주기적으로 받아와 표시.
- 연결 상태 모니터링: 클라이언트 연결 상태를 지속적으로 체크, 연결이 끊어질 경우 적절히 처리.
- UI/UX 최적화
- 서버 모드에서 프로그램을 실행하여 클라이언트 연결을 대기.
- 클라이언트 모드에서 서버 IP와 포트를 입력하고 서버에 연결.
- 텍스트 또는 이미지를 전송하며 대화.
-
UDP 미구현: 초기 목표는 TCP와 UDP를 모두 구현하는 것이었지만, TCP 기반으로만 개발을 완료함. UDP의 비연결성 특성을 활용한 통신을 추가적으로 구현하면 더 다양한 네트워크 상황에 대비할 수 있을 것으로 보임.
-
예외 처리 부족: 프로그램에서 네트워크 오류나 예상치 못한 끊김에 대한 예외 처리가 부족함. 예외 발생 시 좀 더 세밀하게 UI에 반영되고, 사용자가 인지할 수 있도록 개선할 수 있을 것으로 보임.
-
대규모 사용자 환경에서의 성능: 현재 프로그램은 소규모 사용자 환경에서는 원활하게 작동하지만, 대규모 사용자 환경에서는 성능 최적화가 필요할 것으로 보임.
