ChatRoom
자바에 익숙해지기 위해서 자바의 기본 라이브러리만 이용해서 채팅방을 설계할 예정이다.
설계 목표
- 서버 클라이언트
여러명의 클라이언트가 있고 서버에 메세지를 전송하면 서버가 확인하고 다른 클라이언트들에게 뿌려주는 방법을 선택했다.
- 패킷전송
보통 클라이언트와 서버가 같은 언어로 구성되어 있다는 보장이 없다.
그렇기 때문에 자바끼리만의 통신이 아닌 다른 언어들도 끼어들수 있다는 점을 유의해두고 프로토콜을 직접 설계할 것이다.
- 멀티모듈 구성
서버, 클라이언트 딱 2개의 프로젝트만으로는 서로가 약속된 프로토콜이 어떤지 확인하기 어려우니
Share라는 프로젝트를 하나더 만들어 Share를 서로 공유하면서 패킷 해석을 할 것이다.
- 자잘한 기능
메세지만 주고받는게 아닌. 닉네임 설정, 닉네임 변경 기능, 닉네임 중복방지, 귓속말 기능, 나가기 기능 등을 추가 할 예정이다.
모든 기능들에 대해선 적을거 같진 않지만 크게크게 설계방법을 설명하다가 중간에 넣을 것 같다.
- 파일전송
간단하고 작은용량의 .txt파일부터 100mb가까이 되는 사진이나 파일들을 전송할 것이다.
앞으로 적어 나갈 방식
아직 코린이기 때문에 효율적으로 코드를 괴애애애앵장히 잘 짜지 못한다.. 그냥 내가 설계를 하면서 부딫쳤던 부분과 어떻게 해결해서 구현을 했는지에 중점적으로 쓸 예정이다.