묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
static TypeConversion conversion, template argument 없는 경우
준비해주신 강의자료TypeCast.h153번줄에 있는 선언에 대한 질문입니다. static inline bool CanConvert(int32 from, int32 to){static TypeConversion conversion;return s_convert[from][to];} CanConvert 함수안에 있는 TypeConversion 타입의정적변수 선언이 문법적으로 잘 이해가 가지 않습니다 TypeConversion은 class template이기 때문에선언할 때 template argument값(=typeList)을 줘야 한다고 생각했습니다.(제가 생각했던 예시)ex) static TypeConversion<TL> conversion; 근데 예시 코드에는 생략하여도 잘 동작해서관련해서 어떤 문법인지 찾으려고 했는데 찾지 못했습니다 개인적으로 열심히 고민해봤는데 default type이 정해진 경우에 생략이 가능하고template function에는 인자 값을 통해 추론해템플릿 인자값을 생략하는 경우도 있었지만둘 다 해당하지 않는 것 같습니다 TypeConversion<TL>::CanConvert(ptr->_typeId, IndexOf<TL, remove_pointer_t<To>>::value)를 통해서 이미 template class가 인자 값을 받아서인스턴트화 했기 때문에 생략이 가능한 것으로 이해해도 괜찮을까요? -수정Injected-class-name 라는 cpp reference를 찾았습니다제가 궁굼해 하는게 이게 맞을까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
Basic_dump 수행 오류
안녕하세요 항상 좋은 강의 감사드립니다. 상기에서 5번/6번을 누르면 데이터가 트래킹이되는데 다른 번호는 트레킹이 안됩니다. (7번/8번 포함) VMware가 트레킹이되면 정상적으로 빌드된거같은데 혹시 사유추정이 가능할지 문의드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
DeadLock 테스트를 해봤지만, 정상작동?
visual studio 2022로 작업하고 있습니다.Interlocked(9강), Lock(10강), DeadLock(11강)에서 디버깅을 하면서 무한루프 또는 DeadLock(11강)에 디버깅이 안되는 것을 따라해보고 있었습니다.이전 컴파일러 최적화 강의(6강)를 따라하면서 Debug모드를 relase로 할 때 visual studio에서 3가지의 선택사항이 나왔었습니다. 취소해도 다시떠서 디버깅을위해 내꺼를 제외하고? 를 선택했었습니다.(항목이 기억이 나지 않네요.. 뭐라고 검색해야할지도 모르겠고 프로젝트를 새롭게 만들어도 해당사항은 나오지 않았습니다..) 그러고 나서 영상처럼 이부분이 문제입니다 하는 부분들이 저는 이상이 없더라고요여기서 중단점 잡아도 안잡히는 문제가 있다고 합니다. 그래서 WaitAll에서 스레드를 찾고 문제점을 찾으셨지만 제가 따라할 때는 중단점으로 넘어왔습니다. 제 생각에는 시간이 지나면서 C#이 업데이트 됐거나, 2019가 아닌 2022로 해서 해당 문제가 안생기는 걸까요? 이것 뿐만 아니라 이전꺼에서도 나왔는데 크게 문제될건 없지만 답답함에 질문드려봅니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
11분 6초 Array.Copy 질문
Array.Copy(Encoding.Unicode.GetBytes(this.name), 0 , segment.Array, count, nameLen);여기서 count가 아니라 segment.Offset + count가 되야 하는거 아닌가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
new Span<byte>에서 3번째 인자(length) 질문
success &= BitConverter.TryWriteBytes(new Span<byte>(s.Array, s.Offset + size, s.Count - count)이런 코드가 있는s.Count - count가 아니라그냥 type의 사이즈만큼 주면 안되는건가요? 우리가 필요한 부분은 딱 사이즈만큼 이라고 생각해서 그렇습니다!s.Count - count 는 4094? 이런식으로 나오는굳이 그만큼 받아와야 하는지 궁금합니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
섹션 5-1 효율적 라우팅 질문 있습니다.
안녕하세요 아래 그림은 강의 내용 따라하면서 수행한 내용입니다.R0, R1, R2 에 RIP v2 적용 후R0 에서는 static으로 설정 했습니다.pc0에서 tracert 수행시 콘솔과 같은 결과가 나옵니다. 강의에서 보여주신것과 동일 합니다.질문: pc0 -> server에서 보시는 바와 같이 router0->router1->router2->sever로 가는 것은 확인 했는데왜 3번 보면 205.205.205.1 이 찍히나요? 여기는 205.205.205.0 네트워크니까 데이터 흐름과는 상관 없는 영역아닌지요? 원래 저의 예상은 3번 부분에 204.204.204.2 가 찍혀야 하지 않나 하고 생각하고 있었습니다.강의 잘 보고 있습니다. 감사합니다!
-
미해결실습으로 배우는 핵심 네트워크 기술
ccna 강좌는 언제 개강될까요??
강의 수강하고 싶은데 언제 개강일까요??
-
해결됨CloudNet@와 함께하는 Amazon EKS 기본 강의
PDF 학습 자료 요청드렸는데 언제 받을 수 있을까요
이메일로 PDF 학습자료 요청드렸는데요,언제쯤 받을 수 있을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장부탁드립니다
안녕하세요, 강의 잘보고있습니다. 수강 연장 부탁드립니다. 까먹을때마다 두고두고 보고싶습니다감사합니다
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제풀이 13-3 질문
안녕하세요.3번 선지 D 해설에서 "ALB는 하나의 서버에만 요청을 보낸다"고 설명되어 있는데, 제가 이해하기로는 ALB (Application Load Balancer)는 여러 서버에 요청을 분산하는 AWS 서비스로 알고 있습니다.. 혹시 제가 이해한 내용이 맞는지 확인해 주실 수 있을까요? 이해가 잘 가지 않아 질문드립니다! 😊
-
미해결CloudNet@와 함께하는 Amazon EKS 기본 강의
Karpenter 설정
안녕하세요EKS 강의를 완강한 후 궁금한 점이 있어 댓글을 남깁니다!Karpenter 설정 시 사용하신 YAML 파일을 보니, 지금까지 원클릭에서 사용했던 addons 및 IAM 설정 등이 빠져 있는 부분이 있는 것 같습니다.이전 방식과 동일하게 Karpenter YAML에도 addons 및 IAM을 추가한 전체 파일을 볼 수 있을까요?공부한 내용을 참고하여 하나씩 다시 추가해볼 수는 있지만, 정확하게 설정한 것인지 확인할 수 있는 문서가 없어 이렇게 댓글을 남기게 되었습니다.
-
미해결누구나 시작할 수 있는 네트워크 Step 1 (네트워크 모델)
섹션 2번과 4번이 중복 입니다.
섹션이 4번 까지 잇는데요 2번하고 4번이 같은 내용인데 진도율은 다 들어야 올라 가네요. 수정해야 할것 같습니다. 수정 부탁드립니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
AWS VPC 과금 문제(탄력적 IP)
탄력적 IP 설정 이후, 리눅스용 도커 설치 영상에 따라 우분투 서버에 docker를 설치했습니다. 그런데 과금이 되었더군요. 프리티어라 과금이 안될줄 알았는데, 정책이 바뀌어 탄력적 IP 설정에 비용이 청구됩니다.https://dev.classmethod.jp/articles/rate-policy-for-aws-public-ipv4-addresses-will-change-kr/탄력적 IP 사용을 안하면 과금이 된다는 말씀도 하셨던거 같은데 그냥 탄력적 IP를 해제하면 될까요? 서버 사용은 동적으로 바뀌는 IP로 접속하면 되는건지...
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Event와 Condition Variable 중에 헷갈리는 부분이 있어서 질문드립니다
안녕하세요 선생님. 이전 강의인 Event와 비교했을 때 헷갈리는 부분이 있어서 질문 드립니다. EventEvent를 사용하면 Lock코드와 묶여있지 않기 때문에 Producer 쓰레드가 연달아 Lock을 가져가게 될 경우에 q의 값이 누적되어 값이 틀어질 수 있다고 하셨던 것으로 이해했습니다.아래는 Event 강의의 코드인데요, Consumer 함수에서 if(!q.empty())를 while(!q.empty())로 변경했을 때 q의 크기가 4자릿수로 넘어가는 경우는 발생하지 않는 반면에, 조건변수를 사용하면 q의 크기가 4자릿수가 넘어갈 때가 심심찮게 발생합니다. CPU사용량은 거의 비슷합니다.강의 설명에서는 Kernel Object와 User-Level Object의 차이때문에 Event보다 조건변수를 사용하는 것이 효율적이라는 뉘앙스로 느껴집니다. 물론, 이전 가르침을 통해서 상황에 따라 효율적인 방식은 전부 다르겠지만, 이번의 경우는 예외처럼 느껴져서 질문드립니다. 조건변수가 더 효율적인 방식인가요?#include "pch.h" #include <iostream> #include "CorePch.h" #include <thread> #include <atomic> #include <mutex> #include <windows.h> mutex m; queue<int32> q; HANDLE handle; void Producer() { while (true) { { unique_lock<mutex> lock(m); q.push(100); } ::SetEvent(handle); this_thread::sleep_for(100ms); } } void Consumer() { // 데이터를 꺼내 쓰고 있음 while (true) { ::WaitForSingleObject(handle, INFINITE); // 현재 상태가 ManualReset이면 수동으로 Non-Signal로 바꿔줘야 함. //::ResetEvent(handle); unique_lock<mutex> lock(m); if (!q.empty()) { int32 data = q.front(); q.pop(); cout << data << '\n'; } } } int main() { handle = ::CreateEvent(NULL/*보안속성*/, FALSE/*bManualReset*/, FALSE/*bInitialState*/, NULL); thread t1(Producer); thread t2(Consumer); t1.join(); t2.join(); ::CloseHandle(handle); }
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다
수강연장 부탁드립니다 ..!
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다.
안녕하세요!AWS 자격증을목표로 입문했는데요..업무강도가 너무많아져서 병행을못하고있습니다.연장부탁드리겠습니다. 감사합니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이벤트를 쓰는 것이 CPU 처리율이 더 높게 나오는데 무엇이 문제인지 모르겠습니다
안녕하세요 선생님 🙂 선생님 강의 덕분에 서버에 입문을 수월하게 한 것 같습니다. 감사합니다 ^^ 다름이 아니라, 이벤트를 쓰면 WaitForSingleObject 함수로 인해서 계속해서 대기가 되는 상태일텐데 CPU 점유율이 쓸데없이 무한루프를 도는 것보다 많이 먹습니다. 무엇이 문제인지 잘 모르겠습니다 ㅠㅠ 확인해주시면 감사하겠습니다!!<이벤트 사용X> <이벤트 사용O>
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
IOCP 멀티 게임에서 Collsion 충돌 처리는 어떻게 구현하나요?
본 강의에서는 제가 못찾고 있는지는 모르겠지만 멀티 게임 구현시 타일맵을 이용한 충돌 구현만 있는 것 같습니다. (혹시 만약 있다면 어디에서 언급되는지 모르겠네요..) 얼핏 기억하기로는 충돌 처리는 서버에서 해야 한다고 했던 기억이 있습니다. 그러면 클라이언트에 있는 CollisionManager, Collison클래스와 같이 충돌과 관련된 클래스를 서버 쪽에도 복붙하여 충돌 처리를 하는 방향이 맞을까요? 만약 그렇다면 현재까지는 클라이언트에서 Collision 범위를 네모 박스와 같은 형태로 그려서 눈으로 직관적으로 확인 가능하니까 쉽게 디버깅할 수 있었는데, 서버에서 충돌을 구현하면 눈에 보이지 않는거 아닌가요? (그렇다면 디버깅이 굉장히 어렵겠네요...) 서버에서 충돌을 구현하면 클라이언트에서는 충돌 처리를 안하니까 클라이언트의 Bullet과 벽은 Collision은 제거하면 될까요? 멀티 게임에서 충돌을 어떻게 처리해야 할지 방향을 잘 모르겠습니다. 그리고 강의 너무 잘 보고 있습니다!
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 요청드립니다!
안녕하세요!해당 강의를 열심히 수강하면서 AWS 자격증 공부를 하고 있습니다!그런데 시험날짜가 다가오는데 아직 강의 수강을 완료하지 못했습니다 ㅠㅠ!혹시 수강기간을 연장해주실 수 있을까요?확인부탁드립니다! 감사합니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
몬스터 충돌판정
안녕하세요 강의를 보고 배운 서버와 dx11로 3d게임을 만들어 보고있습니다. 이동동기화 등은 잘 됬고 몬스터를 만들었는데 접속한 클라에서 모두 동일하게 로직이 돌아가야하니 몬스터의 로직은 서버에서 돌아가게 만들었습니다. 그런데 플레이어가 몬스터를 타격하면 타격한 플레이어가 타격했다는 패킷을 보내고 플레이어가 플레이어를 타격하면 피격당한 플레이어가 패킷을 보내는 식으로 했는데 투사체 같은경우 몬스터가 투사체를 맞았다 라는건 서버에서도 충돌체를 두고 몬스터가 검증을 해야할까요? 클라에서 판단하더라도 그러면 여러 클라가 있을경우 여러 클라가 다 맞았다는 패킷을 보낼것 같아 뇌가 꼬입니다...물론 방법이야 많겠지만 이부분 구현에 있어 감이 안잡혀 질문드립니다 ㅠㅠ