inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

안녕하세요 WriteLock의 Yield부분이 헷갈려 질문 드립니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

public void WriteLock() { int desired = (Thread.CurrentThread.ManagedThreadId << 16) & WRITE_MASK; while (true) { for (int i = 0; i < MAX_SPIN_COUNT; i++) { if (Interlocked.CompareExchange(ref flag, desired, EMPTY FLAG) == EMPTY_FLAG) { return; } } Thread.Yield(); } } 이코드에서 MAX_SPIN_COUNT까지 시도 해보고 Thread.Yield()로 다른 쓰레드에게 양보한다고 이해하고 있는데 여기서 다시 while(true)로 인해 또다시 반복해서 문을 두드리면 굳이 Yield()를 하는 이유가 무엇인지 모르겠습니다.

  • C#
  • unity
  • 네트워크
김동찬 댓글 1 좋아요 0 조회수 278

putty 접속 불가

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

제가 원래 사용하던 PC에서 작업을 하다가 메모리가 부족해서 다른 PC로 옮겼는데 전에 쓰던 PC에서는 나오지 않던 오류가 나오면서 putty에 접속이 되지 않고 있습니다 혹시 이것은 어떻게 해야 해결할 수 있을 까요? 답변 기다리겠습니다.

  • 네트워크
  • linux
  • docker
202033043 댓글 1 좋아요 0 조회수 441

오토스케일링 scaleup 설정에 관한 질문

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

강사님, 안녕하세요!! 저는 오토스케일링을 통해 특정 요일과 특정 시간에만 인스턴스의 유형이 확장되는 스케일업 설정을 하려고 합니다. ec2에 aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-as-schedule-action \ --auto-scaling-group-name aws-web-AS --recurrence "0 21 3" --time-zone "Asia/Seoul" \ --desired-capacity 2 --max-size 2 --min-size 2 --instance-type m5.large 위의 명령어를 입력했을 때 awscli ver2를 설치하라는 메시지가 나타나서 awscli 버전 1을 삭제 후 버전 2를 설치해도 저 명령어가 맞지 않아 에러가 납니다. 생각했던 방법은 1) ec2에 위의 명령어를 주입 후 2) AMI와 시작 템플릿을 생성해서 3) 오토스케일링을 하면 스케일 아웃과 업이 모두 될 줄 알았는데 결과적으로 스케일업이 되지 않았습니다. 구글링과 유튜브에 인스턴스 유형을 스케일업 하는 설정에 대해 찾아보았으나 참고할 수 있는 자료를 찾지 못했습니다. 또 생각한 방법은 클라우드 워치 설정 후 람다로 스케일업 하는 방법을 생각했으나 이건 아직 잘 모르기 때문에 더 찾아봐야 할 것 같습니다. 혹시 제가 말씀드린 방법말고 따로 참고할 자료나 인스턴스 유형을 스케일 업 하는 방법을 알려주셨으면 합니다. 감사합니다!!

  • 네트워크
  • aws
seoj102688 댓글 1 좋아요 0 조회수 262

공부방법관련 질문드려요

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 공부 관련 질문있어서 글 작성해요! 현재 part4까지 들었는데 유니티 part2 부분과 part4 부분이 부족하여 복습하면서 계속 강의를 계속 들을 예정인데 알고리즘/자료구조 공부도 이제 시작하는데 시간 비율을 어느정도로 하는게 좋을지 궁금해서 여쭤보려고 해요 현재는 C# 공부 6 : 코딩테스트 준비 4로 하려고 하는데 C# 공부 비율을 더 늘리는게 좋은지 어떤지 잘 모르겠어서 질문남겨요

  • C#
  • unity
  • 네트워크
요가인 댓글 1 좋아요 0 조회수 410

RPC가 Property Replication 보다 빠른가요?

미해결

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

뜬금없는질문이지만... 1강 32:20 경에 Property Replication이 RPC에 비해 반응속도가 느리다 라고 말씀하셨는데 왜 그런지 간략히 알수 있을까요? 저는 그동안 반대로 알고있었거든요. RPC가 느린줄...

  • unreal-engine
  • 네트워크
  • 언리얼-c++
