묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT, PATCH, DELETE
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의에서 PUT메소드는 해당 리소스의 위치를 알고있다고 하셨는데요그러면 PATCH와 DELETE는 해당 리소스의 위치를 모르나요?모르면 안되는게 그래야 부분 변경할 수 있고 삭제할 수 있으니까요 궁금해서 질문드립니다!!
-
해결됨CloudNet@ - Amazon EKS 기본 강의
KeyName 입력 안됨
CloudFormation에서 아래와 같이 KeyName 입력이 안 되고 그냥 넘어가면 스택 생성 fail이 되는데요.왜 그런걸까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트에서 데이터 변조 할 경우
패킷 id가 변조될 경우의 대응은 없는 상태인가요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
OnRep_ReplicatedHasBegunPlay 함수
bReplicatedHasBegunPlay 속성이 변경 됐을때 실행된다 하셨는데요.. 그러면 이미 게임이 시작된 상태에서 클라이언트가 접속시 클라이언트는 복제된 이미시작된 게임스테이트의 상태를보고bReplicatedHasBegunPlay속성을 변경 시켜주는건가요..? bReplicatedHasBegunPlay속성을 변경 시키는 타이밍이 언제 인가요??
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
10번 강의 질문 있습니다
안녕하십니까. 질문 남기기 앞서 강의 정말 잘 보고 있다고 말씀 드리고 싶습니다. 제가 궁금한 부분은 10번 강의에서 공격에 맞았을 때 검증(Validation) 하는 부분입니다. bool AABCharacterPlayer::ServerRPCNotifyHit_Validate(const FHitResult& HitResult, float HitCheckTime) { return (HitCheckTime - LastAttackStartTime) > AcceptMinCheckTime; } 공격 시작 타이밍과 몽타주에 배치한 트리거 함수 간의 간격을 검증하기 위한 것으로 이해했습니다. 검증 코드에서 LastAttackStartTime이란 변수가 쓰였고, LastAttackStartTime이란 변수가 아래 코드의 ServerRPCAttack에서 인자로 받은 AttackStartTime 변수로 세팅되는 것을 확인했습니다. void AABCharacterPlayer::ServerRPCAttack_Implementation(float AttackStartTime) { AB_LOG(LogABNetwork, Log, TEXT("%s"), TEXT("Begin")); bCanAttack = false; OnRep_CanAttack(); AttackTimeDifference = GetWorld()->GetTimeSeconds() - AttackStartTime; AB_LOG(LogABNetwork, Log, TEXT("LagTime : %f"), AttackTimeDifference); AttackTimeDifference = FMath::Clamp(AttackTimeDifference, 0.0f, AttackTime - 0.01f); FTimerHandle Handle; GetWorld()->GetTimerManager().SetTimer(Handle, FTimerDelegate::CreateLambda([&] { bCanAttack = true; OnRep_CanAttack(); } ), AttackTime - AttackTimeDifference, false, -1.0f); LastAttackStartTime = AttackStartTime; PlayAttackAnimation(); //MulticastRPCAttack(); for (APlayerController* PlayerController : TActorRange<APlayerController>(GetWorld())) { if (PlayerController && GetController() != PlayerController) { if(!PlayerController->IsLocalController()) { AABCharacterPlayer* OtherPlayer = Cast<AABCharacterPlayer>(PlayerController->GetPawn()); if (OtherPlayer) { OtherPlayer->ClientRPCPlayAnimation(this); } } } } } LastAttackStartTime은 서버의 변수이고 그렇기 때문에 여러 클라이언트가 동시에 공격을 한다면 LastAttackStartTime이 덮어 씌워질 수 있다고 생각하는데 그렇게 되면 검증하는 부분에서 문제가 생길 수도 있다고 생각합니다. 질문 : 여러 클라이언트가 동시에 공격 시 LastAttackStartTime이 덮어 씌워지는 것이 맞는가?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
비연결성에 대해서
tcp/ip는 요청을하고 요청이끝나면 연결을 끊어버린다고 하셨는데요 이것의 정확한 뜻이 url요청을하고 응답을하면 연결을 끊어버린다고 이해하면 정확할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
args.BytesTransferred가 0인 이유가 뭘까요
강의 잘 보고 있습니다. 하나하나 다 따라해봤는데 전 강의 까지는 문제가 없었지만이상하게 이번강의 따라해보니 유니티와 서버의 연결은 잘된듯 한데 유저가 2명 이상이면 Disconnect를 호출하더군요 이유를 찾아보니까 OnRecvCompleted에서 첫 if문에 있는 args.BytesTransferred 가 계속 0인데 이는 서버측이든 클라측이든 0으로 되어있었습니다. 혹시 코드가 잘못된지 확인해봐도 모르겠어서 강사님께서 올려주신 코드로 서버와 클라를 연결 시켜봐도 똑같이 BytesTransferred가 0이어서 문제가 생기는데 왜 이러는지 알 수 있을까요?? 기기에 따라 다른가요
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
인캡슐레이션과 멀티플렉싱
TCP 관련해서 공부하다가 문득 인캡슐레이션과 디캡슐레이션, 멀티플렉싱과 디멀티플렉싱의 개념이 모호해서 질문 남깁니다.
-
미해결그림으로 쉽게 배우는 네트워크
스위치 강의 중 질문있습니다.
4분 전후로... 스위치에 맥 주소 table이 있을 때,pc4가 pc1로 파일을 보낼 때 맥주소는 앞에 연결된 허브의 주소를 가지고 있는거 아닌가요??어떻게 1번인지 알고 바로 보내나요??이런 이유로, 1,2번 pc 로는 스위치가 바로 콕찝에 보낼 수 없는게 아닌가 긍금합니다.
-
미해결네트워크 패킷 분석 입문 및 악성코드 샘플 분석
EK07 암호
EK07 압축파일을 풀려고 하니 암호창이 뜨네요. 암호가 뭔가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제풀이6-Q19 - DB 응답 속도 문의 드립니다.
안녕하세요. DB별 응답속도가 궁금합니다.Aurora, RDS는 밀리 초 단위 응답이 불가능하다고 알고 있는데요. 평균 응답시간이 어느 정도 될지 여쭤봅니다.다른 것들은 아래와 같이 정리했는데, 이 2개는 찾아봐도 잘 안나오네요.DynamoDB Accelerator (DAX): 마이크로 초ElastiCache: 1밀리초 미만Dynamo DB: 10밀리초 미만Aurora RDS보다 3~5배 빠름RDS 밀리초 단위 처리 불가
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓과 세션에 대해 질문 드립니다.
안녕하세요 루키스님!강의 잘 듣고 있습니다. 세션과 소켓의 관계에 대해 궁금한게 생겼습니다.비유로 인해 오해가 생길까 지웠습니다.Connector를 쓰기 전 까지는 더미 클라이언트에 세션을 쓰지 않아 서버와 클라이언트가 서버에서 발급한 세션을 통해 정보를 공유한다고 생각했습니다.마치 실 전화기 처럼 말이죠.클라 (소켓) ---------------세션--------------(소켓) 서버 근데, 커넥터라는 개념이 들어오고 다시 흐름을 살펴보니 서버도 서버의 세션을 사용하고, 클라도 클라의 세션을 사용하니 위의 비유와는 잘 맞지 않아 다시 생각해봤는데 이해한 바가 맞는지 봐주셨으면 합니다.소켓 : 유심칩세션 : 스마트폰(abstract 를 구현해서 어떻게 행동할지 정의했기 때문에 클라는 클라 전용 스마트폰, 서버는 서버 전용 스마트 폰을 가지고 있다.) 클라 (소켓 + 세션) ------------------- 서버(소켓 + 세션)
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Conditional Variable 과 Event에 대해 이해하고 싶습니다.
제가 이해한것이 맞는지 확인하고 싶어 질문을 남기게 되었습니다. Event는 Signal, Non-Signal 상태를 WaitForSingleObject(handle, INFINITE)를 통해 대기합니다.여기서 INFINITE로 무한정 대기를 통해 불필요한 컨텍스트 스위치가 일어나지 않게 됩니다.하지만 그만큼 자원(메모리? CPU? )의 손해가 일어나기에 생겨난 것이 Conditional Variable입니다. Conditional Variable cv.notify_one();를 통해 대기하고 있던 Thread를 실행합니다. Conditional Variable는 메모리에 Thread를 Wait 시키지 않고 대기 시키다가 cv.notify_one();를 통해 실행하는 것이고 Event는 Thread를 메모리에 WaitForSingleObject(handle, INFINITE)를 통해 대기시켰다가 SetEvent(handle);를 통해 실행시킨 점이 차이라고 이해하면 될지 여쭙고 싶습니다.
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
ec2 접속 방법 관련 궁금증 문의 드립니다.
본 강의에서는 ec2 서버에 접속하기 위해 putty를 사용을 했습니다, 그런데 aws 홈페이지에 접속하여 ec2 인스턴스 연결 메뉴를 통해도 접속을 할 수 있는데 왜 굳이 putty를 사용하여 접속을 하는건지 궁금합니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
buffsOffset을 사용하는 이유가 궁금합니다.
안녕하세요 지난 강의 '패킷직렬화 #1' 부터 현재강의에서 buffsOffset을 사용하는데 이 변수가 존재해야 하는 이유를 모르겠습니다.sizeof(PKT_S_TEST)를 이용하면 되는게 아닌지 자꾸 의문이 들어서요.sizeof(PKT_S_TEST)를 이용해서는 안되는 경우가 있어서 buffsOffset을 사용하는 걸까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 연장 부탁드립니다.
수강 기간 연장 부탁드립니다.연일 잦은 출장으로 공부할 시간이 없었는데요, 수강 기간 연장 부탁드립니다.
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
TLS와 VPN의 차이, VPN과 프록시
VPN 수업을 듣다보니 궁금한게 생겨 질문드립니다!TLS와 VPN 둘 다 암호화를 이용고 뭔가 통신 방식이 비슷해보이는데 정작 차이점에 대해 검색해봐도 잘 없어서 어떤 부분이 큰 차이가 있는지 잘 모르겠습니다ㅠproxy와 vpn 둘 다 우회에 사용될 때(예를 들어 VPN을 이용하면 public ip가 바뀌는 경우), 둘의 차이점이 ip의 암호화 여부인지 궁금합니다! 좋은 강의 감사합니다.
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요 서버 강의 질문드립니다.
안녕하세요 루키스님 항상 양질의 강의 감사합니다. 제가 현재 이 강의에서 서버 제외한 부분만 전부 수강을 했고 이제 서버부분을 들으려고 하는데[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버이 강의도 소지하고 있어서 위 강의를 먼저 수강 후 현재 강의를 듣는게 나을지 아니면 이 강의를 완독 후 Part4 강의를 듣는게 나을지 질문드립니다. PS: part5도 구매예정입니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ObjectPool.h Push에는 괄호를 안쓴 이유가 무엇일까요
ObjectPool.h에서 게임서버쪽에서 MakeShared를 사용할때도 메모리 풀이 적용되게해주는 함수인데여기서 Push는 왜 괄호를 안쓴걸까요 ?? static shared_ptr<Type> MakeShared() { shared_ptr<Type> ptr = { Pop(), Push}; return ptr; } GameServer.cpp에서 이미 아래와 같이 인자를 전달해서 그런걸까요..??왜 이렇게 되는지 궁금합니다..ObjectPool<Knight>::Push(knights[i]);
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
서버에서의 공격 동기화 질문입니다.
언리얼에서 얼마나 정확히 이러한 문제에 대해서 네트워크동기화를 잘 해주는지 모르겠어서 여쭈어봅니다.주황 녹색 모두 서버(제3의 호스트 또는 데디케이티드서버)에 접속한 클라이언트입니다.서버로의 핑은 200ms라 모두 가정하고 주황캐릭터가 움직이는 녹색 캐릭터를 공격하는 경우내 클라이언트에서는 내 주황이 잘 조준해서(Line trace나 Collision overlay) 녹색을 맞추었는데서버에서는 녹색이 이미 주황이 조준한 위치를 벗어나 계속 움직이고 있는 상황이 생기지 않나요? 캐릭터가 사람처럼 100m를 20초에 움직이면200ms 면 1미터의 오차가 생길수 있어서 충분히 클라이언트와 서버의 공격 오차가 발생할수 있다고 보는데요. 언리얼엔진이 이러한 핑에 따른 오차들을 보정하여 공격에 대한 충돌체크를 해주는 기능이 있나요?없다면 어떻게 처리를 하는게 좋을지 팁을 알려주시면 감사하겠습니다.