안녕하세요 강사님 아키텍처에 궁금한 점이 생겨 질문드립니다. 카프카를 사용한 이유가 채팅 서버의 상태를 비동기로 전송하기 위함이라 이해했습니다. 채팅 서버가 실행/종료될 때 카프카에 이벤트 발행 컨트롤 서버가 이벤트 컨슈밍하며 채팅서버 상태 확인 제가 제대로 이해한게 맞다면 대략 위와 같은 흐름이라 이해했습니다. 즉 채팅 서버의 상태를 컨트롤 서버에 알리기 위해 카프카라는 메시지 브로커를 둔것 같은데, 카프카를 사용하지 않고 채팅서버에서 컨트롤 서버로 직접 상태를 전송하는 방식은 불가능 할까요.? 이 상황에서 카프카가 굳이 필요한건지 라는 의문이 들어 질문하게 됐습니다ㅇㅅㅇ.
[이 강의에서 다룰 zero-downtime-deploy를 위한 아키텍처 구조도를 알려드릴게요] 강의를 들으면서 컨트롤 서버의 필요성에 대해 설명해주셨습니다. 채팅 서버 1,2,3 이 다운될 때를 고려해서 로드 밸런싱 용으로 컨트롤 서버를 따로 둔다고 이해했는데, 컨트롤 서버가 배포되거나 다운되는 경우는 없을까요? 컨트롤 서버도 이중화로 구성을 해야하는 것인지, 다른 방법은 무엇이 있는지 궁금합니당
안녕하세요. 강의 잘 들었습니다. 마지막에 메시지를 저장 하는 얘기를 하셨는데.. 보통 메신저 서비스에서는 어떤 방식의 DB를 사용하는지 궁금합니다. 흔히 Oracle이나 MariaDB 같은 방식의 관계형 DB를 사용하는게 흔한지 아니면 Mongo같은 비관계형 방식의 DB를 많이 사용하는지 혹시 답변이 가능하시다면 답변 부탁 드립니다. 그리고 그걸 선택한 이유가 무엇인지. 감사합니다.
안녕하세요! 지난 1탄 강의 잘 들었습니다. 다름이 아니라 1탄과 2탄에서 go로 작성된 코드가 조금 다른거 같은데 혹시 누락된 강의가 있는걸까요 ? 1탄에선 network 디렉토리에 network.go와 socket.go만 작성했었는데 2탄에선 server.go와 util.go가 생기면서 코드가 조금 변경된거 같습니다. 누락된 강의가 없다면, 변경된 부분이 어떤 것들인지 알고싶어서 질문드립니다.
https://www.inflearn.com/questions/1229435/%EC%86%8C%EC%BC%93-%EC%84%9C%EB%B2%84%EC%9D%98-%EC%88%98%ED%8F%89%EC%A0%81-%ED%99%95%EC%9E%A5-%EB%B0%8F-%EB%AC%B4%EC%A4%91%EB%8B%A8-%EB%B0%B0%ED%8F%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4?re_comment_id=330648 위 질문의 답으로 써주신 내용중에 궁금한 점이 있습니다. >>> 그리고 실질적으로 Client측에서 곧바로 Socket에 붙는 경우는 없습니다. 라고 강사님이 답변을 주셨던데, 이번 강의에서는 클라이언트(리액트)에서 소켓서버(golang gin)에 직접 연결을 맺은 것으로 이해했습니다. 강의이기 때문에 중간에 이벤트 툴이 생략된거라 생각하면 될까요..? 추가적으로 클라이언트에서 소켓에 직접 커넥션을 맺지 않고, 사용가능한 socket URL을 받아 연결을 한다고 하셨는데 이 socket Url 의 존재에 대해 더 알고 싶습니다. 이게 단순히 스프링으로 따지면 controller 에 할당되는 매핑정보 같은 url 을 말하는 걸까요?
안녕하세요, 소켓 서버의 수평적 확장 및 무중단 배포에 대해 궁금한 점이 있어 질문드립니다. 🙂 state를 갖고 있는 소켓 서버의 특징으로 인해 수평적 확장이 쉽지 않을 것 같은데요, 하지만 scale up 자체는 한계가 있기 때문에 강의의 주제처럼 대용량의 소켓 서버를 만드려면 결국 여러 대의 소켓 서버를 활용해야 할 것으로 예상됩니다. 그렇다면 실무에서는 어떤 방식으로 소켓 서버를 scale out 하게 되는지 궁금합니다! go 혹은 node 서버 진영에서 사용되는 프레임워크나 방식이 있을까요? 또한, 강의에서 보여주신 소켓 서버 예시는 connection를 메모리에 들고 있기 때문에 서버를 종료하게 될 경우, 기존의 소켓 채널이 모두 닫히게 될 것 같아요! 혹시 소켓 서버의 무중단 배포를 하고 싶다면, 어떤 식으로 작업을 구성하게 되는지도 궁금합니다. 감사합니다! 🙏
안녕하세요! 저는 웹소켓 개발은 해본적이 없는데 흥미로운 주제로 강의를 하셔서 강의를 듣고 있는데요, 예제에서는 간단하게 2명의 client 의 경우를 보여주셨는데 실제스트리밍 방송에는 몇천명씩 들어와서 채팅을 하는데 그럴 경우에는 SocketBufferSize 를 늘려주면 되는건가요? 그런식으로 확장해야할 때 어떻게 설계해야하는지 궁금합니다!
영상에서 6분쯤에 Access-Control-Allow-Origin 헤더가 없는데 cors에러가 안나는 경우로 interpark 요청에 응답 헤더를 예시로 보여주셨고 이후에 simple request 에 대해 설명해 주셨습니다. 그런데 찾아보니 해당 헤더가 없으면 simple request더라도 요청이 막히는 것 같습니다. 그렇다면 interpark의 경우는 어떤 방식으로 해당 헤더 없이 요청이 성공했는지 궁금합니다.
안녕하세요. 궁금한게 있습니다. 원 서버보다 리버스 프록시가 정적 파일 서빙해주는 역할이나 압축 같은 것을 더 잘한다 하셨는데 이때 각각 특화된 프록시를 사용하는 것인가요? 아니면 프록시에서 압축, 정적파일 서빙 등 모든 일을 다 하는데 원 서버보다 더 빠른것인지 궁금합니다. 또한 API Gateway도 Proxy라 하셨는데 관련 내용을 못찾고 있어서요ㅠㅠ 혹시 어떻게 검색하면 관련 문서를 볼수 있을지도 궁금합니다. 항상 감사합니다.
안녕하세요 제로초님. 5분 32초에 내 라우터에서 IP부분을 떼었다가 다시 붙여준다는 말씀을 하셨는데, 이미 네이버 IP를 목적지 IP로 갖고 있는데도 떼는 이유가 무엇인지, 떼었다가 붙였다가 하는 것은 케이스 마다 다르게 행해지는 것인지 궁금합니다. 그리고 떼었다가 붙인다면 어떤 정보가 붙는건지 알려주시면 감사하겠습니다😊 계속 강의를 보다보니 질문이 늘어나네요..ㅎㅎ + 내 라우터가 인터넷을 통해서 네이버 라우터IP 주소를 아는 방법은 라우팅 테이블이라는 방법으로 물어물어 IP주소를 알게된다고 하셨는데, 내 컴퓨터는 네이버 IP를 DNS를 통해서 이미 알고있다고 하셨는데 왜 물어물어 가는건지도 설명해주시면 감사하겠습니다!
3분 35초쯤 보면 내 라우터가 naver 라우터의 MAC주소를 알기때문에 목적지MAC주소에 naver MAC주소가 담겨서 간다고 하셨습니다 이전 강의까지 배우기로는 내 라우터 안에 있는 스위치와 각 기기들간에는 MAC주소로 전송을 하고 내 라우터와 다른 라우터들 사이에서는 ip주소를 통해서 전송을 한다고 들었는데 뭐가 맞는건지 헷갈립니다 라우터끼리의 데이터 전송에서 MAC주소도 사용되고 IP주소도 사용되는건가요? 내 라우터는 다른 라우터들의 MAC주소를 다 알고있나요?
제가 이해한 바가 맞는지 궁금해서 질문드립니다. 내 라우터에서 네이버 라우터의 MAC주소를 알기 위해서 인터넷을 통해 옆 사람에게 묻는 방식으로 네이버 IP가 있는 곳까지 가서 MAC주소를 얻어온다. 이렇게 이해하는 것이 맞을까요? 6분 대에 설명하신 것에 라우팅 테이블이 네이버 라우터의 IP를 찾아온다고 하셨습니다. 그런데 네이버 IP는 맨 처음부터 알고 있으니까 MAC주소를 얻어오는 것이 맞는 것 같은데 어떻게 이해하면 좋을까요? 감사합니다.