Peter Han 댓글 1 좋아요 0 조회수 595

AGameState는 어떻게 Connection을 가지고 통신을 하는지 궁금합니다.

해결됨

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

3강 강의를 듣다가 궁금하게 생겼습니다. 일단 저는 다음과 같이 이해하였습니다. '어떤 Actor가 통신을 하려면 Owner를 따라가봤을때 Connection을 소유해야 하며, 일반적으로 Actor 통신 시 Connection을 가지는 PlayerController의 Connection을 이용하여 통신을 진행한다.' 통신에는 RPC, Property Replicate가 속한다고 생각합니다. 그런데, 제가 AGameState에서 Replicate와 RPC를 사용했던 적이 있어서, 이건 어떻게 통신할까? 혹시 서버의 PlayerController가 Owner일까? 궁금했습니다. 그래서 다음과 같이 AGameState의 HandleBeginPlay에서 람다로 충분한 시간을 준 뒤 Owner를 출력해보았으나, void AABGameState::HandleBeginPlay() { AB_LOG(LogABNetwork, Log, TEXT("%s"), TEXT("Begin")); Super::HandleBeginPlay(); AB_LOG(LogABNetwork, Log, TEXT("%s"), TEXT("End")); FTimerHandle handle; GetWorld()->GetTimerManager().SetTimer(handle, [this]() { AB_LOG(LogABNetwork, Log, TEXT("Owner : %s"), *Owner->GetName()); }, 10.f, false); } Owner 접근 시 크래시가 나는것을 확인하였습니다. 그렇다면, AGameState는 어떻게 Connection을 사용할 수 있는 것인가요? 제가 잘못 이해한 것일까요? 특별한 Connection을 가지는 Actor가 따로 있나요? 아니면 AGameState가 자체적으로 Connection을 가지게 되나요? 혹시 이후 강의에 다루는데 제가 아직 3강까지 밖에 안 봐서 모르는 것일까요..?

  • unreal-engine
  • 네트워크
  • 언리얼-c++
상병 댓글 1 좋아요 0 조회수 433

라우팅 테이블 추가 후 바로 ping이 안되는 원인

해결됨

20년 경력자의 알기 쉬운 컴퓨터네트워크

안녕하세요. 수업 들으면서 궁금한 점이 있어서 질문을 남겨놓습니다. RIPv1, RIPv2 강의 중에 라우팅 설정이 끝나도 처음 한번은 ping이 안될 수 있다고 말씀해주셨는데, 어떤 사유로 처음에 안되는 건지 알 수 있을까요?

  • 네트워크
  • 프로토콜
황규강 댓글 1 좋아요 0 조회수 525

라우터와 게이트웨이의 차이

해결됨

외워서 끝내는 네트워크 핵심이론 - 기초

안녕하세요 강사님 지금 네트워크 영상 기초 강의들을 계속해서 보고있습니다 보던 중에 라우터가 데이터 패킷 전달을 위해 최적의 경로 설정을 해주는 L3 스위치라고 들었습니다 그리고 게이트웨이도 데이터 전달 과정에서 택배기사 같은 역할을 하며 라우팅을 한다고 들었는데요, 이 둘의 정확한 차이점을 혹시 알 수 있을까요?

  • 네트워크
  • 프로토콜
davidkjcy 댓글 1 좋아요 0 조회수 823

Listen Server 실행 시 StandAlone 로그가 찍히지 않습니다.

미해결

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

현재 개발 환경은 Rider IDE에, UE 5.3.1 사용중입니다. 32:00 쯤에 Play As Listen server + 뷰포트에서 실행 으로 실행 시 StandAlone으로 먼저 실행이 된다고 하셔서 그대로 따라했는데 저는 Server로 된 로그만 나옵니다. 5.3에서 변경 사항이 있는 것일까요? 아니면 제가 세팅을 잘못한 것인가요? 혹시 제가 잘못 따라쳤나 싶어서 제공해주신 브랜치에서 다운로드 후 실행 해보았는데도 같았습니다. 새로운 Client들을 계속 추가해도 GPlayInEditorID가 계속 0으로 들어오는데, 혹시 이것도 관련이 있을까요?

  • unreal-engine
  • 네트워크
  • 언리얼-c++
