묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[실시간 채팅 with React]
2번 클릭해야 axios.delete 반응하는 이유
안녕하세요 제로초님 제가 출력 된 것들을 삭제 하는 함수를 만들고 있습니다. 제가 category 값을 map 함수로 출력 해 준 뒤 li value값에 category id 값을 넣어 주었습니다. 값을 제어 할려고 -> useState(categoryId) 만들어 주었습니다. li 태그 onClick 를 하면 ContentDelete 라는 삭제하는 함수가 호출 됩니다. 그리고 e.target.value 을 이용해서 -> categoryId 에 value 값을 넣어주었습니다. 그리고 categoryId 값을 서버에 호출 해 주었습니다. 하지만 Delete li 태그 onClick 를 2번 해야 axios.delete 가 먹힙니다. DELETE http://localhost:3065/api/category/0 404 (Not Found) -> 한 번 클릭 할 경우 useState 초기값인 0이 나옵니다. DELETE http://localhost:3065/api/category/18 404 (Not Found) -> 한 번 더 클릭해야 18이 나오고 404 에러가 나지만 삭제는 됩니다. 왜 이러는 지 모르겠습니다... async await 으로 비동기 처리도 제대로 해 주고 return 문에다가 넣어주었는데 왜 처음 클릭하면 state 초기값인 0이 찍히는 지... const [categoryId, setCategoryId] = useState<number>(0); const ContentDelete = useCallback( async (e) => { setCategoryId(e.target.value); return await axios.delete(`http://localhost:3065/api/category/${categoryId}`, { withCredentials: true, }) }, [categoryId]) return ( <ul> {categorys && categorys.map((test: { id: any, content: React.ReactChild }) => ( <li key={test.id} value={test.id} onClick={ContentDelete}>{test.content} <AiOutlineClose /> </li> ))} </ul> )
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
시퀀스 DROP 전에 과정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. <property name="hibernate.hbm2ddl.auto" value="create" /> hibernate설정을 위와 같이 create로 했는데도 allocationSize를 50으로 설정 하고 다시 RUN 했을 때,(allocationSize를 1로 세팅한 소스를 먼저 실행 시켰었습니다) 시퀀스 증가값이 1일 때, allocationSize가 1이 아니여서 나타나는 맵핑 오류가 발생합니다. Hibernate: drop sequence if exists MEMBER_SEQ Hibernate: create sequence MEMBER_SEQ start with 1 increment by 1 RUN 콘솔창에 보면 옵셥을 "create"로 했을때, 위와 같이 먼저 DROP한 후에 SEQUECE를 다시 CREATE 합니다. 그런데도 오류가 발생하는 것은 SEQUECE DROP 전에 어떤 확인과정이 있다는 것인데, SEQUECE DROP전에 어떤 과정이 먼저 일어나는지 알 수 있을까요? *** allocationSize를 50으로 설정 해서 발생하는 오류는 이전 질문들을 보고 해결했습니다.
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
posts.js get/post 질문
안녕하세요~ fetchPosts 함수의 .get을 사용할때 "/"만 쓰는 경우는 스웨거문서에서 넘겨야할 파라미터가 없을 경우에 "/" 만 넘기는 것인지 궁금합니다. fetchPost(postId)는 fetchPost("/", postId)로 안넘기는 것일까요? // 학습 노트 목록조회 API function fetchPosts() { return posts.get("/"); } //학습 노트 1개를 조회하는 API function fetchPost(postId) { return posts.get(postId) }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
환경 설정을 따로 해야되는 것인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 6분1 6초에 insert에 커서를 올려서 반환값을 설명해주시는데 제가 visual studio에서 따라 치면 다르게 나와서 답답한데 따로 설정해야되는 것이 있는건가요? 그리고,,, 10분 42초에 pair<const int, int>& p = (*it); 에 &이 붙은 이유가 궁금합니다.. 항상 부족한 저에게 잘 가리쳐주셔서 감사합니다!
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의자료
안녕하세요!! 일단 좋은 강의 올려주셔서 감사합니다 😊 혹시 강의할때 사용하신 강의자료도 제공해주실수 있나요 ??지금 제공되고있는 강의자료에는 글들이 많이 빠져있어서요 ㅜㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
styles파일의 분리 문의
안녕하세요? 다음과 같은 props값을 는 경우에 styles 코드만 따로 분리하려 합니다. A.js(다음의 코드) Astyles.js(styled-components 따로 분리하려는 새 파일) isSelected는 어떻게 처리해야하는지, 궁금합니다. import React from 'react' import styled from 'styled-components' const Bar = (props) => { return ( <BarWrapper onClick={props.handleClickBar} isSelected={props.isSelected}> <BarInfo> <Percent>{props.percent}%</Percent> <ItemVaue>{props.itemValue}</ItemVaue> <Count>{props.count}</Count> </BarInfo> <BarGraph width={props.percent} isSelected={props.isSelected}></BarGraph> </BarWrapper> ) } const BarWrapper = styled.div` position: relative; margin-bottom: 3px; padding: 8px 0; background: ${({isSelected}) => isSelected ? '#dddddd' : '#f3f3f3'}; ` const BarInfo = styled.div` width: 100%; display: flex; z-index: 2; position: relative; ` const Percent = styled.span` text-align: right; min-width: 70px; flex: 0 0 auto; ` const ItemVaue = styled.span` padding-left: 60px; flex: 1 1 0%; ` const Count = styled.span` padding-right: 20px; flex: 0 0 auto; ` const BarGraph = styled.div` position: absolute; left: 0; top: 0; width: ${({width}) => width}%; transition: width 1.5s ease; height: 100%; background: ${({isSelected}) => isSelected ? 'rgba(126, 198, 81, 0.7)' : 'rgb(198, 198, 198)'}; z-index: 1; ` export default Bar
-
미해결
angular 네이버 분석스크립트 설치해보신분 조언 구합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 앵귤러에서 네이버 분석 스크립트를 설치하려 하는데 SPA이다 보니 한 페이지로만 인식되서 도저히 읽히지를 않네요. 네이버 측에서도 SPA관해서는 가이드를 따로 주지않네요 ㅠㅠ index.html에 공통 스크립트를 설치했고, 나머지 페이지 이동이 될때 읽히 지가 않네요. 해보신 분 계시면 꿀팁있을까요.
-
미해결구글애즈로 배우는 퍼포먼스마케팅 필수 (2023년 업데이트)
랜딩페이지 자동화 부분 질문
안녕하세요. 강의 잘 보고 있습니다! 입찰전략과 광고소재 파트에서 랜딩페이지 자동화를 소개해주셨는데 혹시 조금 더 설명을 들을 수 있을까요? 제가 궁금한 부분은 -예시에서 보여주신 툴 또는 비슷한 툴이 있는지? -효과적인 사례 등이 궁금합니다! 답변 기다리겠습니다. 감사합니다.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
라이브서버
선생님 안녕하세요 open with live server 클릭시 비주얼스튜디오 화면이 분할되어서 뜨는게 아니라 새 창이 열리는데 어떻게 해결 할 수 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
프로토타입 빈에 대한 질문
안녕하세요. 프로토타입 스코프 강의를 듣던 중 궁금점이 생겨 질문 드립니다. 1. 프로토타입 빈의 필요성에 대한 질문 프로토타입 빈은 스프링 컨테이너에서 요청 시마다 새롭게 생성되어 반환된다고 하였습니다. 그렇다면 굳이 스프링 컨테이너에서 관리할 필요가 있나요? 순수 자바코드로도 충분히 가능한 것 아닐까요? 2. 프로토타입 빈의 "관리"에 대한 질문 스프링 컨테이너에서 빈을 생성, 의존관계 주입만 처리하고 이후 관리하지 않는다고 하였는데, 여기서 말하는 '관리'에 해당하는 내용은 어떤 것들이 있는지(정확히는 빈 종료 외에도 다른 항목이 있는지) 궁금합니다. 또한 스프링 컨테이너가 종료될 때 싱글톤타입 빈과는 달리, 프로토타입 빈은 종료되지 않는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
"org.springframework.http.converter.HttpMessageConversionException: Type definition error 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님, 강의를 진행하는 도중 에러가 발생하여 글 남깁니다. <postman> http://localhost:8080/api/v2/simple-orders <error 메시지> { "timestamp": "2022-01-25T07:53:01.075+00:00", "status": 500, "error": "Internal Server Error", "trace": "org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class jpabook1.jpashop1.api.OrderSimpleApiController$SimpleOrderDto]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class jpabook1.jpashop1.api.OrderSimpleApiController$SimpleOrderDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])\n\tat org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:460)\n\tat org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)\n\tat org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183)\n\tat org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)\n\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n\tat org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\tat org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\tat org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732)\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.base/java.lang.Thread.run(Thread.java:831)\nCaused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class jpabook1.jpashop1.api.OrderSimpleApiController$SimpleOrderDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])\n\tat com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)\n\tat com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1300)\n\tat com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)\n\tat com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:46)\n\tat com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:29)\n\tat com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145)\n\tat com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107)\n\tat com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)\n\tat com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)\n\tat com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400)\n\tat com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1514)\n\tat com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)\n\tat org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:454)\n\t... 48 more\n", "message": "Type definition error: [simple type, class jpabook1.jpashop1.api.OrderSimpleApiController$SimpleOrderDto]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class jpabook1.jpashop1.api.OrderSimpleApiController$SimpleOrderDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])", "path": "/api/v2/simple-orders" } <OrderSimpleApiController.java> @RestController@RequiredArgsConstructorpublic class OrderSimpleApiController { private final OrderRepository orderRepository; /** * 주문 조회 */ @GetMapping("/api/v2/simple-orders") public List<SimpleOrderDto> ordersV2() { //Order 테이블 조회 (결과 2개) List<Order> orders = orderRepository.findAllByCriteria(new OrderSearch()); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(Collectors.toList()); return result; } //DTO로 변환 static class SimpleOrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; //생성자 public SimpleOrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); //Member 테이블 조회 orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getMember().getAddress(); //Delivery 테이블 조회 } } //fetch join으로 쿼리 1번 호출 @GetMapping("/api/v3/simple-orders") public List<SimpleOrderDto> orderV3() { List<Order> orders = orderRepository.findAllWithMemberDelivery(); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(Collectors.toList()); return result; }} <Order.java> @Entity@Table(name = "orders")@Getter @Setterpublic class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private OrderStatus status; //ORDER, CANCEL //연관관계 편의 메서드 public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { this.orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } //생성 메서드 public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for(OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setOrderDate(LocalDateTime.now()); order.setStatus(OrderStatus.ORDER); return order; } //비즈니스 로직 (주문 취소) public void cancel() { if(delivery.getStatus() == DeliveryStatus.COMP) { throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCEL); for(OrderItem orderItem : orderItems) { orderItem.cancel(); //Item의 stockQuantity를 늘리기 위해 orderItem을 이용 (orderItem과 Item이 연관관계니깐) } } //조회 로직(전체 주문 가격) public int getTotalPrice() { int totalPrice = 0; for(OrderItem orderItem : orderItems) { totalPrice += orderItem.getTotalPrice(); } return totalPrice; } protected Order() {}} <Delivery.java> @Entity@Getter @Setterpublic class Delivery { @Id @GeneratedValue private Long id; @OneToOne(mappedBy = "delivery", fetch = FetchType.LAZY) @JsonIgnore private Order order; @Embedded private Address address; @Enumerated(EnumType.STRING) private DeliveryStatus status; //READY, COMP} <Member.java> @Entity@Getter @Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @JsonIgnore @OneToMany(mappedBy = "member") //Order클래스의 member 필드에 의해 mapped by 되는거야! private List<Order> orders = new ArrayList<>();} <OrderItem.java> @Entity@Getter @Setterpublic class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; @JsonIgnore @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; private int orderPrice; private int count; //생성 메서드 public static OrderItem createOrderItem(Item item, int orderPrice, int count) { OrderItem orderItem = new OrderItem(); orderItem.setItem(item); orderItem.setOrderPrice(orderPrice); orderItem.setCount(count); item.removeStock(count); return orderItem; } //비즈니스 로직(주문취소) public void cancel() { item.addStock(count); } //조회 로직(전체 주문 가격) public int getTotalPrice() { return orderPrice * count; } protected OrderItem() {}} 양방향 연관관계가 걸린 한쪽에 @JsonIgnore을 작성하였지만 에러가 계속 발생하여 문의 드립니다. 항상 강의 잘 듣고 있습니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error Page
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]"C:\Program Files\Java\jdk-11.0.2\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=62148:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath C:\study\hello-spring\hello-spring\out\production\classes;C:\study\hello-spring\hello-spring\out\production\resources;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-thymeleaf\2.6.3\1468befdafc10744d410848ea5ecb4d44c6c215b\spring-boot-starter-thymeleaf-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\2.6.3\ceb6e909c144daf9e792069f5f0efd105c8712a\spring-boot-starter-web-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.6.3\1211af6e300c0584e01c7a9a75e585ac0aec6ea6\spring-boot-starter-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf-spring5\3.0.14.RELEASE\a0588f30a1e7dcadfc5c260ef6c6078ef377384\thymeleaf-spring5-3.0.14.RELEASE.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.thymeleaf.extras\thymeleaf-extras-java8time\3.0.4.RELEASE\36e7175ddce36c486fff4578b5af7bb32f54f5df\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\2.6.3\b43885849bde2ad5d436c5acdd43b21730f9c676\spring-boot-starter-json-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\2.6.3\41aeb03bb964192c817540aeeeecfe0debac8d05\spring-boot-starter-tomcat-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\5.3.15\28307dda4cb5fbeb6f7d7e7c846f464da0eba955\spring-webmvc-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\5.3.15\a228b373eff7fe34e868827ab02c91b8bf7a643e\spring-web-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.6.3\8bf96f63e9479b5a1c17d1fa05b149bb5ed050e2\spring-boot-autoconfigure-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.6.3\f1127e8a70ba7b9f12581e79ea963b739059bf55\spring-boot-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.6.3\86599127b1e69a6180014cbeed8297ba26e8c6aa\spring-boot-starter-logging-2.6.3.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\1.3.5\59eb84ee0d616332ff44aba065f3888cf002cd2d\jakarta.annotation-api-1.3.5.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.15\e813c2311465672d3089fc7be8dbbadb04e64d6b\spring-core-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.29\6d0cdafb2010f1297e574656551d7145240f6e25\snakeyaml-1.29.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf\3.0.14.RELEASE\5ec84717bf76bcbcc133f9f19bab754f97b92f8\thymeleaf-3.0.14.RELEASE.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.33\d375aa1b98d34d5ddf73a3f19eaad66e98975b12\slf4j-api-1.7.33.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.13.1\1ece5a87b59701328215e0083448b4d451857cbd\jackson-datatype-jsr310-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.13.1\cbeec2259213c555ef451a2e05f35ed1dbfbf799\jackson-module-parameter-names-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.13.1\8ecfa9bcd714269fdf22c33f9fd00d0643bd0e21\jackson-datatype-jdk8-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.13.1\698b2d2b15d9a1b7aae025f1d9f576842285e7f6\jackson-databind-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\9.0.56\d84be683a5d47e820d077db1d511181c7db9e4e9\tomcat-embed-websocket-9.0.56.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\9.0.56\7c8e0008564c644beec976ab115e2670bb4d7003\tomcat-embed-core-9.0.56.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\9.0.56\8e4f28f714693ad4e158e61f41371d4e4c6b4e23\tomcat-embed-el-9.0.56.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.15\80a12b7dcb3332fbd65c3649249fd35561ffc561\spring-context-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.15\362f36bbc4c4b46cc2e4f219df22d08945000c2\spring-expression-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.15\195966e1f4260f89696e668856ebfd9a1bc76404\spring-aop-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.15\a88e2ccfe8b131bcff2e643b90d52f6d928e7369\spring-beans-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.2.10\f69d97ef3335c6ab82fc21dfb77ac613f90c1221\logback-classic-1.2.10.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.17.1\3619fd18278a1a895c1dca8c5be002768071a20e\log4j-to-slf4j-2.17.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.33\53fd89b530d41b8f6744c754de1c9b02e82f2d7\jul-to-slf4j-1.7.33.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.15\88da960b4fcbd28621aea8b9911976adc06afce4\spring-jcl-5.3.15.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.attoparser\attoparser\2.0.5.RELEASE\a93ad36df9560de3a5312c1d14f69d938099fa64\attoparser-2.0.5.RELEASE.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.unbescape\unbescape\1.1.6.RELEASE\7b90360afb2b860e09e8347112800d12c12b2a13\unbescape-1.1.6.RELEASE.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.13.1\1cbcbe4623113e6af92ccaa89884a345270f1a87\jackson-annotations-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.13.1\51ae921a2ed1e06ca8876f12f32f265e83c0b2b8\jackson-core-2.13.1.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.2.10\5328406bfcae7bcdcc86810fcb2920d2c297170d\logback-core-1.2.10.jar;C:\Users\sys69\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.1\d771af8e336e372fb5399c99edabe0919aeaf5b2\log4j-api-2.17.1.jar hello.hellospring.HelloSpringApplication . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.6.3) 2022-01-25 16:54:46.716 INFO 6140 --- [ main] h.hellospring.HelloSpringApplication : Starting HelloSpringApplication using Java 11.0.2 on DESKTOP-MOMBHQQ with PID 6140 (C:\study\hello-spring\hello-spring\out\production\classes started by sys69 in C:\study\hello-spring\hello-spring) 2022-01-25 16:54:46.718 INFO 6140 --- [ main] h.hellospring.HelloSpringApplication : No active profile set, falling back to default profiles: default 2022-01-25 16:54:47.204 INFO 6140 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8090 (http) 2022-01-25 16:54:47.209 INFO 6140 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2022-01-25 16:54:47.209 INFO 6140 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.56] 2022-01-25 16:54:47.255 INFO 6140 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2022-01-25 16:54:47.255 INFO 6140 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 500 ms 2022-01-25 16:54:47.368 INFO 6140 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2022-01-25 16:54:47.396 WARN 6140 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration) 2022-01-25 16:54:47.437 INFO 6140 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8090 (http) with context path '' 2022-01-25 16:54:47.445 INFO 6140 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 0.952 seconds (JVM running for 1.377) localhost:8080/hello 도 안되고 localhost:8090/hello도 안됩니다. 하지만 http://localhost:63342/hello-spring/hello-spring.main/static/index.html?_ijt=7i0a6r5q4deib0ikt42sjr1mh3 이렇게 나오면서 실행이 됩니다. 이 문제를 질문하고 싶습니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
efficientDet customdata 모델 성능 측정
안녕하세요 수강생입니다. 다름이 아니라 efficientDet esri 코드를 기반으로 custom data로 프로젝트를 하고 있습니다. 현재 결과 보고 작성단계로 모델성능 측정을 하고 시각화하고 싶습니다. inference time은 공유해주신 코드에서 이미지, 영상 등 예시를 통해서 측정하는 방법을 알 수 있었습니다. 그리고 precision-recore scurves, f1score, mAP graphs and area 등을 구하고 싶습니다. 1. acc, loss 측정 방법 1) 제가 탐색한 방법으로 compile후 history 시각화가 있습니다. model fitting 하기 이전에 model.compile해서 history로 acc, loss를 구하고 싶은데요. 혹시 compile에 정의할 loss 함수로 focal function로 지정해야하는지 해당 코드에서는 어떤 loss function적절한지, 혹은 학습 기록 보니까 optimizer는 momentum으로 지정해야하는 것인지 고민입니다. 2. mAP를 구하는 방법 1) 라이브러리에 의해 구하는 방법 https://blog.roboflow.com/mean-average-precision/ 의 포스트에서 공유한 calculate mAP in colab 처럼 https://colab.research.google.com/drive/1pLvZpz0_Ob0yOQ7hxPhVRT04Cb3FGARb#scrollTo=dFSgxwD9Igo6 에서 처럼 https://github.com/Cartucho/mAP 라이브러리를 써서 class_id 별의 AP를 구한 후 평균을 낸 mAP를 제안하고 있는데 이 방법을 쓸지 고민입니다. 2) 직접 세어서 구하는 방법 이런 방식으로 confidence_threshold를 0.9부터 0.05까지 inference하면서 그래프를 그리려고 합니다. 다만, 한장의 이미지에 측정을 하고 있어 그 이미지가 모델을 잘 설명할 수 있는 사례인지 알수없고, 한장의 이미지로만 측정을 하는게 맞는지, 또 그래프를 그리고 면적을 측정하는 것이 맞는 방법인지 고민하고 있습니다. 이러한 고민들을 했습니다. 이러한 방식들이 적절한지, 혹은 다른 계산 방법이 있다면 추천해주시면 감사하겠습니다. 감사합니다.
-
미해결파이썬(Python) 기초부터 실무까지 part.1
실행이 안돼요.
파이썬 소개 실습 2번 하는데 계속 에러만 뜨는데 어떻게 하나요? -
-
미해결스프링부트 시큐리티 & JWT 강의
마지막 27강에 세션 저장에 대해 궁금한점이 있습니다.
이 부분에서 잘 이해가 안가는것이 있어 질문드립니다. 첫번째는, 저 밑줄 친 부분은 이미 정상적으로 jwt토큰 검증이 끝난 케이스인데 저 때 해당 권한처리를 위한 세션을 저장한다고 하면 권한 요청이 필요한 uri에 들어갈때 마다 계속해서 세션을 저장하게 되는것인가요? 예를들어 게시글 작성, 프로필 보기 이런 링크를 탈 때마다 밑줄 친부분이 실행이 될텐데 그렇다면 동일한 user의 권한을 중복되서 저장되는게 아닌가 싶어서 질문드립니다. 두번째는,처음에 로그인할때 권한을 세션에 저장하는 것이 아니라 저렇게 권한 요청이 있을때 세션에 권한을 저장하는 형식으로 만드는 이유가 궁금합니다. 끝으로, 정말 수업 재밌게 잘들었습니다. 궁금해서 답답했던 부분이 이 강의 하나로 "뻥"하고 해소된 느낌입니다. 좋은 강의 감사합니다!
-
미해결스프링 데이터 JPA
Multiple DataSource 사용 시 transaction 관련 질문 드립니다.
아래 비슷한 질문이 있네요. 추가로 질문 드리겠습니다 :) 3개의 database에 access하는 application을 작성 중입니다. 1개는 조회만(A라고 하겠습니다) / 나머지 2개(B, C라고 하겠습니다)는 수정도 하기 때문에 transaction이 필요합니다. 각 DB의 Configuration을 만들어, LocalContainerEntityManagerFactoryBean 및 TransactionManager를 설정하여 각각의 DB 접속에 성공하였습니다. 서비스 로직 중에, 하나의 메소드에서 B,C에 insert / update 하는 로직이 있어서 둘 다 commit / rollback 이 되어야 합니다. ChainedTransactionManagerConfiguration를 사용하니 가능하였습니다.configuration 파일은 다음과 같습니다. @Configuration public class ChainedTransactionManagerConfiguration { @Qualifier("abTransactionManager") @Bean public ChainedTransactionManager chainedTransactionManager( @Qualifier("BTransactionManager") JpaTransactionManager aTransactionManager, @Qualifier("BTransactionManager") JpaTransactionManager bTransactionManager ) { return new ChainedTransactionManager(aTransactionManager, bTransactionManager); } } abTransactionManager를 @Transactional 어노테이션에 설정하니 둘 다 롤백이 잘 되었습니다. 그런데, springboot 2.5부터 ChainedTransactionManagerConfiguration 이 deprecated 된다고 하네요. 이유는 2개의 AbstractPlatformTransactionManager 를 사용할 때에 side effect가 발생해서라고 합니다(https://github.com/spring-projects/spring-data-commons/issues/2232 를 참고하시면 됩니다.) 이와 같은 상황에서 ChainedTransactionManagerConfiguration 를 대체하여 추천해 주실 만한 것이 혹 있을까요? 그 외에 TransactionManager를 사용하지 않고서라도 할 수 있는 방법이 혹 있을지요? 대부분의 경우에는 그냥 사용해도 될 것 같기도 한데 좀 찜찜해서요 질문이 너무 길었네요. 감사합니다. ^^;
-
미해결스프링 핵심 원리 - 기본편
setUrl null
안녕하세요 사진의 set에 url을 설정하였는데 왜 null값이 나오는지 이해가 되지않습니다. 어떠한 이유때문인지 알고싶습니다. 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
관심사 분리에서 문법 관련하여 질문 드립니다.
첫번째 사진에선 OrderApp 클래스에서 appConfig를 선언하고 다음줄에 변수가 자동완성이 되던데 test에 속해있는 MemberServiceTest 클래스에서는 자동완성이 안되더라구요, appConfig를 치고 . 찍어도 메소드도 안불려와지구요 MemberService memberservice = appConfig.memberservice() 처럼 그냥 앞에서 MemberService를 먼저 선언하고 쭈욱 적으면 가능하긴 하던데.. 위의 선언이 안되는 이유는 무엇인가요?
-
미해결실전! Querydsl
querydsl 작성과 최적화에 문제가 있습니다! 도와주세요!
해당 유저(to_user)가 팔로우한 유저(from_user)가 작성한 모든 게시글(playlist)을 가져오는 쿼리를 작성하고 싶습니다. 정확히 말씀드리자면 작성은 하고 제대로 가져는 오는데 오답같습니다... public List<Playlist> findFolloweesMakePlaylist(Long userSeq){ return jpaQueryFactory .selectFrom(playlist) .join(userLikes).fetchJoin() .on(playlist.user.userSeq.eq(userLikes.toUser.userSeq)) .where(userLikes.fromUser.userSeq.eq(userSeq)) .fetch();} 제가 작성한 코드는 위와 같습니다. 나의 userId인 userSeq를 받아서 게시글 작성자 ID와 내가 좋아요 한 사람ID가 같은 부분을 on절로 join 하고, 플레이리스트 작성한 사람에게 좋아요를 한 사람이 저인지 where절로 체크하였습니다. 테스트 돌리면 답은 나오지만 team member처럼 직접적으로 이어져있지 않으니 join 과정에서 막대한 곱하기 연산이 나올것 같고 애초에 잘못짠것 같습니다... 도와주세요!
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
스토어 속성 모듈화
본 강의의 내용이 index.js가 비대해지기 때문에 actions.js, mutation.js를 만들어서 모듈화를 진행한다고 이해했는데요. actions.js와 mutations도 점차 비대해질 것으로 보이는데, 이 경우에는 어떻게 하나요?