다음으로 에 나오는 자료는 어디서 다운받나요?
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
소개에 나오는 자료는 강의자료밖에 안보이고다음으로 영상에서 사용하시는 자료는 어디서 받을 수 있는지 궁금합니다
- 네트워크
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
소개에 나오는 자료는 강의자료밖에 안보이고다음으로 영상에서 사용하시는 자료는 어디서 받을 수 있는지 궁금합니다
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
public void Init(IPEndPoint endPoint, Action<Socket> OnAcceptHandler) { _acceptHandler += OnAcceptHandler; _listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _listenSocket.Bind(endPoint); _listenSocket.Listen(10); SocketAsyncEventArgs e = new SocketAsyncEventArgs(); e.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted); RegisterAccept(e); } void RegisterAccept(SocketAsyncEventArgs e) { e.AcceptSocket = null; bool pending = _listenSocket.AcceptAsync(e); if (pending == false) OnAcceptCompleted(null, e); } 이 코드에서 RegisterAccept안에 pending이 false일 때 OnAcceptCompleted를 호출하는 코드를 보여주셨는데 이미 SocketAsyncEventArgs.Completed에 콜백 함수 넣어줘서 자동 처리 되는거 아닌가요?? 실제로 저렇게 함수를 재호출해주는 코드를 빼봐도 정상 작동되는것 같았습니다. 이중으로 함수 호출하시는 이유가 뭔지 궁금합니다!
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
/members?q=100 가 나은건지 /members/100 이 나은건지 각각의 적절한 사용 방법이 궁금합니다
해결됨
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
캐릭터에 붙어있던 플레이어 컨트롤러나 AI 컨트롤러는 캐릭터가 삭제되고 리스폰 됐을 때, 자동으로 다시 같은 인스턴스가 붙나요??? 플레이어 스테이트도 캐릭터마다 하나씩 붙어있는 걸로 알고 있는데요. 이것 역시 그대로 사용하나요?
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요. 강의 정말 잘 듣고 있습니다. 처음에는 단순 게임 서버를 구현하는 강의라고 생각했는데, 이론으로만 보던 CS, 네트워크 지식을 직접 구현해보면서 하니 기본기 다지는데 정말 도움이 되네요. 그리고 꽤나 자바와 같은 모던 언어를 사용하다보니 깊게 생각하지 않던 부분도 고민할 수 있는 최고의 강의인것 같습니다. 질문으로 돌아가서 비트 마스크를 사용하는 이유가 C# 에서 원자적 연산을 제공하는 Interlocked 클래스 함수의 파라미터 때문인가요? 처음에는 writer, reader를 체크할 수 있는 클래스 변수를 따로 만들면 되지 않을까? 라고 생각했는데 그렇게 되면 if, if 이런 조건문이 계속 들어가서 원자적 연산이 어려워 져서 그런가요?(별도로 락이나 모니터로 잡을 수 있지만 가독성 측면에서도 그렇고, Interlocked가 표준화 되어 있기 때문에 저렇게 사용하나? 추측합니다.) 몇개의 질문을 살펴보니 비트마스크와 Interlocked의 CompareExchange의 조합이 강력하네요. 지금 강의는 언어 레벨에서 지원하는 읽기 쓰기 락 동작 원리를 보여주신 것인데 실제 프로덕션 코드에서 사용하려면 락 타임아웃 같은것도 구현해야하나요? 생각해보면 어떠한 경우에 읽기 락이 많이 쌓이고 해제하지 못한 경우일 때 쓰기락에 대기시간이 길어지니 일정 시간 후 락 해소를 시켜줘야 하나 궁금하네요.
해결됨
외워서 끝내는 네트워크 핵심이론 - 응용
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예전에 DHCP를 공부하면서 각 네트워크마다 ISP별로 DNS를 관리하고 있고 Host는 DHCP를 통해 해당 DNS의 IP위치를 알게된다고 이해했습니다. 그럼 GSLB를 하려는 업체는 각 ISP업체마다 DNS에 도메인을 올려달라고 요청을 해야하는건가요? 또한 가비아같은 도메인 업체들은 그런 작업을 대리해주는 역할을 하는 건가요? DNS에 찾아보니 꼭 ISP뿐만 아니라 기업이나 개인 또한 DNS서버를 만들 수 있다는데 그럼 DHCP를 통해 DNS서버의 위치는 설정할 수 없어 다른 사람들은 사용 못하는 것 아닌지 궁금합니다.
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
1명의 움직임을 100명에게 패킷으로 보내려면 Session 이 가진 버퍼를 100명에게 보내면 될 것 같아서... 왜 위 경우에 하나만 만들어서 100명에게 보낼 수 없는지 궁금합니다.
미해결
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
위와 같은 현상이 왜일어나는지 아시나요? 같은 색으로 하면 괜찮습니다.. 색은 변경할때 반칸씩 밀려 겹쳐 보이네요.. 간단한 코딩 아래첨부합니다.. #include <iostream> int main() { int temp = 0; for (int y = 0; y < 25; y++) { for (int x = 0; x < 25; x++) { temp++; //단일색 안밀림.. //SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 1); //색변경시 밀림.. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), temp % 3 == 0 ? 1 : 2); cout << "■"; } cout << endl; } } 환경은 윈도우 11입니다.
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
public void WriteUnlock() { int lockCount = --_writeCount; if (lockCount == 0) Interlocked.Exchange(ref _flag, EMPTY_FLAG); } 위의 코드에서 lockCount 지역변수를 만들어주신 이유가 따로 있으신지 궁금합니다! writeCount는 어차피 WriteLock을 잡은 애만 쓰는 변수라고 이해했는데, 그러면 writeCount-=1; if(writeCount==0) 이렇게 써도 괜찮지 않을까라는 생각이 들었습니다! 너무 사소한 질문인 것 같은데, 열심히 듣다가 궁금해져서 질문드립니다ㅠㅠ
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
루키스님 안녕하세요? 지난 질문 답변을 아직 못받아서 재질문 드리게 되었습니다. 인프런 AI가 답변을 남겨서 일까요? 아님 제 질문에 실수가 있었을까요? 후자의 경우라면 좀 더 신경쓸 수 있도록 하겠습니다 https://www.inflearn.com/questions/1126711/%EC%9E%A1%ED%81%901-2%EB%A5%BC-%EB%93%A4%EC%9C%BC%EB%A9%B0-%EC%A7%88%EB%AC%B8%EC%9D%B4-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4-push-%ED%81%90%EB%A1%9C%EC%A7%81-send-%EC%9D%98-%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84-%EA%B4%80%EB%A0%A8
미해결
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
요즘에도 답 달아주시는지 궁금하네요.ㅎㅎ DoGlobalQueueWork()랑 JobQueue::Execute()에서 LEndTickCount를 검사하는데 굳이 DoGlobalQueueWork()에서도 검사해야 할 특별한 이유가 있을까요?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendAsync를 상위 참조에서 lock을 사용하여 관리하고 있습니다. 이러한 상황은 일반 Send를 사용하는 상황과 마찬가지로 비동기화의 강점을 이용하지 못하는 상황아닌가요?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
bool pending = _listenSocket.AcceptAsync(args); if (pending == false) OnAcceptCompleted(null,args); 해당 코드는 _listenSocket.AcceptAsync(args); 에서 이미 call back 함수를 사용하여 해당 비동기 작업이 실행될 때 까지 기다린 다음 위에서 정의해준 call back 함수인 OnAcceptCompleted를 호출하는 것으로 이해하고 있습니다. 그런데 굳이 return을 bool형인 peding으로 받아 보류인지 아닌지 확인하여 바로 peding이 false이면 직접적으로 OnAcceptCompleted 함수를 호출할 필요가 있는가 하는 의문이 들었습니다. 이는 멀티 쓰레드 상황을 대비한 사항인가요? 보류를 확인하여 바로 통과 하였다면 직접적으로 함수를 호출하는것은 속도 측면의 이유에서 추가하는 것인가요? 그렇지 않다면 굳이 if(pending == false) OnAcceptCompleted(null, args); 부문을 해당 코드에서 삭제해도 무관하지 않을까 하는 궁금증이 생깁니다.
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 너무 잘 듣고 있는데 궁금한 부분이 생겼어요.. 실제로 소켓 라이브러리를 통해서 TCP/IP에서 가상연결 ? 의 느낌으로 3Way HandShaking이 일어난다고 말씀 하셨는데 그렇다면 1. 구글 서버와 연결 하기 위해서 실제로 TCP/IP 계층의 패킷들이 만들어져야 하는데 거기서 세그먼트는 전송데이터(HTTP 메세지)는 빠지고 출발지, 목적지의 IP,PORT 들만 가지고 만들어져서 아래계층으로 헤더들을 추가해서서버랑 connetion 이 되는건가요 ? 좀 더 부가적으로 설명하자면 전송데이터(HTTP 메세지)만 빠진 데이터들이 예를 들어 다시 밑으로 전송계층 -> 인터넷계층 -> 네트워크 계층으로 하나씩 감싸져서 상대 서버에 도착 후 3Way HandShaking 이후 connetion 이후 다시 소켓이나 혹은 애플리케이션 계층으로 돌아 전송데이터(HTTP 메세지)를 가지고 다시 차례대로 계층으로 헤더들이 다시 추가되어서 실제 데이터가 전송되는 지 너무 궁금해요.. (전 먼저 Connetion을 위해 HTTP메세지 없이 캡슐화 해서 보내고, Connetion 이후 다시 역캡슐화로 윗 계층가서 헤더 추가하고 다시 캡슐화 하고 보내는 걸로 이해했어요) 그렇다면 가상연결의 느낌이랑 다른 거 같아서.. 가상연결은 TCP/IP에서 소켓 라이브러리를 통해 바로 연결되는 느낌인데 이론상 물리계층으로 데이터가 전달될텐데 이게 가능할 거 같진 않아서 헷갈려요 ㅠㅠ
해결됨
외워서 끝내는 네트워크 핵심이론 - 응용
안녕하세요 널널님, 강의 잘 듣고 있습니다. 다름이 아니라 routing table과 iptable의 차이에 대해 의문이 생겨 질문을 남깁니다. 둘 다 패킷을 수정하여 ip:port 를 변경시켜주는, 일종의 nat를 수행하는 것 같은데 둘의 차이는 무엇인가요..? NAT table은 NAT 장치에 있는 routing table을 의미하는 것인가요?
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요 업무가 늘어서 강의를 수강하기 어려워졌습니다.. 강의 연장을 부탁드려도 될까요?
해결됨
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
저는 코드를 똑같이 따라 했다고 생각했는데 오류가 납니다. 파일 올려주신다고 했는데 어디서 다운 받을 수 있나요? https://youtu.be/7Tk8ocwMO7Q
미해결
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C++하니까 스택이고 힙이고 참조고 이해가 됩니다 진짜 왜 C#을 먼저했을까요? 감사합니다
해결됨
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
hash_map 같은 경우 그럼 큰 공간을 미리 할당해 놓고 할당된 공간 안에 key값을 기준으로 value 값을 채워 넣어 준다.그럼 예를 들면 map.reserve(100);과 같은 개념일까요??메모리를 희생하여 CPU 연산 속도를 올린다는 의미가 reserve : 큰 공간을 미리 할당(메모리 희생) 이사비용 감소 (미리 큰 공간을 할당하여 사용하므로 new ...() 과 같은 동작을 안해도 되므로) -> CPU 연산 속도 증가? 이러한 의미로 이해했는데 제가 이해한바가 맞는지가 궁금합니다. key값을 알면 빠르게 찾을 수 있다. -> map은 이진 탐색 O(logN)으로 찾지만, hash_map은 hm[key] O(1) -> m[key]도 가능하지 않나요? 그럼 map도 키 값을 알면 O(1) 즉 빠르게 찾을 수 있게 되는 건가요? hash 기법을 이용해서 key값을 추출하는 이유가 보안 때문인건가요?메모리를 늘릴 수 록 성능이 좋아지는 의미가 키 값이 겹쳐질 확률이 적어져서 성능이 좋아지는 건가요? -> 키 값이 겹치면 빈 공간을 찾아 가야하니
미해결
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
안녕하세요. 유니티를 다루다가 언리얼을 공부하고자 해당 강의 구매 후 시청 전에 질문 드릴 것이 있어 남깁니다. 유니티로 게임 로직을 구현할 때 경험상 씬(언리얼에서는 레벨이라고 하는 것 같습니다)을 통해 간단하게 로그인씬->로비씬->인게임씬의 로직으로 게임이 구현되는데요. 강의 내용의 서버는 인게임씬에 해당하는 것인지 로그인씬, 로비씬 같은 것도 구현이 가능한 것인지 궁금합니다. 인게임씬에 해당하여 다른 씬은 따로 구현해야한다면 1강이나 2강을 보면 도움이 될 지도 궁금합니다. 감사합니다.