패킷이 크면 전송할 때 조각내서 보낸다고 이해했습니다. 또한, tcp 에 조각낸 패킷의 순서정보 또한 같이 보내는 걸루요 서버 입장에서 받은 패킷과 tcp 순서 정보를 맞춰서, 순서가 잘못됬다고 패킷을 보낸 클라이언트한테 다시 요청하는 부분의 필요성이 이해가 가지 않습니다. 서버가 조각난 패킷의 순서가 잘못됬다는 걸 인지 했다면, 클라이언트 - 서버간 수많은 노드를 거쳐서 다시 보내는 것보다, 서버 내에서 순서정보를 가지고 패킷을 다시 맞추는게 더 좋은게 아닌 건가요..? 패킷이 크면 클수록 저런 왕복을 여러번 해야할 것 같아서요. http 를 공부하는게 처음이라 잘못된 질문일 수 있습니다.
안녕하세여. Jupyter 실행하기 부분에서. 기본위치를 Desktop 으로 하고 Python_class로 기본 위치를 설정 해주셔서 보여주시는데 제 PC같은경우에는 초기 화면에서 DIR를 입력시 Desktop 폴더가 아예 존재하질 않습니다. 이럴경우 어떻게 하면 좋을까요?
안녕하세요 강의 중 잘 안되는게 있어서 질문드립니다. 강의를 따라하는 중 .env에 SECRET_KEY값을 담아서 사용하는데 다음과같은 에러가 발생합니다. C:\Users\deokpro\Desktop\Django\venv\lib\site-packages\environ\environ.py:628: UserWarning: C:\Users\deokpro\Desktop\Django\pragmatic\pragmatic\.env doesn't exist - if you're not configuring your environment separately, create one. warnings.warn( Traceback (most recent call last): File "C:\Users\deokpro\Desktop\Django\venv\lib\site-packages\environ\environ.py", line 273, in get_value value = self.ENVIRON[var] File "C:\Users\deokpro\AppData\Local\Programs\Python\Python39\lib\os.py", line 679, in __getitem__ raise KeyError(key) from None KeyError: 'SECRET_KEY' ........ django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable print문으로 env('SECRET_KEY')를 찍어보면 값이 정상적으로 들어오는게 확인되는데 python manage.py runserver만 하면 에러가 발생합니다. 혹시 해당내용 관련해서 조언을 구하고자 질문드립니다.
no-cache에서 원서버에 요청시 데이터의 변경이 일어나지 않았을시 false로 304를 내보내는걸로 이해했는데요 원서버와의 네트워크 문제로 연결이 안될시 프록시 서버가 오래된 데이터라도 보여주자라고 해서 응답을 내릴시 똑같이 데이터가 변경이 안되었으니 오래된 데이터 즉 브라우저 내의 캐시를 사용하라고 304를 내보내야되는거 아닌가요? 200을 내보내면 데이터가 수정되었다는 뜻이고 원서버로부터 다시 받아야하는거 아닌가요? 이부분이 이해가 안가서 질문드립니다.
영한님 강의를 통해서 열심히 웹공부 중인 학생입니다. 늘 감사하게 강의를 듣고 있습니다! '웹 브라우저 요청흐름' 강의를 통해서, 실시간 기술이 필요한 게임같은 경우를 제외하고 일반적인 요청-응답 방식으로 http통신을 이용한다는 것을 알 수 있었습니다. http 통신 과정에서 os에 내장되어있는 socket 라이브러리를 통해 TCP/IP 프로토콜로 서버와 커넥션(3-way handshaking)하게끔 한다고 하셨는데, 이 부분에서 클라이언트가 TCP 프로토콜을 직접 사용하지 않고, socket 라이브러리가 대행해준 것 (= 간접적으로 사용)이라고 이해하였습니다. 제가 여쭤보고 싶은건, 보통 http 통신과 실시간 socket 통신으로 구분 짓는 경우가 있는데, http 통신도 socket 라이브러리를 이용한다면 큰 범주로 소켓을 사용한 socket 통신이라고 말할 수 있는 것인가요? 그렇게 된다면 socket 통신이 TCP 프로토콜을 직접 사용하는 것이니, http 통신이 TCP 프로토콜을 간접적으로 사용한다는 부분이 이해가 되지 않습니다..! http통신의"소켓" 라이브러리와 실시간 "소켓"통신에서의 소켓이 다른 맥락인것인지.. 감사합니다!
서버에서 응답을 넘겨줄 때는 패킷에 출발지 포트, 출발지 아이피가 적혀 있어서 가능하다는 것을 알겠습니다. 하지만 클라이언트에서 서버로 데이터 전송 시 아이피와 포트번호를 어떻게 알고 보내는 건가요? 아이피는 https://www.google.com << 이 도메인 이름인건가요? 그렇다면 포트는 어떻게 알고 보내죠..? ----------------------------------------------- 추가적으로 질문을 하면서 갑자기 또 궁금한게 생겼습니다. 여기서 말하는 클라이언트와 서버라는게 이해가 잘 가지 않습니다. 예를들어, 프로그램을 짠다고 했을때 제가 아는건 html,css,javascript의 front 쪽에서 Java, oracle 등 back으로 데이터를 넘겨주고, 그 데이터를 처리한 값을 다시 front로 넘겨주는 걸로 알고 있습니다. 이때, front가 클라이언트, back이 서버가 되는게 아닌가요..? 근데 마치 예시에서는 클라이언트가 이 컴퓨터, 서버는 저 컴퓨터 같은데 이런 개념이 잡히지가 않네요. 혹시 이부분에 대해 도움 받을 수 있을까요?
안녕하세요. 개발자님. 만약에 no-cache, must-revalidate 등을 쓴다면 프록시 서버를 거쳐도 무조건 원 서버에 확인이 필요하니까 클라이언트의 웹 브라우저와 원서버가 직접 연결이 된 경우보다 프록시 서버가 있는 쪽이 오히려 더 비효율적일 수도 있을거 같네요. 이 부분에 대해서 궁금합니다. 감사합니다.
안녕하세요, 질문이 하나 더 생겼습니다^^;; 이번 강의를 듣고 실습을 좀 해봤는데요, 아래와 같이 세팅을 해봤어요. R1 에서: 1. gi0/0/0.10 세팅 및 gi0/0/0.20 세팅완료후 encapsulation 명렁어로 트렁킹 선언가지 다 마쳤구요, 2. 스위치에서 vlan 설정 및 트렁킹 설정까지 다 마쳤습니다. 테스트 해본결과 vlan 10 에 컴과 vlan 20 의 컴이 핑 교환하구요. 3. ospf 라우팅 프로토콜을 이용하여 vlan 10 네트워크와 vlan 20 네트워크 주소를 R2 라우터로 넘겼습니다. 그리고 R2에서: 1. 각 인터페이스에 IP 설정 완료후 2. 서버에도 IP 설정 완료. 3. ospf 라우팅 프로토콜을 이용하여 203.203.203.0 네트워크를 R1 으로 넘겼습니다. 결과는 R1 의 컴터들 (vlan 10 과 20) 과 R2 에 서버가 잘 통신합니다 (일단 첫번째 테스트 성공 !!) 문제는 R3인데요, R2 와 R3을 시리얼 통신으로 연결했고 IP 설정을 모두 마쳤습니다. 그런데 막상 ospf 를 설정하려고 하니, R2 에서 어떤 네트워크를 넘겨야 하는지 잘 모르겠네요. 테스트를 해봤는데... R2 에서: R2(config) # router ospf 13 R2(config-router) # network 202.202.202.2 0.0.0.0 area 2 R2(config-router) # network 204.204.204.1 0.0.0.0 area 0 그리고 R3 에서: R3(config) # router ospf 13 R3(config-router) # network 205.205.205.1 0.0.0.0 area 2 R3(config-router) # network 204.204.204.2 0.0.0.0 area 0 이렇게 세팅했더니 R2에서 R3에 연결되있는 서버는 통신됩니다 (205.205.205.2). 그런데 R1에 붙어있는 vlan10 과 vlan20 컴터들이 R3 에 연결된 서버 (205.205.205.2) 와 통신하려면 어떻게 설정해야 하나요?
안녕하세요. 개발자님 아래 질문에서도 확인했는데, 그 글과 답변을 보고도 모호해서 저도 비슷한 내용으로 질문 남깁니다. 1. 현재 RFC723x HTTP에서는 헤더로 - General 헤더 : 메시지 전체에 적용되는 정보, 예) Connection: close - Reuquest 헤더 : 요청을 보낼때 포함하는 정보, 예) User-Agent: Mozilla/5.0 (Macintosh; ..) - Response 헤더 : 응답에 들어가는 정보, 예) Server: Apache - Representation 헤더 : 표현 데이터(바디) 정보 이렇게 4가지로 쓰고, 이렇게 정리하면 되는게 맞나요? 이전 버전이 폐기되고 723x를 설명 해주실때, 바로 BODY 부분으로 넘어가신거 같아서 약간 정리가 안됩니다. 2. 이전 버전과 차이가 entity -> representation으로 명칭이 바뀐거 같은데, HTTP BODY에 대한 설명은 거의 같은 것 같아 보입니다. 말 그대로 명칭만 바뀐 것인지 어떤게 중점적으로 바뀐 것인지 궁금합니다. 3. HTTP 전송 시 헤더 + 바디로 보내는 것 같은데, 요청시 request Header + (general헤더 + representation 헤더 + message body), 응답 시 response Header + (general헤더 + representation 헤더 + message body) 이렇게 보내는 건가요..? 모든게 요청 아니면 응답 같은데, request header 나 response 헤더는 요청이냐 응답이냐에 따라 필수적으로 포함되는 것 같고, representation header와 general header는 message body가 있느냐, 요청/응답과 상관 없이 보낼 정보가 있느냐에 따라 포함될 수도 있고 포함되지 않을 수도 있을 것 같다 정도로 이해했는데 잘 이해한게 맞는건지 궁금합니다. 날도 많이 덥고 코로나도 심한데 건강 유의하시길 바라고 늘 좋은 일 많으시길 바랍니다!
안녕하세요, 강사님! 강의를 듣다가 궁금한 게 생겨서 질문드립니다. 1분 14초에서 보면 실무에서 통신할 때 TCP 프로토콜을 직접 사용해서 통신하는 경우가 없다. 게임 서버 같은 경우에나 그런 방식을 사용한다고 하셨습니다. 두 방식의 장단점이 뭐가 있을지 궁금해서 인터넷을 찾아보는데, HTTP 방식과 Socket 방식의 장단점을 비교한 글들이 많더라구요!! Socket 방식은 온라인 게임 등에 사용된다고 하던데, 혹시 Socket 방식으로 통신하는게 TCP 프로토콜을 직접 사용하는 경우인가요?? 강의 정말 재밌게 듣고 있고, 덕분에 공부하는 게 재밌습니다! 학자형으로 공부하는 스타일이라 지치고 이해가 안되는 경험들이 많은데, 강사님 덕분에 많은 걸 배웁니다. 감사합니다 :)
안녕하세요. 54강 보면 마지막에 IP주소로 들어가면 바로 nginx가 아닌 연결된 장고 사이트로 접속 되는데 저는 여전히 nginx가 뜨네요. 강사님이랑 똑같이 진행한것같은데 안됩니다. 어떤 부분이 잘못된것일까요? nginx.conf 파일질라 nginx 컨테이너 설정값 django_container_gunicorn 참고로 aws입니다.
안녕하세요, 지금까지 여러가지 각종 라우팅 프로토콜을 배웠는데요, 실제 현장 업무에서는 어떤 라우팅 프로토콜이 보편적으로 가장 많이 사용되나요? 강의에서 설명해 주신 바로는 static routing protocol은 작은 규모에만 사용될수 있고, eigrp 같은 경우는 씨스코 장비 전용이라고 하셨는데요, 그럼 실제 현장에서는 작은 규모는 static 을 애용하고 씨스코 장비 사용시는 eigrp 만 사용하나요? 아님 작은 규모던 씨스코 장비사용중이던 간에 다른 종류 (예: 가장 많이 사용한다고 말씀해주신 ospf) 같은 것도 사용할수 있나요? 실제 현장에서는 어떠한지 궁금합니다.
안녕하세요, 질문이 있습니다. 강의에서 15분 38초에 라우터에서 encapsulation 명령어를 사용할때요, 여기서는 그냥 어떠한 Trunking 프로토콜을 쓰겠다!! 라고 단지 선언만 하는 건가요? 영상을 계속보니 실제 트렁킹 세팅은 스위치에서 이루어 지는데, 그럼 원래 트렁킹 세팅은 L2 에서만 이루어지고 (switchport mode trunk 커맨드로) L3 장비에서는 단지 dot1Q 와 ISL 중 어떤걸 쓸지 선언만 하는 건가요? 아니면 라우터에서도 트렁킹을 세팅하는 방법이 따로 있는지 궁금합니다.
안녕하세요. 항상 질 좋은 강의 감사합니다! 복습중에 이해가 안가는 부분이 있어 질문 드립니다. ServerCore의 Send부분 입니다. 제가 다음과 같이 이해를 했습니다. Send를 호출해서 Lock을 걸은 스레드가 RegisterSend를 호출하고, 여기서 pending이 true 라면 그대로 종료하면서 Lock을 풀고, 이후에 Send를 호출한 스레드는 Queue에만 담고 종료한다. 나중에 다른 스레드로 OnSendCompleted가 비동기로 호출되면, Queue를 확인해서 일감이 있다면 바로RegisterSend를 호출해서 처리한다. 일단 이렇게 이해하는게 맞는건지 궁금합니다. 만약 맞다면 Queue에 일감이 있어 OnSendCompleted를 비동기로 실행한 스레드가 RegisterSend를 호출하면, Send에는 Lock이 안 걸려있는 상태 이니 RegisterSend가 동시에 두 번 호출될 수 있지 않나요?
조금 이해를 못한 부분이 있습니다. while문을 돌면서 WSAWaitForMultipleEvents에 도달했을 때 timeout 조건을 WSA_INFINITE로 걸게 되면 이 지점에서 block되는 것과 같아지나요? 그러면 비동기 논블락 소켓을 사용하는 이점이 사라지게 되는 것인지 문득 궁금해졌습니다. 더불어서 혹시 취업 특강은 다음 주에 나오는걸까요..? ㅎㅎ