inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

queue의 데이터 이외의 공간?

미해결

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

MemoryPool에서 queue나 vector을 사용하면 데이터 뿐만 아니라, 데이터를 담아두기 위한 공간 이 별도로 할당된다고 하셨습니다. 이 별도의 공간이 무엇인지 잘 모르겠습니다.

  • 네트워크
  • MMORPG
  • windows-server
akrhwkwk 댓글 1 좋아요 0 조회수 408

sleep_for과 yield 차이 질문드립니다.

미해결

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

안녕하세요! 멀테스레딩 강의(Lock 구현 부분) 수강 중에 제가 제대로 이해가 안 가는 부분이 있어서 질문드립니다. 구체적으로 강의 코드에서 sleep_for와 yield의 내부적 동작?을 저는 yield(): lock이 잠겨있는 경우, system time slice에 상관없이 바로 context switching이 발생해, 해당 스레드가 다시 운영체제 스케줄링 큐에 들어가 운영체제가 다시 실행시켜 줄 때까지 대기 sleep_for(n): lock이 잠겨있는 경우, yield와 마찬가지로 컨텍스트 스위칭이 바로 발생하는데, n시간동안 해당 스레드가 sleep thread 큐에 저장되어 있다가, 그 다음에 스케줄링큐로 들어가서 이후에 다시 실행될때까지 대기 이해했는데, 이게 제대로 이해한게 맞을까요? 특히 sleep_for의 동작이 이해가 잘 안가는데, 스택오버플로우에서는 https://stackoverflow.com/questions/17325888/c11-thread-waiting-behaviour-stdthis-threadyield-vs-stdthis-thread sleep_for(n)의 경우 최소 n시간 이상을 block한다는데, 해당 스레드가 블록되었다는 말이 컨텍스트 스위칭이 되어있다는걸까요? 또 sleep thread queue는 운영체제에서 관리하는 개념일까요? (제대로 이해를 못해서 질문이 두서 없는 점 죄송합니다....)

  • 네트워크
  • MMORPG
  • windows-server
Grid 댓글 1 좋아요 0 조회수 912

메모리 릭이 쌓이고 있는지에 대한 체크

미해결

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

안녕하세요 선생님 유니티 클라, C++ 서버로 탑뷰 슈팅게임을 만들고있습니다. C++서버가 종료됐을때 메모리 릭이 남는것이 아닌 프로그램이 가동중에 유저, 총알등이 삭제되고 생성되면서 계속해서 릭이 쌓이고있는지 확인하고 싶은데 방법이 있을까요? 선생님이 알려주신 메모리기법들은 적용하지 않았습니다. (알려주신것들을 최대한 공부하고 이해는 했기 때문에 어떻게든 써먹을수있겠지만 적용하지 않은 이유는 제가 감당할수없기 때문입니다. 문제가 생겨 필요한 상황이 나왔을때 그때 구현해볼 생각입니다. 사용하는 부분들도 있습니다. 버퍼관리라던지...)

  • 네트워크
  • MMORPG
  • windows-server
먹물크림빵 댓글 1 좋아요 0 조회수 542

클라이언트 프로그래머 커리어 고민

해결됨

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

안녕하세요 루키스님! 저는 4년차 유니티 클라이언트 프로그래머입니다. 강의 항상 잘 보고 있습니다! 최근 여러 일을 병행하시느라 바쁘신것으로 알고있는데 이런 질문 드려 죄송합니다. 꼭 답변해주지 않으셔도 괜찮습니다! https://www.inflearn.com/questions/680598/%ED%81%B4%EB%9D%BC%EC%97%90%EC%84%9C-%EC%84%9C%EB%B2%84-%EC%A0%84%ED%96%A5 저도 이 글에 질문자분처럼 유니티로 커리어를 시작했고 4년차가 되었고 비슷한 이유로 유니티쪽 프로젝트에 신물이 난 상황이라 언리얼 클라이언트 혹은 게임 서버 프로그래머로 전향을 생각하게 되었습니다. 저 질문자분처럼 서버 학원을 다닐 생각은 아니지만 퇴근후에 짬짬히 언리얼이든 서버쪽이든 공부해 이직을 하고 싶은데 루키스님은 저 질문글에서 서버쪽보다는 언리얼 클라이언트로의 전향을 추천해주셔서요. 같은 클라이언트지만 언리얼 경력이 없다보니 이직을 하더라도 유니티 경력을 온전히 인정받지는 못할것같은데 언리얼 클라이언트쪽을 추천해주신 이유를 알 수 있을까요? 사실 질문자분이랑 엄청 비슷한 상황이고 언리얼이든 서버든 기초는 있는 상태입니다. 둘다 흥미는 있지만 뭔가 서버쪽이 MMORPG에 서포터(힐러)처럼 좀 더 대우받는것같고 큰 기업쪽에 취업이 쉬울것같다는 인상때문에(+ UI 안해도되는) 서버쪽에 마음이 가는데 조언 부탁드립니다 ㅠㅠ

  • MMORPG
  • windows-server
  • network
