묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
오브젝트 풀에서 스마트포인터를 반환하는이유
안녕하세요오브젝트 풀을 사용하는 이유가 객체의 동적할당/해제의 회수를 줄이기 위함이라 생각하는데요return std::shared_ptr<T> ptr {pop(), push};을 사용하게되면 shared_ptr 내부에서 객체를 관리하기 위한 공간이 동적으로 할당되게된다고 생각되는데요. (refcount 같은것들)그렇게되면 동적할당된 객체는 재사용이되지만 동적할당 비용을 줄이기 위함은 딱히 의미가 없어진다고 생각되는데요그럼에도 쓰는게 의미가있는가요?오히려 make_shared를 쓰는게 더 나은건 아닌지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP API
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]HTTP API 강의에서요 HTTP API가 HTML FORM 데이터 전송방식을 제외한 것을 말하는 건가요?이게정확히 뭘 말하는 건가요??
-
해결됨그림으로 쉽게 배우는 네트워크
SSH 비밀번호 인증 방식
안녕하세요. 감자님😀SSH 암호화 부분에 궁금증이 생겨 질문 드립니다! SSH 연결에 비밀번호 인증 방식도 있지만보안상 Key 인증 방식을 권장 하더라구요. Q. 비밀번호 인증 방식은 전송 전 암호화를 하더라도 보안에 취약한가요? 다른 경로로 ID, PW를 노출당하는 위험 때문에 비권장 하는 것인지,비밀번호 인증 방식의 암호화, 복호화 자체가 보안에 취약해 비권장 하는 것인지 궁금합니다.추가로.. 비밀번호 인증 방식의 암호화, 복호화는 Key 인증방식과 다른 메커니즘으로 이루어지나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문이 있습니다.
안녕하세요 저는 게임 서버에 관심이 있어서 혼자 독학하고 있는 대학생입니다. 다름이 아니라 Connector수업을 다 듣고 실행할라고 했는데 대상에 컴퓨터가 연결을 거부합니다. 이런 오류가 뜨는데 어떻게 해결 해야할지 모르겠습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
GameRoom에서 세션 관리에 List를 사용한 이유가 궁금합니다.
Room에 Enter와 Leave를 통해 채팅에 참여하고 나갈 수 있습니다.그리고 해당 session들을 순회하면서 모든 세션에 메시지를 보내야 합니다. 여기서 의문 사항은 참여하는 것에는 List(ArrayList)는 O(1)인데, 나가는 작업이 발생하면 자칫 O(n)이 발생할 수도 있다고 생각했습니다.이유는 해당 session을 찾는데 linear하게 순회해서 찾아내야 하고, 해당 session을 제거하고나서 빈 공간을 앞으로 당겨줘야 하기 때문입니다. 이 때문에 제 생각엔 HashSet을 사용하는 것이 좋을 것이라 생각했습니다. 혹시 List를 사용한 이유가 Enter Leave 연산보다 Broadcast가 훨씬 많이 이용되고 있기 때문에순회가 HashSet보다 List가 훨씬 빠르기 때문인가요? 언제나 양질의 강의에 감사드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
언리얼 클라와 실습 IOCP 서버를 연동
항상 좋은 강의 감사합니다!다름이 아니라, 추후에 언리얼 클라랑 서버를 연동하는 강의가 나중에 나온다고 하셨는데 혹시 언제쯤 나오는지가 궁금해서 질문드립니다!!
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
개발자가 HTTP2/3 버젼을 사용하고 싶을 때, 어떻게 쓸 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 질문이 있습니다! 구글의 경우, 네트워크 통신할 때 HTTP 2, 3 같이 사용하는 걸 봤습니다. 개발자가 HTTP 프로토콜 버젼을 선택할 수 있나요? 선택할 수 있다면 어떻게 그렇게 할 수 있나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 요청드립니다.
회사 업무와 병행 하다 보니 기간이 부족한 것 같습니다.기간 연장 부탁 드리겠습니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
추가 질문) AcceptEx함수를 사용하지않고 WSAIoctl 사용이유
https://stackoverflow.com/questions/4470645/acceptex-without-wsaioctl다른 질문에서 보내주신 링크로 들어가서 확인 했습니다.추가적으로 제가 이해한 부분이 맞는지 확인해주시면 감사하겠습니다. 기본적으로 AcceptEX, ConnectEX 함수등은 아키텍처가 외부에 있기에 많은 비용이 발생하여 맵핑하여 사용한다고 생각이 듭니다 이것을 제외하고 추가적인 부분이 있을까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
구글에도 DNS 서버가 있는 이유와 host 파일
강사님 안녕하세요, 우선 유튜브와 인프런 강의들을 정독하면서 최근에 많은 도움을 받고 있습니다. 질 좋은 강의 만들어주셔서 정말 감사합니다.이번 강의를 들으며 두 가지 궁금증이 생겼습니다.DNS 서버는 ISP에 딸려 있는 것이 아닌 모든 웹 사이트에 존재하는 것일까요? 구글의 DNS는 8.8.8.8인 것은 알고 있었는데, 생각해보니까 다른 사이트의 IP주소를 알려주는 역할을 구글이 왜 하고 있는 것인지 궁금합니다.host 파일 관련해서, DNS 서버는 IP주소를 알려줄 때 유효기간도 같이 알려준다고 하셨는데, host 파일에 저장된 IP주소도 당연히 해당 유효기간의 영향을 받는 것이라고 생각해도 될까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AccountManager.h에서는 pch.h가 include되어 있는지 모르는데
정말 기초적인건데 갑자기 이해가 안돼서 질문 남깁니다.AccountManager.h에서는 pch.h가 include되어 있는지 모르고 AccountManager.cpp에만 include되어 있는데 어떻게 AccountManager에서는 map에 std::를 안붙이고 쓰고, int32 타입을 쓸 수 있는걸까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
Symmetric NAT 관련 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강의 잘 보고 있습니다, 다름 아니라 Symmetric NAT는 세션마다 External Port를 부여한다고 하셨는데 , 하나의 Local IP , Local Port가 두 개의 다른 Remote IP 와 Remote Port에게 각각 패킷을 보내서 Outbound가 발생하면 NAT table에 아래와 같이 매핑되는지 궁금합니다.Local IP L.Port E.Port RemoteIP Remo.Port 192.168.0.10 3000 8080 15.15.15.15 5555 UDP192.168.0.10 3000 8081 15.15.15.14 4444 UDPL.port -> Local Port E.port -> External Port 글쓰는 창이 좁아 형식이 이상한점 죄송합니다. 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
echo server가 아닌 경우 연결 체크에 대한 질문
유저의 input이 없을 경우 보낼 데이터가 없는 간단한 채팅 서버라고 할 때, 이런 경우에 연결을 확인하기 위해 ping pong을 통해 지속적으로 연결 상태를 체크하나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Date 정보와 referer
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]referer는 아무리 오타여도 이미 고칠 수 없을 정도로 퍼져, 그대로 사용한다는 것은 이해했습니다.그러나 중간중간 나오는 (ex, Date) 중간에 바뀌었다는 것들은 어떻게 바뀔 수 있었던건가요?referer처럼 널리 퍼져서 바뀌기 힘든 것과, 널리 퍼지지 않은 것의 차이인가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
병합정렬 MergeResult() 질문입니다
안녕하세요 루키스님 강의를 듣다가 이해가 잘 되지 않는 부분이 있어서 질문드립니다!!병합 정렬의 MergeResult() 에서 아래 코드가 잘 이해가 안되는데요..! 왜 v[left] = temp[i] 가 아니라 v[left + i] = temp[i] 인건가요..??// temp 에 넣어준 걸 원본에 덮어쓰기 for (int i=0; i<temp.size(); i++) v[left + i] = temp[i];
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기한 연장 요청드립니다
일이랑 병행하면서 열심히 공부중이나 기한이 부족합니다 기한 연장 부탁드리겠습니다 ㅠㅠ
-
미해결그림으로 쉽게 배우는 네트워크
네트워크 통신 방식에 대해 질문드려요.
강의 3:14 에서 허브가 물리 신호를 브로드캐스팅 한다고 설명해 주셨는데이전 강의 내용을 기반으로3:33 ~ 3:45 내용은 유니캐스트 라고 생각을 했는데어떤게 맞는건가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
데드락 관련해서 질문이 있습니다. 루키스님!
데드락 관련해서 버그가 떠서 질문글을 남깁니다.윈도우 어플리케이션을 생성해서 윈도우 메인에 서버에게 C_LOGIN을 보내는 패킷을 생성했습니다. 밑은 해당 코드입니다. bool flag = true; while (true) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (WM_QUIT == msg.message) break; if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } else { CEngine::GetInst()->progress(); CEditorObjMgr::GetInst()->progress(); ImGuiMgr::GetInst()->progress(); // 렌더 종료 CDevice::GetInst()->Present(); if (service->GetCurrentSessionCount() > 0 && KEY_RELEASE(KEY::A) && flag == true) { Protocol::C_LOGIN pkt; auto sendBuffer = ServerPacketHandler::MakeSendBuffer(pkt); sendBuffer = nullptr; flag = false; } } } return (int) msg.wParam; }A를 클릭해서 서버와 연결한 후에 X를 눌러서 윈도우 창을 닫았는데, 이후 이렇게 코어글로벌이 종료될 때, GSendBufferManager를 delete하는 부분에서 타고타고 들어가서 DeadLockProfiler가 DeadLock이 존재했다고, 알려줬습니다.Server에 OnConnected가 되었을 때, 패킷을 보내면 이런 문제가 일어나지 않았는데, 원하는 때, 원하는 키를 입력해서 패킷을 보내려고 하니까 문제가 일어나네요 ㅜㅜ문제를 알 수 있을까요? 프로토 버퍼를 사용해서 주고 받고 있습니다!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 루키스님. 클라 연동에 관해서 질문을 드리고 싶습니다.
안녕하세요 루키스님.제가 비쥬얼 스튜디오에서 윈도우 어플리케이션을 만들어서 DX11포폴을 만들고 서버를 연동하려고 시도중입니다. 이 상황에서 wWinMain에 ClientServiceRef service = MakeShared<ClientService>( NetAddress(L"127.0.0.1", 7777), MakeShared<IocpCore>(), MakeShared<ServerSession>, // TODO : SessionManager 등 1); ASSERT_CRASH(service->Start()); GThreadManager->SetFlags(1); for (int32 i = 0; i < 2; i++) { GThreadManager->Launch([=]() { while (true) { service->GetIocpCore()->Dispatch(10); } }); } //밑은 DX11을 작동시켜주기 위한 함수들입니다. while (true) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (WM_QUIT == msg.message) break; if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } else { CEngine::GetInst()->progress(); CEditorObjMgr::GetInst()->progress(); ImGuiMgr::GetInst()->progress(); // 렌더 종료 CDevice::GetInst()->Present(); } }이렇게 쓰레드를 생성해서 작동을 시켜주었습니다.그런데 생성된 게임 윈도우에서 X키를 눌러서 프로그램을 강제로 종료시켰는데, 이 메인 쓰레드 자체는 정상적으로 WM_DESTROY를 호출 받아서 종료되었는데, 멀티 쓰레드들이 멈추지 않고 계속 돌아 프로그램이 종료되지 않고, 좀비처럼 살아남는 현상이 계속되고 있습니다.쓰레드를 강제로 종료시키니 메모리 릭이 남고, 어떻게 문제를 해결해야할지 해결책을 찾지 못해서 이렇게 질문 남깁니다.참고) 루키스님의 패킷 직렬화#3 코드를 참조해서 만들고 있습니다!감사합니다.
-
미해결AWS Certified Advanced Networking - Specialty 자격증 준비하기
수강 기간 연장 요청
안녕하세요.일과 병행하며 듣고 있어 수강기간 연장이 부득이하게 필요합니다. 수강기간 요청 부탁드립니다. 감사합니다!