묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷 리시브버퍼 관련 질문이 있습니다.
패킷 리시브 할 때 WSARecv의 작동에 의문이 생겨 질문을 남겨봅니다. [Size][ID][Hello World] 라는 패킷을 수신하다고 가정해봤을 때 Session::ProcessRecv 가 호출된 시점에서 [Size][ID][Hello] 까지의 데이터를 받았다고 가정하면 PacketSession::OnRecv에서 dataSize가 header.size보다 작기 때문에 0바이트를 Return 해 버리고 끝납니다. 이러면 RecvBuffer의 _writePos, _readPos에는 아무 변화 없이 다시 RegisterRecv를 걸어버리는데요 다음 RegisterRecv (WSARecv) 를 걸 때 , 읽다만 데이터의 시작 지점 부터 다시 읽어버리는게 아닌가 싶어서 여쭤봅니다 첫 번째 ProcessRecv를 받았을 때 RecvBuffer이 다음과 같다면 두 번째 ProcessRecv에서는 남은 "World" 데이터가 RecvBuffer 뒤쪽에 쌓이게 되는지, 아니면 변하지 않은 _writepos 위치 때문에 앞에서 부터 다시 작성되게 되는지 의문이 생겨 여쭤봅니다. 제 생각 중 만약 전체 바이트가 아닌 일부 바이트만 수신되는 위와 같은 과정에서 WSARecv는 2번 따로 따로 호출된다고 이해한게 맞으며, RecvBuffer에 문제없이 데이터가 이어서 들어가게 되나요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
main.py
안녕하세요 다름이 아니라 제가 main.py 내용애서 db이름을 수정 안해주고 docker-compose up을 시킨뒤 원인을 알고 db 부분을 수정 해줬습니다. 그런 다음 실행을 시켜줬지만 "davedb"가 계속 없다고 뜨는 오류를 확인을 하였는데요 그래서 인위적으로 davedb를 만들어 주고 실행을 하니 success가 뜨는 것을 확인을 했습니다. 혹시 수정을 해도 똑같은 오류가 뜨는 원인이 뭘까싶어 질문 남깁니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
세션 쿠키 질문 있습니다^^
쿠키의 생명 주기 설명에서 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시까지만 유지된다고 하셨는데, 웹서버 입장에서는 웹 브라우저가 종료되었다는 사실을 모를텐데 그럼 서버는 세션을 언제까지 보관하고 있나요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
웹 브라우저 요청 흐름 강의 중 HTTP 메시지 전송 과정에서 질문이 있습니다!
강의와 다른 질문들을 참고하여 HTTP 메시지 전송 과정의 순서에 대해 제가 이해한 내용은 아래와 같습니다. 1. 웹 브라우저에서 HTTP 메시지를 생성한다. 2. 애플리케이션은 소켓 라이브러리를 사용하여 TCP/IP와의 연결을 지시한다. 3. TCP/IP 와 연결된 후 TCP 계층에서 3 way handshake를 진행하여 서버와 연결한다. 4. 서버와의 연결이 확인되면 TCP/IP 프로토콜로 데이터(HTTP 메시지)가 전달된다. 5. TCP/IP는 전달받은 HTTP 메시지에 TCP관련 정보와 IP관련 정보를 추가하여 TCP/IP 패킷을 생성한다. 6. 웹 브라우저는 요청 패킷을 인터넷 망에 던진다. 질문입니다! Q1. 제가 이해한 전체 과정이 맞나요? Q2. 3 way handshake를 진행하는 계층과 시점이 헷갈리는데요. 3 way handshake는 TCP/IP 연결 후에 TCP 계층에서 진행되는 것이 맞나요? (애플리케이션 계층에서 일어나는 게 아닌 거죠?) Q3. 3 way handshaking을 하는 이유는 요청 패킷을 서버로 던지기 위해서 서버와의 연결을 확인하기 위한 게 맞나요? Q4. 강사님께서 3 way handshake 진행 전 찾았다고 언급하신 IP와 PORT는 HTTP 요청 메시지 생성 전 URL을 통해 찾은 PORT와 DNS 서버를 통해 찾은 IP인 게 맞나요? Q5. TCP/IP 패킷 생성 시 담아지는 IP와 PORT도 HTTP 메시지 생성 전에 URL과 DNS 서버 조회를 통해 찾아낸 IP와 PORT인 건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 궁금한 점이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 클라에서 서버로 액션 요청 하고 로직 처리 후 클라로 응답 받는 시간이 어느정도되어야지, 지연 없이 받았다고 생각하면 될까요??
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
심화학습을 하고싶은데 책추천해주실 수 있을까요
oreilly 사의 1. HTTP 완벽가이드 2. 리얼월드 HTTP 두 권중 하나를 생각중이긴한데 더 좋은 책이 있을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Cache-Control: no-cache 와 관련하여 질문드립니다.
안녕하세요. 해당 강의를 수강중인 김승수라고 합니다. 항상 좋은 강의를 제공해주심에 감사드립니다. 이번 강좌에서 Cache-Control: no-cache 부분을 들으며 이것을 사용하는 실제 사례가 궁금해서 문의드립니다. Cache-Control: no-cache는 데이터를 캐시해도 되지만, 항상 원(Origin) 서버에 검증하고 사용해야한다고 설명들었습니다. 내용 자체는 이해가 가능하나 이 방식이 사용되는 실제 사례가 궁금합니다. 만료 시간 전에 캐시한 데이터가 서버에서 변경될 가능성이 높으나, 데이터 자체의 크기가 커서 변경이 일어나지 않은 경우에는 데이터를 다시 가져오는 부하를 줄이기 위해 사용하는 것일까요? 만료 시간 전에 캐시한 데이터가 서버에서 변경될 가능성이 높다면, 캐시 유효 시간을 짧게 설정하면 될 것인데... no-cache를 왜 만들었을까요? 캐시로 관리하는 데이터가 원 서버의 실제 데이터와 동일한지 매번 검증한다면 이 작업 자체도 오버헤드라고 볼 수 있지 않을까요? 아니면 드물게 사용하는 매우 큰 데이터를 캐시에 두고 캐시 유효 시간을 길게 가져가기 위해 사용하는 것일까요? 캐시 자체는 빈번하게 조회할 데이터를 빠르게 가져오기 위해 조회 데이터를 가까이 두는 기술로 알고 있는데요. 드물게 사용할 데이터를 캐시에 보관하는 것도 이상하다고 생각됩니다. 강사님의 답변 기다리겠습니다. 감사합니다. 김승수 드림
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
TCP 3 way handshake
클라이언트와 서버가 TCP 3 way handshake로 논리적으로 연결 된다고 알고 있습니다. 그러면 실제 클라이언트와 서버가 물리적으로 어떻게 연결됐는지는 알 수 있나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
DNS 는 통신 방식이 다른건지 궁금합니다.
안녕하세요. 다른 질문댓글에서 DNS 는 3way handshake 가 발생하지 않는다고 하셔서 3way handshake 는 HTTP 단계가아니라 TCP / IP 단계에서 맺어주는 요청이지 않나요?? DNS와의 연결방식이 혹시 기존 TCP IP 와 다르게 동작하는것인가요??
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 vs 쿠키 차이점 질문합니다
안녕하세요 캐시와 쿠키와 관련한 차이점에 대해 질문드립니다. 두개 모두 정보를 캐시저장소와 쿠키저장소에 저장하고 이를 사용할 수 있는 공통점이 있는것 같습니다. 하지만 두 개의 사용 헤더도 다르고 사용 목적도 다르기는 한데 두개의 차이점을 찾아보니 난해한 부분이 있어 질문 드립니다. 쿠키와 캐시의 정의, 사용목적, 차이점등에 대해 부연설명 부탁드리겠습니다. 감사합니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
패킷트레이서 이용방법 알려주세요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존Introduction to Packet Tracer course 가 안나오네요. 대신 위 링크가 나옵니다. 패킷트레이서 코스로 아이디를 생성하지 못하여, 앱 다운도 못하며 이용도 못하고 있습니다. 아이디를 만들었고 앱은 다른 루트로 다운 받았지만 해당 아이디가 패킷트레이서 코스를 통해 만든 아이디가 아니여서, 패킷트레이서 와 연동이 안되서 이용을 못하고 있습니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
Introduction to Packet Tracer course가 안나와서 계정 설정을 못하고있습니다.
Introduction to Packet Tracer course 라는게 안나와있습니다. 이게 나와야하는데... 이게 나옵니다. 패킷트레이서 통해 아이디를 만들어야하는데, 그렇지 못해서 다운도 못하고 있고 이용이 안되고 있습니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
안녕하세요 유익한 가의 잘 듣고 있습니다.! 다름이 아니라
section4 ppt 자료좀 받을 수 있을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
JobQueue Flush함수 질문있습니다.
jobQueue에 데이터를 넣고 뺄 때 lock을 걸어야하는 것은 이해가 되는데 action에 데이터를 넘겨받고서는 lock이 풀린상황이니 invoke하기 전에 다른 스레드가 action을 바꿔치는 경우도 가능하지 않을까 하는 생각이 들어서 질문드립니다.
-
해결됨[2025 리뉴얼] 스스로 구축하는 AWS 클라우드 인프라 - 기본편
NAT 게이트웨이는 EIP를 꼭 가져야 하나요?
실습 위주 좋은 강의 항상 감사합니다. NAT 게이트웨이가 꼭 고정된 public ip(EIP)가 필요할까요? 서브넷에서 바라보는 gateway 설정만 있는데 public ip도 필요없지 않을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP API 데이터 전송
안녕하세요. 스프링 기본편에서 서버 - 클라이언트 간 데이터 전달을 다음과 같이 정리해 주셨는데요. 클라이언트 -> 서버 1. Request parameter 2. HTML FORM 3. HTTP MESSAGE BODY 서버 -> 클라이언트 1. HTML 정적리소스 2. VIEW 템플릿 3. HTTP MESSAGE BODY 이번 챕터에서 배우는 HTTP API는 위의 6가지랑 비교하면 어디에 해당하는건가요?? 정리하자면, 서버 - 클라이언트 간에 데이터 전송하는 방식을 구체적으로는 알겠는데, HTTP API라는게 어디에 해당하는건지 잘 모르겠습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReadLock부분에서 이해한게 맞는지 확인하고 싶습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이부분에서 Interlocked.CompareExchange 조건문에 예상값과 비교후에 +1을 해주는데 일반적인 상황은 아니겠지만 ReadCount범위를 초과하게 되면 어떻게 되는거지 라고 생각을 해보니 결국 WriteCount영역에 도달을 하게 되지만 ReadCount최대값의 +1 까지만 접근 가능하고 더이상은 WriteCount가 올랐기 때문에 더이상 접근할수 없게되고, 그 이후에 ReadUnLock() 실행이 되면 WriteCount에서 빠지고 그 뒤로는 이전처럼 동작하게 구조가 맞는거죠 이해한게 맞는지 확인하고 싶어서 글 올려봅니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
TCP 로 클라- 서버 데이터 전송시에
안녕하세요 영한님 전에 들은 강의 복습하던 중에 궁금한게 있어서 질문합니다. 컴퓨터끼리 통신을 할때 인터넷 (인터네트워크 망 ) 을 통해 통신을 하고, 데이터를 보내는 컴퓨터의 경우 응용프로그램의 데이터를 패킷이라고 하는데, 응용프로그램의 소켓 라이브러를 이용해서 TCP 프로토콜을 이용하고, TCP 프로토콜 , IP 프로토콜 로 내려가면서 패킷에 헤더를 씌우고 이 헤더에는 자신의 포트번호, 상대의 포트번호 , 전송방식 등이 들어가 있다. 이러한 과정중에서 DNS 서버를 통해서 도메인 이름으로 IP 주소를 요청해서 받는 등, TCP 는 3 way handshake 등의 물리적 연결의 과정 등 의 여러 과정을 거친다. 데이터를 받는 컴퓨터의 경우 , IP 주소내의 포트번호를 통해서 데이터를 최종적으로 전달받는다고 정리할 수 있다. 라고 제 블로그에 정리를 해놨었는데 , 궁금한 점이 1. 제가 이해한 로직이 맞는지요 ? 2. TCP 계층에서 서로 논리적 연결을 하면서 패킷을 서로 주고받는데, 물리 계층에 내려가서까지는 데이터를 그러면 전송하지 않는것인지? 감사합니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
TCP 실제 연결유무
[질문 내용]TCP 강의 중 TCP/IP 연결은 클라이언트와 서버가 서로 SYN,ACK를 주고 받아서 개념적으로만 연결이 됐다고 설명하셨습니다. 그 이유는 클라이언트와 서버가 연결을 할 때, 중간에 수많은 서버(노드)들을 거쳤는지를 잘 모르기 때문이라고 설명하셨습니다. 그러면 여기서 궁금한점은 클라이언트와 서버가 중간 노드들을 거쳐서 SYN,ACK를 주고 받는게 아닌건가요?? 만약 중간 노드들을 거쳐서 주고 받는거라면 "중간 노드들이 잘 연결이 됐기 때문에 SYN, ACK를 주고 받은게 아닌가??" 라는 생각이 들어서 질문을 남기게 됐습니다!
-
미해결누구나 시작할 수 있는 네트워크 Step 1 (네트워크 모델)
강의 자료는 받아볼 수 있나요?
강의하실때 사용하신 파일 PDF로 받아볼 수 있나요?