HMiso 댓글 2 좋아요 0 조회수 1290

Lock-Based Queue 병목현상 질문 드립니다.

미해결

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

Lock-Based Queue를 제작하여 테스트를 할 때 waitPop을 사용할 경우 sleep을 지우고 디버깅을 해보면 Queue 사이즈가 무한정으로 늘어납니다. Push를 한 번 Pop을 2번 돌려도 마찬가지입니다. 실제 스레드에서 사용할 시에는 sleep을 사용하지 않고 while문으로 돌리게 될텐데, wait를 쓰면 이렇게 병목현상이 발생하는 걸까요? 이 현상을 해결할 방법은 없나요?

  • network
  • MMORPG
  • windows-server
dxedu1 댓글 1 좋아요 0 조회수 619

할당 범위? 오류? 질문 있습니다. 메모리 매니저 생성자 부분

미해결

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

강의영상 23;29초을 보면 두 번째 루프가 1024부터 시작함 0~1024바이트까지는 32바이트 단위로 증가 1025~2048바이트 까지는 128바이트 단위로 증가 즉 1025바이트가 필요하면 1024+128바이트의 메모리 풀에서 메모리를 가져다 쓴다(메모리 매니저의 pools의 1025번지는 1024+128단위로 할당되는 메모리 풀을 가리킨다.) 로 의도하셨다고 생각이 듭니다. 하지만 size=1024로 대입하는 구문을 빼면 size=1024+32 부터 시작합니다. 따라서 사용자가 1025바이트가 필요로 하면 메모리 매니저의 pools의 1025번지에는 1024+32바이트의 메모리풀에서 pop해서 사용할 것 같습니다. 의도했던것에서 값이 밀렸기에 3번째 루프에서 size는 2080에서 시작하고 2080 > 2336>2592 >...>3872 > 4128루프탈출 그렇기에 3873~4096번지까지는 NULL이들어갑니다. 루프시작시에 1024, 2048부분이 들어가야 할 것 같습니다.

  • 네트워크
  • MMORPG
  • windows-server
  • windows-server
  • MMORPG
  • network
장계탕 댓글 1 좋아요 1 조회수 776

MemberJob 생성자 부분에서 에러가 발생해 질문드립니다.

미해결

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

아래 질문을 올리신 분과 동일한 문제인데 아래처럼 에러가 발생합니다. 강의 중간에 std::apply( )를 사용하기 위해 c++ 17로 변경하셨고, c++17 이전 버전에서 동작하기 위한 xapply 코드를 작성하셨습니다. 저의 생각으로는 std::apply( )를지원하지 않는 이전 버전에서 동작하기 위함이니까 저의 원래 환경인 c++14로 변경해서 빌드를 진행하니 에러가 발생합니다. 일단 다시 c++17로 변경해서 진행해보니 에러는 발생하지 않는데 강의에서 설명하신 코드(MemberJob)가 c++17 이전 버전에서는 동작하지 않는 것인가요?

  • 네트워크
  • MMORPG
  • network
  • windows-server
  • MMORPG
박동혁 댓글 1 좋아요 0 조회수 570

LIst<구조체> 형태의 패킷을 보내는 방법이 있나요?

미해결

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

List<구조체> 형태를 패킷으로 보낼려고 하는데 BufferWriter부분에서 List<구조체> 데이터를 쓸때 엑세스 위반의 오류가 나오게 됩니다. List<구조체> 형태의 패킷을 보내는 방법이 있나요?

  • 네트워크
  • MMORPG
  • network
  • MMORPG
  • windows-server
gamecoding 댓글 2 좋아요 0 조회수 912