상병 댓글 2 좋아요 2 조회수 902

send 과정에서 멀티스레딩에 관한 질문입니다

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

//양질의 수업 감사합니다. 데이터를 보내는 과정은 수업에서 크게 send() // 데이터를 큐에 넣고 보내는 사람이 없으면 직접 보냄 register_send() // 비동기로 send 실행 on_send() // 데이터 전송 후 콜백 함수 총 3가지 과정입니다 근데 여기서 lock 경합 상태를 방지하기 위해 누군가가 보내고 있으면 큐에 데이터를 넣기만 하고 다른 일을 하러 가고 실제로 보내는 스레드는 단 1개로 설계한 것처럼 보이는데 큐에 데이터를 넣는 과정도 lock 안에 있어서 데이터를 보내는 스레드가 일을 마칠 때까지 큐에 데이터 못 넣고 대기 상태에 빠지지 않나요? 그래서 결국엔 lock 경합을 예방하는데 도움이 되는지 궁금하네요 뭔가 send_queue 이 자원은 object key를 따로 만들어서 딱 이 녀석만 상호배제해야 할 것처럼 생각이 드네요

  • C#
  • unity
  • 네트워크
우웅 댓글 1 좋아요 5 조회수 466

꼭 Item() 생성자를 수정해야 하나요?

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

단순히 Weapon() 안에서 itemType = IT_Weapon;을 써주면 안되나요? Weapon::Weapon() { switch (_rarity) { case IR_Normal: _damage = 1 + rand() % 5; break; case IR_Rare: _damage = 1 + rand() % 7; break; case IR_Unique: _damage = 1 + rand() % 10; break; } itemType = IT_ Weapon; }

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
김성범 댓글 1 좋아요 0 조회수 322

도커 적용 과정

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

제가 현재 docker의 기능을 사용해서 졸업 프로젝트를 배포로 마무리 하려고 합니다. 현재 저는 팀원을 통해 branch를 따서 받은 docker 파일을 가지고 있습니다. 이것을 docker compose와 nginx를 사용하여 배포를 마치려고 하는데 파일을 docker 컨테이너로 만드는 과정이 몇 강에 소개 되었는지 기억이 나질 않습니다. 저희의 같은 팀원이 만들어 놓은 서버 구상도 인데 git 에서 받은 파일로 배포를 적용하는 방법을 모르겠어서 질문 드립니다.

  • 네트워크
  • linux
  • docker
202033043 댓글 1 좋아요 0 조회수 379

site-to-site 실습 관련 질문입니다.

미해결

AWS Certified Advanced Networking - Specialty 자격증 준비하기

VPN 연결 생성에서 IP 주소를 on-prem 퍼블릭 주소를 넣으셨는데 Public IP 대신 NAT 아이피를 넣어도 되는건가요 ?? 감사합니다.

  • 네트워크
  • aws
song.sh 댓글 1 좋아요 0 조회수 321

비동기 함수와 lock 의 관계에 대한 질문입니다

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

