묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Job 내부 Execute에서 Lock을 잡지 않는 이유에 대해서
안녕하세요. 양질의 강의 감사합니다. 다름이 아니라, Room Job내부 Execute를 구현하실때 Enter, Leave, BroadCast가 _players에 대한 락을 잡지 않는데, 이것은, main스레드에서 혼자 Flush함수를 실행하기 때문에 어차피 경합이 없어서 인가요? 만약 일감을 처리하려는 스레드가2개 이상일때부터는, 이런 공유데이터에 대해 작업을 하려는 경우 Execute 내부에서도 락을 잡도록 구현하게 될까요? 혹시, 이렇게 n개 이상의 Flush를 하려는 구조에서, Lock을 잡는게 맞다면, Lock때문에 자신의 Execute가 더이상 진행되지 않을때, 그 락을 잡은 스레드에게, 자신의 Job을 던져버리고, 다른 일감을 찾으러 가는 구조도 구현되게 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
하위 레벨...?? High Level 말씀하신거죠..??
9:57 부근 자막에언리얼 엔진의 통신은 크게 하위 레벨과 로우 레벨로 나눌 수 있다고 하셨는데 둘 다 같은 뜻 아닌가.. 하고 엄청 헷갈렸어요하위가 아니라 High 맞죠..?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Reference Count of ServerSession
안녕하세요. 강의 항상 즐겁게 보고 있습니다.강의 중 ClientService 내에서 발생하는 ServerSession의 레퍼런스 카운트 관리에 대해 궁금한 점이 있어 질문드립니다.제 이해로는, ClientService의 Start 함수에서 session을 명시적으로 hold해주지 않는다면, Session의 ProcessConnect 함수에서 connect event의 owner를 release한 이후에는 해당 session의 레퍼런스 카운트가 0이 되어야 정상이라고 생각했습니다.그런데 샘플 코드에서는 레퍼런스 카운트가 2 이상으로 유지되고 있는 것을 확인하여, 이에 대한 설명을 부탁드리고 싶습니다.감사합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
HTTP 서버3 - 기능 추가는 url경로를 바꿀때마다 새로운 소켓과 연결하는건가요?
안녕하세요 코드를 쳐보다가 궁금증이 생겼습니다. 지난번 채팅프로그램은 클라이언트가 서버에 연결되면 연결된 클라이언트와 서버 소켓이 /exit할때까지 끊기지 않았는데요 이번 예시에서는 사용자가 /, /site1, /site2, /search?q=hello 이렇게 각각의 다른 url로 이동할때마다 서버와 클라이언트의 연결이 새로되고 소켓도 새로 생성되는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
CompressedFlags를 이용한 InputThrottle, InputSteering 전달 방법 질문
기본적으로 지원하는 단순 이동이 아니라 자동차처럼 Throttle와 Steering을 구현하려고 합니다.알려주신 방법을 응용해 다음과 같이 구현했습니다. USTRUCT(BlueprintType, Blueprintable) struct FDriveInput { GENERATED_BODY() UPROPERTY(VisibleAnywhere, BlueprintReadOnly) float Throttle = 0.0f; UPROPERTY(VisibleAnywhere, BlueprintReadOnly) float Steering = 0.0f; uint8 GetCompressedFlags() const { uint8 Compressed = 0; int32 ThrottleBits = FMath::Clamp(FMath::CeilToInt((Throttle + 1.0f) * 7.5f), 0, 15); int32 SteeringBits = FMath::Clamp(FMath::CeilToInt((Steering + 1.0f) * 7.5f), 0, 15); Compressed |= (ThrottleBits << 4); Compressed |= (SteeringBits & 0x0F); return Compressed; } void SetFromCompressedFlags(uint8 Flags) { int32 ThrottleBits = (Flags >> 4) & 0x0F; int32 SteeringBits = Flags & 0x0F; Throttle = (float(ThrottleBits) / 7.5f) - 1.0f; Steering = (float(SteeringBits) / 7.5f) - 1.0f; } }; FNetworkPredictionData_Client_TitanCharacter::FNetworkPredictionData_Client_TitanCharacter(const UCharacterMovementComponent& ClientMovement) : Super(ClientMovement) { } FSavedMovePtr FNetworkPredictionData_Client_TitanCharacter::AllocateNewMove() { return FSavedMovePtr(new FSavedMove_TitanCharacter); } void FSavedMove_TitanCharacter::Clear() { Super::Clear(); DriveInput.Steering = 0.0f; DriveInput.Throttle = 0.0f; } void FSavedMove_TitanCharacter::SetInitialPosition(ACharacter* Character) { Super::SetInitialPosition(Character); UTitanCharacterMovementComponent* Movement = Cast<UTitanCharacterMovementComponent>(Character->GetCharacterMovement()); if (Movement) { DriveInput = Movement->DriveInput; } } uint8 FSavedMove_TitanCharacter::GetCompressedFlags() const { uint8 Result = Super::GetCompressedFlags(); Result |= DriveInput.GetCompressedFlags(); return Result; } } void UTitanCharacterMovementComponent::OnMovementUpdated(float DeltaSeconds, const FVector& OldLocation, const FVector& OldVelocity) { UpdateWithDriveState(DeltaSeconds, DriveFlow.DriveState); } void UTitanCharacterMovementComponent::UpdateFromCompressedFlags(uint8 Flags) { Super::UpdateFromCompressedFlags(Flags); DriveInput.SetFromCompressedFlags(Flags); } UpdateWithDriveState 는 실제 캐릭터가 InputThrottle와 InputSteering을 가지고 움직이는 부분입니다.이렇게 하니까 다른 플래그와 겹쳐 아무런 입력을 하지 않았는데 점프를 한다거나, 손실압축의 특성때문에 입력을 하지 않아도 0이 아닌 다른 값이 전달되는 문제가 있었습니다.관련해서 도움을 받고 싶습니다. VehicleMovementComponent도 알아봤는데, CharacterMovementComponent를 확장해서 만들 수 있는 방법은 없는건가요?제가 찾아보면 좋을 법한 키워드 또는 해결방법을 알고 싶습니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션3 '파일분할' 강의 질문입니다.
Helper.h 헤더파일에서 void Test, void Test2 는선언만 하고 Helper.cpp에서 초기화 한 뒤GameCoding.cpp 메인에서 바로 사용이 가능했는데,int GTest 는 왜 extern을 붙여줘야하는건가요?? 실험해보니 extern 안붙여주니 사용이 안되던데 함수형과 변수형에서 차이가 나는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트만 실행 했을 때 연결 성공이 나오는 이유
안녕하세요. 우연히 발견한 건데요,서버 미 실행이고 클라이언트만 실행된 상태에서, 연결 대상이 없는데 조금 있다가 OnConnect가 호출되는데 이건 왜 그러는 건가요?
-
미해결자동차 SW - UDS 진단통신 정복하기
FTB(Fault type Btye) 관련 질문!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. DTC코드에서 충분히 Middle과 High 로 충분히 고장내용을 설명합니다.2바이트로 P0138로 정의합니다.P 파워트레인에서0 표준에서정의한138 산소센서 high voltage그런데 Low byte에서 Fault type Btye가 존재하는데, 위 middle high쪽의 데이터와 내용이 어떻게 다른건지 궁금합니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
스트림: read()가 int를 반환하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. byte는 -128~127이고 int는 0~255 범위라 음수 부분이 전혀 겹치지 않는데, read()에서 어떤 방식으로 byte를 int로 변환하는 건지 대략적인 기준이 궁금합니다. 아스키 코드의 0~126까지는 그대로 int로 변환이 되고 그 외 byte의 음수가 그대로 int 나머지 범위(127~255)까지 배정되는 방식일까요? +)아스키 코드(0~126)에 포함되지 않는 byte -128~-1까지의 대략적인 의미가 궁금합니다. 얘네는 영문 외 외국어나 추가 특수 문자들 같은 걸까요?
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
수강기간 연장 부탁드립니다.
안녕하세요좋은 강의 잘 듣고 있는데, 남은 기간동안에 강의를 다 못 들을거 같네요 ㅜㅜ 연장 부탁 드립니다. ㅜㅜ
-
미해결그림으로 쉽게 배우는 네트워크
세번째 보는데도 내용이 너무 좋습니다.
보면 볼 수록 이해가 더 잘 되네요. -_-b신규 강의도 구매 했습니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
자원정리 이후 메인 스레드 종료
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자원 정리 V6까지 완료했을때 클라이언트를 먼저 종료하면 서버 콘솔에 정상 종료됐다고 로그는 찍히는데 while문이 종료가 안되서 그런지 자바 스레드 자체는 종료가 안되던데 그냥 자원정리만 자동으로 하게 만들고 자바 종료 같은경우엔 직접하는건가요?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
out of path 구조에서 수집장치가 두 가지 있다고 하셨는데 나머지 한가지는 무엇인가요?
안녕하세요.Out of path 구조와 DPI 그리고 망중립 강의를 듣다가 궁금한 점이 생겨서 문의 남깁니다.0분 42초에서 수집 장치의 두 가지 유형이 있다고 말씀하셨는데, L2 Port 를 미러링하는 것 말고 다른 것은 무엇이 있는지 궁금합니다.그리고 추가적으로 센서와 수집 장치에 관련해서 헷갈리는 부분이 있습니다. 수집장치도 Out-of-Path 장치에 포함되는 것인가요? 감시를 위한 데이터 수집도 Out-of-Path 장치의 역할로 보이는데, 그렇다면 Sensor와 수집장치는 모두 Out-of-Path에 해당하는 장치인가요?그렇다면 Sensor와 수집장치는 왜 구분해서 부르는 것인가요? 결국 Sensor도 트래픽을 수집해야 감지할 수 있고, 알림/분석 등의 후속 처리를 한다면 기능적으로 수집장치와 겹쳐 보이는데 이 둘을 구분하는 기준이나 관점이 무엇인지 궁금합니다.또한, Sensor 장치에는 탐지 뿐 아니라 알림 기능도 포함되는 경우가 많은데, 일반적으로 Sensor는 탐지까지만 설명하고 알림이나 제어 기능은 별도 장치로 설명하시는 이유가 있는지도 궁금합니다.정리하자면 저는 out of path 구조가 데이터를 수집해서 감지하는 것까지만 이해했는데 정확히 그 동작 원리가 뭔지 이해가 안돼서 뒷부분 내용까지 헷갈립니다. 감사합니다.
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
Sensor 역할을 하는 Out of Path 장치가 응답을 보낼 수 있나요?
안녕하세요,Out of Path 구조와 DPI 그리고 망중립 강의에서 궁금한 점이 생겨서 질문 남깁니다. ISP에 연결되어있는 Sensor 역할을 하는 out of path 장치가 유해 사이트로 가는 것을 확인 후 호스트로 기존 서버보다 더 빨리 응답을 보낸다고 이해했습니다. 그런데, out of path는 탐지만 하는 장치인데 응답을 보내는 것이 가능한가요? 아니면 선생님께서 말씀하신 Sensor는 out of path 장치의 일종이 아닌건가요? 감사합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
궁금한게 있는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]V5에서 세션 클래스에서 try-with-resource 로 자원들을 닫아주었는데 V6 코드는 세션 매니저로 따로 관리하는 이유가 이해가 안가서요 ㅠㅠ혹시 각각 클라이언트를 종료하는게 아니라 서버를 종료했을때 남은 클라이언트들을 찾아서 꺼주는 용도로 세션 매니저를 만드는걸까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
try with resources 질문
SessionV6 클래스에서try with resources 코드에 finally를 추가해서 close() 메서드를 호출해 직접 닫아주었는데, 그러면 try with resources를 사용해서 자동으로 close 되는 것과 finally에 명시적으로 작성해 준 close()가 총 두 번 실행되는 게 맞나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 부탁드립니다.
안녕하세요 강사님 좋은 강의 감사드립니다.제가 한동안 업무가 바빠서 강의를 제대로 수강을 하지 못하여 수강 기간 연장 요청 드립니다.감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
클라이언트가 patch, delete 요청 시 알아야 하는 url
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다.프린트물에서는 put, patch, delete 모두 클라이언트가 구체적인 url 을 알고 있는 상태로 사용 중입니다. (/members/100)put이 구체적인 url을 모두 알아야 하는 것은 이해가 되었는데, patch, delete도 구체적인 url을 모두 알아야하는지 여쭤보고 싶습니다 ! 그리고 강의 프린트에서는 post, get만 서버의 응답 메시지 형태가 나와있는데 patch, put, delete 들은 모두 서버의 응답 메시지가 생략되어 있는 것이겠죠 .. ?
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도커와 최신 서버 기술 수료시 웹 배포
안녕하세요.dave lee 강사님의 강의의 팬이며 열정 수강생입니다.데이터 - 웹 - 배포 순으로 듣고 있는 중에 질문이 있어 글 남깁니다. flask 수강 완료 후 docker, aws 관련 강의를 들으려고 합니다.flask 완료 후 개인적인 실습으로 웹-DB 간의 프론트, 백을 초급적이지만 어느정도 익힌 상태입니다. 관련 강의를 익히면 웹 배포가 가능할까요?또, aws사용하면 과금여부도 궁금합니다.
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
UDP 통신 시 Socket 설정
안녕하세요, 강사님차량용 이더넷 통신을 진행하게되어 강사님의 강의를 수강하고 있습니다. 해당내용에 관하여 문의가 있어 질문드립니다. 네트워크는 UDP 기반의 멀티캐스트 방식으로 각 제어기별로 송수신이 이루어지는 컨셉입니다. 이때 A라는 송신자와 B,C라는 수신자가 있으며 똑같은 멀티캐스트 주소를 사용하고자 합니다. A의 IP 주소가 EX) 192.168.0.1, 포트 7400B의 IP 주소가 192.168.0.2C의 IP 주소가 192.168.0.3일경우 B와 C의 포트는 7400으로 설정하는 것은 이해했으나, 소켓은 IP 주소와 + Port 정보로 이루어져있다고 강의로 이해했습니다. 이럴령우 B 소켓의 Bind는 192.168.0.2 + 7400(Port)C 소켓의 Bind는 192.168.0.3 + 7400으로 열리게 되는 것이 맞는지요 ?해당 질문을 드리는 것이 A의 기준으로 생각해본다면 멀티캐스트 방식으로 Destination IP가 특정 제어기로 지정되지 않을 것 같아 혼돈이 생겨 질문드립니다.