IOCP 서버 연동 강의 출시 및 프로그래밍 커리큘럼 관련 문의를 드립니다.

해결됨

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

안녕하세요. ROOKISS강사님. 강사님의 c++ 과 서버 강의에 연일 감동을 받으면서 공부중인 퇴사한 직장인 취준생입니다. 사실 저는 학부는 전자과를 나와서 대학원을 정보보안쪽을 나왔으나 프로그래밍에 대한 콤플렉스가 있었습니다. c언어 f학점을 받고 프로그래밍과는 담을 쌓았던 웃지못할기억이 있습니다. 그러나 직장을 6년 다니면서 문서작업업무를 주로 하면서 개발을 모르면 it에서 성장하는데 한계가 있음을 느끼고 직장정치등의 여러 사정에 과감히 퇴사를 결심하고 다시 취업을 준비중입니다. 개발역량을 키우고자 프로그래밍 공부를 하던중 강사님 커리큘럼을 알고 주저없이 신청하게 되었습니다. 제가 개발실력은 많이 형편 없지만 강사님의 서버커리큘럼을 보고 우선은 서버 커리큘럼은 무조건 다 뛰고 강사님께서 설명하신 내용을 제가 안보고 코드를 짤 수 있는 역량을 기르기로 마음먹은 상태입니다. 궁금한 점은 제목과 같이 다음과 같습니다. iocp서버 연동강의 출시일 대략 일정은 어떻게 될까요? 강사님의 c++과 c# 서버 커리큘럼외에 c#웹개발/DB도 들을 생각입니다. 혹시 추후에 C++로 웹개발이나 DB, 프레임워크와 같은 강의도 출시 계획이 있으신지와 있다면 대략적인 일정이 궁금합니다. WINAPI의 경우 나온다면 언제쯤 출시하실 계획이신지 궁금합니다. 강사님이 만일 어떤 후배가 게임분야가 아니더라도 이건 꼭 공부하면 좋겠다 하시는 분야나 내용이 있다면 추천좀 부탁드립니다. 저는 이 강의 이외에 리눅스시스템 프로그래밍과 컴파일러도 만들어볼 계획을 갖고 있습니다. 실천을 당연히 할 준비는 되어 있습니다. 프로그램과 담을 더이상 안쌓기로 맘 먹었기에 용기내서 길을 가보고자 합니다. 좋은 강의 출시 많이 부탁드립니다. 역량을 키워서 게임분야나 그곳이 아니더라도 IT에서 통할 수 있는 인재가 되어보고자 합니다. 바쁘시겠지만 일정을 알려주시면 감사하겠습니다. 좋은 컨텐츠 너무 감사드립니다.

  • 네트워크
  • MMORPG
  • MMORPG
  • windows-server
  • network
solutionism 댓글 1 좋아요 0 조회수 679

IOCP 핸들러 질문 드립니다.

미해결

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

처음에 CreateIoCompletionPort 함수를 통해 INVALID_HANDLE 을 주며 IOCP 핸들 만드는 것에 대한 질문입니다. 강의에서는 한개의 IOCP 핸들이 모든 요청을 처리 하는것으로 보이는데 단편적인 예로 아래와 같이 AcceptEx 를 담당하는 IOCP 핸들 1개 Send/Recv 를 담당하는 IOCP 핸들 1개 이처럼 각자 다른 IOCP 핸들이 해당 오퍼레이션만 담당하게 설계 할 수 있을까요 ? 이렇게 설계한다면 문제점이 있을까요 ?

  • 네트워크
  • MMORPG
  • network
  • windows-server
  • MMORPG
An Jungmo 댓글 1 좋아요 0 조회수 336

연산자 질문

미해결

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