lock(key) { bool pending = recvAsync() if(pending == false) //콜백 함수 } 이런 상황에서 비동기 함수가 pending == true면 흐름이 끊긴다고 할까요? 대기 중인 상태 랄까요 어쨋든 이런 상황에서는 다른 스레드가 lock 안으로 들어올 수 있나요?? 질문을 다시 정리하면 스레드 1이 위의 코드에서 pending 이 true 인 상태면 lock 을 빠져나가서 스레드2가 lock 안으로 들어 올 수 있나요 아니면 스레드가 1 이 lock 안에 계속 있는 판정이라서 스레드2 가 lock 안으로 들어올 수 없나요??

  • C#
  • unity
  • 네트워크
우웅 댓글 2 좋아요 0 조회수 492

라우터가 아니여도 서브넷 마스크가 필요한 이유가 뭔가요?

미해결

외워서 끝내는 네트워크 핵심이론 - 기초

CMD창에 ipconfig를 해보니 제 노트북도 서브넷 마스크가 존재하던데, 라우터라면 서브넷 마스크로 네트워크ID와 호스트ID를 통해 적절하게 포워딩해야 하기에 서브넷 마스크가 필요할거라 생각하는데 제 컴퓨터는 라우터가 아님에도 가지고 있는 이유가 궁금했습니다. 검색해보니 서브넷 안에서 요청이 오갈때는 라우터를 거치지 않고, 이 때 서브넷 마스크를 사용한다고 하더라고요. 그런데 이 경우 저의 IP와 서브넷 마스크는 존재하지만 목적지에 대한 IP만 존재할 뿐 이에 대한 서브넷 마스크는 존재하지 않는데 어떻게 같은 서브넷에 있는 호스트임을 판단하는지 이해가 안됩니다. 질문을 요약하면 서브넷 마스크를 라우터가 아님에도 갖고 있는 이유는 서브넷 통신을 하기 위함인 것이 맞나요? 만약 서브넷 통신임을 라우터가 아닌 출발 호스트가 판단하는 것이 맞다면 목적지 서브넷 마스크는 모르는데 어떻게 같은 네트워크임을 판단하나요?

  • 네트워크
  • 프로토콜
khjung1654 댓글 1 좋아요 0 조회수 643

"board에 쓰는 동안 버퍼 오버런이 발생했습니다"

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

안녕하세요 달팽이 문제를 푸는데 답은 잘 나옵니다 그런데 SetBoard함수의 board[y][x] = i 이 부분에서 "board에 쓰는 동안 버퍼 오버런이 발생했습니다"라는 경고가 나옵니다 이러한 경고가 왜 뜨는지와 이 경고를 해결하려면 어떻게 코드를 수정해야 하는지 알 수 있을까요? 코드링크: http://boj.kr/d69d82f1e84c49da942ec7948ab48529

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
toyboy0113 댓글 2 좋아요 0 조회수 943

스토리지 게이트웨이를 사설망으로 구성할 수 있나요?

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

안녕하세요. 수업 잘 듣고 있습니다. 다이렉트 커넥트로 연결된 폐쇄망에서 스토리지 게이트웨이를 사용할 수 있을지 궁금합니다. https://docs.aws.amazon.com/filegateway/latest/files3/gateway-private-link.html#create-vpc-endpoint 사설망으로 구성된 VPC에 VPC 엔드포인트를 만들어서 연결할 수 있는 것처럼 보이는데 공용ip 설정하지 않고 온프렘과 S3를 스토리지 게이트웨이를 거쳐서 다이렉트 커넥트로 연결할 수 있는 건지 궁금합니다.

  • 네트워크
  • aws
llleah 댓글 1 좋아요 0 조회수 230

Lock-Free Stack #3에서 질문이 있습니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

IncreaseHeadCount 부분에서 CountedNodePtr newCounter = _oldCounter 를 해주는데 newCounter 같은 경우 지역변수이기 때문에 애초에 경합이 발생할 수 없지 않나요? int 변수를 공유하는 것도 아니고 완전히 새로운 지역 변수이기 때문에 좀 이해가 안됩니다. 오히려 oldCounter를 바꿔주기 위해서 head.compare _exchange_strong을 하는거 아닌가요?

  • 네트워크
  • MMORPG
  • windows-server
TH B 댓글 1 좋아요 0 조회수 447

실전문제풀이6 8번

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

기본 db 인스턴스가 대충 뭔지는 알겠어요. 복제본들의 원본인거 같아요. 근데 단일 db 인스턴스는 무슨 차이가 있나요? 단일 db 인스턴스로 생성하면 db 인스턴스 클러스터는 생성되지만 복제본이 만들어지지 않나요? 단일 db 인스턴스와 기본 db 인스턴스는 복제본 및 오프로드 차이 뿐인가요?

  • 네트워크
  • aws
고태동 댓글 1 좋아요 0 조회수 309

인기 태그

인프런 TOP Writers

주간 인기글