안녕하세요. 우선 강의 너무 잘 듣고 있습니다. password . current = watch ( " Password " ) ; 강의를 통해 위 방법을 익히기 전엔 혼자서 onChange를 통해 ref.current값을 바꾸려고 시도하였는데요 input에 onChange를 걸어줘도 Change이벤트가 작동을 안하더라구요.. react hook form 공식 문서를 뒤져봐도 위 방법으로만 사용하라는 말은 따로 없고 태그에 onChange이벤트를 사용하는 예제도 있는데 왜 이러는걸까요?? 단순히 버그인지 뭐가 잘못된건지 모르겠습니다 ㅜㅜ
안녕하세요 강의를 잘 듣고 현재 프로젝트를 진행하고있는 학생입니다. 프로젝트를 시작하고 설계를 하는 과정중에서 계층을 설계하는 단계에서 어려움을 느껴 이렇게 질문을 남기게 되었습니다. 저희가 서비스 계층을 설계하려 하는데 사용자의 행위(저장, 검색, 수정)에 따라 다른 클래스로 구분을 해야하는지, 단순히 프로그램에서 구현되는 페이지별로 클래스를 구분을 하는것이 좋은지, 혹은 다른 설계 방법이 있는지에 대하여 알려주시면 감사하겠습니다.
안녕하세요 강사님 강의를 듣다가 여러가지 상품을 주문할 수 있게 구현해보고 싶은데 thymeleaf에서 여러 상품을 선택 했을 시 선택 데이터들을 리스트형태로 만들어서 postMapping에 보내야하는건가요...? 그렇다면 thymeleaf문법은 어떻게 들어가야하는지 궁금합니다... (추가적으로 상품을 고르게되면 고른 리스트가 보이면서 더 상품을 추가하거나 삭제하게 할려면 자바스크립트로 설정해두는건가요?!)
주문취소쪽 테스트하다가 궁금한점 있어 질문드립니다. 취소할 주문ID를 조회하고 Order order = orderRepository.findOne(orderId); order.cancel(); 로 주문취소하기 전에 orderItems에 값이 넣어져 있는지 모르겠습니다. Order와 OrderItem은 @OneToMany로 기본이 LAZY 로딩이라 orderItems을 직접 호출하기 전까지는 데이터를 조회하지 않는거로 알고 있는데 어떻게 orderItems에 값이 채워져서 취소가 되는지요?... for (OrderItem orderItem : orderItems ) { orderItem.cancel() ; } 저 for문 시점에 데이터를 조회하면 이해하겠는데 디버깅해보면 order를 조회할때 이미 값이 다 채워져 있습니다...
안녕하세요. 너무 좋은 강의 잘 듣고있습니다 !! :) 강의 마지막부분에서 가장 좋은 방법이라고 말씀해주신대로, Service 계층에 ItemUpdateDto 를 추가하고, 엔티티 클래스에 update() 함수도 만들어서 구현을 했습니다. 여기서 한 가지 궁금한점이 생겼는데요, - price >= 0 - stockQuantity >= 0 - name 은 빈 문자열이 아님(StringUtils.hasText == true) 등의 조건을 검사하여 exeception 을 날리거나, update 를 진행하고 싶을 때 조건검사를 어디서 하는 것이 가장 좋은지 고민이 됩니다. 제 생각에는 크게 세가지 방법이 있을 것 같은데요.. 1. Controller 에서 검사하여, 검증된 값만 DTO에 담아서 service 에 전달한다. 2. service 에서 엔티티의 update() 함수를 호출하기전에 검사한다. 3. 엔티티 클래스의 update() 함수 내부에서 검사한다. 세 가지 방법에대해 제가 고민해본 내용을 말씀드리면.. Book 클래스의 removeStock() 처럼 엔티티 내부에서 검사하고, NotEnoughStockException 같은 에러를 날리는 비지니스 로직을 넣어야할까요? (코드에 일관성이 있도록..) --> 3번 그런데, Controller 에서 미리 검사를 하면 굳이 service -> repository 를 타고 내려가서 select 쿼리를 날릴 필요가 없어지기 때문에 성능상 유리할 것 같다는 생각도 듭니다. --> 1번 두 군데에서 다 검사를 하는 것이 좋을까요? 실무에서는 보통 어떤 방법을 채택하는지 궁금합니다 .
이런식으로 에러가 떠서 구글링을 해보니 다양한 해결책이 있긴한데 그것이 옳은 방식으로 해결되는 것인지 모르겠습니다 <html xmlns: th ="http://www.thymeleaf.org" > 여기에서 www를 삭제하면 th: 라인이 전부 초록색으로 변하면서 에러는 해결되기는 하더라고요 다른 해결 방식이 있을까요?
jpashop.mv.db파일이 생성되지 않고 , IO Exception: null [90028-200] 90028/90028 가 뜨는데 제가 이전 수업에서 사용했던 test.mv.db파일이 있어서 jpashop.mv.db파일이 생성이 안되는건지 모르겠습니다. 도움주시면 감사하겠습니다 ㅜㅜ
강사님 Order클래스에서 연관관계 메서드를 만드실 때 Member에 대한 연관관계 메서드의 경우 public void setMember(Member member)라고 하셨는데 그 이전에 lombok으로 이미 setter를 만들어 주셨는데 그렇게 되면 lombok으로 만든 setter는 연관관계 메서드에 의해 무시가 되는건가요?
회원 등록시 html form에는 action="/members/new"로 되어있는데 < form role ="form" action ="/members/new" th:object ="${memberForm}" method ="post" > --- 새로운 아이템 등록시 html form에는 action="@{/items/movie/new}"로 되어있습니다. < form th:action ="@{/items/movie/new}" th:object ="${form}" method ="post" > 이 '{@"" }'의 차이가 뭔지 왜 빼거나 넣으면 작동이 안되는지 이유와 역활을 알려주시면 감사하겠습니다.
OrderService의 order 메소드에 대한 단위 테스트를 작성해보려는 중에 질문이 생겨서 문의드립니다! orderRepository에서 save(order)를 하려면 Order객체를 만들어줘야하는데 Order 객체를 만드는게 Member, Delivery, OrderItem 이게 필요하니깐 테스트 코드에서 일일이 생성해서 만들어준 다음에 when(orderRepository.findOne(orderId)).thenReturn(만든 order객체) 요런식으로 해줘야 할까요? 아래는 그냥 제가 끄적여 본건데 단위테스트가 독립적인 테스트라 해서 Mockito를 이용해 짜본건데 맞게 했는지 잘 모르겠습니다... OrderService의 order 메소드에 대한 단위 테스트는 어떤식으로 짜면 좋을지 조언 부탁드립니다...! @Mock private OrderRepository orderRepository; @InjectMocks private OrderService orderService; @Mock private MemberRepository memberRepository; @Mock private ItemRepository itemRepository; @Test public void 상품_주문(){ //given Member member = createMember(); Item item = createBook("시골JPA", 10000, 10); int orderCount = 2; //when when(memberRepository.findOne(member.getId())).thenReturn(member); when(itemRepository.findOne(item.getId())).thenReturn(item); doNothing().when(orderRepository).save(any(Order.class)); Long orderId = orderService.order(member.getId(), item.getId(), orderCount); //then //when(orderRepository.findOne(orderId)).thenReturn() Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER, getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다.",1, getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다.", 10000 * 2, getOrder.getTotalPrice()); assertEquals("주문 수량만큼 재고가 줄어야 한다.",8, item.getStockQuantity()); }
https://www.inflearn.com/questions/158967 먼저 다른 여기 부분에서 질문이 있습니다. " 스프링 프레임워크는 여기에 실제 EntityManager를 주입하는 것이 아니라, 사실은 실제 EntityManager를 연결해주는 가짜 EntityManager를 주입해둡니다. " 말씀을 하셨는데 풀어서 제가 이해한내용은 가짜로 주입을 하고 실제 비즈니스 로직을 탈때 예시를 들면 사용자A가 사용을 하고 EntityManager 가 실행 될때 실제로 EntityManager를 호출하고 로직이 끝나면 가짜 EntityManager를 주입하고 사용자B가 호출을 하면 가짜 EntityManager가 실제 EntityManager를 호출하여 실행이 되서 싱글톤이긴 하나.. 분기(?) 처리해서 EntityManager를 사용하고 있다라고 이해를 하고 있는데 맞을까요.. 아니라고 하면 풀어서 설명이 가능할까요? 초보적인 질문을 드려서 죄송합니다..