그 인벤토리와 관련된 예시를 드실 때 (순환 x 예시) 인벤토리의 생성자와 소멸자를 호출해본 결과 k1 = nullptr 후에도 인벤토리의 소멸자가 호출이 안되더라구요 k1->inventory = new Inventory(k1) 이부분에 관련해서 분석을 진행하고 있는데 new Inventory(k1)에서 인벤토리의 ref 카운트 1 증가. (refcountable 규칙에 의해) InventoryRef _inventory = new Inventory에서 이동 대입 연산자로 인해 레퍼런스 증가 x 메인 스레드 종료 후 k1의 소멸자가 호출되고서 멤버 변수도 초기화되는 과정에서 _inventory = nullptr 로 인해 레퍼런스 감소가 되어 소멸자가 출력되어야 하는게 정상 아닌가요? 제가 어느 부분에서 놓친건지 잘 모르겠습니다.. knight의 소멸자에 inv의 레퍼런스 카운트 값을 감소 시키니 inv의 소멸자가 출력됐는데, 어느 부분에서 레퍼런스 카운트 값이 1이 추가로 들어왔는지 못찾겠네요..

  • 네트워크
  • MMORPG
  • MMORPG
  • windows-server
  • network
erfrr 댓글 1 좋아요 0 조회수 457

Lock-Based Stack / Queue 강의 관련 질문입니다.

미해결

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

안녕하세요. 선생님. 항상 좋은 강의 만들어주셔서 감사합니다. 다름이 아니라 강의 영상을 보면 queue의 TryPop(OUT data)와 같이 OUT이 TryPop 함수 다음에 붙어있는데요. visual assist에서 제공해주는 기능인 것인가요? 찾아봐도 C++ 관련 OUT 키워드 문법이 없는 것 같고, 해당 키워드를 입력해도 저는 컴파일이 되지 않아서 질문드립니다.

  • 네트워크
  • MMORPG
  • network
  • windows-server
  • MMORPG
출시아자아자 댓글 1 좋아요 0 조회수 513

Push의 LCurrentJobQueue관련 질문입니다.

미해결

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

현재 JobQ에 Push하는 과정에서 LCurrentJQ를 확인하여 GlobalQ에 넣을지, 스스로 실행할 지를 결정하는 것으로 보입니다. TLS는 각 Thread마다 별개의 주소 공간으로 소유하고 있는 것처럼 동작한다고 이해하고 있습니다. 한 thread에는 실행 흐름이 하나인 것으로 알고 있는데 LCurrentJobQueue가 nullptr이 아닌 상황에서 Push가 발생할 수 있나요? Execute를 실행하는 thread의 LCurrentJQ만 nullptr이 아닐 것 같은데 Execute가 실행 중인 thread라면 Push를 동시에 실행할 수 없을 것으로 생각됩니다. ㅜㅜ

  • MMORPG
  • windows-server
  • network
OliveGr 댓글 1 좋아요 0 조회수 458

SendBuffer Pooling 관련 질문있습니다.

해결됨

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

여기서 다 썼으면 버리고 새거로 교체할 때 교체하지 않고 그냥 Reset만 호출해서 _usedSize를 0으로만 해줘도 되지 않을까 했었는데 WSASend를 호출하는 과정에서 아직 예전 버퍼가 날아가면 안되는 상황이 있기 때문에 새로 할당해준다. 가 맞게 이해한 부분인가요?

  • network
  • MMORPG
  • windows-server
LeafC 댓글 1 좋아요 0 조회수 645

클라에서 서버 전향

미해결

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

안녕하세요 루키스님, 언제나 좋은 강의 감사합니다. 강의와 관련된 질문이 아니라 죄송하지만 따로 여쭤볼만한 곳이 없어 이렇게 질문 드립니다. 저는 4년차 클라이언트 프로그래머입니다. 쥬신 아카데미 출신으로 운 좋게 취업에 성공했지만 어쩌다보니 유니티로 커리어를 시작하게되어 지금까지 유니티 엔진을 사용하는 모바일 게임 프로젝트에서만 일하고 있습니다. 어렸을때부터 주로 온라인게임을 플레이 해왔었고 이직하고 싶은 팀도 MMORPG팀이지만 그런 곳은 주로 언리얼 엔진을 사용하다 보니 이직이 쉽지 않더군요 ㅠㅠ 이러다 평생 모바일 수집형 게임만 만드는게 아닌가란 걱정도 들고 지금 있는 회사보다 좀 더 좋은 회사로 가고 싶다는 생각도 있다 보니 어느 순간 서버에 생각이 닿았습니다. 남의 떡이 더 커보인다는건 알지만 저희 팀에서도 반년째 서버 개발자가 구인이 되고 있지 않고 있다 보니(나름 규모 있는 회사입니다 ㅠㅠ) 더 그런 생각이 들었던 것 같습니다. 여튼 그렇게 루키스님 강의와 시중에 있는 서버 책을 보며 공부도 하고 서버를 연동해 게임도 만들어 보고 있지만 회사 일과 병행하며 전향을 준비하기에는 조금 벅찬감이 있는것같아 퇴직 후 1년정도 학원(프로카데미)을 다닐까 고민하고 있습니다. 1년이 짧은 시간은 아니다 보니 회사 일을 병행하면서 준비를 계속할지 아니면 학원에 들어갈지 망설여지고 있는데 조언 부탁 드립니다 ㅠㅠ 나이는 27살이고 연봉이 높은 편은 아니다 보니 이직 후 신입 연봉을 받게되더라도 크게 아쉬움은 없을 것같습니다..

  • network
  • windows-server
  • MMORPG
