inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

스케줄링과 관련된 질문입니다.

미해결

Airflow 마스터 클래스

섹션3, 첫번째 강의에서 스케줄에 관한 질문입니다. 강의에서, start_date = 2023.1.1 schedule = "30 6 * * * " next_run = 2023 03 18 6:30 그리고 현재 날짜는 2023 03 19 인것으로 봤는데, next_run이 현재날짜보다 뒤에 있으니 pause -> unpause 를 하게되면 자동실행이 안되어야 하는거 아닌가요? 강의에서는 자동으로 실행되는것으로 봐서요. 감사합니다.

  • python
  • 데이터-엔지니어링
  • airflow
Hyeonghwan Kwon 댓글 1 좋아요 1 조회수 268

4.4 클래스의 정의와 호출 parr2 강의 중 attribute 초기화 부분 질문

해결됨

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

클래스 정의하고 호출하면 42번 줄에 player1에 해당하는 height와 weight의 값이 둘 다 나와야 하는데 저는 한가지 값만 출력이 됩니다. weight를 지우고 height 값만 쓰면 height값이 출력되고 둘다 쓰면 height값은 안나오고 weight값만 출력이 되는데 왜 이런 걸까요?

  • python
ㅊㅌㅎ 댓글 1 좋아요 1 조회수 185

주문조회 V3.1 실행 후 Query 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. V3.1 실행 후 콘솔창에 뜨는 쿼리문이 다음과 같이 뜹니다. springboot version 3.2.1 이고 Hibernate5JakartaModule로 설정했습니다. application.properties 도 아래와 같이 설정했습니다. 그외 부분도 강사님 코드를 그대로 복붙해도 다음과 같이 물음표가 너무 많이 뜨는데 버전 문제인건가요?

  • java
  • spring
  • spring-boot
  • jpa
댓글 4 좋아요 0 조회수 1072

참조값 복사에 따른 인스턴스 동일성 질문

해결됨

김영한의 실전 자바 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에서(12:00부분) 참조값만 복사하고 인스턴스를 복사하는 것이 아니라는데, 결국 같은 인스턴스를 접근하게 되잖아요 그러면 위 뜻이 인스턴스가 동일해지는 것은 맞지만, 참조값을 복사하는 것이지 인스턴스를 복사하는 것이 아니라서 잘못 인지하지 말라는 뜻인가요? 아니면 인스턴스가 달라서 참조값만 복사한 것이기에 인스턴스를 복사하는 것이 아니라는 뜻인가요? Data dataA = new Data(); // 1.Data인스턴스 생성후 dataA에 참조값 넣음 dataA.value = 10; Data dataB = dataA; // 2.dataA 참조값을 복사하고 대입함 System.out.println("dataA.value = " + dataA.value); // 10 System.out.println("dataB.value = " + dataB.value); // 10 // 3.dataB는 dataA의 인스턴스에 동일하게 접근하게됨

  • java
  • 객체지향
  • 인스턴스
  • 참조값
kyk 댓글 2 좋아요 0 조회수 488

openai.error.RateLimitError:

미해결

챗GPT와 파이썬으로 유튜브 AI 직원 만들기

안녕하세요 현재 수업을 듣고있는 중에 아래와 같은 에러가 발생했습니다. openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details. For more information on this error 조금 찾아보았는데.. 아래 사항들에 전혀 해당하지 않습니다. 심지어 돈 주고 gpt4 사용하고 있는데.. 어떤 문제일지 여쭤봐도 될까요? - You are using a loop or a script that makes frequent or concurrent requests. - You are sharing your API key with other users or applications. - You are using a free plan that has a low rate limit. https://help.openai.com/en/articles/6891829-error-code-429-rate-limit-reached-for-requests

  • python
  • openai
  • gpt
  • chatgpt
댓글 1 좋아요 0 조회수 1207

