[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] left join이 쿼리에 실어지지 않아 의문을 갖던 중 https://inf.run/8ctRk 이 질문에 답변해주신걸 보고 이해했습니다. @Query(value = "select m from Member m left join m.team") Page<Member> findByAge(int age, Pageable pageable); 결론적으로 위와 같이 하면 쿼리에 join문이 붙어 잘 나갑니다. 다만 count 쿼리는 여전히 아래와 같은데 이 부분도 역시 마찬가지로 하이버네이트6에서 count 쿼리에서 join 문을 알아서 빼서 최적화해준건가요? 페이징 쿼리 select m1_0.member_id, m1_0.age, t1_0.team_id, t1_0.name, m1_0.username from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id order by m1_0.username desc fetch first ? rows only 카운트 쿼리 select count(m1_0.member_id) from member m1_0
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 강의 정말 잘 수강하고 있습니다. 선생님 덕분에 기본기가 탄탄해지는 것 같아서 감사드립니다. 27강(댓글 무한 depth - CUD API 구현 & 테스트 데이터 삽입 Comment Response 관련 질문) - 24분 가량에서 Comment V2 생성을 위한 정적 팩토리 메소드의 경우 CommentResponse 책임으로 넣으셨는데, 굳이 책임을 CommentResponseV2로 넣을 정도로 큰 부분이 아니기에 하나로 넣으신건지, 아니면 프로젝트 규모적으로 보았을때 굳이 V2 Response를 생성할 정도의 규모가 아니기에 따로 만드시지 않고 하나의 Response 객체로 사용하신 것인지 궁금합니다. 나중에 프로젝트 아키텍칭을 할 때 해당 내용을 기억하기위해 질문드리고자 합니다. 감사합니다.
킬구형 안녕 FlatFileReader 라는 아주 편안한 기능은 존재하는데 어째서 ExcelFileReader 기능은 존재하지 않는거지? gpt 말로는 공식 확장 모듈은 spring-batch-excel 이 존재한다고는 하는데 이거 믿고 사용해도 되는지 모르겠네 킬구형은 excel 파일 읽고 DB에 쓸 때 아파치 poi 라이브러리로 직접 파싱해?
안녕하세요 딩코딩코님! 수업 감사히 듣고있습니다! 아래 코드에서 트랜잭션 범위를 최소화하기 위해 1. 기존 서비스로 이벤트 참가 처리 메서드에만 @Transactional이 붙여져 있습니다. 이미 커밋이 된 상태이기 때문에, 2. 외부 API 호출이 실패해서 RuntimeException 예외를 던져도 “내 서비스”의 DB에는 “참가자 수 증가”와 “참가자 정보 저장”이 된 상태일 것으로 생각되는데, 이 경우, 아래 두가지 옵션 중 선택하는 것이 좋은 방법인지 트랜잭션 범위를 2. 까지 늘린다. 외부 API 호출 실패 시 “참가자 수 감소”, “참가자 정보 삭제” 로직을 추가한다. 아니면, 더 좋은 옵션이 있는지 궁금하여 질문드리게 됐습니다! public class ImprovedEventJoinWithExternalApiUpdateFacade { private static final String TEST_PHONE_NUMBER = "01012341234"; private final EventExternalUpdateService eventJoinService; private final ExternalEventApi externalEventApi; private final ApplicationEventPublisher eventPublisher; public void joinEvent(Long eventId, Long memberId) { // 1. 기존 서비스로 이벤트 참가 처리 EventWithLockParticipant participant = eventJoinService.joinEventWithTransaction(eventId, memberId); // 2. 외부 API 호출 ExternalEventResponse response = externalEventApi.registerParticipant( eventId, memberId, participant.getEvent().getName() ); if (!response.isSuccess()) { throw new RuntimeException("외부 API 호출 실패: " + response.getErrorMessage()); } // 3. 외부 API 응답으로 참가자 정보 업데이트 eventJoinService.updateExternalId(participant, response.getExternalId()); // 4. 이벤트 발행 (트랜잭션 커밋 후 실행됨) eventPublisher.publishEvent(new EventJoinCompletedEvent( eventId, participant.getEvent().getName(), TEST_PHONE_NUMBER )); } }
교안에서는 p.29 인데 여기서 여러 서버가 접속해도 문제없이 작동하는것을 확인할 수 있다 부분이 헷갈려서요. 여러 클라이언트가 접속해도로 바뀌어야 되는거 아닌가요. 지금 클라이언트 여러대에 서버 한대에 그 서버에서 쓰레드 만들어서 작동하는 걸로 이해했는데 혹시 제가 잘못 이해한걸까요. 감사합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
저는 application.yml 파일에서 mysql username 과 password 를 전부 .env 파일에 넣고 $ {} 를 써서 나타냈습니다. 그래서 .env 파일은 깃허브에 올리면 안돼서 배포해도 제대로 안돌아갈것 같아서 그런데. 혹시 강사님께서는 aws 배포하실때 db username, password 와 같은 민감한 정보들은 어떻게 처리하여 배포하시는걸 추천드리나요?
InFearLearn 서버 침입 사건: 해커 패턴 추적 작전 작전 수행을 위한 실전 코드부터 살펴보자. 여기코드에서 @Bean @StepScope public MongoCursorItemReader<SecurityLog> securityLogReader( 이 아이템리더쪽 복붙하고 안다듬어서 들여쓰기 밀림
안녕하세요! 자주 질문드리는데 정성껏 답변해주셔서 감사합니다! 동일한 이벤트가 중복 전송될 가능성이 있기 때문에 article-read 서비스에 이벤트 id를 통한 중복 처리 로직을 추가 하려고합니다. article-read 는 redis를 사용하고 있기 때문에 redis에 이벤트 id를 저장해 해결하려고했습니다. 예를 들어 article-read가 이벤트를 받았을때 redis 에서 이벤트 id 확인 동일한 이벤트 id가 저장돼 있으면 추가 처리 안하고 message ack redis 에서 이벤트 id 확인 동일한 이벤트 저장된게 없으면 서비스 로직 수행 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 이런식으로 진행하려 했으나 만약 어떠한 문제로 인해 서비스 로직 결과 redis 업데이트 ( 성공 ) 처리 완료한 이벤트 id redis 저장 ( 실패 ) 하게되면 이벤트 처리는 성공했지만 처리된 이벤트 저장에는 실패해 추후에 중복 처리가 발생할 가능성이 생길 것 같습니다. 이러한 문제 해결을 위해 서비스 로직 결과 redis 업데이트 처리 완료한 이벤트 id redis 저장 두 작업을 하나의 트랜잭션으로 묶어 처리하려고했지만 rdb 와 동작이 다르기 때문에 (롤백 기능 제공 안함 등) 적절한 방법인지 판단이 안서는 상태네요 혹시 article-read에 이벤트 중복 처리를 한다고 하면 어떻게 구현이 가능할지 여쭤보고싶습니다
close() 메서드에서 synchronized와 if(closed){ return; } 조건문을 해준 이유가 해당 세션 종료시 close() 메서드 호출과 서버 종료시 SessionManager의 closeAll()을 통한 close() 메서드 호출이 동시에 되고 중복으로 호출 되는걸 막기 위해서 해준거라고 이해하면 될까요?
[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
cd Wed/ 부터 시작하는데, 우분투를 껐다가 켜면 다 리셋되는거니까 cd _Book_Claude-Code/Week1/Wed/ 로 해서 실행하는게 맞나요? 그리고 Wed에서 Thu로 바꾸는 방법이 있나요? /quit 하고 Thu/를 입력해도 No such file or directory 라고 뜨면서 안돼서 껐다켜고있습니다. 54쪽에 1번 ! Is가 잘 작동이 안되는데 뭘하는건지 잘 모르겠습니다. ! for bash mode라고 뜨는데요. Is를 입력하면 /bin/bash: line1: Is: command not found 라고 뜹니다.
안녕하세요. circuit breaker 코드를 봤을 때 간략하게 circuit breaker가 이런거다 라고 설명해주셨지만, 추가로 궁금한 점이 있어 질문 드립니다. 만약 인스턴스가 여러개인 상황에서는 로컬 상황만 보는게 아니라 전체 인스턴스 상황을 봐야할 것 같은데 이럴 떄는 circuit breaker를 어떻게 사용해야 하는지 궁금합니다. 감사합니다.
안녕하세요. 강의를 듣고있는 사람입니다. 버전이 변경되다보니 강의 내용을 그대로 수행한다면 정상적으로 작동하는 Project들이 몇 없네요.. DALL-E 2 모델로 이미지를 생성하는 경우 오류 발생 DALL-E 2 모델에서는 withQuality("hd")와 같은 옵션을 지원하지 않는다고합니다. 해당 라인을 제거해주시면 정상작동합니다. DALL-E 3 의 경우 withQuality를 지원하는데, 지정하지 앟는다면 standard 값이 기본으로 들어가며 hd를 원하시는 경우 따로 if ("dall-e-3".equals(model)) { optionsBuilder.withQuality("hd"); } 위와같이 옵션을 주입하여 사용하시면 될것같습니다.