댓글 2 좋아요 2 조회수 2904

책 추천 문의드립니다.

미해결

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

우선 좋은 강의 감사합니다. 강의 초반 Modern C++ Design 책 추천을 주셨는데요, 이 외에 추천 해주실 책이 있으신지 문의 드립니다. (개인적으로 추천해주시는 top5책을 알고싶습니다.) 코드를 짜면서 생소한 패턴를 만날때다마 블로그에 떠도는 글을 보면서 알음 알음 알아가고 있는데요, 혹시 이러한 지식들을 체계적으로 쌓고 싶은데, 해당 책 외에 추천 가능하실까요?

  • network
  • MMORPG
  • windows-server
이영호 댓글 2 좋아요 0 조회수 1009

sendQueue 관련 질문입니다.

미해결

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

강의를 들으며 1send + sendQueue를 사용하는 경우의 장점은 1.더 많은 클라이언트를 받을 수 있다. 2.TCP 헤더가 적게 붙어 네트워크상 이점이 있다. 이렇게 생각했습니다. 하지만 실제로 서버를 만들다 보니 동시 send가 불가능해 대부분의 시간을 lock에 소비했고, n send에 비해 동시접속 가능한 클라이언트 수가 줄어들었습니다. 그럼 2번 장점이 확실한가? 궁금해서 wireshark로 확인해 봤을 때 별 차이가 없었습니다. 큐에 넣지 않고 WSAsend를 많이 호출해도 os가 패킷을 뭉쳐 보내는 것 같습니다. 지금 방식의 장점이 궁금합니다.

  • network
  • MMORPG
  • windows-server
박성환 댓글 2 좋아요 0 조회수 464

Memory Pool#2 삭제 Lockfree stack 과의 값 교환 차이가....?

미해결

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

이전에 Lock free stack 에서는 ABA problem 이 발생하지 않는다고 별도로 들고 있었기 때문이라고 하셨는데 이전에도 링크드 리스트 처럼 포인터를 들고 있던 방식이고 현재 이것도 그것과 유사한 방식인데 왜 이전에는 ABA 가 발생하지 않았다고 하는건지 잘 이해가 가질 않네요 이전 lock free stack 에서 삭제 할때의 로직과 크게 달라보이진 않는것 같은데요.. 이전 lock free stack 에서도 ABA Problem 이 발생하지 않나요? 차이점이 명확하게 어떤 부분인지 모르겠습니다.. 답변좀 부탁드려요! Memory Pool#2 시간은 26:55 초에서 정도에서..

  • windows-server
  • MMORPG
  • network
dyl 댓글 0 좋아요 1 조회수 530

C++ ORM 질문드립니다

미해결

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

1 .C++은 EntryFramwork같은 라이브러리가 없을까요? 실무에서는 ORM은 잘 사용하지 않는다고 하셨는데 혹시 사용을 안하는 이유가 있을까요?

  • MMORPG
  • windows-server
  • network
댓글 1 좋아요 0 조회수 1354

강의 수강 후 개인 프로젝트 적용

해결됨

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

수강 후, 대학 동아리 수준에서 내용을 제대로 습득했다는 전제 하 만든 게임과 서버를 연동할 능력을 갖출 수 있나요? 동아리에서 mmorpg를 만들어 보려 하는데 서버를 담당하게 되어 미리 공부하려 합니다.

  • 가벼운질문
  • 게임개발
  • network
  • windows-server
  • 재밌다
  • MMORPG
  • 동아리
Oak0156 댓글 1 좋아요 1 조회수 593

인기 태그

인프런 TOP Writers

주간 인기글