안녕하세요. 기본편부터 정주행하면서 다시 공부하고 있는 뷰린이입니다. 이번 강의를 보면서 vue-router를 사용하게 되는데요. router.push({ name: 'user', params: param }) 위와 같이 push에 params를 넣으면 아래와 같은 워닝메세지가 나오고, vue-router.mjs:35 [Vue Router warn]: Discarded invalid param(s) "email", "name" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details. 이동한 컴포넌트에서 route.params를 꺼내보아도 값이 없더라구요. 좀 더 찾아보니, vue-router 버전에 차이로 인해서 발생하는 것 같은데요..(제가 설치한 버전은 4.1.5입니다.) 버전을 다운그레이드해서 사용해야 할까요? 아니면 latest버전에서 params를 사용하지 않고 다른방법으로 파라미터를 넘겨주는 방법이 있을까요?(Query는 URL 붙기 때문에 지양하고 있습니다..)
@SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } //@Bean // Hibernate5Module hibernate5Module() { // Hibernate5Module hibernate5Module = new Hibernate5Module(); // return hibernate5Module; // } } hibernate5Module을 의존성 추가하지 않고 강제초기화를 해보았는데 오류가 나더라구요. 강제 초기화를 했고 sql문은 나갔을텐데 오류가 나는게 의아하더라구요. @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName();//강제 초기화 order.getDelivery().getAddress(); } return all; } 디버깅을 해보았는데 Member와 Delivery의 sql이 나가고 return에서 오류가 나더라구요. order->프록시->영속성컨택스트로 이어지고 강제초기화를 해서 Member와 Delivery는 영속성 컨택스트에 담겼지만 return에서 Order의 Member와 Delivery에는 프록시값이 가리키는 영속성컨택스트가 아닌, 프록시까지만 json으로 변환하기때문에 오류가 난다고 생각하는게 맞는 걸까요? 그리고 그 프록시를 영속성컨택스트로 바꿔서 변환해주는게 hibernate5Module의 역할이라고 보면 될까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요 코드팩토리님! 강의 너무 잘 듣고 있습니다! 다름이 아니라 장바구니에 상품을 추가하는 로직에서 궁금한 점이 있는데요... Future<void> addToBasket() { ... await patchBasket(); } Future<void> removeToBasket() { ... await patchBasket(); } 지금은 위와 같이 상품을 추가하고, 삭제할 때마다 서버에 patchBasket 요청을 보내고 있습니다. 하지만 사용자가 상품 선택을 끝내고 장바구니를 다 완성한 후에 patchBasket() 을 요청하는게 더 클라이언트-서버간의 통신횟수를 줄일 수 있지 않을까요?? 아니면 optimistic response를 설명하기에 적절한 예제라고 판단하셔서 저렇게 구현하신건지 궁금합니다!! 그게 아니라면 위와 같은 방식으로 장바구니 변경 시마다 api 요청을 보내는 방식의 이점이나 이유가 궁금합니다! 좋은 강의해주셔서 감사합니다~!
with counter as ( select hackers.hacker_id , hackers.name , count(*) as challenges_created from Challenges inner join Hackers on Challenges.hacker_id = Hackers.hacker_id group by hackers.hacker_id, hackers.name ) 계속 아래와 같은 오류가 발생합니다 ㅠㅠㅠ Msg 102, Level 15, State 1, Server dbrank-tsql, Line 8 Incorrect syntax near ')' 란 오류가 자꾸 발생합니다 ㅠㅠ
스프링은 싱글톤으로 객체를 생성하기 때문에 변경 가능성이 없어야 한다고 하셨잖아요, 그런데 의존관계 주입 방법에서 setter를 이용해 주입하는 방법은 변경 가능성이 있는 경우에 사용하라고 하신것과 약간 충돌이 나는 느낌이 있어서요, 위 설명에서 무엇을 알려주시고자 했는지 의도에 대한 부가설명을 해주세요. 혹시 싱글톤 객체는 stateless 해야 한다는 것은 구현체의 필드값이 stateless 해야 한다는 것이고, 생성자 주입과 setter 주입은 어떤 구현체를 쓸 것인가와 관련된 부분인가요? 제가 다른 주제의 이야기를 혼동하고 있었나요? 또, 생성자 주입을 이용하는 이유는 단지 널포인터익셉션을 방지하기 위함일 뿐인가요? 이것만 주의하면 setter 주입을 사용해도 되나요? 변경 가능성이 있는 의존관계에서 사용한다는데 생각보다 많은 곳에서 사용될 것 같아서요,,
강의에서 사용한 Member객체에서. Member가 ToMany관계로 많은양의데이터를 가지고 있다고할때. 질문 1. jpa를 사용하면 어차피 Member가 1차 캐시에 캐싱되니까 세션에 저장되는 객체의 크기를 크게 고려할필요가 없나요? 질문 2. jpa를 사용하지않으면 Member가 캐싱되지 않으니 객체의 크기를 고려해야 하나요? 질문 3. 그래서, 객체의 크기를 줄이기위해 새로운 객체를 만들어서 memberid(pk)정도만 세션에 저장하는 방법을 생각해봤는데요. 이런 방법은 어떤가요? 실무에서 쓰이나요? 질문 읽어주셔서 감사합니다.