강의 잘 들었습니다 🙏 락을 구현할 때 ReadLock을 만들었는데 전체 강의 코드를 보면 ReadLock을 사용하는 데가 없더라고요(DB 쪽은 스킵했습니다). 우리 프로젝트에만 해당하는 특별한 경우인지 실무에서도 WriteLock 사용이 압도적으로 높은 것인지 궁금합니다. 락을 직접 구현한 이유 중 하나가 (동일 스레드 기준) 쓰기 락이 걸려있을 때 읽기를 허용하기 위한 것도 있었는데, 읽기 락을 만들어놓고 한 번도 사용하지 않았다는 사실이 약간 신기하게 느껴졌습니다. +) 답변하시기 전에 추가 질문 서두에 말씀하신, 직접 락을 구현하는 이유가, 기획 데이터는 대부분 읽기를 수행하는데(잘 안 바뀌는 데이터), 굳이 스레드 간에 상호배타적일 필요가 없기 때문에(표준을 이용한 방법이 있으나), 읽기에 대해선 모든 스레드가 접근할 수 있게 ReaderLock이 필요한 걸로 이해했습니다. 그렇다면 운영에서 기획 데이터에 아이템을 추가한 걸 화면에 보여줘야 할 때는, WRITE_LOCK이 사용되나요?..기획 데이터를 실시간으로 읽어오는 건지 업데이트를 하면 서버를 재시작하는 건지 궁금합니다. 실무 경험이 없다 보니까 기획 데이터로 예를 들어주실 때 상황이 명확하게 안 그려지네요. 서버를 재시작하는 거라면 이미 변경된 데이터를 서버 구동 때 읽어오는데 쓰기 락이 왜 필요한지 궁금합니다.
안녕하세요 강의 잘 듣고 있습니다. 제가 강의를 들으면서 Full Cone방식은 "상대편 공인 IP와 External Port만 알면 접속할 수 있다." 라고 이해했습니다. 그렇다면 mstsc를 통해 원격 접속을 할 때도 이와 같은 방식으로 접속을 시도하는 걸까요? 만약에 아니라면 P2P 통신과 원격 접속의 차이점을 알고 싶습니다. 원격 접속은 1:1이고 P2P는 다수의 사용자가 통신한다는 차이뿐인지 아니면 아예 다른 개념인지 궁금합니다. 감사합니다.
Java는 해당 강의만 구매 해서 앞의 강의 내용에 있을지 모르겠습니다만 헷갈리는 부분이 있습니다. 숫자와 문자의 2진수 표현은 같고 데이터타입이 숫자 타입인지 문자 타입인지 나타내는 byte 도 있을 것 같은데 이걸 어떻게 구분하는지 구글링에서 검색할 수 있는 키워드나 답을 알려주실 수 있으실까요 숫자 65의 2진수 표현: 1000001 문자 'A'의 2진수 표현: 1000001 강의 내용에 java의 경우 1byte의 prefix를 통해 음수를 표현할 수 있다고 하셨는데 데이터 타입은 어디에서 관리되는지 궁금하네요. 저장되는 메모리 구역이 다른지..그렇다 해도 할당된 데이터 구조 내에 있어야 할 것 같은데 진짜 궁금하네요 클로드에선 아래와 같이 답을 줬는데요 각 데이터 타입은 1바이트부터 8바이트까지 고유한 메모리 할당 방식을 가지고 있어, 메모리 내 위치와 크기로 타입을 구분할 수 있습니다. 그럼 각 데이터에 대한 메모리 위치는 stack 에서 가지고 있지 않나 싶은데 stack 에서도 해당 데이터 타입이 byte 인지 아니면 텍스트인지 어떻게 알고 있는지 다시 궁금하네요. -ㅂ- stack을 공부하면 되겠네요... 문자인코딩 섹션이 단순한 내용 같아도 진짜 생각 많이 하게 되는 강의네요.
안녕하세요 강의를 다 듣고 궁금한게 생겨서 질문드립니다. Socket통신과 HTTP 통신이 다르다는 것은 이해했습니다. 그리고 Socket의 종류에는 TCP와 UDP가 있다는 것도 알겠습니다. 이렇게 이해하고 보니 의문점이 생겼습니다. 저희가 웹 사이트를 이용할 때에는 Socket 통신이 아니라 HTTP 통신인 것 같은데 그러면 웹 사이트를 이용할 때에는 TCP나 UDP를 사용하지 않는 건가요? 그런데 저희가 사용하는 인터넷은 TCP/IP를 사용한다고 알고 있는데 HTTP 통신에서 TCP를 사용하지 않는다? 말이 안되는 것 같아서 질문 드립니다. 저희가 인터넷을 사용할 때 http 프로토콜을 사용할텐데, 만약 인터넷으로 메일을 보낸다고 가정하면 http 프로토콜과 smtp 프로토콜을 동시에 사용하는 건가요?
안녕하세요. 이전 질문 중에 DoGlobalQueueWork 가 실행되면서 GlobalQueue 에서 일감을 꺼내 멀티스레드 환경에서 처리되는 도중에, 데이터가 겹쳐 레이스 컨디션이 발생할 수 있냐는 질문에 강사님께서 멀티스레드 이슈가 다시 생길 수도 있다 고 말씀하셨습니다. 관련해서 궁금한 점이 생겼습니다. 적어도 저희 강의에 적용된 코드에 국한해서, 데이터가 겹친다는 이유로 레이스 컨디션이 발생할 수 없지 않나요? GlobalQueue 로 데이터를 넣고 빼는 부분에 락을 거니까 해당 부분에서는 아주 잠깐의 락 대기 시간이 생길 수 있고, 일감을 일단 Pop한 이후에는 데이터가 겹치는 일이 생길 수 없는 것 같은데, 이전 답변을 보고는 생길 수 있는 가능성이 없지 않다는 느낌을 받아서 이 궁금증을 해소하고 싶습니다~ 이전 질문에서 답변해주신 것 중에 Zone 단위로 JobQueue를 배치하는 경우 데이터 공유가 거의 없고 Actor 단위일 경우엔는 필연적으로 순간에 Lock을 걸거나, 정밀 조정이 어려우니까 그냥 락 걸지 않고 데이터를 get할 수 있다는 내용은 이해했습니다!
안녕하세요. 현재 L3 스위치 강의를 듣고 있는 수강생입니다. 강의를 들어도 L3 스위치와 라우터의 차이점을 명확하게 이해하지 못했습니다. 그냥 L2 스위치가 점차 발전하면서 라우터의 기능 일부를 사용할 수 있는 장비가 L3 스위치인가요? 그래서 'Router가 L3 스위치 보다 조금 더 많은 기능을 가지고 있다' 정도로 이해하면 될까요?
너무나 알찬 수업 잘 듣고있습니다. 수업들 듣던 중, 의문이 하나 생겨서 질문남깁니다. 네트워크 라이브러리중, boost::asio 를 이용해서 운영체제에 독립적인 환경을 구축할 수 있을거 같은데, 네트워크 부분은 윈도우 맞춤으로 수업하시는 이유가 궁금합니다. boost::asio 의 기능만으로는, 효율적인 게임서버를 구축하기 어려워서 인가요?
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
docker주요명령익히기5(10:09)에서 보면, 이 명령어를 수행하였고, 성공적으로 강사님 디렉토리의 index.html 까지도 접속이 되었는데요. 문제는 aws 에서 /usr/local/apache2/htdocs 디렉토리를 찾을수가 없어서요. 아무리 찾아봐도 안보이는데... aws 에 /usr/local 에는 apahe나 apache2 의 디렉토리가 안보입니다. 어디서 찾을 수가 있는 걸까요?
PacketSession OnRecv 마지막부분에 buffer에서 패킷의 사이즈 만큼 자르고 buffer의 사용하지 않은부분은 buffer에 다가 새로 만들어서 넣어주고 있는데요 여기서 저걸 왜 다시 넣어야 하는지 이해가 안갑니다. 왜냐하면 읽은 데이터량만큼 processLen을 증가시켰고 processLen을 반환하면 read커서가 그만큼 증가하게 되고 이부분에서 readPos증가한만큼 new로 새로 만들어서 가져오는데 말이죠.. 굳이 필요가 없을거 같은데 맞나요..?