해결된 질문
작성
·
148
1
안녕하세요 강사님
복습을 하다가 궁금한 점이 3가지 정도 생겨 질문드립니다.
1) 채팅 유저가 최초 접속을 하면
컨트롤 서버에 접속
가용 가능한 채팅 서버의 주소를 응답받음
해당 채팅 서버와 소켓 연결
이런 흐름으로 이해했는데 맞을까요?
프론트 단 코드에서는 채팅 서버와 직접 소켓 연결하는 코드만 있어서 질문드립니다.
2) 사용자가 채팅 시, 채팅 서버가 도중에 다운되면 사용자는 컨트롤 서버에 재연결 시도하여 가용가능한 채팅 서버를 재할당 받는 것인가요?
3) 컨트롤 서버에 api 주소 중 /server-list
라는 api 가 있던데 해당 API 는 누가 호출하는 것인가요? 가용가능한 서버 리스트를 내려주는 API 로 이해했는데, 그럼 채팅 사용자가 해당 API 를 직접 찌르는 걸까요?
답변 1
1
안녕하세요 파이후님!! 자주 질문 주셔서 너무 감사드립니다!!
먼저 결론부터 말씀드리자면, FE
에 대한 코드는 완성본이라고 할수가 없어요.
저는 기본적으로 BE
를 주로 개발하기 떄문에, FE
개발에 대해서 잘못된 지식을 전달 할 우려가 있어서 /server-list
를 사용하는 FE
까지는 다루지 않습니다.
기본적인 흐름은 다음과 같아요.
1. /server-list를 호출하여 가용가능한 소켓 서버 확인
서버에 접속을 진행
접속 후 에러가 발생을 하면, 다시 /server-list를 호출함으로써 소켓 셋팅
컨트롤 타워 API같은 경우에는 wss통신이 없기 떄문에, 인스터스를 무중단으로 재배포하는데에 있어서 큰 제약이 없습니다. 그래서 이름을 컨트롤 타워라고 부르고 있는거고요.
어느정도 이해가 되셨을까요?? 해당 아키텍처는 얼마든지 변경이 가능합니다. 제가 알려드리는 아키텍처는 하나의 방법일 뿐이니 추가적으로 고민해보시면 좋을 꺼 같아요.
감사합니다!
도움이 된거 같아서 뿌듯하네요!!
앞서 말씀드렸듯이 이 아키텍처는 일종의 예시입니다. 다양한 방법이 존재하니깐요 ㅎㅎ
이 강의가 파이후님에게 개발의 재미를 불러일으켰길 바랄게요!! 질문 감사합니다!
아하 그렇군요 ㅎㅎ
이해한게 맞다면 프론트 단에서는 가용가능한 채팅서버의 상태에 따라 연결을 맺는 채팅 서버가 동적으로 변경될 수 있다는 것이군요.
항상 빠른 답변 주셔서 정말 감사합니다! 많이 배우고 있습니다 ㅠㅜ