앞으로의 방향

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 안녕하세요!! 우선 좋은 강의 만들어주셔서 너무 감사합니다! 이번 강의도 정말 잘 들었습니다!! 저는 자바 입문, 실전 자바 기본편을 듣고 이번 스프링 입문 강의를 완강했습니다. 이전에는 자바에 대해 책으로 공부하고 강의를 통해 이해하는데 큰 어려움이 없었지만 스프링은 처음이라 많이 헤매는 느낌을 받습니다. 궁금한 점은 헤매는 느낌을 받는 이유는 자바에 대한 이해가 부족해서 인지 스프링에 대한 이해가 부족해서 인지 알고싶습니다. 또한 제 계획은 24년도 상반기에 나올 자바 중급,고급 강의를 듣고 스프링 완전정복 강의를 듣고 토이프로젝트를 통해 실력을 향상시키는 것이 목표입니다. 이 방향성이 괜찮은지 아니면 어떤 방향으로 나아가야하는지 조언 부탁드립니다.!! 처음 자바를 공부하고 너무나도 헷갈리고 어려운 순간들이 많았는데 김영한 선생님의 강의를 듣고 나름대로 발전한 것 같아서 항상 감사하고 있습니다. 양질의 강의를 제공해주셔서 감사합니다 !! 24년도 잘 부탁드립니다!!

  • java
  • spring
  • mvc
  • spring-boot
댓글 2 좋아요 1 조회수 370

IIS 500.19에러

미해결

남박사의 파이썬으로 실전 웹사이트 만들기

구글로 먼저 배포 해보고 잘 되서 IIS로 배포해보려고 하는데 다음과 같이 나옵니다 handler도 Allow로 바꿨고 web.config는 그대로 복사하고 경로도 확인했는데 뭐가 문제일까요...ㅠㅜㅠ

  • python
Eddie 댓글 2 좋아요 0 조회수 675

3중 for문으로 변경해서 정답

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.util.Scanner; public class 멘토링 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); int[][] intArrArr = new int[n][m]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int temp = scan.nextInt(); intArrArr[temp-1][i] = j; } } System.out.println(solution(n,m,intArrArr)); } private static int solution(int n, int m, int[][] intArrArr) { int answer = 0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ boolean flag = true; for(int k=0;k<m;k++){ if(intArrArr[i][k] >= intArrArr[j][k]){ flag = false; break; } } if(flag){ answer++; } } } return answer; } } input을 받을 때 학생이 행에 오도록 변경을 해서 등 수를 열로 변경해서 받으면 3중 for문으로도 가능합니다. 참고가 될까 싶어 올려봅니다 화이팅!!

  • java
  • 코딩-테스트
김대영 댓글 3 좋아요 2 조회수 1514

