강의에서 임시 객체가 생성되는 첫 번째 상황으로 클래스가 함수의 반환 자료형이 될 경우 (이름이 없는) 임시 객체를 생성 을 언급해주셨습니다. 이 경우가 아래와 같은 상황을 말하는걸까요? Class get() { return new Class(); } 그렇다면, 해당 함수(메서드)로 받은 인스턴스에 대한 참조자가 생긴다면, 그 때는 임시 객체가 아니게 되는건가요? Class value = get();
Member activate 호출 시 MemberDetail의 activate 또한 호출 하게 되는데요. 이때 MemberDetail의 activate 로직에서 this.deactivatedAt = null 을 통해 비활성 일시는 초기화 해주어야 활성 -> 비활성 -> 활성 -> 비활성 시 deactivatedAt이 null임으로 문제가 없을 것 같은데 어떻게 생각하시나요?
@Service @RequiredArgsConstructor public class ImageService { private final OpenAiImageModel openAiImageModel; public ImageResponse getImageGen(ImageRequestDTO request) { ImageResponse imageResponse = openAiImageModel .call(new ImagePrompt(request.getMessage(), OpenAiImageOptions.builder() .model(request.getModel()) .quality("hd") .N(request.getN()) .height(1024) .width(1024) .build() )); return imageResponse; } } 선생님 강의와 같이 해당 코드를 작성했는데 이미지 생성에 실패했다는 오류가 뜹니다. spring 공식 문서에서는 .quality("hd")가 없어 동일하게 제거하고 재부팅해도 이미지 생성에 실패하네요 ㅠ 혹시 원인을 알 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 앞선 로직으로 1차 캐시에 (이름: entity, 값: 10), ...이 저장되어 있다고 가정합니다. (스냅샷) 벌크 연산을 수행하여 모든 DB 로우 값을 5씩 곱합니다. 연산을 마치면, 1차 캐시에는 (entity, 10), ... DB에는 (entity, 50), ...과 같은 값이 저장되어 있을 것입니다. 제가 알기로, flush()는 스냅샷과 비교하여 1차 캐시의 변경 사항을 DB에 반영합니다. (실행하여도 1차 캐시에는 변함이 없습니다) 그렇다면 만약 벌크 연산 후 flush, clear를 연달아 실행하면 1차 캐시의 값이 벌크 연산을 덮어씌워 값이 오염되는 것 아닌가요? 따라서 flush -> 벌크 연산 -> clear가 맞는 호출 순서가 아닐까 궁금합니다.
MemberRegisterTest를 진행할 때 @SpringBootTest를 사용해서 테스트를 진행했는데요 서비스 테스트에는 @ExtendWith(MockitoExtension.class)를 사용하는 경우를 많이 봤습니다 헥사고날 아키텍처에서는 애플리케이션과 도메인이 중심이 되기 때문에 서비스에서 @SpringBootTest를 사용한걸까요?
어떤 강의에 대한 질문인지 자세하게 알려주시면 답변을 드리는데 도움이 됩니다. 스크린샷 윈도우키 + 쉬프트키 + S(윈도우) 을 자세히 첨부하시면 답변 드리는데 많은 도움이 됩니다. 동영상 재생 관련 같은 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요. 5. AI Agent에 직접 Google API 를 사용해서 구글 검색 툴 작성하기 키값 전체적으로 입력후 마지막에 q by model 없는경우 어덯게 웹검색을하나요;; 아무리 찾아도 나오지않네요 혹시 모델 불러오는 값수동으로 찾는방법은없나요 /
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] -> 강의 메뉴얼에 자세히 나와있다고 타 수강생분 25년도 07월 28일 문의글에 답변 남겨주셨는데, 강의 메뉴얼이 어디있을까요..??
[질문 내용] 안녕하세요! 기본편과 심화 3편에서 객체 지향 프로그래밍에 대한 정의가 다른 거 같은데 어떻게 이해하면 좋을지 여쭤봅니다. 기본편 3번쨰 pdf 19페이지에는 객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다. 이렇게 정의되어 있는데 고급 3편 13 함수형 프로그래밍 파트에서는 객체지향이 어떻게에 속한다고 되어있고, 무엇을은 함수형 프로그래밍과 관련되어있다고 설명되어있습니다. 저 또한 메서드나 필드 들을 하나의 객체로 모으고 객체들이 어떻게 상호작용할지가 더 맞다고 생각하는데 기본편의 정의가 무엇을 이라고 써져 있는게 어떤 의미인지 궁금합니다.
항상 친절한 답변 감사드립니다. 말씀하신 대로 AI Agent 에서 System Message 선택 후 "최신" 정보 같은 것은 스스로 판단하지 말고 무조건 툴을 사용하여 검색 정보를 수집한 후 답변하세요 라고 입력했는데 API가 제대로 작동하지 않는다는 답변이 나옵니다. 어떻게 해야하나요?
수업 너무 잘들었습니다. 제가 강사님 수업을 듣고, 사용자 질의에 따라 sql 쿼리를 반환하는 모델을 만들어보고 있는데요, 모델은 허깅페이스에서 "LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct" 이용해서 만들고 있는데, 요청에 따라 적절히 sql 쿼리를 만들려면, 일단 모델이 1) db 테이블 구조를 명확히 알아야하고, 2) 질의를 db 테이블 용어(ex: '카톡'을 얘기했을때, sns_type =1 로 대체)로 대체하는 dictionary가 잘되어야 할것같은데, 현재는 프롬프트에 1) few_shot 예시와, system 프롬프트에 2) 테이블 구조에 대한 설명, sql 작성 규칙 등을 넣어서 결과를 받고 있습니다. (system 프롬프트는 langChain hub에서 rlm/text-to-sql 을 참조 했습니다) 예시와 유사하거나 예시에서 약간 변화를 준 질의에 대해서는 잘 답변을 하고있는데, 조금만 벗어나면 잘못된 답을 줍니다. 예를들면 userid 칼럼인데 user_id 로 적는다던지, 말을 조금만 바꿔도 못알아 듣는다던지, 심지어 dictionary_chain에 프롬프트로 잡아줘도 대체를 못하는 경우도 있습니다. 어떻게 모델이 질문에 유연하게 이해하고 적절히 답을 하도록 만들어야하는지 방향을 잘모르겠습니다. 조언 부탁드립니다ㅠ 🙏 (그리고 벡터스토어를 효용성을 못찾고 이용하지 않고 있는데 이 모델에서 벡터 스토어를 잘 이용할수 있는 방법이 있을까요?)
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 사용 시에 상태 코드 외에 추가적인 메시지 설정이 불가능하다는 등 단점이 있어서 사용하지는 않겠지만요. 그저 기술 의존성 침투 관점에서 궁금해서 문의 드립니다. 감사합니다.
직장을 다니면서 틈틈히 1일 10분이라도 강의 듣고 코딩 연습을 할려고 노력하다 보니 완강이 되었습니다. 고급편과 스프링 입문도 같이 하면서 백엔드 개발도 할 수 있는 시간을 기대합니다. 자료구조는 좀 재미(?)가 없었지만 나중에 필요한 내용이므로 잊어버리지 않고 기억하도록 하겠습니다. 좋은 강의 감사합니다.