GET /v1/shared-carts API 부분의 구현을 보니 CartReader.getCartAccessList 부분이 있는데 cartAccessRepository.findByUserIdAndStatus 메서드를 사용하여 조회하더라구요. 이렇게 되면 내가 만든 내가 소유자인 카트만 조회될 것 같고, 공유 장바구니 참여자 수 만큼 같은 공유카트가 여러개 조회 될 것 같습니다. 결국 소유자 조차도 access 데이터에 추가된다면 cartAccessRepository.findByAccessUserIdAndStatus 를 사용하여 범용으로 사용하는 것은 불가능할까요? 그리고 CartHandler.createCharedCart 부분에는 도구 레이어임에도 불구하고 하나의 트랜잭션으로 두지 않으셨는데요, 카트 생성 이후 나의 접근 권한이 추가 되지 않는다면 카트 리스트에서 볼 수 없을 것 같은데 이 점에 대해서도 의도하신 바가 있는지 궁금합니다! 또한 access 부분에서 DB 유니크를 걸어두었지만 사전 존재 확인이나 멱등처리가 없는 것 같습니다. 개념적인 예외를 사용하지 않고 DB 무결성 예외를 노출시키신 이유가 궁금합니다.
JPQL에서 DTO를 조회할 때 new 패키지명.DTO명(...) 을 생략하고 바로 select m.id, m.name, t.name 이렇게 작성해도 DTO로 반환이 되는데 원래 가능한 내용인가요?? @Query("select new study.datajpa.dto.MemberDto(m.id, m.name, t.name) from Member m join m.team t") List<MemberDto> findMemberDto(); @Query("select m.id, m.name, t.name from Member m join m.team t") List<MemberDto> findMemberDtoNot();
if (chatRoom.getIsGroupChat().equals("N")) { throw new IllegalArgumentException("단체 채팅방이 아닙니다."); } leaveGroupChatRoom 메소드에서 이 부분이 맞나요? 개인채팅일 경우 여기에 걸려 예외가 납니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 스크립트 Hibernate5JakartaModule 호출시 에러가 발생하여 확인 차 문의드립니다.ㄴ> om.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule Unable to get public no-arg constructor 스프링부트 버전 문제인 것으로 판단하여 프로젝트의 스프링부트 버전확인시 4.1.0 버전으로 실행하였고 해당 버전에서 라이브러리와 클래스 변경이 있는 것 같아 질문 남깁니다. // Hibernate5jakarta // implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' // -> 변경 // Hibernate7Module implementation 'tools.jackson.datatype:jackson-datatype-hibernate7' package jpabook.jpashop; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import tools.jackson.datatype.hibernate7.Hibernate7Module; @SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } // @Bean // Hibernate5JakartaModule hibernate5Module() { // Hibernate5JakartaModule hibernate5JakartaModule = new Hibernate5JakartaModule(); //// // 강제 지연 로딩 설정 // hibernate5JakartaModule.configure(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING, true); // return new Hibernate5JakartaModule(); // } // ㄴ 변경 @Bean Hibernate7Module hibernate7Module() { Hibernate7Module hibernate7Module = new Hibernate7Module(); // 강제 지연 로딩 설정 // hibernate7Module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return hibernate7Module; } }
AWS EC2 서버에 애플리케이션 배포하기 수강중인데 인바운드 포트 열고 -> 재부팅 -> docker ps 에 아무것도 없음 -> docker-compose up -d 로 컨테이너 생성 -> ec2-13-209-73-224.ap-northeast-2.compute.amazonaws.com:8080/api/posts 로 요청 반응 없음-> 터미널 반응 없음 docker ps , ssh springboot-twitter 전부 반응 없음 계속 이렇게 되는데 이게 cpu 할당량이 문제인건지.. 모르겠네요
실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
안녕하세요! 문서 분할 후 ETL 작업 마무리까지 시간이 오래 걸리길래, 프로파일링 해보니 keywordMetadataEnricher 작업 부분에서 가장 많이 시간이 소요되더라구요. 청크 사이즈를 키워 청크 개수를 줄여서 다시 테스트해보니 소요 시간이 많이 줄어들었습니다! 물론 아무래도 cpu나 gpu자원이 좋을수록 더 최적화할 수 있는 것 같긴 한데요ㅠ.ㅠ 어쨌든 작업 중 궁금한 점이 좀 많이 생겨서 질문 드려봅니다! keywordMetadataEnricher 의 기능이 rag의 검색 성능 등 서비스 활용 시에 사용자가 체감할 수 있는 성능을 많이 좌우할까요? keywordMetadataEnricher 사용을 최적화 하는 방법이 궁금합니다..! 저는 청크 개수를 줄였지만 그만큼 트레이드오프도 존재할 거 같아서, 병렬 처리를 한다든가.. 또 다른 방식이 있을 거 같은데 궁금합니다! (이것도 임베딩 모델과 연관 있을까요?) 추가로, 청크 개수를 줄였을 때의 장단점과 실제 서비스나 실무에서 사용 시, 청크 개수와 오버랩 값을 어떻게 결정할 수 있을지 궁금합니다! 실제로 테스트해보면서+경험론적으로 내가 etl 작업하고자 하는 로우 데이터의 성향에 따라 적절한 값을 찾는 것 밖에 없을까요..? 그 외 강사님께서 생각하시는 spring api 사용 시 ETL 파이프라인의 성능(시간 성능과 검색 성능)을 향상시킬 수 있는 방법도 궁금합니다. 시간 성능의 경우, ETL이라는 것은 무조건 시간이 오래 걸릴 수밖에 없는 작업이라는 생각이 들지만요..! 검색하면 논문도 나올만큼 많은 곳에서 얻을 수 있는 지식이지만,,! 강사님의 노하우나 생각도 궁금해서 질문 남겨봅니당. 항상 감사드립니다 : )
안녕하세요 강사님 강의 잘 듣고 있습니다. 섹션 9에서 강의대로 docker에 rabbitmq를 올린 뒤 configservice를 실행했는데 오류가 발생합니다. org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:772) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:649) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:636) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1482) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1322) ~[spring-rabbit-3.2.5.jar:3.2.5] at java.base/ java.lang.Thread.run (Thread.java:1447) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.25.0.jar:5.25.0] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.5.jar:3.2.5] at jdk.proxy2/jdk.proxy2.$Proxy140.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:750) ~[spring-rabbit-3.2.5.jar:3.2.5] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.25.0.jar:5.25.0] ... 12 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:125) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:761) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.access$400(AMQConnection.java:48) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection$ MainLoop.run (AMQConnection.java:688) ~[amqp-client-5.25.0.jar:5.25.0] ... 1 common frames omitted 깃허브의 프로젝트를 그대로 가져오고 어떻게 해도 해결이 안되네요ㅠㅠ 도움 부탁드립니다..
실무에 바로 적용하는 Spring AI: Spring 서비스에 챗봇·RAG·MCP 도입하기
윈도우 환경에서 가상환경 만들기 및 파이썬 MCP 설치 명령어 1. 파이썬 최종 명령어만 정리 인텔리제이 Terminal에서 그대로: py --version py -m venv venv .\venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install mcp python -m pip install mcp_weather_server python -m mcp_weather_server 설치 잘 되었는지 확인 방법 확인은 아래 명령어로 해봐. python --version python -m pip show mcp python -m pip show mcp_weather_server Name , Version , Location 이런 정보가 나오면 설치 성공이야. 그리고 실행했을 때: python -m mcp_weather_server 이 명령어 입력 후 아무 에러 없이 터미널이 멈춘 것처럼 대기 상태 면 정상일 가능성이 높아. MCP 서버가 실행 중이라 입력창이 바로 안 돌아오는 게 맞을 수 있어. 중지하려면: Ctrl + C 정리하면: 1. (venv) 표시 있음 → 가상환경 활성화 성공 2. pip show mcp_weather_server 결과 나옴 → 설치 성공 3. python -m mcp_weather_server 실행 후 에러 없이 대기 → 서버 실행 성공
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
claude-squad 실행 후 로그인을 하라, 권한이 없다 등의 메세지가 나오는 경우 어떻게 해결해야 하는걸까요? 강의 초기에 말씀하셨던 클로드는 이미 결제했는데, 추가 결제가 필요한 건가요? claude login을 해도 로그인 창이 뜨지 않습니다ㅠ AI에게 물어본 결과 처음에 결제한 것과, 터미널에서 사용하려는 api 호출 비용은 별도라고 하는데 맞는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 개발자의 꿈을 접고 살아가던 사람입니다. 월드컵 시즌을 만나 영한님의 치킨 디도스 이벤트와 무상태 프로토콜 강의 내용이 떠올라 뜬금없이 취미로 주문 기능 구현 포트폴리오를 만들던 중 일상에서 경험한 것들을 통해 개인정보 유출에도 대응 가능하려면 어떻게 해야하는지.. 소비자가 트라우마를 경험하거나 여러 고충에 대응할 수 있는 방법을 쥐어짜다보니 영한님 강의를 쪽쪽 뽑아먹고 있는데요.. 부족하지만 직접 성의를 담아 만들어보겠습니다. 약속한게 있어서요.. 항상 좋은 강의 감사합니다.
AdminService.java에서 List<MemberDto> admins = memberEntities.stream() .map(MemberEntity::toDto) .collect(Collectors.toUnmodifiableList());Collectors.toList(); 이 코드에서 Collercotrs.toList(); 가 의미가 있는 코드일까요? 줄바꿈도 안되어 있고, 약간 이해가 안되는 문장 같아서 질문드립니다.