[강의] 간단한 주문 조회 V1 : 엔티티를 직접 노출 [시간] 8분 25초 [질문 내용] 양방향 연관관계로 인한 무한 루프 문제까지는 발생하였고, @JsonIgnore로 해결하였습니다. 그런데 강의 내에서 지연 로딩으로 인해 발생하는 "Internal Server Error"가 발생하지 않고 아래 사진과 같이 200 OK가 뜨면서 조회 결과가 나옵니다 ㅜㅜ 강의와 같은 에러가 발생하지 않는 이유를 모르겠습니다...
형 질문있어. 페이징 기반 ItemReader 에서는 예제와 같이 ORDER BY 를 추가해야 한다. ORDER BY 가 없으면 매 페이지를 읽을 때마다 데이터의 순서가 보장되지 않아 일부 데이터가 누락되거나 중복될 수 있다. 라고 했잖아. 이 말은 곧 " JpaCursorItemReader 는 ORDER BY를 추가하지 않아도 괜찮다"로 들리는데 맞아? GPT는 아니라고 하거든. cursor 기반도 마찬가지로 ORDER BY가 없으면 재실행마다 DB에 정렬 순서를 위임하는데, DB는 쿼리 플랜이 변경되는 등 여러 원인들에 의해 실행마다 달라질 수 있대. 뭐가 맞아?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 08:40 쯤에 public void changeTeam(Team team) { this.team = team; team.getMembers().add(this); } 이 부분에서, 내 팀을 변경해주고 변경할 팀에 해당 member를 넣어주는데 팀만 변경해 주면 되지 않나요? 따로 해당 team의 .getMember에 해당 멤버를 넣어주는 이유가 무엇인지 궁금합니다. 저장하기 전 까지는 해당 영속성에서는 이전 team에 할당이 되어 있어 수동으로 바꿔주는 것 인가요?
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
커서에서 워크트리 볼 수 있는 걸. VS code에서도 가능한가요? 커서 구독을 꼭 해야 가능한건지 궁금합니다. 현재 수강 진도를 함께 알려주세요! "1주차 3강까지 완료" 또는 "2주차 실습 중"처럼 어디까지 들으셨는지 적어주시면 맞춤형 답변을 드릴 수 있어요 구체적인 상황과 함께 질문해주세요! "AI가 안 된다"보다는 "Claude에서 이런 프롬프트를 입력했는데 이런 에러가 나와요"처럼 상세하게 적어주시면 더 정확한 답변을 드릴 수 있어요 스크린샷이나 코드를 첨부해주세요. 에러 화면, 현재 진행 상황을 보여주시면 문제 해결이 10배 빨라집니다! 마크다운 코드 블록(```)을 활용하면 더 깔끔하게 정리할 수 있어요 커뮤니티 검색을 먼저 해보세요. 같은 문제로 고민하신 분들이 이미 해결책을 찾았을 수도 있어요. 검색 후 못 찾으시면 언제든 새로 질문해주세요! 서로 도우며 함께 성장해요. 나도 모르는 건 "저도 궁금해요!"라고 댓글 달아주시고, 아는 건 적극적으로 공유해주세요. 가르치면서 더 잘하게 됩니다 바이브코딩 관련 질문은 환영, 기술 세부사항은 GPT 활용! 프롬프트 작성법, AI 도구 사용법은 여기서, 복잡한 코딩 문법은 ChatGPT에게 물어보시는 게 더 빨라요 진도나 과제 관련 문의는 1:1 문의를 이용해주세요. 개인적인 학습 계획, 환불, 수강 기간 연장 등은 따로 문의해주시면 더 자세히 상담드릴게요 실패 사례도 공유해주세요! "이렇게 했더니 망했어요" 같은 경험담도 다른 수강생들에게 큰 도움이 됩니다. 실패도 소중한 학습 자료예요 💬 좋은 질문 예시 [진도] 2주차 5강까지 완료 [질문] Claude에서 버튼 컴포넌트 생성 시 에러 발생 상황: 2주차 실습 중 버튼 컴포넌트를 만들려고 하는데 프롬프트: "빨간색 버튼 컴포넌트 만들어줘" 에러 메시지: [스크린샷 첨부] 시도해본 것: GPT에게도 물어봤는데 같은 에러 발생 어떻게 해결하면 될까요?
안녕하세요. 바인딩 에러와 관련해 어떤 의도로 if 절이 나뉜 것인지 정확히 이해를 못한것 같아서 질문드립니다. 메시지 작성에서 nullable 한 값이 존재하여 null-safe 하게 메시지 여부를 검사하고, 존재한다면 메시지를 반환해주는 것으로 이해를 하였습니다. 그리고 여러 필드에서 에러가 발생한 경우 람다식을 통해 에러 메시지를 "," 로 조합해주고 리턴을 하는 것으로 이해하였습니다. 이후 직접 테스트해보는 과정에서 localhost:8080/v1/books 으로 파라미터들을 모두 제외하고 요청을 보낸 경우의 기대가 "쿼리비어있을수 없습니다., 페이지..., 사이즈... 값들이 정확하지 않습니다." 이런 결과가 나오는 것으로 기대를 하였지만, 실제론 랜덤하게 누락된 값 하나만 결과로 나오는 것을 확인하였습니다. 혹시 e.getFieldErrors().stream() 가 default 메시지가 null 인 케이스만 방어하기 위해서 작성된 것일까요?
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
강의를 따라가면서 하던 도중 저는 settings.local.json에 allow항목이 생기지 않은 것을 확인했습니다. 어떤 과정을 거쳐야할까요? 현재 수강 진도를 함께 알려주세요! "1주차 3강까지 완료" 또는 "2주차 실습 중"처럼 어디까지 들으셨는지 적어주시면 맞춤형 답변을 드릴 수 있어요 구체적인 상황과 함께 질문해주세요! "AI가 안 된다"보다는 "Claude에서 이런 프롬프트를 입력했는데 이런 에러가 나와요"처럼 상세하게 적어주시면 더 정확한 답변을 드릴 수 있어요 스크린샷이나 코드를 첨부해주세요. 에러 화면, 현재 진행 상황을 보여주시면 문제 해결이 10배 빨라집니다! 마크다운 코드 블록(```)을 활용하면 더 깔끔하게 정리할 수 있어요 커뮤니티 검색을 먼저 해보세요. 같은 문제로 고민하신 분들이 이미 해결책을 찾았을 수도 있어요. 검색 후 못 찾으시면 언제든 새로 질문해주세요! 서로 도우며 함께 성장해요. 나도 모르는 건 "저도 궁금해요!"라고 댓글 달아주시고, 아는 건 적극적으로 공유해주세요. 가르치면서 더 잘하게 됩니다 바이브코딩 관련 질문은 환영, 기술 세부사항은 GPT 활용! 프롬프트 작성법, AI 도구 사용법은 여기서, 복잡한 코딩 문법은 ChatGPT에게 물어보시는 게 더 빨라요 진도나 과제 관련 문의는 1:1 문의를 이용해주세요. 개인적인 학습 계획, 환불, 수강 기간 연장 등은 따로 문의해주시면 더 자세히 상담드릴게요 실패 사례도 공유해주세요! "이렇게 했더니 망했어요" 같은 경험담도 다른 수강생들에게 큰 도움이 됩니다. 실패도 소중한 학습 자료예요 💬 좋은 질문 예시 [진도] 2주차 5강까지 완료 [질문] Claude에서 버튼 컴포넌트 생성 시 에러 발생 상황: 2주차 실습 중 버튼 컴포넌트를 만들려고 하는데 프롬프트: "빨간색 버튼 컴포넌트 만들어줘" 에러 메시지: [스크린샷 첨부] 시도해본 것: GPT에게도 물어봤는데 같은 에러 발생 어떻게 해결하면 될까요?
안녕하세요! 페이징 처리 방식에 대해 궁금한 점이 있어 질문드립니다. 코드를 보니 요청값으로 offset과 limit을 받고 이를 Pageable로 변환하고 있습니다. data class OffsetLimit( val offset: Int, val limit: Int, ) { fun toPageable(): Pageable { return PageRequest.of(offset / limit, limit) } } 그런데 이 방식은 offset이 limit의 배수가 아닌 경우 의도하는 바와 다르게 동작할 수 있을 거 같다는 생각이 들었습니다. 예를 들어 offset=15, limit=10인 경우 15번째 데이터부터 10개인 15~19번째 데이터를 조회하는 것이 자연스럽다고 생각했습니다. 그런데 현재 구현에서는 offset/limit 계산으로 인해 PageRequest.of(1,10)이 되고 결과적으로 10~19번째 데이터가 조회될 거 같습니다. 제가 이해한 내용이 맞을까요?? 그렇다면 이 방식은 더보기나 무한 스크롤처럼 offset이 항상 limit의 배수로 증가한다는 제약이 있을 때만 안전하게 사용할 수 있는 방식인지 궁금합니다. 예를 들어 클라이언트가 항상 아래처럼 요청한다고 정해져 있다면 문제가 없다고 봐도 될까요? offset=0, limit=20 offset=20, limit=20 offset=40, limit=20 또 이런 제약이 있다면 limit을 request로 받기보다 서버에서 고정값으로 관리하는 것이 더 나은지도 궁금합니다. 마지막으로 어떤 API에서는 offset,limit을 받고 또 어떤 API에서는 page,size를 받는 경우가 있는데 실무에서는 각각 어떤 기준으로 선택하는지도 알고 싶습니다. 취준 준비하면서 제미니님의 강의 도움 많이 받고 있습니다!! 감사합니다 ^^ <정리> PageRequest.of(offset/limit,limit) 방식은 offset이 limit의 배수일 때만 안전한 방식인가요? 더보기/ 무한 스크롤에서는 offset,limit을 사용하는 게 더 자연스러운가요?? limit이 정책적으로 정해져 있다면 request로 받지 않고 서버에서 고정하는 게 더 좋을까요? offset/limit 방식과 page/size 방식은 어떤 기준으로 선택하면 좋을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요 .어제 까지만 해도 잘 열리던 인텔리제이가 이런 문구가 뜨면서 열리지 않습니다. 이런 오류가 종종 발생하는 이유가 뭔지 해결방법에는 어떤게 있는지 예방방법은 어떤 것이 있는지 궁금합니다
강의에서는 BoardDto로 요청을 다 받고 있는데 요청값은 CRUD마다 다를거라고 생각하는데 Request 객체의 변경이 Service 계층에 영향을 미칠 수 있기 때문에 컨트롤러랑 서비스 DTO를 다르게 준다고 알고있습니다. 컨트롤러 BoardCreateRequest BoardCreateResponse 서비스 BoardCreateDto BoardCreateResult 근데 api 하나 만들때마다 너무 많은 변환과 객체 생성이 이루어질거같은데 강사님은 실무에서 어떤 방법을 사용하시나요?!.. 궁금합니다
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 프로젝트 의존성 관계를 그래프로 그려주셨는데요. 그려주신 그래프가 맞는걸까요..? bank-mornitoring은 아무런 모듈을 의존하지 않고, 반대로 bank-monitoring을 의존하는 모듈은 bank-api, bank-event인데 그려주신 그래프와 관계가 좀 다른거 아닌가 싶어 여쭤봅니다!
설명중에 @Version 필드를 낙관적 락에서 이용할 수 있어가지고~ 라고 하셧는데 실제 돌려보니 비관적락 2에도 DB 업데이트가 되었습니다. AI 에게 물어보니 @Version 어노테이션이 붙은 필드는 JPA 사용시 @Lock 어노테이션 사용여부 상관없이 업데이트가 된다고 합니다. 혹 다른 qna 에도 같은 내용이 있는지 확인은 모두 안해 보았습니다. ======================== 응, 같은 엔터티 row에 실제 UPDATE 가 나가면 @Version 필드는 증가한다고 보면 돼. 락 방식이 낙관적이든 비관적이든 핵심은 이거야. @Version private Long version; 이 필드가 있는 엔터티가 dirty checking으로 변경 감지 되고, flush/commit 때 UPDATE 대상이 되면 JPA/Hibernate가 version 값을 같이 갱신해. ========================