강의와 다른 질문들을 참고하여 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인 건가요?
from os import link import requests from bs4 import BeautifulSoup response = requests . get ( "https://search.naver.com/search.naver?where=news&sm=tab_jum&query= %E C%8A%A4 %E B%A7 %88% ED%8A%B8 %E C%8A%A4 %E D %86% A0 %E C %96% B4" ) html = response . text soup = BeautifulSoup ( html , "html.parser" ) articles = soup . select ( "div.info_group" ) for article in articles : links = article . select ( "a.info" ) if len ( links ) >= 2 : url = links [ 1 ]. attrs [ 'href' ] print ( url ) links = articles.select에서 a.info가 a태그에서 class가 info로 시작하는 애들을 찾으라는 의미로 아는데 links에 들어있는 링크가 2개인데 하나는 info press 하나는 info 인데 info는 하나 아닌가요? 궁금해서.. 그리구 기본편 듣고 하고 있는데 어떻게 공부를 해야 될까요 효율적인 방법을 알고 싶습니다.
제목과 마찬가지로 상품의 상세정보가 출력되지 않습니다. 어떤 것이 문제일까요? 포스트맨의 url과 product/index.js의 urp 주소는 같습니다. 뿐만 아니라 축구공 페이지를 들어가도 오류가 뜨는데 index.js:14 Error: Network Error at createError (createError.js:16:1) at XMLHttpRequest.handleError (xhr.js:117:11)라는오류입니다. 어떤 문제인지 알 수 있을까요
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 강사님! 자식에서 부모로 업캐스팅 한 경우, 자식 객체에서만 존재했던 멤버 변수들은 그대로 남아있게 되는건가요? 사실상 부모 포인터가 가리키게 되도록 캐스팅이 되니까, 부모가 가진 멤버 변수들 이외에 자식이 가지고 있던 주소들은 다른 부분에서 쓰레기 값이라고 판단하고 마음대로 쓸 가능성이 있는건지 아닌 것인지 이 부분이 이해가 잘 안됩니다 ... 아직 헷갈리는 점이 많지만, 제가 이해한 바로는 ... ... 업캐스팅 된 이후에도 CRT 힙 매니저가 자식 객체를 가리키는 포인터 였을 때 가졌던 메모리 주소의 범위(?)를 기억하기 때문에, 부모 객체로 업캐스팅 된 이후에도 자식 객체가 사용했던 부분을 계속해서 기억하고 값을 유지하는 것일 것 같다는 생각이 듭니다... 혹시 이게 맞나요???
영한님 항상 좋은 강의 잘 듣고 있습니다! 강의를 들으면서 JPA 책을 함께 공부하던 중 의문점이 생겼습니다. 3장 영속성 관리에서 준영속 상태가 되면 1차 캐시와 쓰기 지연 SQL 저장소에 있는 엔티티의 정보가 제거됩니다. 그런데 준영속 병합 과정에서 merge()를 실행하면 왜 1차 캐시에서 엔티티를 조회하는지 잘 이해가 되지 않습니다. 이미 준영속 상태이거나 비영속 상태이면 1차 캐시에 없다는 것을 예상할 수 있을텐데 굳이 이 과정이 들어간 이유가 있을까요?
질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] JdbcMemberRepository에서 DataSource를 선언할 때에는 final를 붙여서 불변이 되게 하셨는데요 SpringConfig 클래스에서는 final를 안붙여 주셨는데 여기서도 생성자를 통해서 dataSource가 한번 초기화 되면 그 뒤로 변하지 않으니까 final을 붙여도 상관 없나요? 두 개의 클래스 파일에서 DataSource 선언시 final를 붙이고 안붙이고의 차이가 궁금합니다
강사님이 댓글에 답변을 달아주셨지만 그걸 해석하기가 너무 힘들어서... 저처럼 답변 한참 해석하시지 말라고 정리해둡니다 user가 없다고 뜨는 이유는 진짜 user를 못찾아서 입니다. (아마 vscode에서 못찾겠다고 이미 밑줄을 그었을거에요) user는 User.findOne 에서 실행되는 콜백함수의 인자인 user 입니다. 그래서 반드시 User.findOne 스코프 안에서만 찾을 수 있습니다. 이 user는 언제 생기냐면, User.findOne로 해당 이메일을 가진 사용자가 있을 때 생깁니다. 이걸 받아와서 비밀번호 비교든, 토큰 생성이든 써먹으려면 이 안에 있어야겠죠. 이 오류가 뜬 분들은 아래처럼 구조가 되어있을거에요 User . findOne ({ email : req . body . email }, ( err , user ) => { // 이메일로 찾기 }); user . comparePassword ( req . body . password , ( err , isMatch ) => { // 이메일로 찾은 유저정보를 받아와서 비밀번호 비교 }); user . generateToken (( err , user ) => { // 이메일로 찾은 유저정보를 받아와서 토큰 생성 }); 이걸 아래처럼 바꿔주면 됩니다. 감싸주면 돼요 User . findOne ({ email : req . body . email }, ( err , user ) => { // 이메일로 찾기 user . comparePassword ( req . body . password , ( err , isMatch ) => { // 이메일로 찾은 유저정보를 받아와서 비밀번호 비교 }); user . generateToken (( err , user ) => { // 이메일로 찾은 유저정보를 받아와서 토큰 생성 }); }); 왜 저건 대문자 User이고 이건 소문자 user인거지? 생각했었는데 둘은 완전히 다른거에요..... 한시간동안 찾았네요 .... 저처럼 고생하지 마시길 ....
안녕하세요 궁금한게 있습니다 static::who메소드를 호출하는 부분에서 부모 Class 또는 자식 Class에 static::(임의의 메소드)가 없으면 부모 또는 자식에서 메소드를 찾는건가요? 왜냐하면 아래 코드 실행 결과가 이렇게 나왔습니다 string(5) "A Foo" string(5) "B Foo" string(1) "B" class A { public static function foo () { var_dump ( 'A Foo' ); static :: who (); } public static function who () { var_dump ( __CLASS__ ); } } class B extends A { public static function test () { self :: foo (); } public static function who () { var_dump ( 'B Foo' ); var_dump ( __CLASS__ ); } } $b = new B (); $b -> test ();
안녕하세요? 선생님 개발한 YOLOv5 모델을 하드에 저장한 후 불러와서 사용하려고 합니다. 튜토리얼에 따라 다음과 같이 하면 되지만, 이 경우 인터넷 접속이 되어 있어야 합니다. model = torch.hub.load('ultralytics/yolov5', 'custom', path='mybest.pt') 그래서 GitHub 사용하지 않게 다음과 같이 수정했습니다. model=torch.hub.load('yolov5', 'custom', path='mybest.pt', source='local') 그런데, 이렇게 하면 속도가 1/3로 줄어드는 현상이 나타났습니다. 인터넷 없이, 속도는 유지하면서 추론하는 방법은 없을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 3.4에서 images1.type()이 torch.FloatTensor인데 언제 MyDataset클래스의 __getitem__함수가 호출되는 건지 궁금합니다. dataiter1.next()인가요..?