IOCP강의를 듣고 실습을 하는 중에 이상현상?이 생겨서 질문 드립니다. 정상적으로 실행되거나 밑에 현상이 생기거나 반복이 되고 있는데 뭐가 문제일까요... 코드는 올려주신것과 똑같습니다! 1) accept만 뜨고 client connected가 안뜨는 경우 (클라에서 송신은 계속 하고있다.) 2) server에서 break point를 잡고 실행하면 client connected도 잘뜨고 수신도 잘합니다. (처음 한두번은 800, 200 이렇게 한꺼번에 데이터를 수신합니다.) 3) 다시 break point를 해제하면 1번과 같은 상황이거나, 정상적으로 처음부터 100씩 수신받는 상황이 랜덤으로 발생
클라에서 Connector를 통해서 연결시도를 할 때, Connector에게 endPoint를 전달합니다 Connector에서는 socket에 endPoint.AddressFamily를 전달하는데, 제가 생각하는 것은 IP주소 '만' 전달합니다. 뒤에 SocketAsyncEventArgs args 변수를 선언하고 args.RemoteEndPoint에 endPoint를 한 번 더 전달합니다. socket.ConnectAsync할 때 args를 전달합니다. 헷갈리는 부분은 endPoint를 두번 전달하는 것입니다. socket에는 IP주소'만' 들어있어서 포트번호를 모르니 args.RemoteEndPoint에 port번호 포함 주소를 다시 준 것 인가요?
OnRead함수의 역할은 args.BufferList에 연결된 RecvBuffer가 RecvAsync를 통해 받은 데이터의 사이즈와, RecvBuffer의 DataSize 프로퍼티에서 확인가능한 버퍼 내부의 해독 안 된 데이터의 사이즈를 비교하여 차이의 유무를 판단하는 것이라 이해했습니다. 그런데 OnWrite의 기능은 이해하기 어려운 것 같습니다. 간단하게나마 데이터 수신 후 오버플로우 체크용 함수로 이해는 했는데 정확한지를 모르겠네요
그 예전에 영한님께서 JSON으로 반환 할 때 쿼리를 통해서 얻은 값을 그대로 반환하지 말고 클래스로 묶어서 반환하라고 하셨던게 기억이 납니다. 쿼리를 통해서 얻은 결과가 예를들어 List<PersonDto> name : ~~~ age : ~~~ address: ~~ 이런식으로 되어 있을때 이 리스트를 그대로 반환하면 JSON 형식이 배열로 시작해서 그 후에 값을 수정 할 수 없다고 들었던거 같은데요!! 질문이 있습니다 저 List<PersonDto>를 감싸는 하나의 클래스를 만들때 예를 들어서 class PersonExmpleDto{ private ArrayList<PersonDto> persondto; ] 이런식으로 반환 할 때 클래스 이름을 어떻게 해야 할 지 모르겠습니다.... 쿼리를 통해서 얻은 List로 묶은 PersonDto를 하나의 클래스에서 반환하고자 할 때 클래스의 네이밍은 어떤식으로 하나요? class PersonListDto{ private ArrayList<PersonDto> persondto; } 이런식으로 하나요...??
StompAllocator에서, void StompAllocator::Dealloc(void* p) { // 이건 Offset을 처리해줄 필요없지만... 그래도 모르니... int64 addressNo = reinterpret_cast<int64>(p); addressNo &= 0xffffffffffff1000; ::VirtualFree((void*)addressNo, 0, MEM_RELEASE); } 이런식으로 페이지 끝단에 위치했던 p를 다시 페이지 시작 지점으로 offset을 지정 해줄 필요가 있나요?? VirtualFree 는 p가 존재하는 페이지 전부를 해지시켜주는데 해당 페이지 끝단에 있던, 시작주소에 있던.. 그 페이지가 날라가는건 똑같은걸로 아는데요 ㅠㅠ
안녕하세요! 강의 정말 잘 듣고 있습니다. 감사합니다 ㅎㅎ <질문> HTML Form 태그를 사용해서 데이터 수정을 해야할 때, 1. POST 메소드를 사용하도록 설계(FORM은 GET, POST만 가능하기 때문에)하는 방법 2. 수정이니까 PUT으로 설계하고 아래와 같이 처리하는 방법 이 두 방법 중에 어떤 방법이 더 보편적인 방법인지 궁금합니다. 전에 PUT으로 회원정보 수정 API를 만들었는데, 프론트에서 FORM을 PUT으로 보낼 수 없다고 해서 애 먹다가 위와 같은 방법으로 해결했습니다. 이 경우 그냥 POST를 사용하도록 API를 설계하는게 더 좋은 방법이었을까요??
안녕하십니까 강사님 ! 질문있습니다 :) 조금 더 개선한 방법 의 원리는 만약 인증이 들어왔을 때, Username 과 시리즈는 일치하지만 토큰이 일치하지 않으면 토큰이 해커에 의해 탈취되었다고 간주해서 모든 토큰을 삭제하는 원리인데, 조금 더 안전한 방법 도 Username 은 일치하지만 토큰이 다르면 똑같이 탈취되었다고 간주하고 모든 토큰을 삭제하면 동일하게 동작하지 않을까 하는 궁금증이 생겼습니다. 전자랑 후자 방법 둘다 해싱에 패스워드는 사용되지 않아서 복호화 된다고해도 계정이 탈취당하는 일이 없는데 굳이 시리즈를 이용하는 이유가 있을까요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 영한님 강의 아래 사용한 단축키에 대한 정보를 나타내는 자막? 같은건 어떻게 할 수 있나요?
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요! 이전에 nest.js 강의를 듣고, 너무나 큰 만족감과 함께 많은 도움을 얻었던 기억이 있어서 fast api 강의도 출시하자마자 구입하여 공부중인 회원입니다! 이번 질문을 통해 문의드리고자 하는 내용은 uvicorn의 reload 설정 문제입니다. 현재 클라이언트로부터 파일(.zip)을 업로드 받아서, 압축 해제 후 subproccess로 실행시키는 API를 만들어서 연습해보고 있습니다. 참고로 압축 결과물은 파이썬 파일( .py) 입니다. 그런데, 압축해제 할 때마다 uvicorn이 변화를 감지하여 서버를 재실행시킵니다. 물론 reload 기능을 OFF하면, 문제가 없습니다. 하지만 uvicorn.run 옵션 중에 reload_excludes가 있어서 사용해보려고 했으나 원하는대로 동작하지 않네요 ㅠㅠ (참고: Settings - Uvicorn ) 프로젝트 루트 경로에 있는 server.py 파일은 아래와 같이 작성하였고, 파일 업로드를 받아 압축해제하는 경로는 다음과 같습니다. {{project root}}/app/files import uvicorn if __name__ == "__main__" : uvicorn. run ( "app.main:app" , host = "localhost" , port = 8000 , reload = True , reload_excludes =[ "app/files/" ], ) 위와 같이 설정하여도 uvicorn은 app/files 경로내의 변화를 감지합니다..ㅠ_ㅜ uvicorn의 reload 제외 설정을 어떻게 해야할까요! 답변 부탁드리겠습니다..!
안녕하세요 영한님. 영한님의 강의를 한번씩 보고 개인적으로 공부를 하면서 연습을 해오고 있는데. 수업 예제는 아니지만 궁금한 점이 생겨서 검색을 해도 잘 나오지 않아 질문을 남기게 되었습니다. --------------------------------------------------- 상품을 대여하는 기능을 작성해 보기위해 만든 클래스 입니다. 연관관계는 단방향 매핑이 좋다 말씀하셔서 단방향으로 구성을 해봤습니다. 이 클래스에 있는 user는 빌리는 사람의 클래스입니다. product 클래스 안에 상품의 주인인 User클래스를 매핑해 주었습니다. User클래스에는 매핑된 테이블이 없습니다. 이렇게 작성이 되어있고 만약 자신이 대여를 신청한 상품을 조회하고 싶은 쿼리문을 작성하고 싶은데 이렇게 작성을 했었습니다. 하지만 https://www.inflearn.com/questions/15876 이 질문의 글에 fetch 조인에 대상이 되는 곳에는 where절을 사용하면 안된다 말씀을 해주신 것을 보고 다른 방법이 떠오르지가 않아서요 .. 혹시 더 좋은 방법이 있다면 어떠한 방식으로 해결해 나가면 좋을까요? 수업예제와 다른 주제로 질문을 드려 죄송합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 파이썬과 아톰 모두 깔아서 처음 코드 작성했는데, autocomplete-python과 스크립트 플러그인도 모두 작성했거든요, 뭐가 문제일까요?ㅠㅠㅠ
19:00 시간에 보고 궁금한게 있습니다. JPA 실행해서 나온 sql 스크립트를 보고 수정할 부분이 있으면 수정해서 ddl 을 직접 작성하신다고 하셨는데, 수정된 ddl 에 맞게 JPA 에서도 코드를 수정해야하는걸까요? 아래 방식으로 개발이 진행되는 것이 맞는지 궁금하네요 JPA 코드작성 -> DDL 스크립트 확인 및 수정 -> DDL 직접 작성하여 DB에 반영 -> 수정된 ddl에 맞게 다시 JPA 코드 수정 -> 애플리케이션 실행 (뭔가 질문이 이상한 것 같기도한데; 이해가 어려운 부분은 편하게 말씀 부탁드립니다)
야생형 코스로 jpa 기초 앞부분 jpa 실무1 jpa 실무2 중간정도를 들었는데요 일단 저는 어려운점이 10가지 정도 있었습니다. 1. jpa1 에서 thymeleaf 부분이 어려웠는데 그래도 반복해서 보니까 좀 알것 같긴 했어요 2. 검색 관련 jpql 이 어려웠어요 3. 영속성 컨텍스트 , @transactional등 개념이 어려웠어요 4. 지연 로딩 문제 해결 방법이 어려웠어요 5. 다대다 매핑이 어려웠어요 6. 주문 함수의 인자값이 왜 저렇게 되나 7. 어노테이션 모르는게 좀 있었어요 8. 컬렉션 관련 문법, -> 문법(java8 문법? 람다?) 이런 부분들이 어려웠어요 9. jpa 실무2 버젼이 올라갈수록 복잡해져서 어렵 10. 로그인이나 리액트 연동 같은게 없어서 연습용 프로젝트에 활용이 어렵 근본적인 이유는 자바와 스프링 기초가 부족해서 일까요? http 강의를 보고 나서 느낀점은 jpa 기초 강좌도 그렇고 이것도 어떻게 보면 기초 강의중의 하나잖아요 그런데도 어렵;; 앞의 강의들을 정리하면서 봤는데 실습이 없으니까 내용의 흐름 파악이 쉽지 않고 디테일들고 잘 모르겠는 부분이 많아요 그리고 jpa1과 jpa2 실무 강의를 들으면서 어려웠던게 여전히 어려울것 같아요 mvc1 mvc2 강의를 들어야 될까요? 온라인에서 부족한 자바 실력을 채우려 했는데 차라리 학원을 다녀야 되나 고민이 되요 자바 기본도 부족하고 실무 강의들을 몇번을 반복해서 봐도 어려운 부분들이 많다면 오프라인 학원이 좋을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요, 최근 부하테스트를 진행하며 성능개선을 해보려하고 있습니다. 그 중 단순 DB 조회 API에 대해 테스트를 진행하고 있는데, 스레드 덤프를 확인한 결과 SessionImpl.doFlush()가 호출되는 것을 보고 트랜잭션이 끝나는 시점에 자동으로 flush가 호출되는 것을 발견했고, 때문에 readOnly 설정이란 것을 찾아서 설정하고 다시 테스트를 진행했습니다. 반복해서 테스트를 진행해 봤는데, readOnly를 설정하지 않았을때가 TPS가 높게 측정이 됩니다. 왜 그런지 알 수 있을까요.. 그림은 순서대로 readOnly를 설정하지 않았을 때와 설정했을 때 입니다. 테스트 대상 API의 코드는 아래 링크의 getMovieList() 입니다. https://github.com/hapHollys/booook/blob/main/src/main/kotlin/com/haphollys/booook/presentation/controller/MovieController.kt
안녕하세요 강의를 잘 보고 있는 수강생입니다. import pickle for i in range ( 1 , 51 ): with open ( " {0} 주차.txt" , "w" , encoding = "utf8" . format ( i )) as report : report . write ( "- {0} 주차 주간보고 - \n 부서 : \n 이름 : \n 업무 요약: " . format ( i )) 퀴즈에서 with 문에 format를 사용해서 했는데 안되던데 그 이유가 with문은 str 형태라서 사용을 못하는건가요? 만약에 with 문에 전체가 str 형태라면 format 사용 가능한가요? 답변 부탁드리겠습니다. 강의 너무 잘 듣고 있습니다!