묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨모든 개발자를 위한 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 자격증 준비하기
수강 기간 연장 요청
안녕하세요.일과 병행하며 듣고 있어 수강기간 연장이 부득이하게 필요합니다. 수강기간 요청 부탁드립니다. 감사합니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
비동기를 제대로 이해했는지 궁금합니다
1) 제가 제대로 비동기 방식을 이해한게 맞는지 궁금합니다. 비동기 방식이 어떤 함수를 호출한다면 함수를 지금 바로 처리하지 않고 예약같은 개념으로 요청한 함수를 나중에 처리하고 그동안 요청한 함수외에 다른 부분을 실행하는걸로 이해를 했는데 맞는건지 궁금합니다.2) 만약에 제가 이해한 방식대로 비동기가 진행이 된다면 수업에서 진행한 ::WSAWaitForMultipleEvents(1, &wsaEvent, TRUE, WSA_INFINITE, FALSE); 코드에서 블로킹 방식처럼 진행하는데 이 부분은 비동기와는 맞지 않는 부분아닌가요??
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 3 - 데이터관리와 네트워크
API 관련 내용도 나올까요?
API 강의도 나올지 궁금하네요
-
해결됨그림으로 쉽게 배우는 네트워크
ARP와 관련하여 질문있습니다.
ARP 프로토콜이 언제 발생하는지에 대해 질문드립니다. 질문 1 : 해당 그림에서 라우터 1과 라우터 2가 서로간의 맥주소를 모르고 있다면 여기에서도 ARP 프로토콜이 발생하나요?-> 빨간색으로 표시해두었습니다. 질문 2 : 해당 그림에서 라우터 2가 교수님 pc의 mac주소를 모르고있다면 ARP 프로토콜이 일어나나요?-> 녹색으로 표시해두었습니다. ARP가 언제 일어나는지 구체적으로 알고 싶어서 질문드립니다. 감사합니다~
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
데드락 탐지
데드락 탐지에 관련해서 궁금한게 있어서 질문드립니다.아래의 코드로 lock_guard를 이용해서 데드락을 탐지 하려고하는데 데드락이 되는 상황이 발생하고, 탐지는 안되는 경우가 가끔 발생하네요... DeadLockProfiler는 예제의 코드를 복사해서 사용했습니다. #include "pch.h" #include <iostream> #include "DeadLockProfiler.h" mutex lock1; mutex lock2; void Test(); void Test2(); void Test() { DeadLockProfiler::GetInst()->PushLock("Test"); lock_guard<mutex> gurad(lock1); Test2(); DeadLockProfiler::GetInst()->PopLock("Test"); } void Test2() { DeadLockProfiler::GetInst()->PushLock("Test2"); lock_guard<mutex> gurad(lock2); Test(); DeadLockProfiler::GetInst()->PopLock("Test2"); } int main() { thread th1([=] { while (1) { cout << "test" << endl; Test(); this_thread::sleep_for(100ms); } }); thread th2([=] { while (1) { cout << "test2" << endl; Test2(); this_thread::sleep_for(100ms); } }); th1.join(); th2.join(); return 0; }
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
spring과 http캐시
강의에서 캐시의 조건을 설정할 때no cache, no store, must-revalidate 셋을 모두 설정해야한다고 하셨습니다.그래서 제가 스프링(spring boot말고 그냥 spring입니다)에서 WebContentInterceptor에CacheControl 클래스로 조건을 설정하려고 했습니다.@Bean public MappedInterceptor webContentInterceptor() { String[] includePatterns = {"/board/game/**"}; WebContentInterceptor wci = new WebContentInterceptor(); CacheControl cacheControl = CacheControl.noCache(); wci.addCacheMapping(cacheControl, "/**"); return new MappedInterceptor(includePatterns, wci); } 그런데 CacheControl에서는 no cache와 no store를 동시에 설정을 할 수 없었습니다.https://github.com/spring-projects/spring-framework/issues/18354위 링크에서 글을 보면 no store가 이전 브라우저에서 동작하지 않는 것을 확인하지 못했다고 말을 하고 있는 것 같습니다. 그래서 no cache와 no store 둘을 같이 사용할 일이 없다고 하는 것 같아서요.아니면 제가 직접 response를 건드려서 no cache와 no store를 둘 다 설정해야만 할까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
대용량 트래픽에 stateless
강의에서는 대용량 트래픽이 발생할 요청에는 stateless로 설계하라고 말씀하셨지만실제로는 로그인 정보나 그외 등등을 유지하고 있잖아요.그럼 반대로 평소에 stateful하게 관리하다가 이벤트 페이지등 대용량 트래픽이 발생할 때 stateless하게 관리되는 정보들은 무엇무엇이 있나요?