묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Variadic 함수 인자 포워딩 관련
수업의 JobSerialize::PushJob() 함수에서, template<typename T, typename Ret, typename.. Args>void PushJob(Ret(T::*memFunc)(Args...), Args... args){.... std::forward<Args>(args...)} 이 부분에서PushJob() 인자 중 Args&&... 가 아닌 Args... 로 &&을 생략해도 포워딩이 정상적으로 진행이 되는 건지 궁금합니다. 구글링을 해 보니 전부 Args&&... 형태로 쓰는 것으로 보여서요. 가변 템플릿 문법은 언제나 굉장히 헷갈리네요.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
한번만더연장부탁드립니다..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ans saa 두개 다 연장 가능할까요ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
GameRoom.Flush() 수행 중에 _sessions가 변경 되면, 컬렉션 변경 에러가 나옵니다.
// GameRoom.cs public void Flush() { foreach (ClientSession s in _sessions) s.Send(_pendingList); _pendingList.Clear(); }foreach를 돌며 s.Send()를 하는 와중에_sessions가 변경되면,(_sessions.Add 되거나 _sessions.Remove 되면)아래와 같이 컬렉션 변경 에러가 나옵니다. 이를 해결하려고 아래와 같이 _sessions를_sessionsCopy에 복사하여 foreach 돌렸습니다.// GameRoom.cs public void Flush() { List<ClientSession> _sessionsCopy = _sessions.ToList(); // 복사 foreach (ClientSession s in _sessionsCopy) s.Send(_pendingList); _pendingList.Clear(); _sessionsCopy = null; } 더 좋은 방법이 있을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
명시적으로 함수를 호출하지 않으면 무조건 스레드 세이프할까요?
안녕하세요? 강의 재밌게 보고 있습니다.아래 인프런 질문을 보면Q. Receive()는 lock을 사용하지 않는 이유?A. 명시적으로 Recv()처럼 호출하지 않기 때문에 1번에 1개의 스레드만 접근하여 스레드 세이프함이라는 질문을 보았는데요, 이 답변을 조금 확대 해석해 봤는데Q. 명시적으로 함수()를 하지 않으면 무조건 스레드세이프할까요? 답변 미리 감사합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ClientSession의 Room이 null인 경우
안녕하세요.Part 4를 완강하고 Part 7으로 넘어가기 위해새로운 솔루션을 생성해서 기존 Part 4 솔루션 내의프로젝트들을 우선 Ctrl + C, V 한 뒤 기존 프로젝트 추가로Part 7에서 사용할 서버 솔루션을 Part 4와 동일하게 맞추는 작업을 하고 있었습니다!그런데, DummyClient의 연결 수를 20개 정도로 하면 문제가 없지만, 30개부터는 특정 ClientSession의 Room이 null인 상태에서 서버 측의 C_MoveHandler가 실행되어 서버가 뻗어버리는 경우가 간헐적으로 발생하고 있습니다.(강의 보면서 따라 한 솔루션은 100이면 100 잘 되며, 새롭게 복사한 솔루션은 대부분 잘 되지만 가끔식 위 오류가 발생합니다..) 처음엔 단순히 Ctrl+C , V 하는 과정에서프로젝트나 솔루션의 설정값들이 새로운 경로로 옮기면서 동기화가 안되어 생기는 문제인 줄 알았는데,코드를 계속 천천히 읽다보니 의문이 들게 되었습니다. public GameRoom? Room { get; set; }public override void OnConnected(EndPoint? endPoint) {Console.WriteLine($"OnConnected: {endPoint}");Program.Room.Push(() => Program.Room.Enter(this));}제가 이해한 바로는ClientSession의 Room은Listener에 의해서 ClientSession.OnConnected가 호출되며 Program.Room에게 Enter(this)를 요청하고,이후 Program.Room은 Flush()를 통해 특정할 수 없는 시점에 비로소 Enter를 호출하게 되며, ClientSession.Room이 자기 자신을 가리키도록 합니다. 그런데, 정말 운이 안 좋다면 Program.Room이 A번 ClientSession에 대한 Enter 작업이 미처 다 수행되기 전에DummyClient 측의 SendForEach로 인해 A번 ClientSession과 대응되는 ServerSession으로 이동 패킷을 보내고,최종적으로 A번 ClientSession의 Room이 null인 상태에서 C_MoveHandler를 실행 할 여지가 있는 것이 아닌가 생각하게 되었습니다. 혹시 제가 생각하고 있는 것이 맞는건지,아니면 단순하게 솔루션을 잘못 복사해와서 문제가 생긴건지궁금합니다..만약 그런 여지가 있다면 단순히 room이 아직 null인지 체크하고 이동 패킷을 무시하면 되는걸까요?
-
미해결CloudNet@와 함께하는 AWS 네트워킹 입문
loadbalancer와 route53 서비스의 차이점이 궁금합니다.
LB가 안정적인 서비스를 위해 트래픽을 적절히 분배하여 조절해 주는 역할을 한다고 이해하였는데,Route53서비스 에서도 가중치를 통해 대략적인 트래픽 분배를 하는것 같아 보입니다.LB와 Route53의 가중치로 인한 트래픽 분배가 차이점이 있나요?각각의 활용방안이 다른걸까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
쿠키 정보 자동 포함 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 모든 요청 정보에 쿠키 정보를 자동으로 포함한다 + 쿠키를 무조건 보낸다 이렇게 설명을 주셨는데요쿠키는 브라우저가 저장한다고 알고있습니다.즉 실제 보관되는 장소는 로컬 저장소(내 컴퓨터 드라이브)라고 이해하고 있는데요여기 저장소에는 구글에서 요청한 쿠키, 네이버에서 요청한 쿠키 등 많은 서버에서 요청한 쿠키가 저장되어있지 않나요?어떤 사이트에 접근할 때 해당 서버 측에서 필요한 쿠키만 선별해서 전송한다고 생각을 하는데요그러면 요청 정보에 쿠키를 담아 보낼때 어떤 쿠키를 담아 보낼지 클라이언트 측에서 판단하여 결정하나요? 아니면 서버가 판단하나요?그리고 어떤 쿠키를 보낼지 어떻게 결정하나요? 강의에서 설명해주신 path와 domain을 보고 판단하나요?1. 어떤 쿠키를 보낼지 결정하는 주체가 클라이언트 측인지 서버 측인지 궁금합니다2. 어떤 쿠키를 보낼지 어떻게 결정하나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP가 왜 무상태인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.TCP는 3 way handshake로 stateful인데TCP 기반으로 작동하는 HTTP가 왜 stateless인지 모르겠습니다stateful로 작동하는 TCP 위에서 HTTP가 어떻게 stateless로 작동한다는 것인지 이해가지 않습니다
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
L3 계층의 라우터와 GW 호스트가 동의어인가요?
안녕하세요! 간단한 질문이 될 수도 있지만 궁금해서 남깁니다! 강사님의 L3 계층 관련 강의 챕터를 다 보았는데요! 영상 속에서 패킷의 생성-전달 과정을 택배 상황에 비유해서 들어주셨는데요! 여기서 '택배 기사가 GW며 GW가 라우팅을 한다' 라고 하셨는데, 그러면 GW 호스트 = 라우터 인 것 맞을까요?? 생각해보면 호스트에는 엔드포인트와 스위치 호스트로 나누어지고, 라우터는 스위치 호스트에 해당할 것 같은데, 이 사고 과정이 맞는지 여쭤봅니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 데이터 저장 위치가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]설명해주신 캐시에 저장하는, 1.1M를 다운 받는 데이터들을 캐시에 저장할때 실제 클라이언트측 pc의 캐시 메모리에 저장이 되는것 인가요? 아니면 보조기억장치에 저장이 되는건가요
-
해결됨웹 개발자라면 꼭 알아야 할 보안 기초
저작권 및 출처 관련 질문입니다.
안녕하세요. 지금 몇 개의 수업을 들으면서 정리를 하고 있습니다. 수업들으면서 정리한 걸 블로그에 작성해볼까 생각하는데, 출처 남기고 정리 노트같이 블로그에 올려도 될까요? 상업적인 용도는 아닙니다.
-
미해결그림으로 쉽게 배우는 네트워크
인터페이스 맥 주소라는게 정확히 왜 있는지 잘모르겠습니다.
라우터 사이사이 마다 인터페이스 맥 주소가 있는데 왜 있는지 모르겠고 라우터의 맥 주소를 사용해서 연결 하면 안되는 걸까요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
[패킷의 생성과 전달 목차 강의] 네트워크 통신 흐름 설명 부분 질문
안녕하세요~ 우선 강의 너무 잘 듣고 있습니다. 질 좋은 강의에 감사인사부터 드립니다! 질문드릴 내용은 [패킷의 생성과 전달] 강의 내용에서 말미에 소개해주시는 네트워크 통신 흐름인데요! 필기해주신 그림을 기반으로 제가 이해한 내용으로 재구성하고자 아래 사진처럼 그려보았는데요. 궁금한 점을 좀 적어보았습니다. Q1. L2 -> L1 계층으로 갈때 붙는 헤더가 따로 있나요?Q2. 다른 분들이 해주신 질문의 답변을 보다가 NIC를 통과해서 라우터(L3 계층 장비)로 갈 때 L2 frame 헤더를 붙여주는 주체가 GW HOST라고 해주셨는데요? 이 말씀으로 일반화를 해보자면.. Encapsulate 하는 과정에서는 헤더를 붙이는 주체가 항상 이전 계층에 있는 요소 중 하나인가요? 예를 들어, L3 -> L2로 가는 과정에서 L2 header를 붙이는 주체는 이전 계층인 L3에 속하는 장치들 중 하나가 되는 건가요?반대로 그러면 Decapsulate 하는 과정에서 헤더를 제거하는 주체는, 예를 들어, L2 -> L3로 가게되면 L2 계층에 속하는 장치중 하나가 되는 걸까요? 네트워크 분야는 입문자라서.. 혹여나 질문이 이해가 안되신다면 답글 달아주세요! 감사합니다 :)
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 연장 가능할까요?
강의는 모두 완료했으나 "실전 문제 풀이" 부분을 전부 듣지 못했습니다.혹시 연장 가능할까요?
-
미해결누구나 시작할 수 있는 네트워크 Step 3 (네트워크 만들기)
C3725 추가뒤 사용 오류
C3725 추가뒤 아래와 같이 사용 오류가 납니다.
-
미해결CloudNet@와 함께하는 Amazon EKS 기본 강의
kube-ops-view 노드가 안보이는 이유는 무엇일까요?
kube-ops-view가 화면은 뜨는데 노드는 안보이는 이유는 무엇일까요? ㅎㅎ^^아시는 분 계신면 답변 부탁드립니다. ㅎㅎ
-
미해결CloudNet@와 함께하는 Amazon EKS 기본 강의
선생님
혹시 원클릭배포를 yaml파일이 아닌 테라폼으로 구현하실 생각이 있으신가요? 저도 테라폼의 장단점에 대해 자세히 아는 것은 아니지만, 아래 질문하신 분 사례처럼 yaml 생성은 매끄럽지 못한 부분도 있고, destroy도 조금 불편하긴 했습니다. 제가 가진 hcl은 eks까지 빌드할 수 있는데, 여기에 이어서 선생님의 프로메테우스 스택을 설치하려니 문제가 발생해서 사용을 못하고 있습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
패치를 받아들이지 못하면 포스트를 사용하는 부분 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]패치는 리소스 부분변경을할 식별자가 있어서 어느 리소스를 변경할지 지정이 가능한데(members/100 처럼이요) post는 식별자가 없는데 패치를 받아들이지 못하는 서버일 경우 post를 사용하면 된다고 강의 영상 마지막 부분에 설명해주신 부분을 잘 모르겠습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
콜백 방식에 비해 이벤트 방식의 단점?이 와닿지 않습니다
콜백 방식에 비해 이벤트 방식의 단점?이 와닿지 않아서 질문 남깁니다. 아마 제가 대규모 유저를 받는 환경의 코드를 아직 보지 못해서 그런 것 같아서 와닿지 않은것 같습니다. 설명해주신 내용은 클라 소켓 하나당 이벤트 하나를 대응시켜야 하는데 64개까지 제한이고, 여러명을 받는 서버의 코드는 코드가 간단하지 않다는 점을 단점으로 꼽으셨는데 와닿지 않습니다.정말 이벤트를 64개 넘게 관찰해야 하는 상황이 있나요?
-
미해결CloudNet@와 함께하는 AWS 네트워킹 입문
압축 파일이 비어있습니다.
안녕하세요 강사님aws 수업 자료 파일이 비어있는 듯 하여 문의드립니다.제 환경은 윈도우11 입니다.