묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
저는 왜 EOFException이 아니라 SocketException이 발생할까요 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.강의를 쭉 들으면서 ServerV3, V4를 키고 ClientV3,4 를 강제 종료시키면 영한님은 EOF 오류가 뜨는데 저는 Socket 오류가 발생합니다. 제가 잘못한건지 아니면 상황에 따라 다른건지 궁금합니다.
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
MSS와 MTU 계산 관련 질문드립니다!
선생님, 안녕하세요, 강의를 들으면서 들어만 본 개념을 정확하게 알아가고 모르는 개념에 대해서 새로 알아가고 있습니다. 감사합니다 😊MSS = 1460 byte, MTU = 1500 byte라는 결과를 잘 외우기 위해서 TCP/IP 프로토콜의 헤더 크기를 사용해서 외워보려고 자료를 찾아보았는데요,https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-mss/IP 레이어의 MTU를 잴 때는 헤더 크기를 포함시키는데, TCP 레이어의 MSS를 잴 때는 헤더 크기를 제외시키는 것을 발견하였습니다!왜 한쪽에서는 포함하고 한쪽에서는 제외하는지가 궁금했습니다! 일단 외우기 위해서 'TCP와 IP가 같이 엮이다 보니 두 헤더 모두 포함한 MTU와 두 헤더 모두 제외한 MSS가 중요한가보다'고 외우려고 하는데, 혹시 이렇게 이해하면 틀린 부분이 있을까 걱정되어 질문드립니다.감사합니다! 😃
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다.
수강 연장 처리 부탁드리겠습니다.재시험 봐야할 것 같습니다.ㅎ...
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
[수업 질문] [SpinLock]
class SpinLock { volatile int _locked = 0; private readonly object _lock = new object(); public void Acquire() { while (true) { //int original = Interlocked.Exchange(ref _locked, 1); //if (original == 0) // break; // CAS : Compare-And-Swap //int original = Interlocked.CompareExchange(ref _locked, 1, 0); //if (original == 0) // break; //int expected = 0; //int desired = 1; //if (Interlocked.CompareExchange(ref _locked, desired, expected) == expected) // break; lock (_lock) { if (_locked == 0) { _locked = 1; break; } } } }DeadLock 시간에 배웠던 lock 방식을 이용해서 작성해봤는데 출력 값은 0이 잘 나옵니다. Q. SpinLock 구현할 때 InterLock 계열의 메서드를 사용해 구현한 것과 lock을 이용해 구현한 것은 어떤 차이가 있는지 궁금합니다.강사님께서는 InterLock 을 통해 구현하셨는데 그 이유는 간단하게 사용할 수 있기 때문인가요??SpinLock / BackOff Lock / Assisted Lock 이런 것을 구현할 때 위와 같이 lock 을 써서 구현하는 것은 구조적으로 잘못된 것인가요?? 제가 이해한 것은 Lock 방식과 InterLock 방식은 하드웨어의 Instruction을 원자적으로 처리하기 위해 프로그래머가 C++/C# 같은 언어로 시키기 위한 방법인 것 같은데 이해를 똑바로 한 것인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
특성이 중복되었다고 나옵니다
안녕하세요, 선생님프로젝트 속성 변경후 PacketGenerator 빌드를 눌러야 하는데 모르고 디벙깅 후 시작을 눌러버려서 그런지 모르겠지만AssemblyInfo.cs 파일에서 특성이 중복되었다고 나옵니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Protobuf Packet 클라이언트 - 서버 설계
서버에서 Protobuf를 사용하고클라이언트에서 예기치 못한 이유로 사용하지 못했을 때주고 받는 Packet.id그리고 그 id에 해당하는 정보(구조체)가 같다면상관 없을 까요?ex)서버 -> S_CHAT : string msg; 구글 프로토버프로 만듬클라이언트 -> S_CHAT : string msg: 일반 구조체로 만듬
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
연결 유지 상태에서의 이중화 노드 무중단 재기동 방법
안녕하세요.대외 통신 연계 업무를 맡고 있는 주니어입니다.네트워크 지식에 부족함을 느껴 강의를 수강하게 되었습니다.어렴풋이만 알고 있는 지식에 대해 살을 붙임에 있어 많은 도움이 되고 있습니다. 요즘은 거래량이 많이 급증함에 따라 연결 유지 세션(전용 망)으로 많은 대외 기관들과 연결되어 있습니다.노드는 이중화가 되어있으나, 연결 유지 세션에 대해서는 액티브-스탠바이로만 운영중입니다. 때문에 배포 등으로 재기동 시 순단이 발생하고 있어 이를 없애는게 주요 과업 중 하나입니다.대외기관 - L4 사이에는 연결유지 세션으로 유지한 상태로 무중단 재기동을 할 방법이 있을까요?
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
지하철 노선도 미션 VPC IP 대역 질문
지하철 노선도 미션의 망 구성하기에서 처음 VPC를 생성할 때, 할당하는 CIDR 블록도 결국은 프라이빗 IP 주소라고 이해하는게 맞는건가요? 제가 이해한 내용은 다음과 같습니다.VPC에 할당된 CIDR 블록 (192.168.0.0/24) 및 내부에 속한 4개의 서브넷 IP 대역은 모두 VPC 내에서만 사용되는 프라이빗 IP 주소다.퍼블릭 서브넷 자체는 프라이빗 IP 주소로 할당되어 있지만, 퍼블릭 서브넷인 이유는 IGW와 연결되어 인터넷 접속이 가능하기 때문이다. (인터넷 통신을 할 때, NAT를 통해 프라이빗 IP 주소가 IGW의 퍼블릭 IP 주소로 변환된다)제가 이해한 내용이 맞는지 혹시 이 중에서 틀린 내용이 있는지 알고 싶습니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
iocp 내부 동작 관련 질문
Windows IOCP(I/O Completion Port) 모델을 사용하여 서버를 개발하고 있으며, WSASend 호출의 처리 순서에 대해 명확히 알고 싶습니다.1. WSASend 호출 순서 보장 - 서버에서 연속적으로 WSASend를 3번 호출할 경우, Windows 내부에서 정확히 호출된 순서대로 처리되는지? - TCP의 순서 보장과는 별개로, IOCP 모델 자체의 내부 처리 순서는 어떻게 되는지?2. 클라이언트 측 완료 통지 순서 - 서버에서 WSASend를 3번 호출했을 때, 클라이언트가 GetQueuedCompletionStatus(GQCS) 함수를 호출하면 서버의 호출 순서와 동일한 순서로 완료 통지가 수신되는지?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
채팅실습 과정에서 Protocol.pb.h error
채팅실습을 시작해서 BufferData 구조체를 삭제하고빌드를 하게 되면 파일은 복사가 되어서 다른 패킷아이디들이 생성되는데지웠던 BufferData가 계속해서 BufferData가 없다는 에러가 발생하고실제로 Protocol.pb.h에 남아있는 현상이 발견됩니다..이런 증상 겪으신분 있으실까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
동기방식과 비동기 방식 비교
루키스님 안녕하세요?소켓 함수쪽에서 동기방식과 비동기방식의 장단점을 고찰하고 있습니다. 이번 강의에서 Listen쪽을 동기 -> 비동기로 전환하면서 논블로킹 성질로 인해 어느 누군가의 입장 지연 등을 기다려도 않아도 되므로 그런 부분에서 이점이 있다.이렇게 이해를 하였는데요, 입장자 별로 스레드를 부여하여 동기적으로 입장시킴. 단, 너무 지연이 되면 해당 스레드는 종료 등으로 처리.이런 식으로 동기적 방법을 고수하면 콜백 함수 없어도 되니까 코드 복잡도도 줄고 컨텍스트 스위칭도 덜 일어나지 않을까? 라는 생각을 하게 되었습니다. 그러므로 동기적으로 소켓 함수를 계속 사용하는 것은 잘못된 생각인지, 아니면 비동기 동기가 각각 장단점이 있는 방식인지 루키스님 조언 얻으려고 질문 드립니다. 답변 미리 감사합니다. +수정 이 내용과 같은 맥락일까요?그렇다면 Listen과 Accept는 동기, Send와 Receive는 비동기로 처리 이런 방식은 어떤지 고민도 되고 하네요https://www.inflearn.com/community/questions/140160/%EA%B5%B3%EC%9D%B4-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%B0%A9%EC%8B%9D%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
보편참조 관련 질문
강의 내용 22:00에 보편참조라고 설명해 주시면서Job 생성자를 만들어주셨습니다.하지만 Job생성자는 우측값 참조가 아니면 생성이 되지 않습니다.반면에 우측값 참조로 넣어주면 전부 에러 없이 생성되었습니다Job 생성자가 보편참조라면 좌측값인 player로도 생성이 되어야 하지 않나요? 만약 Job 생성자가 보편참조가 아니라면GRoom->PushJob(&Room::Enter, player) 부분에서보편참조가 아닌 함수에서 L-value를 std::forward를 사용하면 오른쪽 참조값으로 바뀌기 때문에 auto job = ObjectPool<Job>::MakeShared(owner, memFunc, std::forward<Args>(args)...);이함수는 결국 우측값 참조를 받는 Job생성자를 호출하게 되어 Job을 만들어 주었기 때문에 에러가 발생하지 않고 잘 실행 되었던거라고 이해하면 될까요? 만약 Job생성자가 보편참조가 아니라면 왜 보편참조가 될 수 없나요? 강의 핵심내용은 JobQueue에 관한 내용이지만보편참조가 너무 헷갈려서 질문하게 되었습니다..
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
고급1편 안 듣고 고급2편 들어도 되나요?
고급2편 내용 먼저 들으려는데 멀티스레드 동시성 이거 무조건 들어야 고급 2편 들을 수 잇을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
boost asio 강의
안녕하세요 루키스님혹시 작년에 진행했던 javawork 님의 boost asio 강의는인프런에 판매하실 생각은 없으신 건가요??
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
섹션 2-1 질문
섹션 2의 첫 번째 강의 11분 3초경에 전송계층에서 host to host라고 하셨는데네트워크 계층이 양단에 논리적 주소로 각 호스트를 연결해 주기에 host to host라고 설명하고전송계층에서는 포트 번호로 상위 계층의 서비스를 나누기 때문에 종단간 연결(end to end) 혹은 프로세스 간 연결(process to process)로 기억하고 있어 오타인지 제가 잘못 알고 있는지 질문드립니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
섹션12의 HTTP 서버1 - 시작에서 27분에 질문있습니다.
다른 브라우저를 사용해야 테스트가 확실히 된다고 하셨는데같은 브라우저일 때는 왜 테스트에 어려움이 있는걸까요?어차피 쓰레드 하나로 순차 동기 실행 아닐까요?궁금합니다!
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
split 메서드에서 "|" 문자를 인식하지 못하는 문제
이유는 모르겠습니다만 제 컴퓨터에서는 DELIMITER 로 지정한 문자 "|" 가 split 메서드에서 작동하지 않더라구요. window를 사용하는데 그 때문인지는 모르겠습니다. 그래서 저는 DELIMITER = "\\|" 로 지정해 동작시켰습니다. 강사님과 split 메서드가 다르게 작동하는 이유는 뭘까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
OnDisconnected() 부근에서 _players.clear() 의문점이 있습니다.
06:05 부근 질문입니다.클라이언트가 캐릭터 선택과 동시에 연결이 종료될 때 서버가 혼잡하다면, Handle_C_ENTER_GAME()과 OnDisconnect()가 동시에 일어날 수 있다고 생각되는데요.. 그렇다면 멀티 스레드에서 _players에 동시 접근하는 일이 발생하지 않나요?그렇게 된다면, _players.clear() 이후 _players[index] 접근하는 문제로 서버가 튕길 거라고 생각했습니다.지금까지는 그러한 오류가 터진 적이 없었는데, 테스트가 부족했던 것인지 아니면 잘못 생각하고 있는 것인지 알고 싶습니다.
-
미해결자동차 SW - UDS 진단통신 정복하기
안녕하세용
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세욥, 강의 잘 듣고 있습니당!_! 제가 질문이 있는데욥, 동일한 dbc 를 vector 에디터로 열어서 본 (ex)SteeringAngle 의 startbit 는 12 bitnotepad 및 메모장에서 열었을 때 BO_ 부분의 SteeringAngle 의 startbit 는 13비트로 되어 있는데욥 Length 는 2 입니다.동일한 dbc 인데 tool 에 따라 startbit 가 다르게 보이는지2. Canoe tool 에서도 dbc 의 startbit 가 CAN IG 으로 tx 보내기 위해서 보면 12bit 로 구성되어 있으며, 12bit 로 보내면 실제 화면에서 동작하지 않는데, dbc 자체를 notepad 의 startbit 값이 13으로 수정하여 CAN IG 에서 보내면 홤면에서 잘 동작함업무중에 너무 의아해서 질문 드립니당 ㅜㅜ
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요. 수강 기간 연장 부탁드립니다.
안녕하세요. 수강 만료일 까지 다 못 들을 것 같아요.수강 기간 연장 부탁 드립니다.감사합니다.