안녕하세요 준형님! 우선, 강의 정말 잘 들었습니다. 정말 정말 많이 배웠습니다 🙇🏻🙇🏻🙇🏻 다름이 아니라, 데이터 버저닝 파트에서 컨슈머의 멱등성을 보장하기 위해 주문 서비스가 재고 차감 이벤트에 version을 담고, 상품 서비스에서는 JPA가 관리하는 상품 version과 이를 동등성 비교하여 중복 소비를 방지하는 방식에 대해 질문드리고 싶습니다. 이 접근 방식에서 많은 인사이트를 얻었지만, 상품의 version을 주문 서비스가 반드시 알아야 한다는 점은 조금 와닿지 않았습니다. 테스트에서는 version = 0부터 시작하니 문제가 없어 보였으나, 여러 이유로 두 version 값이 어긋나면 오히려 소비해야 할 이벤트까지 멱등 처리되어 버릴 수 있다고 생각했습니다. 그렇다고 이를 해결하기 위해 주문 서비스가 상품 서비스로부터 version 이벤트를 직접 받아 관리하는 것도 과한 방식처럼 느껴지는데요, 이 부분에 대해 준형님의 의견을 들을 수 있다면 좋을 것 같습니다. 시간 편하실 때 부담없이 답변 주시면 감사하겠습니다 🙂
안녕하세요 우선 답변 정말 감사드립니다. 일단 말씀 해주신대로 해당 프로젝트에서 set PYTHONUTF8=1 명령어를 입력하고 다시 실행 했지만 계속 동일한 에러가 발생하고 있습니다. poetry shell 해당 명령어도 잘 되는 걸까요? 음... 라이브러리 설치가 안되서.. 강의 진행이 더 이상 안되네요... ChatGPT 도움도 요청 해보았지만 매끄러운 답변은 못 해주고 있어서 어쩔 수 없이 여기로 질문 글 드립니다. 기왕 돈 지불 하고 구입 한 강의 인데.. 여기서 포기 할 수 없습니다.ㅠㅠ 그래도 끝까지 들어야 하지 않나 해서요... 답변 부탁드립니다 ㅠ,ㅠ 참고로 OS 는 윈도우 입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. if(!StringUtils.hasText(item.getItemName())){ // 글자가 없으면 bindingResult.rejectValue("itemName", "required"); } if(item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000){ bindingResult.rejectValue("price", "range", new Object[]{1000, 1000000}, null); } if(item.getQuantity() == null || item.getQuantity() >= 9999){ bindingResult.rejectValue("quantity", "max", new Object[]{9999}, null); }; // errors.properties required.item.itemName=상품 이름은 필수입니다. range.item.price=가격은 {0} ~ {1} 까지 허용합니다. max.item.quantity=수량은 최대 {0} 까지 허용합니다. totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} rejectValue()로 price와 quantity를 넘겨서 유효성 검사에서 실패해서 error를 넘겨주는데 왜 전역 에러로는 뜨는데 필드 에러로는 안뜨는거죠?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. if(!StringUtils.hasText(item.getItemName())){ // 글자가 없으면 bindingResult.rejectValue("itemName", "required"); } if(item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000){ bindingResult.rejectValue("price", "range", new Object[]{1000, 1000000}, null); } if(item.getQuantity() == null || item.getQuantity() >= 9999){ bindingResult.rejectValue("quantity", "max", new Object[]{9999}, null); }; // errors.properties required.item.itemName=상품 이름은 필수입니다. range.item.price=가격은 {0} ~ {1} 까지 허용합니다. max.item.quantity=수량은 최대 {0} 까지 허용합니다. totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} rejectValue()로 price와 quantity를 넘겨서 유효성 검사에서 실패해서 error를 넘겨주는데 왜 전역 에러로는 뜨는데 필드 에러로는 안뜨는거죠?
안녕하세요! 제주코베이스캠프님! 게임을 제작하는 데 큰 도움이 되고 있습니다! player, mob, background 이미지를 변경하고 싶은데, 이미지를 다운받을 수 있는 공간이 따로 있을까요? 특히 player, mob 이미지는 크기도 중요하고 6개(또는 7개) 의 이미지로 구성되어 있어, 다른 이미지로 변경하기 영 어렵네요..ㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 영한님 안녕하세요. Spring Data JPA가 제공하는 save, saveAndFlush 메서드에 대해 궁금한 점이 있는데요. 흔히들 saveAndFlush는 save와 달리 트랜잭션 커밋시점이 아닌, 영속성 컨텍스트 변경 사항을 즉각 DB에 반영하여, DB 통신이 증가한다는 단점이 있다고 합니다. for (int i = 0; i < 3; i++) { repository.save(entity); } 그런데, 제가 의문이 드는 점은 save 메서드도 위와 같은 상황이 있을 때, 커밋 시점에 DB에 flush를 하기는 하지만, batch insert가 아니기 때문에 DB 통신 자체는 단 건으로 총 3번 일어나는 것 아닌가요? 따라서, DB 통신 자체에서 saveAndFlush가 얻는 이점은 없다고 생각되는 데 어떤 이점이 있을까요? 감사합니다
안녕하세요 강사님. 강의 잘 듣고 있습니다. 배열 업데이트하기 1탄 강의 보고 있는데 궁금한 점이 있습니다. 강의 11:28에서 button onClick 이벤트에 onDeleteTodo 함수를 넘기는데요. 강의에서는 onClick={() => onDeleteTodo(item.id)} 이런 형식으로 넘기고 있는데 다른 부분에는 onClick={onDeleteTodo} 이런식으로 사용하기도 하셔서요. (강의에서 이렇게 사용했다는게 아닙니다. 예시입니다.) onClick={() => onDeleteTodo(item.id)} onClick={onDeleteTodo} 이 두가지를 언제 어떻게 구분해서 사용해야 하는지 궁금합니다.
안녕하세요. 3:00 이정도 시점부터 기존 project-management 가 아닌 다른 폴더(코인~, FingerLuck )에서 실습을 하신거 같은데..디자인 변형 커서 룰 부터 이후 작업도요. project-management 에다가 실습을 해도 무방한건가요? 어느 시점부터 실습을 똑같이 따라 갈수 없는거 같아서요. 제가 뭘 놓친건가요? ㅠㅎㅎ
13강 거의 마지막 부분에 나오는 UpdateStat이 코드를 작성해서 빌드하면 빌드도 성공적으로 마무리되고 언리얼도 실행됩니다. 하지만 언리얼에서 플레이 버튼을 누르면 크러쉬로 종료되는 현상을 겪고 있습니다. 저 부분만 제거하고 빌드하면 아무런 문제 없이 플레이 되는걸로 봐서는 저 부분이 크러쉬 원인인 것 같은데요. 제 생각엔 코드 문제는 아닌 것 같은데... 크러쉬 원인을 모르겠습니다. 다만, 현재 추측은 3 4강? 예제를 연습 할 때 배치된 액터를 실수로 삭제했는데 그때도 빌드는 잘 되었지만 플레이 버튼을 클릭하면 크러쉬로 종료되는 경험이 있었습니다. 그땐 액터를 배치하고 해결 됐던 경험이 있어 혹시 그쪽 문제가 싶어서 찾아봤으나 정확한 원인을 못 찾고 있습니다.