switch 문 break vs return

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Switch 문을 while 문 중간에 넣었을 때 break 는 중단되지 않았습니다. return 문은 프로그램을 종료시켰습니다. 왜 break 문은 쓸 수 없는지 궁금합니다! package method.ex; import java.util.Scanner; public class MethodEx4 { static Scanner sc = new Scanner(System.in); static int balance = 0; public static void main(String[] args) { while (true) { switch (chooseMenu()) { case 1 -> balance = deposit(); case 2 -> balance = withdraw(); case 3 -> checkBalance(); case 4 -> { printFooter(); return; // break 대신에 return 문 쓰기 } default -> printError(); } } } static int chooseMenu() { System.out.println("------------------------"); System.out.println("1.입금|2.출금|3.잔액 확인|4.종료"); System.out.println("------------------------"); System.out.print("선택: "); return sc.nextInt(); } static int deposit() { System.out.print("입금액을 입력하세요: "); int depositAmount = sc.nextInt(); balance += depositAmount; System.out.println(depositAmount + "을 입금하였습니다. 현재 잔액: " + balance + "원"); return balance; } static int withdraw() { System.out.print("출금액을 입력하세요: "); int withdrawAmount = sc.nextInt(); if (balance >= withdrawAmount) { balance -= withdrawAmount; System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } static void checkBalance() { System.out.println("현재 잔액: " + balance + "원"); } static void printFooter() { System.out.println("시스템을 종료합니다."); } static void printError() { System.out.println("잘못 번호를 입력하였습니다."); } }

  • java
  • 객체지향
침착한치킨다리 댓글 2 좋아요 0 조회수 1717

변수의 값과 리터럴

해결됨

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

변수타입 1 강의에서 7:20 쯤 설명하시는 리터럴에 대해 이해가 잘 되지 않는 점이 있습니다. 변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다. 라고 강의 내용과 강의자료에 설명이 되어있습니다. 위 내용이 무슨 뜻인지이해가 잘 안됩니다. 개발자가 변수에 입력한 값이 리터럴 이고,, 리터럴을 수정하면 변수 값이 변하는 것 아닌가요?

  • java
  • 객체지향
고양이 댓글 2 좋아요 0 조회수 363

강의자료 부탁 드립니다~

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요, 강의자료 부탁 드려도 될까요? fbyksong@gmail.com 입니다.

  • python
댓글 1 좋아요 0 조회수 265

querydsl Projection 성능 문제

해결됨

실전! Querydsl

안녕하세요 Querydsl Projection 을 활용해 DTO에 담는경우 성능 관련 질문이 있습니다. Querydsl에서 Projections.constructor를 활용해서 query를 작성하는경우 fetchJoin이 되지 않더라구요. 일대 다 관계에서 fetchJoin을 하지 않게되면 n+1 이슈가 발생할거 같은데 Projections을 활용하는 환경에서 성능개선은 어떻게 해야할까요?

  • querydsl
  • springboot
  • java
  • jpql
  • jpa
mincoding 댓글 2 좋아요 0 조회수 938

openai 버전 문제로 실습을 따라하는데 문제가 발생하네요.

미해결

챗GPT와 파이썬으로 유튜브 AI 직원 만들기

강사님 안녕하세요. 위에 체크된 부분부터 실습시 디버깅이 좀 어려워지고 있어서 질문을 드립니다. 저는 처음부터 openai 설치 버전을 2023.12.23일 기준 최신버전 openai == 1.6.0 을 설치해서 실습을 진행하고 있습니다. 강사님은 아마도 아래의 버전을 설치해서 실습을 진행하시는 것 같은데요. 혹시 openai 최선버전으로 update해서 올려주시나요? 동영상은 openai==0.28 버전을 설치해서 하신것 같아요. 강사님 코드 git에서 그대로 받아서 실행해보면 다음과 같이 메시지가 나오네요. You tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API. You can run openai migrate to automatically upgrade your codebase to use the 1.0.0 interface. Alternatively, you can pin your installation to the old version, e.g. pip install openai==0.28

  • python
  • openai
  • gpt
  • chatgpt
신바람 댓글 1 좋아요 0 조회수 2997

ch11 / 03_voicebot_app 에러관련..

미해결

초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지

안녕하세요 ch11예제 강의중에 에러가 나는부분이 있어서 질문 올립니다! 이번에는 뉴버전말고 예전버전 사용할수있게 버전을 맞추면서 가상환경 적용했습니다. "03_voicebot_app 파일" pip install openai==0.28.1 pip install streamlit-audiorecorder pip install gTTS 설치하고 나서 key 넣고 클릭하여 녹음하기 누르고 다시 누르니까 지금과 같은 오류가 나오네요.. 확인 부탁드리겠습니다! FileNotFoundError : [WinError 2] 지정된 파일을 찾을 수 없습니다 Traceback: File "C:\Users\sinho\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch11\03_voicebot_ app.py ", line 115, in main audio = audiorecorder("클릭하여 녹음하기", "녹음중...") File "C:\Users\sinho\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch11\ch11_env\lib\site-packages\audiorecorder\__init__.py", line 27, in audiorecorder audio_segment = AudioSegment.from_file(BytesIO(b64decode(base64_audio))) File "C:\Users\sinho\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch11\ch11_env\lib\site-packages\pydub\audio_ segment.py ", line 728, in from_file info = mediainfo_json(orig_file, read_ahead_limit=read_ahead_limit) File "C:\Users\sinho\Desktop\Project\python_Project_OpenAi\inflearn_chatGPT-main\ch11\ch11_env\lib\site-packages\pydub\ utils.py ", line 274, in mediainfo_json res = Popen(command, stdin=stdin_parameter, stdout=PIPE, stderr=PIPE) File "C:\Users\sinho\AppData\Local\Programs\Python\Python310\lib\ subprocess.py ", line 969, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\sinho\AppData\Local\Programs\Python\Python310\lib\ subprocess.py ", line 1438, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args,

  • python
  • 챗봇
  • streamlit
  • openai
  • chatgpt
문신호 댓글 1 좋아요 0 조회수 561

오류 메세지

미해결

실전 프로젝트로 배우는 데이터 앱 만들기 with Python & Streamlit

안녕하세요~~ 루비네 코딩 입니다 ^^ 최근 앱을 런칭할 때 다음과 같은 오류가 발생하고 있습니다. ModuleNotFoundError: No module named 'altair.vegalite.v4' 이런경우, 다음과 같이 altair 패키지의 버전을 바꾸어 설치해 주세요 ^^ 감사합니다~ pip uninstall altair pip install altair==4.2.2

  • python
  • streamlit
루비네 코딩 댓글 2 좋아요 1 조회수 919

다형성1 과목 개념정리 질문입니다

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 제가 지금 이해한 내용으로는 Parent parent = new child(); 가 있을때 메모리에는 Child를 기준으로 상위 부모 클래스만 메모리에 적재되고 (편의상 Child 메모리라고 하겠습니다), parent의 참조 주소는 생성된 Child 메모리 안의 Parent 클래스를 참조하며, parent의 멤버변수는 Parent 클래스의 멤버변수만 가질 수 있고, 오버라이딩된 메소드가 존재한다면 무조건 오버라이딩된 메소드가 우선권을 가진다 라고이해했는데, 덧붙일 개념들이 혹시 있을까요? 아, 그리고 만약 오버라이딩된 메소드가 부모클래스에서 실행할 수 없는 메소드라면 어떻게되는지도 궁금합니다. (혹시, 오버라이딩된 메소드가 부모클래스에서 실행되지않을 가능성은 아예 없나요?)

  • java
  • 객체지향
김도현 댓글 2 좋아요 0 조회수 459

DDL 생성기능

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 16분 즈음부터 @Table(name = "MBR") 같은 것들은 런타임에 영향을 주지만 @Column(unique = true) 같은 제약조건들은 런타임에 영향을 주지 않는다는 말이 왜 그런 건지 이해가 잘 안 가는데 조금 더 설명해주실 수 있을까요?? 둘 다 데이터베이스에 어떤 쿼리를 날려야 하는데 하나는 런타임에 영향을 주고 하나는 그렇지 않다는 게 이해가 잘 가지 않습니다.

  • java
  • jpa
966kmj 댓글 2 좋아요 0 조회수 598

CH02 - 주피터 노트북 파일 실행시 오류

미해결

초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지

쥬피터 노트북 파일에서 코드 부분의 간단한 스크립트를 실행하면 "1+1" 한참 시간이 소요되고 그 후에 아래와 같은 오류가 나타납니다. 어디를 보아야 할까요?.. ㅡㅡ "Failed to start the Kernel. Unable to start Kernel 'ch02_env (Python)' due to a timeout waiting for the ports to get used. View Jupyter [log](command:jupyter.viewOutput) for further details." 상세 로그는 아래와 같습니다. Visual Studio Code (1.85.1, undefined, desktop) Jupyter Extension Version: 2023.11.1003402403. Python Extension Version: 2023.22.1. Pylance Extension Version: 2023.12.1. Platform: win32 (x64). Workspace folder k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02, Home = c:\Users\parkdg 09:59:34.230 [info] Start refreshing Kernel Picker (1703206774230) 09:59:34.236 [info] Using Pylance 09:59:34.620 [info] Start refreshing Interpreter Kernel Picker 09:59:36.436 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd0d4a87738910ea0fd9afa86e7d6320d0a9ae5dfbb4e715529ddcf2fa326b6cdcd.k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe.k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe.-m#ipykernel_launcher (Python Path: k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe, Venv, ch02_env, 3.11.6) for 'k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\01_Jupyter_Notebook_Exp.ipynb' (disableUI=true) 10:00:09.900 [warn] Failed to get activated env vars for k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe in 33842ms 10:00:09.901 [error] Unable to determine site packages path for python k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe (Venv) 10:00:22.738 [info] Process Execution: k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe -m pip list 10:00:22.779 [warn] Failed to get activated env vars for k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe in 46034ms 10:00:22.779 [error] Unable to determine site packages path for python k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe (Venv) 10:00:30.146 [info] Process Execution: k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)" 10:00:30.327 [warn] Failed to get activated env vars for ~\AppData\Local\Programs\Python\Python311\python.exe in 173ms 10:00:30.497 [info] Process Execution: ~\AppData\Local\Programs\Python\Python311\python.exe -c "import site;print("USER_BASE_VALUE");print(site.USER_SITE);print("USER_BASE_VALUE");" 10:00:31.657 [info] Process Execution: ~\AppData\Local\Programs\Python\Python311\python.exe ~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\pythonFiles\vscode_datascience_helpers\kernel_interrupt_daemon.py --ppid 40304 > cwd: ~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\pythonFiles\vscode_datascience_helpers 10:00:39.590 [info] Process Execution: k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\ch02_env\Scripts\python.exe -m ipykernel_launcher --f=~\AppData\Roaming\jupyter\runtime\kernel-v2-403047aAa1r83eMCu.json > cwd: k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02 10:00:40.761 [info] End refreshing Kernel Picker (1703206774230) 10:01:25.672 [info] Handle Execution of Cells 2 for k:\My files\Inflearn_chatgpt\inflearn_chatGPT-main\ch02\01_Jupyter_Notebook_Exp.ipynb 10:01:39.606 [error] waitUntilUsed timed out [Error: timeout at Timeout.d (~\.vscode\extensions\ms-toolsai.jupyter-2023.11.1003402403-win32-x64\dist\extension.node.js:55:1754) at listOnTimeout (node:internal/timers:569:17) at process.processTimers (node:internal/timers:512:7)] 10:01:39.606 [error] Disposing kernel process due to an error Error: Unable to start Kernel 'ch02_env (Python)' due to a timeout waiting for the ports to get used. View Jupyter [log](command:jupyter.viewOutput) for further details.

  • python
  • 챗봇
  • streamlit
  • openai
  • chatgpt
parkdg 댓글 1 좋아요 0 조회수 542

Spring 3.xx버전 querydsl gradle 설정 관련 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

QueryDSL 소개 강의 영상에서 gradle 설정하는 부분을 3이상버전 관련해서 올려주신 자료를 보면서 따라했는데 build-clean을 하고 해봐도 tasks-others밑에 compileQuerydsl파일이 생성되 지않아서 comlile.java 를 눌렀더니 generated에 파일들은 잘 생성됐습니다. plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.3' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' //Hibernate5JakartaModule 등록 (하이버네이트 모듈) implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //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() } def querydslSrcDir = 'src/main/generated' clean { delete file(querydslSrcDir) } tasks.withType(JavaCompile) { options.generatedSourceOutputDirectory = file(querydslSrcDir) } 이렇게 작성했는데 혹시 틀린 부분이 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
spacebar 댓글 2 좋아요 0 조회수 1503

jpql로 여러 값을 가져올때 영속성 컨테스트 값 저장 형태

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

예를들어 id값이 20~30인 member를 가져올때 영속성 컨테스트안의 1차캐시에는 값들이 어떻게 저장이 되나요? 일단 강의에서는 em.persist 와 em.find 인 경우 1차 캐시에 값을 저장한다고 해서 위와 같이 jpql을 사용했을때 일단 영속성 컨테스트에 값이 저장되는지 확인해보았습니다. 영속성 컨테스트에 값이 저장되었다면 commit시 1.flush 발생 2.스냅샷과 비교해서 변경감지. 3.변경이있었다면(setter) 쓰기 지연 SQL 저장소에 UPDATE쿼리 생성 및 저장 4.쓰기 지연 SQL 저장소에 있는 모든 쿼리를 실행. 5.커밋(실제DB반영) 위 과정이 일어나서 NAME 값이 changeMember로 변경되어야하는데 확인해보니 실제로 값이 변경되는걸 확인할 수 있었습니다. update 쿼리도 2번일어나는데 그럼 위의 예시에서 executeQuery로 jpql 실행 시 1차 캐시에 값이 @id Entity 20 member(20,memberA) 30 member(30,memberB) 이렇게 저장되는 거 같은데 맞나요??(리스트로 가져오면 , 하나씩 풀어서 저장) 그리고 commit시 위에 제가 생각한 과정대로 이해한게 맞을까요?

  • java
  • jpa
덴푸라 댓글 2 좋아요 0 조회수 280

인기 태그

인프런 TOP Writers

주간 인기글