묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
tcp/ip는 연결을 유지? 아니면 유지하지 않음?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]두가지 질문 있습니다.1. 강의 시작에 tcp/ip 연결같은 경우에는 기본적으로 연결을 유지한다고 하셨고 연결 유지하는 모델을 설명하셨는데요. 곧바로 뒤에 나오는 연결을 유지하지 않는 모델도 tcp/ip 모델인건가요?아니면 이건 그냥 연결을 유지하지 않는 어떤 모델을 예로 들어서 설명을 하시는건가요?전자가 맞다면 tcp/ip는 연결을 유지/유지하지 않는 모델 둘다 가지고 있는건가요?무엇을 사용할지는 때에 따라 다른거구요? 2. tcp/ip가 연결을 유지하는 모델이라면 강의 3:40초 부터 설명하시는 부분에서 다음 페이지로 넘어가거나 하면 tcp/ip 연결을 새로 맺어야한다고 하셨는데 tcp/ip가 연결을 유지하는 모델이라면 계속해서 연결을 유지하고 있어야하는 것아닌가요?제가 어디를 잘못 이해하고 있을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장부탁드립니다
직장생활로 바빠서 사놓고 미루다가지금 듣기 시작했는데기간이 얼마 안남아서요.. 죄송합니다..기간연장 부탁드립니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Macro functions - still relevant in 2025?
Hey,I wanted to ask if in 2025 will you still use macro, or replace them with new syntax eq inline functions / consts / constexpr ?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
다음 강의 커리큘럼 질문!!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 스프링 완정정복 로드맵인 스프링 입문 - 스프링 핵심원리:기본편 - HTTP 웹 기본 지식(이번 강의) 까지 모두 들었는데요, 지금 현재 강의에서 말씀하시길 웹기본 지식 이후 다음 강의로 스프링부트와 JPA 실무 완전 정복 로드맵(야생형) 으로 넘어가고 이걸 다 듣고 다시 스프링 완전정복 로드맵으로 돌아와서 스프링 웹 MVC , 스프링 DB 접근 기술 등을 듣기를 추천하시던데요,김영한 백엔드 개발자 자바 스프링 JPA 실무 로드맵영한님이 올려주신 유튜브 로드맵 영상을 보면 순서가 조금 다른HTTP 웹기본 지식 - MVC1 - MVC2 - DB 접근1 - DB접근2까지 듣고 스프링부트와 JPA 실무 완전 정복 로드맵(야생형) 으로 넘어가서 듣고 다시 넘어와서 스프링부트 핵심원리와 활용 과 스프링 핵심원리 고급편 을 들으라고 하시던데요 어느 것으로 진행해야하나요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
2021_DEV_HTML 파일을 어디에서 다운 받을 수 있을까요?해당 파일이 없어서 실습 진행이 안되고 있습니다.파일을 다운받을 수 있는 링크나 이메일로 보내주시면 감사하겠습니다.ghtjd3795@naver.com
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장부탁드립니다
직장생활로 바빠서 사놓고 못듣다가올해 후반기에 보려고 지금 듣기 시작했는데기간이 얼마 안남아서 죄송한데 전에도 한번 연장 신청해서 염치없지만 기간연장 부탁드립니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriterLock 부분 질문입니다.
void Lock::WriteLock()부분에서 제가 실수로 expected = EMPTY_FLAG;이 부분을 while(true) 밖에 선언했습니다.CAS과정에서 expected가 갱신되는 것을 깜빡하구요. 그럤더니, 당연히 크래시가 났는데 저는 expected가 다른 ReadLock이나 WrtieLock으로 잘못된 값으로 갱신되면 EMPTY_FLAG랑 비교하는 CAS과정을 통과할 수 없게 되어 yield를 반복하다가 TIME_OUT 크래시가 날줄 알았습니다. 그런데 ReadUnlock쪽에서 Multiple Unlock 크래시가 뜨더군요.행여나 쌍을 맞춰주지 않았을까, 코드까지 다운로드해서 비교헀더니 딱 저 부분만 수정하니 잘 동작해서왜 Multiple Unlock이 나타나는지 의문입니다. 아무래도 RAII 객체의 LockGuard부분에서 소멸자를 호출하는과정에서 Multiple_Unlock이 뜨는 것 같은데, TIMEOUT -> 스택 풀기 과정에서 (소멸자 호출)로 Multiple_Unlock이 뜨기에는 10초의 시간이 있음에도 실행하자마자 바로 크래시가 나서, 어느 부분에서 ReadUnlock까지 가는지를 모르겠습니다. 아무리 생각해도 READ_LOCK에서 lock을 잡지 못하면, Unlock까지 도달할 일이 없지 않나요?디버깅을 찍어봐도 어디서 Unlock에 도달하지는지 모르겠습니다 디버깅 정보 올립니다. 혹시 이럴때 CRASH를 낸 주체를 정확히 모르겠으면 어떤식으로 디버깅 하면서 풀어나가면 좋을까요?ChatGPT는 어디가 어떻게 에러를 내는지 명쾌한 해답을 못주네요
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 개념에 대해서 설명하시지는 않으시는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의 너무 도움되고 있습니다.이번 강의부터 캐시에 관한 내용이라 듣기 시작했는데 캐시가 무엇이고 같은 용어적 설명 없이 바로 캐시 동작을 설명하시는데요.바로 캐시가 있을때 없을때~ 같이 동작을 설명하셔서 캐시가 뭐지? 하면서 그냥 대충 설명하시는 내용으로 추측만하면서 강의를 봤는데뒤의 남은 강의들에서 캐시에 대한 개념을 설명하시나요?
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
DataOutputStream 의 writeUTF도 블로킹 메서드 인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]복습 중에 질문이 생겼습니다 콘솔 입력 / DataInputStream의 readUTF는 입력을 받은 데이터로 호출한 쓰레드에서 작업을 수행하기 때문에 블로킹 메서드 인 것이 이해가 쉽게 됩니다. 반면 DataOutputStream 의 writeUTF() 메서드는 반환 타입도 void이고(호출한 쓰레드에서 뭘 처리하지 않음), 서버에 메세지를 보내기만 하면 되기 때문에 블로킹 메서드가 아니라고 생각했는데, 막상 검색해보니 블로킹 메서드라고 나와서 이해가 잘 안됩니다.블로킹 메서드가 맞는 걸까요? 맞다면 왜 블로킹 메서드로 설계된 걸까요
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
스택 empty
안녕하세요stack empty 함수에 return size() > 0으로 하게되면 비어있으면 false가 나올텐데 의미가 반대로 사용된 것 아닌가요??🙃
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
수강기간 연장 부탁드립니다.
안녕하세요. 알찬 강의 잘 듣고 있습니다 🙂수강 기간이 2달 정도 남아서 혹시 수강 기간 연장이 가능할까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션4 배열실습 질문입니다.
배열을 통해 콘솔에 5x5 맵을 표현하는 부분에서 while (true) {HANDLE output = ::GetStdHandle(STD_OUTPUT_HANDLE);COORD pos = { 0, 0 };::SetConsoleCursorPosition(output, pos); for (int y = 0; y < MAP_SIZE; y++) { for (int x = 0; x < MAP_SIZE; x++) { switch (GMap2D[y][x]) { case 0: cout << " □ "; break; case 1: cout << " ■ "; break; case 2: cout << " ● "; break; } } cout << endl; } }위와 같이 메인에 함수에 축약해서 코드를 짜놓았습니다. (실제로 헤더와 추가 cpp에서 도는것을 질문하기 쉽게 축약한것이라 실제 구동에는 차이가 없는것 같습니다.)위 코드에서 궁금한 부분이 2가지 생겼습니다.위 부분에서 while true로 돌고 있는데 무엇때문에 한번만 출력되는지 궁금합니다.위 코드를 작성하게 되면 다른 코드를 작성했을 때 콘솔창에 나타나는 "~~~~ 코드와 함게 종료되었습니다.... ~~~ 이 창을 닫으려면 아무 키나 누르세요.." 와 같은 프로그램의 끝을 알리는 자동 구문도 안뜨더군요.위 두 가지가 궁금합니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
ebs-dp-app 같은 centos 이미지 pod를 생성하면 오류가 발생합니다.
다른 이미지는 문제가 없는데 centos 이미지를 사용하는 pod를 생성할 때 아래와 비슷한 오류가 발생합니다.NAME READY STATUS RESTARTS AGEtest 0/1 ErrImagePull 0 37s"Error from server (BadRequest): container "test" in pod "test" is waiting to start: trying and failing to pull image"혹시 해결 가능한 방법이 있을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전 문제 풀이 5 - 25번 정답 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 실전 문제 풀이5 - 25번정답 A 아닌가요?강의와 정답표에는 D라고 되어있는데,D는 표준대기열이라서 유료계층을 먼저 변환해야되는 순서 보장이 어렵지 않나요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장부탁드립니다
안녕하세요? 좋은 강의 감사드립니다직장 생활로 시험을 못봐서... 다시공부하려합니다 ㅠ수강기간 연장부탁드립니다 감사합니다
-
미해결[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를 확장해서 만들 수 있는 방법은 없는건가요?제가 찾아보면 좋을 법한 키워드 또는 해결방법을 알고 싶습니다.