<<<<<<< HEAD
JFrame을 활용하여 GUI 기반의 단체 채팅 프로그램을 개발하고,
여러 사용자가 동시에 메시지를 주고받을 수 있는 실시간 채팅 환경 제공.
다중 클라이언트의 연결을 처리하고,
각 클라이언트에서 전송된 메시지를 모든 클라이언트에 전달하는 역할을 담당.
- 클라이언트 연결 및 해제 처리
- 메시지 브로드캐스트 기능
- 연결된 사용자 관리
사용자가 채팅 메시지를 입력하고,
서버를 통해 다른 사용자와 메시지를 주고받을 수 있는 GUI를 제공.
- 메시지 입력 및 출력 창
- 서버 연결 및 사용자 정보 설정
- 메시지 전송 및 수신
- 사용자 접속/해제 알림
클라이언트/서버 구조:
사용 기술:
로그인 화면:
메인 채팅 창:
서버 기능:
단계 | 작업 내용 | 기간 |
---|---|---|
1. 요구사항 분석 | 요구사항 정의 및 기술 스펙 작성 | 1주 |
2. 서버 개발 | 서버 소켓 구현, 멀티스레딩 처리 및 메시지 브로드캐스팅 기능 구현 | 2주 |
3. 클라이언트 GUI 설계 | JFrame을 이용한 GUI 설계, 사용자 인터페이스 개발 | 2주 |
4. 클라이언트 기능 구현 | 메시지 전송, 수신, 서버 연결 기능 구현 | 2주 |
5. 테스트 및 버그 수정 | 통합 테스트 및 버그 수정 | 1주 |
6. 배포 및 유지보수 | 프로젝트 배포 및 유지보수 | 1주 |
Project Management Link : Chat Project TimeLine Link | Click!!!
다수의 사용자가 로그인 후,
실시간으로 서버를 통해 메시지를 주고받을 수 있는 채팅 프로그램을 개발.
origin/develop
기본 목표:
추가 목표:
단계 | 주요 작업 | 기간(일정) |
---|---|---|
1. 개발계획서 작성 | 프로젝트 및 기능 정의, 일정 예측 | 2일 |
2. 소프트웨어 설계 | 화면정의서 작성, 인터페이스 및 시스템 설계 | 2일 |
2. 프로젝트 준비 | 프로젝트 셋팅, 역할 분담, 코드 이해 | 3일 |
4. 소프트웨어 구현 | 프로젝트 관리, UI, 클라이언트, 서버, DB | 10일 |
5. 통합 및 테스트 | 서버-클라이언트 통합, 메세지 송수신 테스트 | 4일 |
6. 버그 수정 및 최적화 | 발생한 문제 해결, 성능 안정성 최적화 | 3일 |
7. 선택: 추가 개발 | 추가 목표 달성을 위한 개발 | 5일 |
사용자가 서비스를 조작하기 위한 View 및 인터페이스 구현
채팅창에 적합하고 사용자 친화적인 UI 설계.
Java, Swing, JFrame.
사용자가 조작한 서비스에 해당하는 동작을 위한 규약 설계
각 기능별 프로토콜 설계
Java, Protocol 관련 기술
클라이언트는 채팅창과 서버가 메세지를 주고 받도록 중계 역할 수행
클라이언트에서 서버로 연결 요청을 보내고, 연결이 완료되면 채팅 가능.
사용자가 입력한 메시지를 서버로 전송하고, 서버로부터 메시지를 수신하여 출력
서버로부터 수신되는 메시지를 쓰레드를 통해 비동기적으로 처리.
Java, 소켓 프로그래밍, 단일스레드.
클라이언트의 접속 요청을 처리하고, 메시지를 다른 클라이언트에 전송하는 역할.
접속 처리: 다중 클라이언트의 접속을 지원하기 위해 멀티스레드 환경을 구축.
메시지 중계: 서버에서 받은 메시지를 다른 클라이언트에게 브로드캐스팅.
예외 처리: 클라이언트 연결 끊김, 메시지 전송 실패 등의 예외 상황 처리.
Java, 소켓 프로그래밍, 브로드캐스팅, 멀티스레드.
회원정보와 메세지를 저장하는 DB구축 & DB와 서버를 연동하는 클래스 설계
DB구축: 오라클 데이터 베이스를 통한 DB구축.
메시지 중계: 서버로부터 받은 메시지를 DB에 저장하고 중계하는 역할.
회원 관리: 서버로부터 받은 클라이언트 정보 저장 및 관리.
Java, Oracle DB.
단위 테스트: 각 기능이 독립적으로 잘 작동하는지 확인 (메시지 송수신).
통합 테스트: 클라이언트와 서버 간의 통신이 원활한지 전체 흐름을 테스트.
다중 사용자 테스트: 클라이언트가 동시에 접속해도 문제없는지 확인.
JUnit 또는 수동 테스트, 콘솔 출력 확인.
여러 클라이언트가 접속할 때, 서버 성능 저하가 발생할 수 있음.
멀티스레드 환경에서 각 클라이언트의 연결을 적절히 처리하고,
연결 상태를 모니터링하여 문제를 해결할 수 있도록 계획.
데이터베이스 연결 실패 또는 인증 오류가 발생할 수 있음.
예외 처리를 통해 연결 오류를 처리하고, 적절한 메시지를 반환하는 로직을 작성.