코드에 대한 복습은 역시 토이 프로젝트 만들어보면서, 익히는게 가장 와닿을 것 같다.
토이 프로젝트로 만들어보면 어떨까 생각
이번 프로젝트의 목표는 다음과 같다.
카프카에 익숙해지기
실제로 서비스를 내 볼 생각은 없기 때문에 Auth, Service Discovery, Load Balancing 등은 생각하지 않는다.
서버에 대한 오류처리는 하지만, 프론트에 대한 오류처리는 염두에 두지 않는다. ex) 소켓 끊김시 재연결 정책 등등
1. 방생성을 하면 실시간으로 사용자에게 방이 생성됨을 알릴 것
2. 방참가를 하면 기존 방에 참여해있던 모든 상대방에게 알릴 것
3. 특정 채팅방에 채팅을 치면 그 방에 존재하는 사용자에게 채팅 내용이 보내질 것
4. 현재 방에 참가한 유저 목록을 띄워줄 것
5. 방을 떠나거나 소켓 연결이 끊기면 참가한 유저 목록에서 해당유저를 삭제할 것
이정도면 될 것 같다.
오 필기좀 제대로 할걸.. 나도 못알아보겠네..
일단 여기서 얻는 장점은 소켓으로 처리하는 부분은 대부분 consumer에서 처리하기 때문에 (어 잘못그렸네...) 유지보수하기가 간편하다.
아무래도 소켓을 구현하다보면 코드 관리라던지 테스트하기가 까다로운 부분이 존재하는데 이부분을 Consumer Producer에 몰아 넣을 수 있어서 행복캐욤..
내 시간과 내 흥미가 닿는대로...