아래의 엔드포인트 두개의 함수 부분에서 async def download_basic(file_name: str): async def download_custom(file_name: str): if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 이 부부의 file_path를 full_file_path를 아래처럼 할당한 후에 if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 으로 수정해야 할 듯 합니다. @app.get("/download/basic/{file_name}") async def download_basic(file_name: str): safe_base_filename = os.path.basename(file_name) file_path = os.path.join(DOWNLOAD_DIR, safe_base_filename) full_file_path = os.path.abspath(file_path) . ' ' if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): # if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): @app.get("/download/custom/{file_name}") async def download_custom(file_name: str): safe_base_filename = os.path.basename(file_name) file_path = os.path.join(DOWNLOAD_DIR, safe_base_filename) full_file_path = os.path.abspath(file_path) . ' ' if not full_file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): # if not file_path.startswith(os.path.abspath(DOWNLOAD_DIR)): 그렇지 않으면 검증이 되지 않습니다. 아래 참고 file_path: ./downloadables/스크린샷_3.png full_file_path: D:\Python_FastAPI\Inflearn_Master\File_API\downloadables\스크린샷_3.png os.path.abspath(DOWNLOAD_DIR): D:\Python_FastAPI\Inflearn_Master\File_API\downloadables
좋은 강의 감사합니다. 강의 내용과 같이 설정이 잘 진행 되었습니다. python 3.10.4 가상환경 kiwoom_32 python platform ('32bit', 'WindowsPE') 문제는 VS-Code 터미널에 "pip install pykrx" 입력 하면 아래 와 같은 오류 메세지가 표시되면서 설치 되지 않습니다. (pandas 설치도 동일함.) " Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error" 설치 방법 도움 부탁 드립니다. p.s VS-Code 터미널 캡처 화면 유첨 하오니 참고 바랍니다 .
public String chatMessage(String message) { return chatClient.prompt() .user(message) .call() .chatResponse() .getResult() .getOutput() .getText(); } 선생님 현재 스프링 ai 1.0.1버전을 사용중입니다. 그러면 getText()가 아닌 getContent()를 사용해서 프롬프트를 생성해야되는거 아닌가요?! 왜 getConetent()를 사용할 수 없는걸까요?!
안녕하세요. ApiControllerAdvice에서 하나의 Handler 메서드에서 아래 2개 Exeception 타입을 처리하시도록 변경하셨는데요. - DuplicateEmailException - DuplicateProfileException 이렇게 할 경우, 아래와 같이 두 Exception의 공통 타입인 RuntimeException 객체로 파라미터를 받아야 하는거 아닐까요? @ExceptionHandler({DuplicateEmailException.class, DuplicateProfileException.class}) public ProblemDetail duplicateExceptionHandler(RuntimeException e) { return getProblemDetail(HttpStatus.CONFLICT, e); } 감사합니다.
안녕하세요. Member와 MemberDetail의 연관관계 주인이 바뀐게 아닌가 싶습니다. 비록 1:1 관계이고, 두 객체 인스턴스가 동시에 생성되고 테이블에 영속화 되게끔 설정된 거는 맞지만, 논리적으로 Member 엔터티가 상위 엔터티이고, MemberDetail이 하위 엔터티가 맞는 것 같아요. 추후 Member 엔터티를 참조하는 다른 엔터티가 만들어질텐데, MemberDetail을 참조하는게 아니라 Member를 참조해야 하고요. 관련한 의견 부탁 드립니다. 감사합니다.
안녕하세요. 도메인 영역에 @Entity, @Query 애너테이션을 사용하는게 문제가 없다는 내용과 이유를 강의에서도, 질문&답변에서도 잘 설명해 주셨고, 모두 확인했습니다. 동일한 이유로, 강의에서 DuplicateEmailException에 @ResponseStatus 애너테이션 사용 시, 의존성 문제에 대해서 언급한 부분도, JPA 애너테이션을 사용할 수 있다는 동일한 근거로 허용되어도 문제가 없는게 아닐까요? 물론, @ResponseStatus 사용 시에 상태 코드 외에 추가적인 메시지 설정이 불가능하다는 등 단점이 있어서 사용하지는 않겠지만요. 그저 기술 의존성 침투 관점에서 궁금해서 문의 드립니다. 감사합니다.
그림을 아래코드처럼 삽입하면 표 안 중앙 위치에 삽입되는게 아니라 오른쪽으로 치우치게 삽입이 됩니다 어디에서 오류가 나는건지 몇 번 다시 반복해봐도 안되고 코드를 사용하지 않고 수동으로 복사 붙여넣기로하면 정사적으로 이미지가 표안에 크기가 맞추어 삽입이 되는데 해결방법 알려주십시오. hwp.insert_picture(r"C:\Users\rkdmf\Downloads\number\002.png")
직장을 다니면서 틈틈히 1일 10분이라도 강의 듣고 코딩 연습을 할려고 노력하다 보니 완강이 되었습니다. 고급편과 스프링 입문도 같이 하면서 백엔드 개발도 할 수 있는 시간을 기대합니다. 자료구조는 좀 재미(?)가 없었지만 나중에 필요한 내용이므로 잊어버리지 않고 기억하도록 하겠습니다. 좋은 강의 감사합니다.
windows 에서 pip freeze로 requirements.txt 를 만들기 위해선 아래와 같은 명령어를 사용하시면 됩니다. pip list --format=freeze > requirements.txt 강의 마지막까지 진행된 conda 환경에서 실행하시고 결과 답변주세요. 감사합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
생성자에서 필드에 의존성 주입하면 예를 들어 컨트롤러 생성자를 만들때 서비스 필드에 의존성 주입해주면 그때는 @Autowired가 자동으로 존재한다고 했는데 이 @Autowired 는 생성자의 파라미터를 전부 빈으로 등록시켜주는건가요? 만약 그렇다고 한다면 생성자의 파라미터가 객체가 아닌 경우는 어떻게 되는건가요? 혹시 객체 타입 파라미터만 빈으로 등록시켜주고 객체가 아닌 파라미터는 빈으로 등록시켜주지 않나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [SpringBoot 3.x] ```java plugins { id 'java' id 'org.springframework.boot' version '3.5.4' id 'io.spring.dependency-management' version '1.1.7' } group = 'study' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' runtimeOnly 'com.h2database:h2' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } ``` 강의파일에 있는 그대로 build.gradle 설정 완료후 compileJava를 진행하면 build/generated/sources/annotationProcessor/java/main/study/querydsl/entity/QHello.java 까지 생성이 됩니다. 하지만, build and run using : intellij Run tests using : intellij 로 변경하면 Q타입 인식이 안됩니다. 1. 버전 변경 진행 2. Annotation Processor enable 체크 확인 3. projectStructure -> modules -> build 부분 source 체크 진행 3가지 모든 과정을 진행해보았는데 동일했습니다. 이럴때는 Run as intellij 가 아닌 Gradle로 두어서 진행해야 할까요?
강사님의 강의들을 잘듣고 있습니다. 정말 실무에 도움이 될까하고 듣고있는데 아직 다듣지는 못하고 있지만 도움이 될것 같습니다. 하지만 실무에서 접하는 내용은 또 강의와 깊이가 다를수 있기에 이렇게 실례를 무릅쓰고 문의 드립니다. 제가 있었던 기업에서 전에 쓰던 기법이였는데 그때는 그냥 그렇게 넘어갔지만 강사님의 강의를 듣고 그때 그런 것이 맞았나 복기하고 공부하고 싶어서 질문드립니다. 먼저 대략은 머신러닝 알고리즘을 두개를 돌리는데 하나는 기초 속성을 가지고 lightgbm으로 분류 작업 (1,0) 속성으로 예측을 합니다. 그리고 그 결과중 y_proba를 가지고 k-means 군집화를 하여 군집 클러스트링을 만들려고 합니다. 0) 여러 학습을 할 속성을 전처리해서 가지고 옵니다. 속성을 많은데 뒤에 예측을 하는 20개의 결과 값을 속성과 함께 자지고 온뒤 나중에 원본값은 대략 저렇고 속성 1----- 속성30 , y_test 1, ... y_test 20 . . . 나중에 y_test 1 부터 y_test20 까지 20개의 예측을 하려고 모델을 만듧니다. 1) LightGBM 으로 분류작업을 합니다. (for 문을 돌아 20개의 예측 즉 모델을 만듭니다.) x_tr1 속성1 속성2 속성3 ...... 속성30 y_test1 0 1 1 ..... 0. 1 . . . x_tr15 속성1 속성2 속성3 ...... 속성30. y_test20 1 0 1 ..... 1 . . . 2) Y_test1. y_pred1 y_proba1 0 1 0.91 1 1 0.43 1 1 0.73 0 1 0.80 . . . Y_test15. y_pred20 y_proba20 0 1 0.34 1 1 0.35 1 1 0.73 0 1 0.91 . . . 3) 군집화(k-means) 를 위한 데이터를 만듭니다. Y_proba1. ......... Y_proba20 0.91 .... 0.34 0.43. .... 0.35 0.73 .... 0.73 0.80 .... 0.91 4) 제가 재기하는 문제는 다음입니다. 군집화를 위한 데이터를 분류의 결과값중 하나인 y_proba를 써도 되는 건지? 왜냐하면 y_proba는 그 맞는지에 대한 확률 값이 아니고 그 값을 예측하기 위한 신뢰도 아닐까요? ( 예전 현업들은 그 값(y_proba)들을 최종 확률 [즉 맞는 확률 예를 든다면, 암에 걸릴 최종 확률] 로 알고 있더군요. ) 즉 1 = 예측 0 = 정답 y_proba = 0.9 라는 의미는 0.9의 신뢰혹은 확신으로 예측을 했으니 결과로 틀렸다. 라는 개념인데 이것을 마치 (암에 걸릴 확율이 90% 야)의미 있는 값의 나열로 보고 군집을 하려는게 과연 의미있는 결과로 군집이 될지 의문입니다. 저희가 붓꼿꽂데이터로 클러스트링으로 군집을 하지만 그 속성들로는 너비같은 관련이 있는 속성을 쓰잖아요. 하지만 제가 보내드린 예는 속성이 0.91이라는게 예측이 틀리건 맞건 그냥 그 예측을 위한 신뢰확률성인데 말이죠. 즉 군집화를 위한 기초 값들이 y_proba1. y_proba2 .... y_proba 20 0.91 0.43 0.80 . . . y_proba1. y_proba2 .... y_proba 20 0.32 0.62 0.65 있다면 의 값의 의미는 예를 들어 하나의 로의 하나의 로 의 의미가 0.91 이라 한다면 이건 앞서 lightgbm 예측이 틀린 경우와 맞는 경우를 구분할수 없는 숫자들의 나열 아닌가요? 물론 열로 쭉 늘어 놓은 패턴으로서의 군집을 하려는 의미는 있을지는 모르겠으나... 전문가의 선생님의 의견을 꼭 듣고 싶네요. 주말에 이렇게 질문드려서 죄송해요. 그냥 열정이라고 생각해 주시면 좋겠어요, 더운데 몸 조심하세요.