묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
잡큐1, 2를 들으며 질문이 있습니다. (Push 큐로직 + Send()의 시간복잡도 관련)
루키스님 안녕하세요?잡큐 1, 2를 들으며 본 서버 강의 앞부분과 비슷한 내용같은데 차이를 몰라 질문 올리게 되었습니다. 아래 질문들의 제 본질적인 질문은옛날에 만든거 아닌가? 왜 새로 만드지? 뭐가 다른거지?입니다 JobQueue #1 강의 중PacketHandler.cs 수정 중에스레드가 일을 Push할 때 처리 가능한 상황이면 해당 스레드가 처리, 그렇지 않으면 Queue에 Push만 하고 종료, 서버코어의 Session.cs의 Send()가 이미 비슷하게 구현됨이라고 설명해주셨는데, 말씀 그대로 이미 비슷하게 큐로 구현이 되어있어 뭐가 다른거지 생각해보다가아래 그림 플로우 처럼 제가 이해한게 맞는지 궁금합니다. JobQueue #2 강의 중 Broadcast() 로직의 O(N^2)을 O(N)으로 줄이기 위해 패킷 모아보내기 스킬을 소개해 주셨습니다.그런데 강의 앞부분 'SendBuffer'에서 버퍼를 다룰 때RecvBuffer와는 다르게 SendBuffer는 외부에 구현함으로써 O(N^2)을 O(N)으로 줄일 수 있다.라고 이미 말씀해주셨는데요, O(N^2)을 O(N)으로 줄이는 둘의 차이점이 궁금합니다.둘은 완전히 다른 얘기일까요? 만약 그렇다면, 둘 다 그대로 방치했다면 O(N^3) O(2N^2, 표현이 맞진 않지만 느낌상)이 되는 로직이 되는건가요? 답변 미리 감사합니다.수강자 올림
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
API 종속에서 자유로워지기
강의 초반부에 windows.h같은 헤더를 사용하게 되면 추후 바꿔야 될 부분이 많아 표준인 thread를 사용한다고 하셨습니다.강의가 window os기반으로 구성되어 있고, 제가 window os는 잘 사용해 보지 않아 막연한 걱정이 있는데, 그럼 window에서 작동하는 IOCP로 서버 구성시, 추후 리눅스로 옮겨갈때 epoll로 바꿔주는 과정에도 엄청한 자원이 소모되지 않나요? 현업에서는 대부분 window os로 서버를 구성하나요? epoll에 대해서도 꼭 공부가 필요한지, IOCP에 비해 중요도가 떨어지는지도 궁금합니다.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
코어와 쓰레드의 매핑관계가 잘 이해가 가지 않습니다.
10:30부근에 말씀하시는 내용을 들어보면,쓰레드의 개수 = 코어의 개수 일때 가장 이상적이라고 하셨습니다.CPU가 4코어일때 하나의 프로세스(MMO서버)에 4개의 쓰레드가 가장 이상적이라는 의미인가요?멀티코어 프로세서에서 같은 프로세스여도 서로 다른 쓰레드이면 각 코어마다 같은 프로세스의 서로 다른 쓰레드 작업이 가능하다. 이게 가능한 이유는 유저모드 쓰레드가 아닌 커널 모드 쓰레드 이기 때문이다.제가 이해한 위 내용이 맞는지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
무상태일때
서로 통신할 때 핸드셰이크를 한다고 했는데상태 유지일 경우는 핸드셰이크를 한번 하고 쭉 유지된다고 생각하면 되는데무상태인 경우에는 응답이 오고 다시 요청을 보내고 서버가 바뀔때마다 핸드셰이크를 하는건가요??아니면 중계서버랑 핸드셰이크를 한 후 그게 계속 유지가 되는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Stack Frame 구조 질문 (section2 스택메모리와 스택프레임 10분~12분경)
강의에서 설명된 내용 기준으로 argument 10 및 return address가 main함수의 스택 프레임에 있는 것으로 설명되었는데, 실제 코드에서 main함수에서 Test함수를 argument 10을 주면서 호출할 시에 매개변수 10에 대한 값과 추후에 다시 main 함수로 돌아오게 될 위치에 대한 리턴 어드레스 값은 메인 스택 프레임이 아닌 그 아래에 위치할 Test함수의 스택 프레임에 있는 것이 더 정확하지 않나에 대한 질문드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 내용 깃허브 또는 블로그 정리 관련 질문
안녕하세요.강의 들은 내용을 전반적으로 깃허브에 정리하려고 합니다.강의 캡쳐본이나 강의 예시 코드를 정리하고 작성을 하면서 이해하는 방식으로 학습하려고 하는데, 공개된 공간에 출처를 남긴 후 강의 캡쳐본이나 예시 코드를 함께 작성하여 정리해도 되는 지 여쭤봅니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
아이패드에서 재생 불가
섹션7 "S3 개요 및 버킷 생성 실습"부터 아이패드에서 재생이 되지 않습니다.'Now encoding ... 동영상을 준비중에 있습니다.' 문구만 표시되네요.(참고로 iPadOS 17.02 버전입니다.)확인 부탁드립니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
ICMP와 방화벽
ICMP에서 운영체제의 방화벽이 Request를 버려버린다고 하셨는데, 그러면 상대방측에서는 어떻게 통신가능한지 확인할 수 있는지 이해가 잘 가지 않습니당
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
host 에 대한 질문입니다!
Host는 네트워크에 연결된 컴퓨터를 말하고, 이 host가 네트워크를 위한 기능을 하면 switch 라고 하고,네트워크를 이용하는 주체면 end-point 라고 하셨는데요 쉽게 말해 PC를 통칭 해 host라고 부르고,해당 PC가 네트워크 장비인 경우 switch라 하고, 일반 user가 사용하는 PC의 경우 end-point라고 생각하면 될까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Common 폴더에 PDL.xml을 둬야만 작동합니다.
START ../../PacketGenerator/bin/PacketGenerator.exe ../../PacketGenerator/PDL.xmlServer/PacketGenerator/bin에 PacketGenerator.exe가 생성되고, Server/PacketGenerator에 PDL.xml을 둬도 실행이 되는 것 까지 성공하였습니다.하지만 이후 배치파일 작성 부분에서 PacketGenerator.exe을 실행하긴 하지만, PDL.xml을 찾는 경로를 Server/PacketGenerator이 아닌 Server/Common에서 찾고 있었고, 실제로 Common 폴더에 PDL.xml을 두니 정상 작동 하였습니다.해당 현상을 해결할 수 있을까요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
POST 등록과 PUT 등록 차이 중 의문점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]HTTP API URI 설계 중 POST 등록 시에는 클라이언트는 URI를 모르니 컬렉션만 지정해서 URI를 /members까지만 하고 요청하면 서버가 URI를 부여해서 회원 등록이 완료되고PUT 등록 시에는 클라이언트가 URI를 알고 있으므로 스토어 및 식별자까지 지정해서 /files/star.jpg라는 완전한 URI를 서버에 요청해서 등록된다고 이해했습니다.그런데 의문점이 POST /members 는 다수의 객체 등록이고 PUT /files/star.jpg는 단일 객체 등록이니 PUT으로 등록 시에는 클라이언트가 특정 식별자를 지정해서 단일로만 등록되는 것이고, POST로 등록 시에는 클라이언트는 특정 식별자를 모르니 컬렉션만 URI에 지정함으로써 다수가 등록되는 걸로 이해해도 될까요?만일 맞다면 앞으로 외울 때 PUT : 단일 등록 , POST : 다수 등록으로 제가 이해해도 될까요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
비연결성에 대해 이렇게 이해하면 될까요?
HTTP는 기본적으로 비연결성 이지만 일정시간 연결을 가진다.기존에는 http는 3wayhandshake하고 보낼거 보내고 소켓 자원을 낭비 하지 않기 위해 바로 연결을 끊었다.하지만 이후에는 html파일 외에 css ,js등 각종 리소스들을 보내야되기때문에 일정시간동안 약 30초동안은 tcp연결을 끊지않고 대기한다.
-
해결됨롱런하는 슈퍼 개발자가 되기 위한 필수 지식, IT 인프라 기초 총정리
포워드 프록시(캐시) 서버에 대한 질문이 있습니다.
안녕하세요, 클라이언트에서 서버로 한 번 더 정보를 요청하는 경우 캐시 서버에서 데이터를 조회하여 데이터를 보여준다고 하셨는데그렇다면 클라이언트에서 처음으로 요청하는 데이터의 경우에도 캐시 서버에서 조회하는 과정을 항상 거치나요? 아니면 캐시 서버에 조회하려는 데이터가 있다는 사실을 알 수 있는 방법이 있나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
스펙이 무슨 뜻인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용강의 중간중간에 스펙이라고 말씀하시는데 이게 무슨 의미인지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
if-none-match와 if-modified-since
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.if-none-match는 etag값을 사용하여 원본 데이터가 바뀌었는지 확인하고 if-modfied-since는 last-modified 값을 사용하여 원본 데이터의 수정을 확인하는 것으로 배웠습니다. 여러 사이트를 확인해봤을 때 이 둘을 동시에 사용하는 경우가 있던데 그 이유를 정확히 모르겠습니다. 데이터가 바뀌더라고 etag를 의도적으로 같게 설정하는 경우(주석이 바뀐 상황 등)가 있는데 이 상황인 경우 etag는 의도적으로 같게 하더라도 수정 날짜는 바뀌어 결국 새로 보내게 되는데 둘이 함께 공존하는 이유를 정확히 모르겠습니다.
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
답변에도 이해가 되지 않는 부분이 있습니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]https://www.inflearn.com/questions/112647 해당 링크에 질문과 동일하게 궁금증이 있는데, 강사님의 답변에도 이해가 되질 않는 부분이 있어 다시 질문드립니다! 강의자료 예시는 이전에 no-store지시자가 사용되지 않은 캐시데이터에 한해서 캐시무효화를 위해 4가지 지시자를 모두 사용하는건가요? 최초에 no-store지시자가 사용된 데이터는 클라이언트던 프록시 서버던 캐시에 저장되지 않는데도 4가지 지시자를 모두 사용해야 하는건가요? 몇가지 이유로 인해 no-store만으로 캐시무효화를 완벽히 할 수 없다고 답변해주셨는데 no-store만을 사용했을때, 캐시 무효화에 있어서 어떤 문제점들이 발생하는지 예시를 들어주실 수 있을까요?감사합니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
shared_ptr을 사용해도 되지만 소멸자에서 pool에 있는 애들을
shared_ptr을 사용하는 이유가 Pop한 오브젝트나 메모리 청크를 반납하지 않을까봐 걱정되어서라고 이해했습니다.그런데 MemoryPool 클래스 소멸자에 이미 풀에 있던 애들을 모두 메모리 해제해주고 있는데 이것을 굳이 걱정할 필요가 있는지 궁금합니다
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
주문중복방지를 위한 리다이렉션
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]307같은 경우 리다이렉트를 하여도 요청메서드와 본문이 동일하니 새로고침을 통한 주문중복방지를 위해 303을 '반드시' 사용해야 하는 것일까요?
-
해결됨그림으로 쉽게 배우는 네트워크
용어, HTTP 관련 질문
안녕하세요. 감자선생님!용어 및 HTTP 관련 질문있습니다. [강의: DHCP - 0:22]Q1. 게이트웨이라는 용어가 보여 조사해보니, WAN으로 데이터를 나가게해주는 라우터라고 이해했습니다.범용적인 의미 - 서로 다른 통신환경에서의 인터페이스인프라적인 의미 - 라우터라고 정리했는데 맞을지 궁금합니다. [강의: HTTP - 2:03]Q2. HTTP(version 1.1) 소켓 연결 후 [더 이상 통신이 필요없다면] 커넥션을 끊음에서더이상 통신이 필요없는걸 어떻게 판단하는지 궁금해서 조사해보니특정시간 동안 요청이 또 왔는지?(HTTP 헤더/Keep-Alive 옵션)로 체크하여연결 유지하는것으로 확인했습니다.혹시 강의에서 [통신이 더 필요없다면]이 keep-Alive 말씀하시는게 맞을지 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
클라우드 서비스 구축 강좌에서..
클라우드 서비스 구축 강좌에서 맥으로 터미널까지 가서 처음 cd하고 폴더명 입력을 할때 폴더명은 어디서 알 수 있나요??