묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
강의 10:25 질문
안녕하세요, 강의 10:25에서 다루신 내용에 대해 질문드립니다. 영속성 컨텍스트에 1차 캐싱된 멤버 객체들이 남아있는 상태에서 벌크 업데이트를 하면 DB를 바로 통하므로 영속성 컨텍스트와 디비의 상태가 달라 예상치 못한 에러를 겪을 수 있다는 내용입니다. 궁금한점은, Spring Data JPA에서 메소드로 정의한 벌크 연산이 결국은 @Query 어노테이션에 JPQL로 작성했으니, JPQL 실행 전 flush 처리가 되는게 아닌건가요? 그렇다면 말씀하신 에러가 없을 거 같은데...궁금합니다!
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
조회기능시 backend 통신 실패
백앤드 cors 설정하고, 화면에서 호출하면 쿼리는 찍히는거 확인되는데, front로 값이 못들어오고 화면 콘솔에는 cors 오류가 뜨네요 ㅜ1) 백엔드 쿼리가 찍혔다면 백앤드쪽 cors 설정 된거 아닌가요?2) 클라이언트로 값이 못들어오고 있습니다. front에서 별도 cors설정이 있어야하는지 문의드려요 gpt한테 물어봐서 withCredentials 설정은 했습니다. 스크린샷 첨부합니다
-
미해결실전! Querydsl
OpenFeign/QueryDSL 관련 정보 공유
Spring Data 조직에서도 OpenFeign/QueryDSL를 공식적으로 지원(Support)한다고 합니다. 현재 공식QueryDSL 최신 버전인 5.1.0에서 아래와 같은 문제가 있습니다.CVE-2024–49203 이슈(CVSS 3.1기준 9.8 높은 심각도)Kotlin KSP 지원관련기타 문제(Issues)등등 공식 QueryDSL에서는 유지보수가 전혀 안되고 있기 때문에 혹시나 궁금하신 분들을 위해 정보 공유 드립니다.1번, 2번관련 내용은 OpenFeign/QueryDSL 에서 모두 패치완료된 내용입니다.KSP - 6.9버전 이상, CVE-2024–49203 6.10.1버전 이상 Spring 공식 홈페이지 OpenFeign/QueryDSL 관련 내용https://docs.spring.io/spring-data/jpa/reference/repositories/core-extensions.html Spring Git OpenFeign/QueryDSL 관련 내용https://github.com/spring-projects/spring-data-jpa/pull/3859 OpenFeign/QueryDSLhttps://github.com/OpenFeign/querydsl
-
미해결Practical Testing: 실용적인 테스트 가이드
혹시 update 로직은 어떻게 테스트하나요? (@Setter?)
강의에선 update 로직이 없어서 테스트할 필요는 없는 것 같은데, 필요한 경우에 엔티티에 @Setter 추가해놓고 테스트 하면 될까요?setter 사용을 지양하라는 글이 많은데, 현업에서는 어떤식으로 테스트하나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Missing constructor for type 'OrderQueryDto'
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.실행시 다음과 같은 오류가 발생하는데 ... 정확히 왜 오류가 나는지 이해가 되지 않습니다. ㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요 강의 포스트맨 요청 데이터 공유받을수 있을까요?
강의 도중에 포스트맨 구글 로그인 하니 데이터가 사라졌습니다혹시 갖고계시면 공유좀 받을수 있을까요?
-
해결됨실전! 스프링 데이터 JPA
단건 update 질문
안녕하세요.단건 update관련 질문이 있습니다.update +연산update Member m set m.stock = m.stock + 1 where m.id = :id 이런식으로 해야하는 연산은 어떻게 처리하나요?벌크작업은 아니지만 개수를 증가시킬 때 할당으로 쓰면 덮어씌워질 수 있느니 + 1 로 처리하는 경우도 있는 것으로 아는데, 이런 경우는 영속성 컨텍스트에 반영이 안되는걸로 알고 있습니다.객체를 기반으로 업데이트 하는 경우 m.stock = n으로 할당이 되어서 이런 경우는 객체지향관점에서 어떻게 처리하고 설계하시는지 궁금합니다.업데이트 전 조회업데이트 전에 findOne 조회를 하시던데, 전 업데이트할 때 요청받은값만 덮어쓰면 되고 그게 더 안전할때도 있다고 생각이 듭니다.이런 경우에는 어떻게 처리하시는지 궁금합니다. 또한, 객체를 기반으로 업데이트하기에는 요청받은 데이터가 객체랑 필드가 정확히 매핑될것 같지 않아서 결국 update문 하나만 요청하는 방식으로 처리해야 할 것 같은데 어떻게 처리하시는지 궁금합니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 21:06의 코드
강의 21:06에서 작성하신대로 LAZY로 설정한 객체에 접근하면 프록시 객체가 초기화되면서 필요한 때에 DB에 쿼리를 날린다고 하셨는데요. 반복문 횟수만큼 order.getMember().getName()을 사용하니 여기서 N+1 문제가 발생하는건가요? (LAZY 로딩의 객체를 초기화할 때는 테이블 전체를 가져오는 게 아니라 객체 하나만 로딩해오는거죠?) 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
기본 키 매핑
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요!기본 키 매핑 같은 경우는 다 외우는게 좋은건가요?
-
미해결1시간만에 끝내는 spring boot rest api 서비스 개발
H2 접속 에러
강의 내용에 대해 질문해 주세요에러가 날 경우 본인 코드가 있는 git 주소를 알려주거나 최대한 상세히 적어주세요 ### Error querying database. Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEM" not found (this database is empty); SQL statement: 라는 에러가 나요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@JoinColumn 질문드립니다
연관관계 관련 강의를 봐도 이해가 잘 안되는 부분이 있어서 질문드립니다. 본 강의에서는@OneToMany@JoinColumn(name = "MEMBER_ID") private List<AddressEntity> addressHistory; 이렇게 되어있는데요. 여기서 연관관계의 JoinColumn에 의해 외래키 컬럼이 생성되는것으로 알고있는데, 일대다 단방향 연관관계와 다대일 단방향 연관관계에서 각각 어느 테이블에 외래키 컬럼이 생성되는것인가요?일대다 연관관계에서는 어느테이블에 생성되고, 다대일 연관관계에서는 어느테이블에 생성되는지가 규칙이 있는것일까요?위 해당 테이블에 외래키컬럼이 생긴다고 할때, 그럼 외래키 컬럼의 값은 어떤 방법으로 값이 할당되어 테이블에 저장되는것인가요?그리고 왜 @Joincolumn에 name속성으로 MEMBER_ID로 지정해주어야하는것인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Error creating bean with name 'initDb': Invocation of init method failed
강의 보면서 작성한 코드에서 오류여서 , 수업자료 복사해서 실행해봤는데 동일하게 오류네요.어떤 부분에서 오류인지 알기 어려워 문의 드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
콘솔창 오류 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]H2 database 상에는 테이블이 잘 만들어졌고 오류도 안뜨는데 콘솔창에 create table~ 이 문장들이 출력되지가 않습니다.상관없는 것인지 아니면 뭐가 문제일까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order, OrderItem
안녕하세요, 이번 실습 프로젝트 동안에 Order와 OrderItem은 N:1의 연관관계로 설계하셨습니다. OrderService의 order()안에서 OrderItem을 생성하고 Order를 생성하는 것으로 미루어 볼 때, 하나의 OrderItem이 하나의 Order와 대응되는 구조가 아닌가요? (즉 한 건의 주문 데이터는 한 건의 주문상세 데이터만 갖는 구조) 이런거라면 order에서 cancel할 때 OrderItem을 순회하며 cancel하는 것이 의미가 있는건지 궁금합니다! 즉, 일괄 주문이 안되는데 일괄 주문 취소가 의미가 있는건지 궁금합니다! 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
createOrder() 생성 메서드
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery;보시는 바와 같이 Order의 생성 메서드에 필요한 파라미터에 들어가는 두 데이터입니다. 주문이 만들어지기 위해서는 OrderItem이 먼저 필요하기 때문에 인자로 주입하고 또 영속성 전이를 주는 것이 논리적이라 생각해 동의할 수 있었습니다. 그러나 Delivery 타입을 메서드로 주입받는 것은 배송이 있고 그 다음 주문이 존재한다는 흐름으로 받아들여집니다. 이 부분에 대한 조언을 얻을 수 있을까요? 감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
inteliJ 대신 VScode 설치해도 될까요?
inteliJ 대신 VScode 설치해도 될까요?
-
미해결고성능 JPA & Hibernate (High-Performance Java Persistence)
버그
4강 초반 자막싱크가 맞지 않습니다. 음성더빙도 속도가 안맞아요.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
localhost:8080 연결이 안됨
[질문 내용]갑자기 localhost:8080 연결이 안됩니다. 강의 소스 그대로 다운받아서 열었는데요 ㅜ 에러들 좀 봐주십쇼
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
DLQ 관련 질문
위와 같이 로그가 찍혔으면,DLQ에서 ack 상태가 되어야하는것 아닐까요?@RabbitListener(queues = RabbitMQConfig.DLQ) public void process(String message) { System.out.println("DLQ Message Received: " + message); try { String fixMessage = "success"; rabbitTemplate.convertAndSend( RabbitMQConfig.ORDER_EXCHANGE, "order.completed.shipping", fixMessage ); System.out.println("DLQ Message Sent: " + fixMessage); } catch (Exception e) { System.err.println("### [DLQ Consumer Error] " + e.getMessage()); } }위의 코드인 경우 AUTO 모드로 동작해서 자동으로 DLQ에서 처리가 되면 ACK 을 받을 것이라 생각했는데, DLQ에서 unack 상태로 남아있어서 여쭤봅니다!이후에 애플리케이션을 종료하면 DLQ에서는 다시 ready 상태가 되고, 애플리케이션을 실행하면 이를 실행하고 와 같이 로그가 찍힌 다음에 다시 unack 상태가 됩니다. 좋은 강의 감사드립니다 :)
-
미해결Practical Testing: 실용적인 테스트 가이드
단위테스트와 통합테스트의 경계가 궁금합니다.
안녕하세요 우빈님 강의 너무나 잘 듣고 있습니다 🙂주니어에게 큰 힘이 되고 있습니다 감사합니다 공부를 하다보니 단위테스트와 통합테스트의 경계가 궁금하게 되었습니다.우빈님은 컨트롤러 / 서비스 / 리포지토리 각 계층에 대해 단위 / 통합 / 단위 테스트라고 구분하셨는데요 어떤 분은 컨트롤러 계층에서 작성한 테스트에 대해 통합테스트라고 주장하셨습니다@WebMvcTest 또는 @SpringBootTest를 사용해 스프링 컨텍스트의 일부(웹 계층) 또는 전체를 로드해야 한다.진정한 단위 테스트"는 스프링이나 다른 컨테이너 없이 new 연산자를 사용하여 객체를 인스턴스화하고 테스트하는 것을 의미한다고 하셨습니다. 테스트 대상 범위: 또한 테스트는 특정 컨트롤러 메서드의 로직만을 격리하여 테스트하는 것이 아니라, 특정 URL에 대한 HTTP 요청이 스프링 웹 계층을 통과하여 컨트롤러에 도달하고, 컨트롤러의 응답이 HTTP 응답으로 변환되어 반환되는 전체 과정 중 일부를 시뮬레이션하고 검증하는 관점에서 통합테스트다라고 주장하셨습니다. 정확한 구분은 어떻게 해야할까요? 사실 이러한 구분이 중요한가 고민도 됩니다. 어차피 테스트에 대한 목적과 경계 설정을 구분하는 것이 중요하지 않은가 싶긴 한데 우빈님 의견이 궁금합니다.