묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ObjectPool 강의에서 메모리 오염에 관한 질문입니다!
안녕하세요!메모리 풀의 단점 중 하나가 메모리가 오염됐을 때 계속 재사용되다가 시간이 지나서 문제가 되니까 원인 찾기가 어렵다고 말씀하셨는데요.그게 정확히 어떤 식의 오염인지 감이 안 와서 잘 와닿지 않았습니다. 요구하는 사이즈와 같거나 큰 크기의 메모리를 할당받아서 사용하고 반납하는데, 어떤 오염이 발생할 수 있는 건지 알고 싶습니다! 심지어 다른 애가 그 오염된 메모리를 사용하는 게 문제라고 하셨는데 그 오염된 상태가 어째서 계속 유지될 수 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
오타 제보
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]그냥 문제 없는 단순 오타이긴 한데 제보드립니다..리플렉션 강의노트와 강의자료 MethodV2 클래스 주석에 동적 메서드 호출 - 리플렉션 사용인데 사요로 되어 있어서 제보드립니다. 감사합니다.
-
미해결자동차 SW - UDS 진단통신 정복하기
요청/응답 포맷에서 RID 부분 질문있습니다.
강의자료 초반부에 RID 는 2byte 정수라고 하셨는데,요청/응답 포맷에 보면 RID 부분이 1바이트처럼그림이 설명되어 있습니다. 그림부분에서 RID 는 2바이트(2칸)라고 이해하면 될까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ArraySegment<byte>.Offset의 정의와 사용법이 궁금합니다.
안녕하세요?AraaySegment 관련해서 코드리뷰하다 궁금한게 생겨서 질문 드립니다. ArraySegment<byte>.Offset이 잘 이해가 안가서요. 제가 알아 본게 맞다면?Offset은 항상 0이 아니고 데이터가 시작하는 위치를 가르킴그렇다면 _buffer는 항상 0부터 데이터를 사용하고 있으므로 항상 Offset은 0임그렇다면 RecvBuffer.cs의 이 코드는 이렇게 바꿔도 되지 않을까? 원래 코드public void Clean() { int dataSize = DataSize; if (dataSize == 0) { // 남은 데이터가 없으면 복사하지 않고 커서 위치만 리셋 _readPos = _writePos = 0; } else { // 남은 찌끄레기가 있으면 시작 위치로 복사 Array.Copy(_buffer.Array, _buffer.Offset + _readPos, _buffer.Array, _buffer.Offset, dataSize); _readPos = 0; _writePos = dataSize; } } 수정 후 Array.Copy(_buffer.Array, readPos, buffer.Array, 0, dataSize); _readPos = 0; _writePos = dataSize; 마찬가지로 Session.cs 에서 _buffer정보를 리턴해 주는 이 코드는 이렇게도 되지 않을까?수정 전void RegisterRecv() { if (_disconnected == 1) return; _recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 수정 후_recvBuffer.Clean(); ArraySegment<byte> segment = _recvBuffer.WriteSegment; _recvArgs.SetBuffer(segment.Array, segment.Offset, segment.Count); 제가 계속 곱씹어봤는데 Offset에 대한 이해가 안되서 ㅜㅜ 답변해주시면 감사하겠습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Memory Pool #2에서 Use-After-Free 문제 관련 질문입니다!
안녕하세요!개인적으로 메모리 관련한 수업..굉장히 잘 듣고 있습니다.감사합니다!!다름이 아니라 우리가 수업에서 제작한 코드는 47:33에서 언급하셨듯 Use-After-Free 문제가 남아 있는데요.이 부분이 마소 성님들이 만든 SLIST 시리즈를 사용하면 해소가 되는 부분일까요? 아니면 SLIST와는 관련 없는 설계/구조적인 문제일까요?관련해서 설명하실 때 직접 만들어서 사용하지 말라고 하신 부분에서, 마소의 SLIST는 이 문제를 어떻게 다루었는지 궁금증이 생겼습니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
[인프런-수업자료요청] e북 자료(구글) 권한 요청드립니다 !
[인프런-수업자료요청] e북 자료(구글) 권한 요청드립니다 ! 본 강의명: 풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3] 구글 이메일로 보냈으나 아직 답변이 없어서 커뮤니티에 남깁니다 ㅠㅠ
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
수업과 좀 관련없는 문제지만 질문 있습니다
안녕하세요. 항상 강의 잘 듣고 있습니다.제가 집에서 듀얼 모니터를 사용하면서 노트북 모니터가 아닌 다른 모니터에서 언리얼 엔진을 띄우고 공부를 합니다.근데 밖에 나가서 노트북 모니터로만 하다가 그동안은 잘 됐었는데 갑자기 GPU Crashed or D3D Device Removed.Use -d3ddebug to enable the D3D debug device.Check log for GPU state information. 이라는 에러 창이 뜨면서 프로젝트가 켜지질 않습니다.제가 인터넷에서 방법을 찾아보면서 드라이버 재설치, defaultengine.ini에서 dx11로 바꾸고 실행, trddelay 설정, 엔비디아 제어판 전원파워 최고 성능 선호로 설정, 언리얼 엔진 외장 그래픽만 사용하도록 설정이렇게 다양한 방법들을 해봤는데 그래도 안되더군요. 근데 집가서 다시 듀얼 모니터로 연결하고 실행해보니 언리얼 엔진이 잘 켜졌습니다.어디가 문제고 어떻게 해결할 수 있을까요? 다음은 크래쉬 리포터에 뜨는 내용입니다. LoginId:e119c4204e141de266d9dca94151ea5aEpicAccountId:2ceddc945c6f4fcab6b011ccf8e10152Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp] [Line: 868] hr failed at D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\Windows\WindowsD3D12Viewport.cpp:189 with error DXGI_ERROR_DEVICE_REMOVEDUnrealEditor_D3D12RHI!D3D12RHI::VerifyD3D12Result() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp:868]UnrealEditor_D3D12RHI!FD3D12Viewport::Init() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\Windows\WindowsD3D12Viewport.cpp:180]UnrealEditor_D3D12RHI!FD3D12DynamicRHI::RHICreateViewport() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Viewport.cpp:831]UnrealEditor_SlateRHIRenderer!FSlateRHIRenderer::CreateViewport() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateRHIRenderer\Private\SlateRHIRenderer.cpp:409]UnrealEditor_SlateCore!SWindow::ShowWindow() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWindow.cpp:1410]UnrealEditor_MainFrame!FMainFrameHandler::ShowMainFrameWindow() [D:\build\++UE5\Sync\Engine\Source\Editor\MainFrame\Private\Frame\MainFrameHandler.h:265]UnrealEditor_MainFrame!FMainFrameModule::CreateDefaultMainFrameAuxiliary() [D:\build\++UE5\Sync\Engine\Source\Editor\MainFrame\Private\MainFrameModule.cpp:319]UnrealEditor_UnrealEd!EditorInit() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdGlobals.cpp:171]UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:176]UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:107]UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:244]UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]kernel32ntdll
-
해결됨CloudNet@ - Amazon EKS 기본 강의
EKS 클러스터 및 관리형 노드 그룹 생성에서 에러나시는 분들
// EKS 클러스터 및 관리형 노드 그룹 생성 EKS 클러스터 및 관리형 노드 그룹 생성쪽 스크립트 실행시--ssh-access 위부분 하위에--ssh-access \ --ssh-public-key abc-key \처럼 지정필요하네용
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HttpOnly 가 http프로토콜에서만 사용된다?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 13:25 에서 httpOnly를 설명할 때http전송에만 사용한다고 설명을 해주셨습니다. 전송방식에 http, https가 있다고 보는데둘 중 하나만 전송되는 것인지 궁금합니다.(인터넷검색을 했을 때 둘 다 사용된다고 합니다)
-
미해결그림으로 쉽게 배우는 네트워크
마지막강의에서 질문 2분 30초에서 2분 50초 사이
2분 30초에서 50초 사이 보면 애플리케이션 계층(Layer 5)에서 갑자기 네트워크 계층으로 설명이 넘어가시던데 이 사이에 TCP 3hand shake? 가 일어낫다라고 해석해도 괜찮을까요? http 프로토콜에서도 포트번호 있고 구글자체에서도 포트가 있고 내 컴퓨터에서도 포트가 있다라는 개념이 지금도 이해가 안가고 있습니다 포트라는 개념자체가 지금 이해가 안갑니다 ip주소가 있는데 왜 굳이 포트를 쓰는거지?? 거에서 지금 막혀 있습니다 .. 도와주세요 ㅠㅠ
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
오브젝트 설계 #1 질문
34분 50초ObjectManager::Remove(Object* object)에서 auto it = std::remove(...);_objects.erase(it, _objects.end());대신에 _objects.erase(findIt); 를 해도 findIt 에는 object에 대한 iterator 값이 저장되어 있으니 erase함수만 사용해도 제거할 object를 vector에서 삭제할 수 있지 않을까 해서 질문드립니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MemoryPool #3와 같은 방식으로 메모리 풀을 실무에서 쓰셨는지 궁금합니다
안녕하세요!마소 성님이 만들어준 SLIST_HEADER, SLIST_ENTRY, alligned_malloc..등을 이용한 메모리 풀 방식을 실무에서 사용한 적 있으실까요? 직접 사용은 안 하셨다면 사용된 프로젝트를 보신 적 있을지 궁금합니다!
-
미해결왕초보를 위한 네트워크 기초
유튜브 실시간 스트리밍에 대해 궁금한 점이 있습니다.
안녕하세요 강사님TCP와 UDP의 차이점에 대해 강의를 듣고 있는데, 유튜브 라이브 스트리밍처럼 실시간 영상을 시청하는 도중에 사용자가 원하는 이전 시점으로 돌아가서 그 부분부터 영상을 시청하거나 다시 라이브 시점으로 돌아와서 생중계로 제공되는 영상을 볼 수 있습니다. TCP와 UDP 통신 방법을 둘다 사용하는건가요?대략적인 동작 원리가 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Memory Pool #1에서 Memory 생성자에서 반복문 수정 사항!
다음처럼 하면 의도대로 동작합니다!int32 size = 0; // _poolTable이 4097 크기인 이유는 요구 사이즈가 1부터 시작해서 4096까지 가야 하므로 int32 table_index = 1; for (size = 32; size < 1024; size += 32) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } for (; size < 2048; size += 128) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } for (; size <= 4098; size += 256) { MemoryPool* pool = new MemoryPool(size); _pools.push_back(pool); while (table_index <= size) { _pool_table[table_index] = pool; ++table_index; } } 반복문의 조건문에서 등호(=)를 빼면 됩니다. 경계의 값은 다음 반복문에서 처리할 수 있으니까요. 마지막 반복문은 다음 반복문에서 처리할 게 없으므로 끝까지 가야 해서 등호를 살려놓습니다.예를 들어 두 번째 반복문에서, table_size는 이전 반복문에서 1024가 되고, 두 번째 반복문의 size는 1024부터 시작하니까 아귀가 딱딱 맞게 돼요. 경계값에 문제 없는 것도 확인했습니다. 약간 갸우뚱하셨던 분들은 참고하면 좋을 것 같습니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
코드 구현한 부분에서 Disconnect()함수가 동시 실행되는 경우가 있나요?
여러 스레드에 의해 동시에 Disconnect()가 여러번 실행되는 걸 막으려고 Interlocked를 사용하여 처리한다고 하셨는데 현재 Session#1 강의 코드까지는 위와 같은 상황이 발생할 부분이 보이지 않는다고 생각하는데 맞을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 연장 요청 부탁드립니다!
자격증 취득을 목표로 구매했는데 프로젝트를 시작하면서 학습이 미뤄지고 있는 상태입니다.올해까지는 프로젝트라 학습이 어려운데 가능한 길게 연장을 부탁드려도 될까요ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
pending과 listen의 backlog와는 어떤 관계가 있는건가요?
Session #1강의 1분대에서 backlog라고 최대 대기 수를 두었기 때문에 동시다발적으로 pending이 false가 뜨는 경우가 현실적으로 없다라고 하셨는데 잘 이해가 안됩니다... ㅠㅠ
-
미해결자동차 SW - UDS 진단통신 정복하기
ClearDiagnosticInformation 관련하여
UDS 서비스 중에 ClearDiagnosticInformation 강의 부분엥서 질문이 있습니다.DTC 정보는 매우 중요한 정보라서 접근제어? 와 같은 부분이 반드시 필요할것 같은데요. (그냥 아무나 이 서비스날려서 DTC 날려버리면 안될것 같은데요) 본 강의에서는 따로 설명해주시진 않았지만,일반적으로 SecurityAccess 라든지SessionControl 통해서 특정 mode 로 진입을 해야 한다든지이러한 서비스가 선행된 후, ClearDiagnosticInformation 서비스가 동작되어야 하는 것이죠? 질문을 조금 확장해보면,UDS 서비스가 매우 다양한데, 각 서비스에 대해서 사전에 어떤 것이 선행되어야 한다는 것을 표준에서 정의하지는 않고,각 제조사별로 필요하면 SecurityAccess 라든지, Session Control 과 같은 sequence 를 추가하여 설계하는 방식으로 진행된다고 보면 될까요? 감사합니다.
-
미해결자동차 SW - UDS 진단통신 정복하기
Security Level 범위관련
안녕하세요. 진단통신에 대해 빠르게 파악이 필요한 상황인데, 본 강의가 너무 큰 도움이 됩니다. 유익한 강의 감사합니다.강의 듣고 있는데, Security Access 부분에서Security Access Level 이 1~63까지 있다고 설명해주셨는데, 1:43초에 보이는 슬라이드에서는 1~83 이라고 되어 있습니다.1~63이 맞는거죠?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
PopLock 호출과 관련된 질문입니다.
특정 lock L1이 pop되는 상황이 있다고 할 때 L1으로의 순방향 간선 정보가 담긴 다른 Lock들의 history에 대해서는 별도로 L1값을 제거해야 할 필요는 없나요??