유튜브,강의 잘 보고 있습니다! 다름이 아니라 한가지 궁금한 점이 생겨서 질문드립니다! 제가 프로젝트를 진행하며 SSE(Server Sent Event) 라는 기술을 이용하여 사용자에게 특정 이벤트 발생 시 푸시알림을 주는 부분을 구현한 적이 있습니다 당시에는 문제없이 동작하여 대수롭지 않게 넘어갔지만! 네트워크 , http를 공부하며 든 생각인데.. SSE는 http의 persistence connection이라는 것 덕분에 가능하다라는 것 까지는 도달했으나 여기서 든 궁금증이 기존에 제가 가지고 있는 정보가 톰캣 서버는 기본적으로 따로 설정해주지 않으면 쓰레드풀을 200크기 만큼 가진다. 연결이 지속되어 있기 때문에 요청이 오지 않았지만 이벤트가 발생하면 해당 호스트에게 푸시알림이라는 형태로 응답이 가능하다. 여기서 연결이 지속되어 있다는 의미는 연결을 지속하기 위해 쓰레드가 반환되지 못하고 있음을 뜻한다고 생각하는데 그렇게 되면 특정 케이스에서 모든 쓰레드가 연결지속을 위해 반환되지 않은 상황이라면 다음 요청에 대해서 응답할 수 없어 큐에서 대기해야만 하는 상황이 생기는 것인가? 하는 궁금증입니다. 단순히 이런 상황일 때 쓰레드풀에 쓰레드더 만드나? 라는 생각은 컨텍스트 스위칭 관련해서 복잡한 문제라 쓰레드 숫자를 마음대로 하지는 않을 것이라 생각되고 제가 생각한 문제가 맞다면 SSE로 실제 서비스하는 곳은 없지 않을까..? 라는 생각이 들고 프로젝트에 대한 아쉬움이 조금 남아서.. 폴링 방식처럼 계속 서버에게 이벤트가 발생되었는지 확인하는 방식이 차라리 더 나을 수 있다는 생각도 들어서요!
3-11 WLAN 실습 중, PC0에서 무선 라우터를 거쳐 유선 라우터까지, 라우터에서 서버까지는 연결이 잘 되는데, PC에서 서버까지는 연결이 잘 되지 않습니다. 비슷한 문제로, 3-12 VoIP 실습에서 VoIP 설정 전에 RIPv2를 적용해서 PC0->R1, R1->PC1은 연결이 잘 되는데 PC0->PC1은 핑이 가지 않습니다. 왜 이런 현상이 생기는 건가요?!
WSAEventSelect Model에서는 이벤트 종류를 FD_ACCEPT(접속 클라 존재), FD_READ(수신 가능), FD_WRITE(송신 가능), FD_CLOSE(상대 접속 종료), FD_CONNECT(통신 연결 완료), FD_OOB 이런식으로 설정해 주었었는데 Overlapped Model에서는 hEvent에 이벤트를 할당해주면 따로 설정해줄 필요가 없는건가요?
안녕하세요 강사님, 제가 프로젝트를 하며 푸시알림을 구현할 때 SSE(Server Sent Event)를 이용하여 구현을 했던 적이 있습니다. 지금에서야 http 프로토콜과 관련하여 궁금증이 생겼는데 명확하게 해결이 안되서 질문 올려봅니다! SSE라는 기술은 HTTP의 persistence connection을 이용해서 하는 기술인 것 까지는 알게되었습니다. 이때 Spring boot 내부의 톰캣은 스레드풀을 이용해서 스레드를 관리하고, 해당 연결이 끊기지 않는다는 뜻은 이 스레드가 반환이 되지 않는 것이 아닌가 하는 의문점이 생겼습니다. 톰캣의 설정을 따로 건드리지 않는다면 200개의 스레드를 관리한다고 알고 있었는데 200명의 사용자가 푸시알림을 받기 위해 연결을 지속중인 상황이라면 다른 요청이 들어왔을때 SSE 연결이 종료되기 전까지 큐에서 대기해야 하는 상황이 생길 수 있는지 궁금합니다!
자료 5pg를 보면 첫번째 라우터는 192.168.10.254와 192.168.20.1로 부여 했습니다. 또 두번째 라우터는 부여된 ip가 192.168.20.254와 192.168.30.254로 부여되어 있는데...ip 라우터는 해당 범위 내의 장치(컴퓨터등...)에 지정된 ip를 제외한 아무 ip나 부여해도 되는건가요? 예를들어 첫번째 라우터가 네트워크 1에 해당하는 192.168.10.233도 ip 부여가 가능한가요?
안녕하세요 강사님 좋은 강의 항상 감사드립니다. PRG 패턴 간단한 테스트를 하고자 프론트에서 ajax로 post 요청을 보낸 후, 컨트롤러에서 redirect를 하도록 코드를 짰는데 리다이렉트 되지를 않습니다. 구글링을 해보니 ajax는 비동기 방식으로 처리하기 때문에 화면에 영향을 주지 못한다는 글을 보게 되었습니다. ajax 혹은 axios와 같은 비동기 방식으로 post 요청을 보내면 컨트롤러에서 리다이렉트를 시킬 수 없는 건가요? 그 이유가 뭔지 궁금한데 답변 주시면 감사드리겠습니다 ! !
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For mdn 문서에 따르면 http 헤더 중 x-fowarded-for 헤더는 최초 client와 거쳐오는 프록시 서버의 ip를 기록하는 역할을 하고있습니다. 그렇다면 프록시에서 http 메세지의 내용을 수정한다는 이야기가 됩니다. 그렇다면 프록시에서 프레임을 모으고 패킷을 꺼내서 패킷을 조립한다는 일이 일어나는 것인가요? 만약 그렇다면 프록시 서버를 두고 http 메세지의 내용을 해석하는 일을 하면 여기에서 나오는 오버헤드는 피할수없는을텐데 이렇게 구현해놓을리가 없을텐데 하는 생각이 드는데 어떻게 되는지 궁금합니다.
안녕하세요. iocpcore부터는 난이도가 급상승 하는군요. 간단한 클라이언트와 서버 모두를 overlapped callback으로 만들어 봤습니다. 그런데 연결된 상태에서 서버가 중지를 하면 클라이언트의 콜백 함수로 연결이 끊어진 이벤트가 넘어오지 않습니다. 서버는 클라이언트가 접속을 종료하면 접속 종료 이벤트를 받습니다.(콜백 함수로 전송바이트 0이 넘어옴) 서버쪽에서는 accept를 한 다음에 리턴 된 클라이언트 소켓을 넘겨서 WSARecv를 호출한 상태이고요, 클라이언트는 connect 호출 후 listenSocket을 넘겨서 똑같이 WSARecv를 호출했습니다. 어떤 원인을 생각해 볼 수 있을까요?
안녕하세요. RT-1 에 Subnet1, Subnet2, Subnet3, Subnet4 이 설정이 되었었고, RT-2를 생성한 후에 Subnet3를 설정하니, RT-1의 서브넷 설정에서 Subnet3이 빠지게 되더라고요. 모르고 있다가 장애가 있었는데, 다시 생각해보면 Routing Table은 VPC 자원 내부에서 네트워크 흐름 방향을 설정해주는것인데, 두개의 Routing Table이 동일한 서브넷을 설정하면 네트워크 흐름에 충돌이 발생할것 같다는 추측을 하게 되었습니다. 제가 생각한게 틀린걸까요? 저희팀에는 아시는분이 없어서 여기에 질문을 드리네요.
강의 항상 잘 보고 있습니다. 제가 이해한 것이 맞는지 궁금해서 질문 드립니다. 클라이언트에서 서버로 무언가 보내면 NAT에 자동으로 추가가 됩니다. (Symmetric NAT) 이럴 경우 서버에서 클라이언트로 무언갈 보내도 NAT에 있기 때문에 문제없이 통신이 가능합니다. 또한 NAT는 포트포워드 설정으로 임의로 수정이 가능한데, Remote Port, Remote IP의 값?에 따라 Full cone, Restricted cone 방식으로 불립니다. 이렇게 이해해도 될까요?
ISP 측 광선 장비와 WAN 네트워크 구성에 대해서 궁금한 점이 있습니다. 일단 PON 시스템의 OLT/ONU/ODN 장비들은 LAN 네트워크의 L2 distribution switch와 같은 L2 layer에 해당되나요? 아니면 여기도 또 다른 L3, L2 순의 Inline 네트워크 구성인가요?
다른 질문들을 봤을 때 캐싱 정책에 따라 브라우저가 캐시 정보를 삭제한다는 글을 본 뒤에도 남는 의문이 남아 질문 드립니다. 데이터 최종 수정일에 대한 정보도 브라우저 캐시에 저장되는 건가요? 1이 맞다면 해당 정보는 캐시 유효시간과 별도로 삭제되지 않고 저장되는 건가요? + 추가로 그렇다면 데이터 최종 수정일도 캐싱 정책에 따라 삭제될 수 있다는 의미일까요?? 1이 틀리다면 데이터 최종 수정일은 어디에 저장되는 건가요? 또한 강의 전반적인 내용이 데이터 최종 수정일을 알고 있을 경우 서버에서 해당 기간 이후에 수정이 없다는 것을 확인했다면 웹 브라우저 정책에 의해 브라우저 캐시에 해당 정보가 삭제되지 않는 기간동안에는 계속해서 해당 (강의 기준으로) star.jpg를 계속해서 가지고 있다가 데이터 최종 수정일을 기준으로 계속 불러온다는 얘기가 맞을까요??