안녕하세요 서버에대한 지식이 전무했는데 루키스님의 강의를 들으며 많은 배움을 얻어가고있습니다. 저는 유니티로 메타버스 멀티플레이까지 구현을 해보는게 목표입니다. 저 혼자 알아보면서 포톤pun , fusion 같이 이미만들어진 서비스들을 알게되었습니다. 메타버스 멀티플레이구현이 목표라면 서버를 만들기보다는 포톤같이 이미 만들어진 서비스를 이용하는게 좋을까요 ?? 물론 두 방법 모두 저에게는 어렵고 공부가 많이 필요한 상황인데 루키스님 강의를 들으며 많은 도움을 얻어가고 있어서 감사합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 인터넷 프로토콜로 통신?한다고 하면 될까요? 하여튼 통신하는 과정이 ip만 보내고 tcp만 보내고 이런게 아니라 인터넷프로토콜 4계층을 전부 보낸다는걸로 이해하면 되는걸까요?
Reference Counting의 코드가 멀티 쓰레드 환경에서 잘 작동한다고 말씀해주셨습니다. 제가 코드를 공부하고 있는데, RefCounting.h의 inline void Set(T* ptr) { _ptr = ptr; if (ptr) ptr->AddRef(); } 이 부분에서 if(ptr)은 통과를 했는데, ptr->AddRef()를 하기 직전에, 해당 ptr이 Release 되어서 nullptr이 되버린다면, nullptr의 AddRef()를 호출함으로 오류가 뜰 수 있다고 생각이 되었습니다. 이렇게 된다면 멀티 쓰레드 환경에서 잘 작동하지 않는다고 생각이 들었는데, 제가 수업을 들으면서 무언가 놓친 것이 있는 걸까요?
VPC Flow Logs의 대상 자원 선택에 대해 질문드립니다. 섹션 11인 VPC Flow Logs를 수강한 상태입니다. 섹션 11 강의 서두에서 네트워크 접근 제어 시스템을 통해 허용한 트래픽이나 거부한 트래픽을 VPC Flow Logs를 통해 확인한다고 말씀해주셨는데요. 그리고 VPC Flow Logs에 대해 설명해주실 때 'VPC에 속한 네트워크 인터페이스에 대한 송수신 트래픽 흐름 정보를 수집한다'라고도 설명해주셨습니다. 여기서 VPC Flow Logs가 트래픽 정보를 수집하는 대상에 대해 궁금한 점이 있습니다. VPC에 속한 네트워크 인터페이스에 대한 송수신 트래픽 흐름 정보를 수집하는 것인지 VPC에 속한 네트워크 접근 제어 시스템에 대한 송수신 트래픽 흐름 정보를 수집하는 것인지 위 두개가 좀 헷갈리는 상황입니다. VPC Flow Logs는 정확히 어떤 대상에 대해 트래픽 정보를 수집하는건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 강의자료 324페이지에 오타관련으로 수정 부탁드립니다! 위 그림중 데이터 미변경 예시에서, 304 Not Modified에 대한 전송용량이 0.1 M인데요. 바디가 0M이어야 되는데 1.0M으로 되어있습니다. 감사합니다 :)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 쿼리를 설명하시는 중에 ?q=hello&hl=ko 이 부분에서 구글에서는 이런 방식을 사용한다고 하셨습니다. 문득 든 궁금증인데 그럼 타 웹사이트(naver, daum) 과 같은 곳에서는 쿼리를 다른 형태로 사용하나요? 만약 다른 형태로 사용한다면 검색 엔진에 맞춰서 사용하는 건가요? 쿼리에는 비슷하게 사용하도록 정해진 규약같은것이 없어서 자체적으로 정해놓고 사용하는건지 궁금합니다.
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic) 위의 메시지가 발생했습니다. 이 경우에 SSH key를 다시 발급 받아야 되나요? 그리고 SSH key에 유효기간이 있나요?
항상 좋은 강의 감사드립니다. Out of path 구조 디바이스가 특정 웹 서버를 차단할 때 거짓으로 응답을 보낸다고 하셨는데요. (특정 웹 서버를 www.abc .com로 가정) 1. 만약 www.abc.com 응답이 Out of path 구조 디바이스 보다 빠르면 접속이 가능할 수도 있나요? 그러면 유해차단사이트 같은 곳이 어쩔 땐 접속이 되고 어쩔 땐 차단이 되고 이런게 가능하다는 건가요? 2. Out of path 구조 디바이스가 거짓으로 응답을 해도 www.abc .com에서 응답이 온다고 하셨는데 그 응답을 차단해야 정상적으로 차단이 이루어질 것 같은데 이 응답은 어떻게 처리가 되나요?
Client에서 WSAEventSelect 사용하고싶어서 작성했는데 FD_WRITE Event가 한번발생 후 그뒤로 발생을 하지 않습니다 주의사항대로라면 FD_WRITE발생시 send를 호출하지 않으면 두 번 다시 발생하지 않는다고 했는데 그건 아닌거같아 혹시 어디서 문제가 발생한건지 봐주실수있나요?? // Send while (true) { //연결된 Event중 동작 가능한 Event 탐색 //WSAWaitForMultipleEvents(저장된 이벤트수,이벤트배열 시작주소,이벤트 성공을 모두 기다릴지 여부,타임아웃,FALSE) int index = WSAWaitForMultipleEvents(vecWSAEvents.size(), &vecWSAEvents.front(), false, WSA_INFINITE, false); //작업오류상태 if (index == WSA_WAIT_FAILED) continue; //return 된 index에 WSA_WAIT_EVENT_0를 빼주면 실제 실행된 Event의 Index를 구할 수 있다. index -= WSA_WAIT_EVENT_0; //어떤 종류의 Event가 발생했는지 확인 WSANETWORKEVENTS NetworkEvents; Result = WSAEnumNetworkEvents(ClientSessions.m_Socket, vecWSAEvents[index], &NetworkEvents); if (Result == SOCKET_ERROR) continue; //Read Event 발생 if (NetworkEvents.lNetworkEvents & FD_WRITE) { //Error 체크 if (NetworkEvents.iErrorCode[FD_WRITE_BIT] != 0) continue; Result = send(ClientSessions.m_Socket, ClientSessions.m_strBuff, sizeof(ClientSessions.m_strBuff), 0); if (Result == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) continue; std::cout << "Send Data ! Len = " << sizeof(ClientSessions.m_strBuff) << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } }
아래와 같은 테스트를 진행했고 이는 강의코드에도 유사하게 발생할 것으로 보입니다. 서버 컨텐츠단에서 패킷 모아 보내기 기능까지 구현 500개의 더미 클라이언트가 S_Chat 을 송신 서버는 비주얼 스튜디오에서 디버그모드로 구동 더미클라이언트는 exe모드로 실행과 종료를 반복 이때 클라이언트의 connect, disconnect가 잦아지면서 서버의 메모리 점유율이 내려가지 않는 현상이 궁금해서 그러는 것이지, 고쳐달라고 떼쓰는게 아닙니다. 이런 현상은 강의 코드에서도 발생할 것으로 보이는데요. 혹시 알고 계신 이유가있다면 그것만 말씀해주시면 됩니다.
테스트를 하다 릭킹(leaking) 현상이 생기는게 궁금해서 여쭙습니다. 테스트 과정 서버 컨텐츠단에서 0.15~0.25초 단위로 패킷을 모아보내는 기능까지 구현 더미 클라이언트에서 500명이 C_Chat 패킷을 보내도록 구현 서버만 Visual Studio의 디버그 모드로 실행 (메모리 진단을 위해) 클라이언트는 빌드된 exe파일로 접속 클라이언트만 반복적으로 종료하고 다시 실행 이때 서버쪽 메모리 점유율이 올라가기만 합니다. Disconnect() 가 분명히 불리고 소캣을 Clean(), Shutdown()을 하는데 (심지어 Dispose()도 넣음 다 돌아가는거 확인) 서버 메모리 점유율이 260메가 막 그러네요, 아무리 오래 두고 봐도 CG가 정리할 생각을 안해요 ㅠㅠ 다 깔끔하게 정리할 욕심은 없습니다. 다만 릭킹은 안좋아보여서요. 이거 이유가 있을까요? 참고로 리스너쪽 대기 큐 150 이상으로 설정해야 테스트가 잘됐습니다, (강의시 backlog 인자)
안녕하세요 선생님 NAT 공부하다가 의문이 생겨 질문 남깁니다. Local host와 internet 사이에는 공유기라는 장비가 NAT 역할을 해주는데, Web server와 internet 사이에는 이런 역할을 하는 장비가 없을까요? Web server의 ip는 단지 public ip로 외부에 노출되어 있는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 본문의 내용도 알겠는데, 실제 현실에서는 사실 처음에 이벤트 페이지로 들어가는 GET 요청부터 구페이지면 신페이지로 바꿔주는 경우가 많은데, 이럴때도 301 메세지가 온다고 생각하면 될까요?