묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
10:18초 SYN, SYN+ACK, ACK 색깔 의미가 있나요 ?
3-way handshake를 해서 보장된다고 설명할 때 1.SYN 주황색 2. SYN + ACK 초록색 3. ACK 주황색 이렇게 색칠을 해 주셨는데요 3:51보면 IP패킷은 주황색, TCP세그먼트는 초록색 이렇게 되어 있는데 이것과 관련이 있다는 것을 표현한건가요 ? 맞다면 추가 설명 부탁드립니다. 처음은 IP패킷만 가고 2번째는 TCP세그먼트만가고 마지막 ACK에서ㅏ 다시 IP패킷만 이용한다는건가요??.. 무슨 말인지를 모르겠어서요
-
해결됨네트워크, 그림으로 이해하자(2022ver.)
IP 주소 클래스 설명하는 그림에 오타 있어요
B 클래스 부터 처음 8Bit 의 표기된 숫자의 개수가 7개입니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
tcp가 connection을 생성하는 이유가 뭔가요?
tcp가 ip 프로토콜에서는 제공하지 않는 오류제어, 흐름제어, 혼잡제어를 제공하는 신뢰성있는 연결지향 프로토콜이라는 것을 알았습니다. tcp가 handshake과정을 통해 연결설정을 하는 것이 결국 오류제어, 흐름제어, 혼잡제어를 제공하기 위한것인가요? 연결설정과정 없이는 신뢰성 있는 서비스를 제공하지 못하는 것인지 궁금합니다. 그리고 왜 tcp는 비용을 감수하면서 연결설정 과정을 거치는 것인지 명확한 설명을 듣고 싶습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 메서드의 안전성을 따지는 목적이 무엇인가요???
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요! 매번 좋은 강의 감사드립니다. 강의를 듣다가 안전 속성에 대한 의문점이 생겨서 질문 남깁니다. 메소드가 안전한지 아닌지 자체가 무엇을 위해 제시된 속성인지 잘 모르겠습니다. 멱등과 캐시가능한 속성은 그 특성과 필요성을 잘 알겠습니다. 그러나 안전이라는 속성은 조금 이해가 가지않는것이 있는데, 강의에서는 안전하면 좋은것이다 아니다를 따지는 것이 아닌것같아서요! 안전하지 않다고해서 POST 를 안쓸수도 없고.. 개발 과정에서 메소드의 안전성을 고려해야하는 사례가 있나요?? 그냥 리소스를 건드리지않는 GET은 안전, 나머지는 리소스를 건드리기때문에 안전하지 못하다 로 "굳이" 나눈 목적이 궁금합니다. 제가 검색한바로는 안전한 메서드의 목적은 서버에 어떤 영향을 줄 수 있는 안전하지 않은 메서드가 사용될 때 사용자들에게 그 사실을 알려줄 수 있도록 하는 것이라고 하더라구요 이 설명 중에서도 "사용자들에게 그 사실을 알려줄 수 있도록 한다"는 것도 어떤 알림을 주는지 잘 와닿지가 않아서 아예 여기다가 질문을 남기게 되었습니다. 늘 좋은 강의 감사합니다!
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
좋은강의자료 정말 감사합니다.(저작권 관련 블로그 게시 가능 여부 문의)
안녕하세요 넷가이버님 좋은 강의 잘 듣고 있습니다. 개인적으로 네트워크를 공부하고 있는 직장인인데, 다음과 같이 정리한 자료를 블로그에 게시해도 되는지 궁금해서 문의남깁니다.(상업성 블로그x) 블로그에 출처 명확히 표기할 예정이구요. 만약 문제가 된다면 개인적으로만 소장하겠습니다.
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
수업자료에 걸려있는 암호 알려주실 수 있나요?
수업자료에 걸려있는 암호 알려주실 수 있나요? 암호가 걸려있어서 프린트를 할 수 없습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
Last-Modifed 값은 서버에서 어떻게 갱신이 될 수 있나요?
안녕하세요! 좋은 강의 감사합니다. 캐시부분을 쭉 듣다 막연한 궁금증이 생겨 질문드립니다. Last-Modifed은 따로 개발자가 구현하는게 아니면 서버에서 자동으로 설정해준다는데.. 리소스가 마지막으로 수정된 시간을 서버는 어떻게 알 수 있는건지 궁금합니다.. 보통 데이터베이스에 데이터를 저장할때 거의 항상 update_dttm 같은 컬럼을 만들어두고 넣던데 이런 컬럼값을 자동으로 체크하는걸까요??;; 좀 쌩뚱맞은 질문같단 느낌이 드는데 구글링해도 잘 안나와서요.. 너무 궁금해서 여쭤봅니다. 읽어주셔서 감사합니다!!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
서버에 관하여
서버는 단 한개의 데이터베이스를 갖지 못하는건가요?마이크로서비스아키텍쳐나 이런것들을 사용하면 서버 한개가 죽어도 Stateful 하게 통신할 수 있지 않나요? 또는 기존 모놀리식 아키텍쳐로 여러 서버를 설계를 한다해도 DB를 하나로 통합하여 사용하면 되는것이 아닌가요?방금 말한 방법은 확장성과 Scale out을 고려한다면 비효율적인 방법같긴 하지만 하나의 방법으로 생각되어 질문 남깁니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
reinterpret_cast질문이있습니다.
template<typename T> BufferWriter& BufferWriter::operator<<(const T& src) { *reinterpret_cast<T*>(&_buffer[_pos]) = src; _pos += sizeof(T); return *this; } reinterpret_cast c++강의에서 아주 강력한 변환 포인터랑 정수사이도 변환이 가능하고.. 다 가능한 변환 느낌이었는데 앞에*를 붙여주는 이유가 궁금합니다. *reinterpret_cast<T*>(&_buffer[_pos]) = src; =========================== T*로 변환하는데 src가 참조라서 *를 한번 더 붙여주신건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
/{id}가 뭘까요?
안녕하세요. members/{id}에서 /{id}가 뭘 뜻하는거죠? members/100이 아니라 members?id=100 아닌가요? 제 생각에는 해당 메서드를 호출할 경우 뒤에 아이디값을 파라미터로 넘겨 주는 것 같은데 /는 디렉토리 표시 같아서 헷갈려서 질문 남깁니다. 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
상속관계 복사부분 질문이있습니다.
1. // 상속 관계 복사 template<typename U> TSharedPtr(const TSharedPtr<U>& rhs) { Set(sticta_cast<T*>(rhs._ptr)); } 강의에서 TSharedPtr클래스의 상속관계복사부분이 이해가 조금 부족한 것같습니다. 부모 자식관계에서 받아온 값들을 다시 static_cast<T*>로 하면 복사가 정상적으로 되는건가요? 2. 강의에서 wraight = nullptr 이 부분은 실제로 wraight = WraightRef(nullptr); 로 되어있어서 TSharedPtr(T* ptr) { Set(ptr); }이 호출된 후 복사 연산자가 호출된다고 말씀하셨는데 실제 디버깅을 해보니 복사가 아니라 이동쪽으로 브레이크 포인트가 타고있었는데 같은 맥락인건가요 ?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
서버에서 URI를 만들어 넘겨준다고 하셨는데 React, Vue 로 만들어진 프론트에서는 어떻게 처리하나요?
React나 Vue 같은 SPA에서는 데이터를 받아서 대부분의 처리를 클라이언트에서 하기때문에 클라이언트에서 URI를 통해 처리하는것 처럼 유사하게(흉내내서) 처리하게되는데 이럴때는 서버는 그냥 데이터만 넘겨주나요?
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
시뮬레이션을 활용한 네트워크 구성 질문
강의 Layer2 네트워크 개요 및 특성에서 말씀하신 부분 중 10분 54초에서 스위치는 브로드캐스팅 도메인을 물리적으로 나눌수 없다고 하셨는데 물리적으로 브로드캐스팅 도메인을 나눌 수 있는 거는 라우터 아닌가요?? 스위치라고 말씀하셔서 문맥상으로 라우터라고 생각하는데 자막을 달아주셨으면 좋겠네요
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
TCP 4 way handshake
[질문 내용] 안녕하세요. TCP 프로토콜을 공부하다 궁금한 점이 있어 질문드립니다. 연결지향의 특징을 갖는 TCP는 연결할 때 뿐만 아니라 해제할 때도 4-way handshake라는 과정을 거친다고 알고 있습니다. 4-way handshake는 언제 이루어지는 것인가요? 연결을 종료하는 시점이 말씀하신 데이터 전달 보증 과정이 종료되면 일어나는 것인지 궁금합니다..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
오버로딩 new
오버로딩 new가 궁금합니다 매개변수로 타입 size_t인데 어떻게 생성자로 new Knight()가 받아지는건가요? 디어셈블리에서도 해당 크기가 받아지는데 그 부분이 왜그런지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3-way handshake 질문
안녕하세요 3-way handshake 관련해서 질문 드립니다 syn, syn-ack, ack의 과정이 클라이언트의 TCP전송계층에서 서버의TCP전송계층으로 서로 연결 가능한 상태인지 확인을 하는걸로 이해하고 있는데요 이런 논리적인 연결을 하려면 결국에는 클라이언트 전송계층에서 서버쪽 전송계층으로 가기위해서는 네트워크 -> 물리계층 을 거쳐서 연결을 위한 패킷이 먼저 왔다갔다 한다고 이해하면 될까요? 단순설명으로만 보면 클라이언트 TCP계층에서 서버TCP계층으로 다이렉트로 연결되는 것처럼 느껴지는 부분이 있어서 헷갈려 질문드립니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소켓프로그래밍 질문드립니다.
현재 락프리까지 듣고 소켓프로그래밍이 궁금해서 바로 넘어 왔는데 현재 게임서버쪽이 ws2에러가 재정의 에러가 나서 질문드립니다. 현재 msdn으로가서 오타도 확인하고 안되서 루키스님의 소스도 복붙했는데 제 visual에서 에러가 발생하는데 혹시 threadmaanager 강의쪽에서 추가하신 것이 있어서 그런건가요? 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AcceptEx 질문있습니다.
AcceptEx가 실패가 나는 경우 즉 , AcceptEx호출 자체가 false가 나고, 이때 GetlastErrror가 WSA_IO_PENDING이 아닌경우나 , AcceptEx의 호출로 IOCP 에서 Pending중일때 모종의 이유로 GQCS에서 AcceptEx pending에 대한 실패가 리턴되는경우 listen socket이 close되었거나, 어찌되었든 더이상 유저를 받지못하는 상황일 수 있는데 이럴때 서버에 강제로 CRASH를 내도록 해도 될것같은데, 혹시 이렇게 하면 안될 이유가 있을까요?? (AcceptEx를 호출할때 close된 session 소켓을 전달하는 경우는 없고, AcceptEx의 호출결과로 IOCP 유저접속을 대기중인상태(Pending)일때 session socket이 close되거나 session이 삭제되는 일은 일체 없다고 가정합니다. 물론 listen socket은 닫힐 수 있지만, listensocket이 닫히면, 서버를 유지시켜줄 이유가 없다고 생각되긴 합니다.)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
저가 정리한게 맞는지가 궁금합니다
요약한게 맞는지 확인해주실 수 있나요? 1. Pop은 현재 head를 따로 oldHead로 저장하고, 이것이 nullptr이 아니란 소리는 head가 존재한다는 뜻, 즉 1개 이상 스택에 값이 존재한다는 뜻임 2. 스택에 값이 1개 이상이면 oldHead는 nullptr이 아닐 것이고 pop을 한번 했을 때 oldHead에 head가 제대로 값이 들어갔다면 while문을 통과하면서 _head=oldHead->next;가 원자적으로 실행되고, 아래쪽을 쭉 실행하다가 TryDelete 함수가 호출될 것임 2-1. 이때 만약 다른 Pop 쓰레드들이 있다고 하면, 요놈들은 첫 Pop에서 _head가 oldHead->next로 바뀐것으로 인해 while문을 통과하지 못하므로 oldHead=_head가 실행되어 다시 while문이 불려져서 다음 원소를 상대로 pop을 진행함 -------------------- 이후는 TryDelete입니다 3. popCount가 1인 경우 : TryDelete가 실행되는 순간에도 popCount가 1이라면 아직은 Pop이 다른 쓰레드로 호출되지 않은 상태임. 3-1-1. pendingList를 읽어 삭제하려고 하는데, 이걸 읽었는데도 popCount가 아직 1이라면 Pop이 pendingList를 읽는 사이에 한번도 호출되지 않은 것이므로, 읽은 pendingList와 연결된 모든 노드를 이참에 삭제함 3-1-2. pendingList를 읽어 삭제하려고 하는데, 이걸 읽은 사이에 popCount가 증가하여 Pop이 다른 쓰레드에서 호출됐다는 걸 알았으니 읽어들인 pendingList를 다시 돌려놓는다. 3-2. pendingList도 다 삭제햇으니(돌려놨으니) 현재 노드를 삭제해주면 된다. 4. popCount가 1 초과인 경우 : TryDelete가 실행되는 순간에 popCount가 1을 넘어버렷다면, Pop이 다른 쓰레드에서 호출된 상태이므로 지금 당장 삭제하지 말고 삭제 예약만 해놓도록 한다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
초록줄에러...
ㅇ이런에러는 어떻게 해결하나요??