묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
유해 사이트 차단 프로젝트 관련 마지막 질문입니다..
안녕하세요, 좋은 강의 만들어주신 덕분에 오랜만에 몰입해서 프로젝트를 진행해보고 있습니다! 그런데 제가 지식이 부족하여 계속 모르는 부분들이 생기네요 ㅠㅠ다름이 아니라, UDP DNS Response 패킷을 위조하여 먼저 보내는 방식으로 지금 방향을 바꾸었는데, 모든 조건이 동일하고 길이마저 동일하게 변조하여 보내서 wireshark에서는 정상 패킷으로 인식하여 먼저 온 응답으로 인식하는데 브라우저와 윈도우의 nslookup에 의한 명령어로 dns 를 조회할 때는 정상적인 응답만 받아들이고 제 위조 패킷은 먼저 왔음에도 받아들여주지 않습니다 ㅠㅠ 길이도 똑같이 맞추고, 다른 건 ipv4헤더의 identification값이 달라 ip와 udp 체크섬이 달라진다는 것 뿐인데.. 혹시 관련하여 어느 부분을 더 찾아봐야 할까요 검색을 해도 너무 나오는 부분이 없어 막막하여 질문드립니다..
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기한 연장 부탁드려도 될까요?
9월에 제대로 공부를 할 수 있을 것 같은데 8월이 수강 마감기한이라서요.. 수강기한 늘려주실 수 있을까요? 감사합니다ㅜ
-
해결됨CloudNet@ - Amazon EKS 기본 강의
1장 실습 CloudForamation 이후 awscli 사용을 위한 IAM 자격 증명 문제가 발생을 합니다.
[root@myeks-host ~]# aws ec2 describe-instances | jqAn error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation. User: arn:aws:iam::694833324522:user/dntjr4772@lgcns.com is not authorized to perform: ec2:DescribeInstances with an explicit deny in an identity-based policyaws configure 에서 accesskeys.csv 파일에 맞게 등록은 잘했습니다.iam 사용자 권한을 봐도 AdministratorAccess 권한 정책이 들어가있습니다. 어떤게 문제일까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
TLS 는 데이터를 힙영역에서 가져갈때 깊은복사가 일어납니까 얕은복사가 일어납니까?
TLS 는 데이터를 힙영역에서 가져갈때 깊은복사가 일어납니까 얕은복사가 일어납니까?점유를 해야하니 느낌상 얕은복사일것같긴한데, lock을 하는거면 깊은복사를 하는것같기도하고... 어떻게 작동하는지 여쭙고싶습니다
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
time_wait 상태에 대해서
안녕하세요강의 내용에서 time_wait 상태로 인해서 서버에서 tcp 연결을 끊는 것 보다 클라이언트에서 끊는게 더 효율적이라고 하셨는데 해당 부분에 대한 구체적인 예시를 알면 더 좋을 것 같아 질문을 드립니다. 저는 위 말씀을 듣고 tcp 서버에서 먼저 연결을 끊어 서버 소켓 포트에 대해 소켓이 time_wait 상태로 존재하도록 하고 다시 클라이언트가 연결을 하도록 했는데요, 문제 없이 연결이 되었습니다. ss 명령어를 통해서 확인해 봐도, 해당 포트에 대해 LISTEN 상태와 TIME_WAIT 상태가 둘 다 존재하는 상태였고, 해당 time_wait이 분명 존재하는 상황에서도 클라이언트가 계속 연결을 시도하면 연결이 잘 ESTABLISHED 되었습니다. 아마 강사님께서 말씀하신 내용은 이 부분이 아니겠지만, 어떠한 부작용(?) 때문에 tcp 연결을 클라이언트에서 끊는게 더 좋고, time_wait 상태도 언제 문제가 되는 상황인지 더 설명을 들으면 좋을 것 같습니다. 좋은 강의 감사합니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Arraysegment가 무엇일까요?
Arraysegment가 무엇일까요? 검색해봤는데요. 검색한 것마다 내용이 조금 달라서요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
WaitForSingleObject의 Auto reset 처리는 원자적인가요
auto_reset가 설정된 event를 SetEvent()할 때, WaitForSingleObject()로 sleep 중인 스레드들을 실행시켜주고 다시 Signal이 리셋되는 것으로 이해했습니다.여기서 Signal을 확인하고 리셋하는 과정이 CAS같이 원자적으로 동시에 작동하나요? 아니면, 중도에 WaitForSingleObject()를 호출한 스레드 측에서 리셋이 되지 않아 통과할 가능성이 있나요?
-
미해결BHPT - 호스트 기반 모의해킹 기초
안녕하세요~ BHPT 다음 강좌 관련하여 문의드립니다!
강의 들으며 정말 많이 배우고 있습니다! 감사합니다🙇🏻♂️ 강의에서 BHTP 다음 스텝을 밀씀주신 적이 있었는데 언제쯤 출시하실 계획이실지 궁금합니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷직렬화 암호
간결하게 얘기하자면 패킷직렬화하고 클라나 서버로 보낼떄 패킷을 암호화처리를 하여서 보내야하는것으로 알고있는데 Protobuf에서 자체적으로 암호화처리를 하고 보내는건가요? 아니면 Protobuf와 별개로 암호화처리를 해줘야하는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MAX_NUMBER를 1'000'000까지 하면 답이 안나오는데 혹시 어떤게 문제인지 봐주실 수 있나요?
1,000번이나 100'000번까지 하면 바로 답이 나오는데 100만번으로 설정하면 계속 기다려도 감감무소식이라서 문제를 잘 모르겠습니다 ㅠㅠ. #include "pch.h" #include "CorePch.h" #include "CoreMacro.h" #include "ThreadManager.h" #include <iostream> // 소수 구하기 // 1과 자기 자신으로만 나뉘면 그것을 소수라고 함. Mutex m; bool CalculateRepeatToSelf(int32 selfNum) { int8 count = 0; for (int32 i = 2; i <= selfNum; i++) { if (count > 2) return false; if (selfNum % i == 0) { count++; } } if (count == 1) return true; return false; } int32 PreCalcuate(int32 order, int32 devision, int32 interval) { // 1, 10, 100'000 // 2, 10, 100'000 // 3, 10, 100'000 // ... // 10, 10, 100'000 int32 startNum = (order - 1) * interval + 1; int32 endNum = order * interval; int32 count = 0; for (int32 i = startNum; i <= endNum; i++) { if (CalculateRepeatToSelf(i)) count++; } return count; } int main() { const int MAX_NUMBER = 1'000'000; //const int MAX_NUMBER = 10'000; // 1229 //const int MAX_NUMBER = 1'000; // 168 // 1~MAX_NUMBER까지 소수 개수 // 멀티스레드로 병렬로 구해서 덧셈한다. /*for (int32 i = 1; i <= 20; i++) { if (CalculateRepeatToSelf(i)) count++; } cout << count << endl;*/ // ------------------------ vector<thread> threads; int32 devision = thread::hardware_concurrency(); int32 interval = MAX_NUMBER / devision + 1; atomic<int32> totalCount = 0; for (int32 i = 1; i <= devision; i++) { threads.push_back(thread([&totalCount, i, devision, interval](){ totalCount+= PreCalcuate(i, devision, interval); })); } for (thread& t : threads) { t.join(); } cout << "Total: " << totalCount.load() << endl; }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
GetTickCount64() 의 정밀성
#include "pch.h" #include "CorePch.h" #include <iostream> #include <atomic> #include <thread> #include <mutex> #include <Windows.h> #include <future> int32 buffer[10'000][10'000]; int main() { memset(buffer, 0, sizeof(buffer)); // 배열을 전부 0값으로 초기화 //! [i][j] 순으로 더하기 { uint64 start = GetTickCount64(); //~ 시작 시간 측정 int64 sum = 0; for (int32 i = 0; i < 10'000; i++) for (int32 j = 0; j < 10'000; j++) sum += buffer[i][j]; uint64 end = GetTickCount64(); // ~ 종료 시간 측정 cout << "Elapsed Time [i][j] : " << (end - start) << endl; } //! [j][i] 순으로 더하기 { uint64 start = GetTickCount64(); //~ 시작 시간 측정 int64 sum = 0; for (int32 i = 0; i < 10'000; i++) for (int32 j = 0; j < 10'000; j++) sum += buffer[j][i]; uint64 end = GetTickCount64(); // ~ 종료 시간 측정 cout << "Elapsed Time [j][i] : " << (end - start) << endl; } }해당 코드를 7900 CPU 에서 테스트하는데, 경과시간이 둘 다 0,0 이 나오더군요.. 분명 그럴수가 없는데, CPU클럭이 너무 빨라서 gettick64() 의 정밀도로 측정이 불가능해서그런건가요? 분명 두번째 스코프에 있는 경과시간이 더 느리게 나와야 정상인데, 둘 다 틱이 0 0 이 나와서 당황스럽습니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
uses가 0이 될 때 객체 부분이 삭제가 어떻게 일어나나요?
make shared로 shared_ptr를 만들게 되면우리가 예제에서 만든 것처럼우리가 포인터로 가르키는 객체가 RefCountingBlock을 상속해서메모리에 할당 될 때 같이 된다는 이점있다고 이해했습니다Refcount_obj2(_Type&&... Args) : Ref_count_base를 예시를 드시며21:11 에서 설명 해주셨습니다 만약 uses가 0이 되고 weak는 아직 1일 때객체 부분은 구현에 따라 삭제 될 수도 있고RefCountingBlock은 남아있게 된다고 말씀해주셨는데RefCountingBlock을 상속해서 하나의 객체로 만들어진 상태에서객체의 부모(countringBlock)을 남긴채로 자식(객체부분)만 메모리 해제를 할 수 있는건가요? 아니면 이게 불가능 하기 때문에 그냥 구현에 따라 다른건가요?
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
실전6에 32번과 실전7에 27번
실전 6에 32번 고객책임 관련 정답 : D (서버 측 암호화 유지)실전 7에 27번 고객책임 관련 정답 : C ( 고객데이터 )7-27번 보기B 에도 서버측 암호화가 있는데 aws책임이라고 설명해주시는데, 헷갈리는데 부연 설명부탁드리겠습니다.
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
실전 7에 7번 문의
엔지니어 액세스 중 가장 싼 건 비즈니스 플랜 아닌가요 ? 개발자 플랜은 업무시간에만 가능한것 아닌지 문의 드립니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
유니코드 특수문자 출력 관련
안녕하세요유니코드 특수문자를 출력시킬 때 일부 특수문자(Ballot Box with X)가 ?로 출력이 되고 있습니다레지스트리 편집기에서 chcp를 새로 설정해주기도 하고인코딩을 새롭게 해서(유니코드 65001) 저장도 하고문자 그림 대신 유니코드 번호를 적어도 봤지만('\u2612')여전히 해결되지 않고 있습니다다른 해결방법이 있을까요?
-
미해결ChatGPT 100% 활용하여 배우는 파이썬 네트워크 프로그래밍 A to Z
자료 공유
모든 질문은 언제나 환영합니다. 최대한 빨리 답변드리겠습니다.사실 대부분의 질문은, 자신이 질문을 정리하는 과정에서 해결되기 마련입니다.따라서 질문을 남기실 때, 자세하게 어디 부분이 이해가 되고 안되고를 자세히 말씀해주시면 감사하겠습니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기한 연장드립니다.
안녕하세요.수강 기한이 한 달 남았는데, 수강 기한 연장이 가능할까요? 업무와 병행하다보니 강의 수강을 못했네요...연장해주시면 정말 감사하겠습니다 !
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
컨트롤uri
회원 등록 폼 조회: /member/new get에서 컨트롤 URI는 컨트롤러라고 교제에 되어 있는데,회원 등록 폼 조회: /member/new get는@getMapping("/new")통해서받게 됨으로 따라서 여기서 GET /edit도 컨트롤 uri 가 되는거 아닌가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
궁금한게 있어요!
안녕하세요 해당 강의 보면서 Sprite와 Unity에서의 Atlas 관련해서 궁금한게 있습니다. BitBlt을 사용해서 Sprite 하나씩 그려주고 있어서 나중에 CPU, GPU에게 부담이 갈 수 있는 상황이라 가정하면 Unity에서의 Atlas처럼 한번에 묶어서 처리하도록 만들게 될텐데 여기서 궁금한게 Atlas라는게 여러개의 Sprite들을 다시 하나의 Texture로 만드는 과정일까요?그리고 이렇게 Atlas같은 기능을 활용하면 CPU, GPU에게 덜 부담을 주게 되는건 알겠는데 메모리 상으로는 여러 Sprite로 묶은 Texture를 만들어야하니까 메모리적으로는 불이익을 볼 수 있는걸까요?
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
유해사이트 차단 프로젝트 관련 질문입니다.
안녕하세요, 먼저 양질의 강의를 만들어 네트워크를 이해할 수 있는 실습도 준비해주셔서 정말 감사드립니다.덕분에 정말 많은 인사이트를 얻어가는 듯 합니다.이렇게 질문을 드리는 이유는 다름이 아니라, 유해사이트 차단 프로젝트를 해보는 중에 rst 플래그를 이용한 위조 패킷을 날려 dns 질의에 대한 응답을 차단시키는 방향으로 프로젝트를 진행해 보고 싶어 그런 방향으로 진행하였습니다. 어찌저찌 dns response 보다 빠르게 rst 패킷을 날리는데에는 성공하였고, DOH(Dns Over Https) 프로토콜을 사용하는 웹페이지들은 추적자체가 불가능하여 TCP+HTTP 연결을 사용하여 DNS 응답을 주는 사이트로 테스트를 해보고 있습니다.문제는 RST 패킷이 제대로 인식은 됐는지 이후 ACK나 DNS 응답에 RST 패킷으로 DNS 서버에 응답을 주는데, 브라우저는 정상적으로 페이지를 로드를 한다는 것입니다. 제가 이해한 바로는 HTTP는 TCP 위에서 동작하는 것이니 연결이 종료된 포트로는 더이상 응답을 수신 안하고 무시해야 할 것 같은데.. 이해가 잘 되지 않습니다. 원인을 알 수 있을까요? 네트워크 스택이 달라 HTTP만 바라보는 브라우저 입장에선 TCP 스택인 RST 패킷이 오든 말든 상관 없는걸까요? Chat GPT는 브라우저에서 DNS를 처리하는 엔진에서 RST 패킷을 무시하는 로직이 있을 수 있다고 하는데 이것 때문일 지 궁금합니다.