안녕하세요~ 우선 질 좋은 강의에 감사인사드립니다! 다름이 아니라 VPN 강의 속에서 VPN Tunneling to GtoG 부분을 설명해주시면서 아래와 같은 그림을 작성해주셨고, 이 때 "PC A, B가 DB 서버에 접근이 가능하지만 PC A,B 는 외부 인터넷을 사용하지 못한다" 라고 하셨는데요! 그런데 보통 회사(주로 사기업..)에서 일하다 보면 회사에서 오프라인으로 출근한 뒤(오프라인으로 출근했다 = 회사 내부 망을 이용), 회사의 내부 문서에서도 접근할 수 있게 되지만 그와 동시에 구글링도 보통 가능한데요!? (물론 회사에 따라 개인정보와 같은 매우 민감한 데이터들에 접근하기 위해서 VDI 같은 것들을 이용해서 더 깊은(?) 내부망으로 접근하면 해당 내부망에선 외부 인터넷이 안되긴 하더라구요) 이러한 경우는 어떻게 네트워크를 구성한 건가요..? 대략적으로 구조만 알려주셔도 감사하겠습니다! 또 공공기관 같은 경우는 강의에서 말씀하신 것처럼 회사 내부 망을 이용할 때는 DB 서버에 접근할 수 있되 인터넷은 접근이 안된다는 것을 지인을 통해서 들었습니다. 이 2개의 케이스의 각 네트워크 구조에서 가장 큰 차이점이 무엇인지 설명 부탁드려도 될까요? 미리 감사드립니다 🙂
안녕하세요, Client Socket과 이벤트를 select 하실때 FD_READ | FD_WRITE | FD_CLOSE 3가지를 동시에 바인딩하시는 이유가 궁금합니다 강의중 언급하신 'TCP 논 블로킹 소켓에서, 데이터를가 분할되서 송신될 수 있다. 하지만 웬만하면 일어나지 않는다.' 의 상황에 대응하기 위하여 send 함수 호출 시 각 인자를 수정하셨는데, FD_WRITE는, 만약 위와 같은 상황이 발생했을때, 다음 프레임에서 이벤트를 감지하기 위함이신지, 만약, 위와 같은 데이터 분할 송신이 절대 일어나지 않는경우라고 가정하면 FD_READ | FD_CLOSE 2개의 플래그만으로도 목표하신 에코서버 구현이 가능할것인지 이 궁금합니다.
안녕하세요, PostNetInint 관련 질문이 있습니다. LogABNetwork: [SERVER] AABGameMode::PreLogin ============================================================ LogABNetwork: [SERVER] AABGameMode::PreLogin Begin LogABNetwork: [SERVER] AABGameMode::PreLogin End LogABNetwork: [SERVER] AABGameMode::Login Begin LogABNetwork: [SERVER] AABPlayerController::BeginPlay Begin BP_ABPlayerController_C_1 LogABNetwork: [SERVER] AABPlayerController::BeginPlay End LogABNetwork: [SERVER] AABGameMode::Login End LogABNetwork: [SERVER] AABGameMode::PostLogin Begin LogABNetwork: [SERVER] AABCharacterPlayer::BeginPlay Begin ABCharacterPlayer_1 LogABNetwork: [SERVER] AABCharacterPlayer::BeginPlay End ABCharacterPlayer_1 LogABNetwork: [SERVER] AABPlayerController::OnPossess Begin BP_ABPlayerController_C_1 LogABNetwork: [SERVER] AABCharacterPlayer::PossessedBy Begin ABCharacterPlayer_1 LogABNetwork: [SERVER] AABCharacterPlayer::PossessedBy No Owner LogABNetwork: [SERVER] AABCharacterPlayer::PossessedBy Owner : BP_ABPlayerController_C_1 LogABNetwork: [SERVER] AABCharacterPlayer::PossessedBy End ABCharacterPlayer_1 LogABNetwork: [SERVER] AABPlayerController::OnPossess End LogABNetwork: [SERVER] AABGameMode::PostLogin Client Connections : IpConnection_1 LogABNetwork: [SERVER] AABGameMode::PostLogin End LogABNetwork: [CLIENT1] AABPlayerController::PostNetInit Begin BP_ABPlayerController_C_0 LogABNetwork: [CLIENT1] AABPlayerController::PostNetInit Server Connection : IpConnection_0 LogABNetwork: [CLIENT1] AABPlayerController::PostNetInit End LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner Begin ABCharacterPlayer_0 LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner End ABCharacterPlayer_0 LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit Begin ABCharacterPlayer_0 LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit End LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit Begin ABCharacterPlayer_1 LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit End LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay Begin No Owner LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay Begin BP_ABPlayerController_C_0 LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay End LogABNetwork: [CLIENT1] AABCharacterPlayer::BeginPlay Begin ABCharacterPlayer_0 LogABNetwork: [CLIENT1] AABCharacterPlayer::BeginPlay End ABCharacterPlayer_0 LogABNetwork: [CLIENT1] AABCharacterPlayer::BeginPlay Begin ABCharacterPlayer_1 LogABNetwork: [CLIENT1] AABCharacterPlayer::BeginPlay End ABCharacterPlayer_1 LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay End 강의 말미의 로그를 보면 [CLIENT1] 의 AABPlayerController::PostNetInit 함수가 함수가 끝나고 나서 OnRep_Owner 함수가 실행됩니다. 그리고 나서 AABCharacterPlayer의 PostNetInit 함수가 시작 되는데, Actor 를 상속받은 모든 하위 클래스에서 PostNetInit 을 호출 하는 것으로 알고 있습니다. 이때 순서가 컨트롤러의 PostNetInit 이 호출되고 종료된 다음, 그 다음으로 캐릭터의 PostNetInit이 호출되고 종료되는데, 캐릭터와 컨트롤러 둘다 액터를 상속 받았는데 순서가 무조건 먼저 컨트롤러 호출 및 완료 후에 캐릭터 호출 및 완료 인지 궁금합니다. Gamemode->Controller-> Pawn 이순서가 무조건 맞나요?
릴리즈로 할 때만 이런 링크에러가 납니다. 이런식으로 무시를 해봐도 안 되고 런타임 라이브러리를 다중스레드(DLL/MD)로 변경도 해보았는데 해결이 안 되네요.. C++버전은 17로 했습니다. 혹시 이에대한 해결방안이 있을까요? 구글링을 해봐도 해결방안이 나오지 않아서 질문을 드립니다..
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제가 이해한 과정이 맞는 지 알려 주셨으면 좋겠습니다.. 웹 브라우저에서 웹 서버로 https://www.google.com:443/search?q=hello&hl=ko 이런 식으로 요청하면 DNS 서버에서 google.com -> 200.200.200.2(IP 주소)를 알아내고 443(PORT) 라는 정보를 알아 낸다. 웹 브라우저가 HTTP 메시지를 생성한다. ex) GET /search?q=hello&hl=ko HTTP/1.1 Host: w ww.google.com) 여기서 궁금한 것이 /search 자체는 리소스인데 이 리소스를 URI(URL)에 매핑 했기 때문에 Resource Path로서 사용할 수 있게 된 것인 가요? 소켓 라이브러리를 통해서 전달 한다. * 이 때 알아낸 PORT와 IP주소로 TCP/IP 연결을 할 수 있게 하고 OS 계층에 데이터를 전달 한다. 전달 받은 데이터를 포함한 TCP/IP 패킷을 만들어서 웹 서버로 전송 한다. 웹 서버는 해당 패킷을 받아서 메시지 바디에 요청한 데이터를 포함하여 메시지 응답 패킷을 클라이언트(웹 브라우저)에게 전송한다 ex) HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ... 웹 브라우저는 응답 메시지를 렌더링 해서 웹 페이지를 띄운다. 제가 이해한 바가 맞나요?
IocpEvent에서 OVERLAPPED 상속 받고 가상 함수를 선언했을 때 OVERLAPPED가 주소의 맨 처음으로 가고 그다음이 가상 함수 테이블이 오지 않나요? 만약 OVERLAPPED를 상속받지 않고 최상단에 선언한 경우라면 가상 함수가 맨 처음 주소이지만, 상속받은 경우에는 제가 테스트해 본 바로는 OVERLAPPED가 맨 처음 주소로 오는 것 같아서 질문드립니다! 만약 위처럼 OVERLAPPED를 상속받았을 때 맨 처음 주소에 오더라도 가상 함수 테이블 때문에 문제가 생길 수 있는 것일까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 복습하다가 궁금증이 생겨 질문 드려요! 웹 브라우저와 웹 서버의 역할&정의 제가 이해한 것이 맞는 지 틀렸다면 무엇이 틀렸는지 궁금합니다. ↓ url을 입력 -> DNS 서버에서 해당 도메인 이름으로 된 IP 주소를 알아오고 scheme를 통해 생략된 포트 주소를 알아 온다 -> 웹 브라우저에서 HTTP 요청 메시지를 생성한다 -> 애플리케이션에서 소켓 라이브러리를 통해 메시지를 전달한다. 이때 알아낸 IP, PORT로 TCP/IP 연결 지시후 TCP/IP 계층으로 데이터 전송 -> TCP/IP 계층에서 HTTP 메시지를 포함한 TCP/IP 패킷 생성 -> 웹 서버로 전송
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 요청 데이터 처리 • 단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야 하는 경우 예) 주문에서 결제완료 -> 배달시작 -> 배달완료 처럼 단순히 값 변경을 넘어 프로세스의 상태가 변경되는 경우 POST의 결과로 새로운 리소스가 생성되지 않을 수도 있음 예) POST /orders/{orderId}/start-delivery (컨트롤 URI) POST /orders/{orderId}/start-delivery (컨트롤 URI)에서 위의 POST 메서드는 다른 POST와는 달리 클라이언트에서 리소스를 식별하고 있는 것으로 보이는데 이러한 경우에는 리소스를 생성하지 않고 프로세스의 상태를 변경하는 건가요? POST /orders/{orderId}/start-delivery 이것이 정확히 무엇을 의미하는지 잘 모르겠습니다. + PUT을 지원하지 않는 곳이 있어서 그럴 때는 POST를 사용하면 된다고 한 것이 데이터 변경을 의미한다는 것은 이해를 했습니다. 그리고 리소스라고 하는 것은 문서, 동영상, 사진 등과 같이 식별할 수 있는 모든 것이라고 얘기를 했는데 리소스 변경, 수정, 삭제, 조회라고 하는 것이 저 예제를 통해서 이해를 하자면 members라는 리소스가 있는데 그 안에 들어있는 필드 값(속성?)을 변경하는 것으로 느껴집니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] stateful, stateless에서 궁금한 점이 있습니다. stateless 같은 경우에는 서버에서 제공하는 리소스? 만 요청하면 되기 때문에 어떤 클라이언트에서 요청이 왔는지는 중요하지 않은 것으로 이해를 했는데 그러면 stateful은 계속 상태를 유지를 할텐데 어떤 클라이언트에서 요청이 왔는지는 쿠키를 통해서 구별하는 건가요?
강의에서 소개해주신 TCP 장애(Re-transmission, Out of order)에 관해서 질문 드리려고 합니다. Server와 Client구조에서 Server는 Client에게 1~100을 송신한다고 하면 (TCP 통신) 통신 장애(Re-transmission, Out of order)가 발생한 경우 Client는 1, 2, 3 ... ,100을 순차적으로 받지 못하고 1, 2, 3, 3, 5, 4 ... 99, 98, 100이런 식으로 값을 받을 수 있다고 강의에서 설명해주셨습니다. 그리고 위와 같이 통신 장애가 발생하면 TCP, 즉 L4 layer에서 통신 장애가 발생한 부분을 자동으로 처리(후처리) 해준다고 말씀하셨는데, 그렇게 TCP layer에서 후처리 해주면 Client는 값을 정상적으로 받게 되는 건가요? 추가로 이런 보정 작업이 100%로 Client가 값을 정상적으로 받는 것을 보장해주는 것인지 궁금합니다 지식이 부족해서 명확하게 질문드리지 못한 점 정말 죄송합니다. 강의 잘 보고 있습니다. 감사합니다!
제가 컴퓨터를 켰을때 NIC 카드가 물린 LAN 영역에 브로드 캐스트로 DHCP 서버를 찾으면 (공유기), 공유기에서 제 IP 주소, 서브넷 마스크주소, 게이트웨이주소, DNS 주소를 할당해준다. 이 개념이 맞을까요? 여러 궁금한 점이 있는데요 서브넷 마스크의 역할은 1111~ 로 and 연산을해서 내 네트워크가 맞는지 체크를 하는 역할이라 했는데, 서브넷 마스크 주소는 항상 255.255.255.0 이 되는거 아닌가요? 왜 할당을 해주는건가요? 게이트 웨이 주소는 해당 DHCP 서버가 연결된 L3 라우터 주소를 말하는게 맞나요? DNS 주소는 DHCP 가 전달해준 IP 주소의 도메인 네임 서버인가요? 아니면 DNS 쿼리를 날려주는 루트 DNS (13개있는?) 주소인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] HTTP가 기본 비연결성 모델이지만 데이터 전송 후 일정 시간 연결을 유지하는 지속 연결을 추가한게 지금의 HTTP 모델이라고 이해했습니다. 이전 강의에서 IP 프로토콜의 한계를 말씀하실 때 비연결성을 말씀하셨는데 같은 비연결성 용어라도 뜻이 서로 다른건가요? HTTP의 특징인 비연결성 : 필요할 때만 연결한다는 뜻 IP의 한계인 비연결성 : 연결이 안되어있어도 전송함 질문에 대해 재답변을 요청드렸는데 답변이 없으셔서 재질문드립니다..! +추가 : 많은 질문에 대한 답변들을 정리를 해보니 다음과 같은 결론이 나왔습니다. 연결 지향성은 3 way handshake와 같이 먼저 요청 보낼 곳과 연결할 수 있는 지를 체크하는 것이고, 연결성은 응답 이후에도 계속 연결이 되어있음을 뜻한다. 즉, IP의 한계를 얘기할때는 비연결성이 아닌, 비 연결 지향성이 맞다는게 제 생각입니다.
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 보다보면 미로맵 제작 같이 다운로드가 안되는 코드를 올려주신 다는 말씀을 하시는데 혹시 코드는 어디서 다운 받을 수 있을까요?
권한 옵션 관련한 설명에서요 .. 그림에는 100 110 001 000 으로 -rwS--x--- 로 되어있는데 숫자로 나타내면 4610 으로 나타낸다고 나와있는걸로 봤는데, 그 밑에 설명에는 "예를 들어, 위와 같이 현재 권한이 4611로 설정되어 있는 ~" 이라고 나오더라구요. 이 부분이 이해가 안가서요.. 4610 이 아니라 왜 4611인가요?