묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2
img 태그가 작동이 되지 않습니다.
3-4 브랜치로 체크아웃을 하여 테스트해봐도 source의 srcset 속성에 {props.webp + 's'}를 줬을 때 이미지가 엑박이 뜹니다. previousSibling.srcset = previousSibling.dataset.srcset; 위 소스 한 줄을 지울 때는 정상동작 되는데 이유가 있을까요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
모델 인퍼런스 타임에 관여하는 요소
안녕하세요 인퍼런스 타임에 미치는 파라미터가 Gflops로 보면 될까요? 결국 런타임에서 수행하는 연산량의 갯수가 인퍼런스 타임에 직접적으로 미치는 것이죠? 모델 사이즈는 엄청 연관된다고 볼 수 없는 것이죠?
-
해결됨실제 이력서 사례로 알아보는 [합격하는 이력서] 작성 가이드
이력서 작성시 기술용어 사용에 대해 질문 드리고 싶습니다
안녕하세요 이력서 작성시 기술 용어 사용에 대해 질문 드리고 싶습니다. 이력서를 읽는 사람이 개발자 뿐 아니라 인사팀 역시도 보게 된다는 생각에 기술을 최대한 풀어 썼습니다. Reaplication -> 데이터 복제 이런식으로 썼는데 피드백 영상을 보니 다들 원 용어 그대로 사용하는걸 보았습니다. 혹시 이력서 작성때 독자를 개발자로만 한정지어도 괜찮을까요?? 답변 부탁드립니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
springconfig datasource 주입시 자동주입이 되지않는다고 오류가 표시됩니다.
순수 JDBC 강의 15:15정도에 나오는 19~21 line 작성시 매개변수 dataSource쪽에서 '자동주입을 할수 없습니다. DataSource 유형의 bean을 찾을수 없습니다. 라는 표시가 나오는게 혹시 어떻게 해결해야하나요??
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
센서 한 개로는 PID 더블 제어가 불가능한가요?
ChriP님 안녕하세요. 질문 있습니다. 강의에서 싱글 PID만으로 부드럽고 빠른 제어가 불가능해서 각속도 데이터까지 포함하여 더블 PID를 사용한다고 하셨는데, 센서 한 개로도 가능할 것 같은데 왜 ChrisP님은 센서를 두 개 사용하셨는지 궁금합니다. 예를 들어, 제가 MPU6050(6축 센서)과 HMC5883L(지자기)을 사용하여 각도를 계산하고, MPU6050으로 측정한 각속도를 사용하는 경우처럼 한 개의 센서만 사용할 때 문제가 생기는가요? 아니면 보다 정확한 제어를 위해 센서 두 개를 사용한 것인가요?
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
1축 실험 때 사용한 드론 테스트 베드에 대해 질문 있습니다.
안녕하세요. PID 게인 실험할 때 사용하셨던 드론 테스트 베드는 직접 만드신건지 궁금합니다. 만약 구입하셨다면 어디서 구입하셨는지 알 수 있을까요?
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
_image == null ? Text('No Image') : Image.file(_image),
_image == null ? Text('No Image') : Image.file(_image), 여기서 괄호안에 있는 _image가 에러가 납니다.
-
미해결
slick slider 오류
위처럼 제가 만드려는 사이트에 슬릭 슬라이더를 적용하니 원래 크기는 320px인데 394px 이나 늘어났습니다 ㅠㅠ 검색해보니 슬릭 슬라이더 고유 style이 먹히는 바람에 저렇게 된 것 같은데 제가 커스텀한 css로 슬라이더 적용하는 방법 찾고 싶습니다... 버튼도 설정한 적 없는데 가운데로 와서 수정도 잘 안 돼 도움 남겨봐요... + 수정 위의 상황을 고치면 이런식으로 화살표 오류는 여전한 채 slidesToShow 가 안 먹힙니다ㅠㅠ 반응형인 responsive도 전혀 안 먹히고 있어요,,,
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리액트의 기초 동작중 props로 값전달이 궁금합니다
부모컴포넌트에서 리덕스를 사용하지않고 props로 값을 전달할때에 자식 컴포넌트에서 props.state를 사용하여 앞에 프롭스를 항상붙여 써도 동작하는경우가있고 프롭스 없이 state를 바로사용할수있는경우가 있는데 어떤 차이가있고 어떤걸 사용해야하는지 궁금합니다 만약 프롭스를 붙이지않고 정상적으로 동작하여도 props. 형태를 매번 사용하는것이 좋을까요? 아래는 예시 상황입니다 // 부모에게서 randomstate 를 전달받아 바로 사용하는 자식컴포넌트 const Child1 = ( randomstate ) => { console.log(randomstate); return 자식 컴포넌트 ; }; ... // props를 매번 이용하여 사용하는 컴포넌트 const Child2 = ( props, randomstate ) => { console.log(props.randomstate); return 자식 컴포넌트 ; }; ...
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
"status": 500 오류 관련 질문입니다.
안녕하세요 현재 간단한 주문조회 V4 : JPA에서 DTO로 바로조회 부분을 수강 중에 생긴 오류입니다. 아래 그림과 같이 오류가 뜨는데, 서버가 실행 되지 않아 생긴 오류는 아닌 것 같습니다. package jpabook.jpashop.api;import jpabook.jpashop.domain.Address;import jpabook.jpashop.domain.Order;import jpabook.jpashop.domain.OrderStatus;import jpabook.jpashop.repository.OrderRepository;import jpabook.jpashop.repository.OrderSearch;import jpabook.jpashop.repository.OrderSimpleQueryDto;import lombok.Data;import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;import java.util.List;import java.util.stream.Collectors;import static java.util.stream.Collectors.toList;/** * xToOne * Order * Order -> Member * Order -> Delivery */@RestController@RequiredArgsConstructorpublic class OrderSimpleApiController { private final OrderRepository orderRepository; @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); //Lazy 강제 초기화 order.getDelivery().getAddress(); //Lazy 강제 초기화 } return all; } @GetMapping("/api/v2/simple-orders") public List<SimpleOrderDto> ordersV2() { //ORDER 2개 //N + 1 -> 1 + 회원 N(2) + 배송 N List<Order> orders = orderRepository.findAllByString(new OrderSearch()); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(toList()); return result; } @GetMapping("/api/v3/simple-orders") public List<SimpleOrderDto> ordersV3() { List<Order> orders = orderRepository.findAllWithMemberDelivery(); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(Collectors.toList()); return result; } @GetMapping("/api/v4/simple-orders") public List<OrderSimpleQueryDto> ordersV4() { return orderRepository.findOrderDtos(); } @Data 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(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); } }} package jpabook.jpashop.repository;import jpabook.jpashop.domain.Order;import lombok.RequiredArgsConstructor;import org.springframework.stereotype.Repository;import org.springframework.util.StringUtils;import javax.persistence.EntityManager;import javax.persistence.TypedQuery;import javax.persistence.criteria.*;import java.util.ArrayList;import java.util.List;@Repository@RequiredArgsConstructorpublic class OrderRepository { private final EntityManager em; public void save(Order order) { em.persist(order); } public Order findOne(Long id) { return em.find(Order.class, id); } public List<Order> findAllByString(OrderSearch orderSearch) { //language=JPAQL String jpql = "select o From Order o join o.member m"; boolean isFirstCondition = true;//주문 상태 검색 if (orderSearch.getOrderStatus() != null) { if (isFirstCondition) { jpql += " where"; isFirstCondition = false; } else { jpql += " and"; } jpql += " o.status = :status"; }//회원 이름 검색 if (StringUtils.hasText(orderSearch.getMemberName())) { if (isFirstCondition) { jpql += " where"; isFirstCondition = false; } else { jpql += " and"; } jpql += " m.name like :name"; } TypedQuery<Order> query = em.createQuery(jpql, Order.class) .setMaxResults(1000); //최대 1000건 if (orderSearch.getOrderStatus() != null) { query = query.setParameter("status", orderSearch.getOrderStatus()); } if (StringUtils.hasText(orderSearch.getMemberName())) { query = query.setParameter("name", orderSearch.getMemberName()); } return query.getResultList(); } /** * JPA Criteria */ public List<Order> findAllByCriteria(OrderSearch orderSearch) { CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Order> cq = cb.createQuery(Order.class); Root<Order> o = cq.from(Order.class); Join<Object, Object> m = o.join("member", JoinType.INNER); List<Predicate> criteria = new ArrayList<>(); //주문 상태 검색 if (orderSearch.getOrderStatus() != null) { Predicate status = cb.equal(o.get("status"), orderSearch.getOrderStatus()); criteria.add(status); } //회원 이름 검색 if (StringUtils.hasText(orderSearch.getMemberName())) { Predicate name = cb.like(m.<String>get("name"), "%" + orderSearch.getMemberName() + "%"); criteria.add(name); } cq.where(cb.and(criteria.toArray(new Predicate[criteria.size()]))); TypedQuery<Order> query = em.createQuery(cq).setMaxResults(1000); //최대 1000건 return query.getResultList(); } public List<Order> findAllWithMemberDelivery() { return em.createQuery( "select o from Order o" + " join fetch o.member m" + " join fetch o.delivery d", Order.class) .getResultList();} public List<OrderSimpleQueryDto> findOrderDtos() { return em.createQuery( "select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.orderDate, o.status, d.address)" + " from Order o" + " join o.member m" + " join o.delivery d", OrderSimpleQueryDto.class) .getResultList(); }} package jpabook.jpashop.repository;import jpabook.jpashop.domain.Address;import jpabook.jpashop.domain.OrderStatus;import lombok.Data;import java.time.LocalDateTime;@Data public class OrderSimpleQueryDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; public OrderSimpleQueryDto(Long orderId, String name, LocalDateTime orderDate, OrderStatus orderStatus, Address address) { this.orderId = orderId; this.name = name; this.orderDate = orderDate; this.orderStatus = orderStatus; this.address = address; } } 2022-05-31 02:13:36.433 ERROR 1563 --- [nio-8080-exec-4] o.h.hql.internal.ast.ErrorTracker : Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] [cause=org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto]] 2022-05-31 02:13:36.436 ERROR 1563 --- [nio-8080-exec-4] o.h.hql.internal.ast.ErrorTracker : Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] [cause=org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto]] org.hibernate.hql.internal.ast.DetailedSemanticException: Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] at org.hibernate.hql.internal.ast.tree.ConstructorNode.resolveConstructor(ConstructorNode.java:177) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.tree.ConstructorNode.prepare(ConstructorNode.java:144) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.HqlSqlWalker.processConstructor(HqlSqlWalker.java:1271) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:2409) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:2275) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1534) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:611) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:339) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:287) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:276) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.19.jar:5.3.19] at com.sun.proxy.$Proxy110.createQuery(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-5.3.19.jar:5.3.19] at com.sun.proxy.$Proxy110.createQuery(Unknown Source) ~[na:na] at jpabook.jpashop.repository.OrderRepository.findOrderDtos(OrderRepository.java:105) ~[classes/:na] at jpabook.jpashop.repository.OrderRepository$$FastClassBySpringCGLIB$$9808961b.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.19.jar:5.3.19] at jpabook.jpashop.repository.OrderRepository$$EnhancerBySpringCGLIB$$3bdf9949.findOrderDtos(<generated>) ~[classes/:na] at jpabook.jpashop.api.OrderSimpleApiController.ordersV4(OrderSimpleApiController.java:70) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 2022-05-31 02:13:36.441 ERROR 1563 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] [select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.orderDate, o.status, d.address) from jpabook.jpashop.domain.Order o join o.member m join o.delivery d]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] [select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.orderDate, o.status, d.address) from jpabook.jpashop.domain.Order o join o.member m join o.delivery d]] with root cause org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate class [jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto] [select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.orderDate, o.status, d.address) from jpabook.jpashop.domain.Order o join o.member m join o.delivery d] at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.ErrorTracker.throwQueryException(ErrorTracker.java:93) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:282) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:748) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:848) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:114) ~[hibernate-core-5.6.8.Final.jar:5.6.8.Final] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:362) ~[spring-orm-5.3.19.jar:5.3.19] at com.sun.proxy.$Proxy110.createQuery(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) ~[spring-orm-5.3.19.jar:5.3.19] at com.sun.proxy.$Proxy110.createQuery(Unknown Source) ~[na:na] at jpabook.jpashop.repository.OrderRepository.findOrderDtos(OrderRepository.java:105) ~[classes/:na] at jpabook.jpashop.repository.OrderRepository$$FastClassBySpringCGLIB$$9808961b.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.19.jar:5.3.19] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.19.jar:5.3.19] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.19.jar:5.3.19] at jpabook.jpashop.repository.OrderRepository$$EnhancerBySpringCGLIB$$3bdf9949.findOrderDtos(<generated>) ~[classes/:na] at jpabook.jpashop.api.OrderSimpleApiController.ordersV4(OrderSimpleApiController.java:70) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 오류내용은 이러합니다. OrderSimpleApiController 클래스에 @GetMapping("/api/v4/simple-orders")public List<OrderSimpleQueryDto> ordersV4() { return orderRepository.findOrderDtos();} orderRepository 가 잘못된 것일까요?.. 오류 내용을 보면 저 부분을 얘기하는 것 같은데 어떤 부분이 잘못되었는지 이해가 잘 안됩니다 ㅜㅠ 도움 부탁드립니다!!!!..
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
저는 1번 문제를 보고 이렇게 답을 했는데 그랩님이랑 답이 다른 것 같아서 제 답은 문제가 의도하는 바와 다른가 해서 질문드립니다. + 2번 문제도 궁금한게 생겼습니다.
function length(){ console.log(products.length); return; } length(products) 2 저는 문제만 보고 그냥 생각나는 대로 만들어봤는데 뭔가 제가 return 이나 함수 값을 잘 못 이해해서 다른 엉뚱한 답이 나온거 아닌가 싶은 의문이 듭니다..! 위에 답이 1번 문제의 답이 될 수는 없나요? 1번 문제의 답이 될 수 없다면 어느 부분에서 오류가 있을까요?? +(추가질문) 2번의 getproductsseller(products[0]); 라는 답에 products[0] 대신 '농구공' 을 넣는 것 만으로 '민수' 라는 seller가 나오도록 할려면 어떻게 코드를 바꿔야 하나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Session
안녕하세요 궁금한게 있어서 질문드립니다.Session 이라는 인스턴스가 연결된 클라이언트 갯수만큼 만들어지는 걸로 이해했습니다.저 상황에서 만약 server에 연결된 client가 100개라면Server에 100개의 Session 인스턴스각 client는 1개의 Session 인스턴스 일텐데서버 입장에서 A라는 클라와 B라는 클라가 동시에 값을 보내어서 동시에 Send를 해야하는 상황를 생각한다면 서버에서 A 클라에서 받은 값과 B클라에서 받은 값은 각각 다른 Session 인스턴스로 받기 때문에 서로 아무리 멤버변수라고 해도 정적이 아닌 이상 서로 공유하고 있지 않을텐데 Lock를 사용하는 이유가 궁금합니다. send 할때 lock을 이용하는건 하나의 인스턴스 안에서 여러개의 Thread가 생기는것을 고려해서 만들어준건가요??
-
미해결1. 웹개발 기초 [HTML, CSS]
css 적용 문제
<!DOCTYPE html> <html lang="en"> <head> <title>animation information</title> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet"href="main.css"> <style> body { margin:0px; } header { position: relative; top: 0px; width:100%; min-width: 1280px; height:10vh; background-color: hotpink; } main { position: relative; top: 0px; width:100%; min-width: 1280px; height:90vh; background-color: rgb(130, 126, 231); } footer { position: relative; top: 0px; width:100%; min-width: 1280px; height:5vh; background-color: hotpink; } nav { position : relative; top: 0px; width: 1280px; margin:0px auto; min-width: 1280px; height:100%; background-color: rgb(255, 255, 255); } button1 { position: relative; float: left; top: 10px; width: 140px; cursor: pointer; } button2 { position: relative; top: 10px; float: left; width: 140px; cursor: pointer; } button3 { position: relative; top: 10px; float: left; width: 140px; cursor: pointer; } button4 { position: relative; top: 10px; float: left; width: 140px; cursor: pointer; } main section1 { position: relative; top: 100px; width: 600px; height: 600px; border: 1px solid black; } </style> </head> <body> <header class = "header"> <nav class= "nav" > <button class="button1">소개</button> <button class="button2">추천</button> <button class="button3">알림</button> <button class="button4">소통</button> </div> </nav> </header> <main class="main"> <section class="section1"> </section> </main> <footer class="footer"> </footer> </body> </html> visual studio code 사용해서 하고있는데, css 적용이 안됩니다 ㅠㅠ
-
미해결Node.js - Express
에러
npm ERR! syscall open npm ERR! path C:\Nodejs-master/package.json npm ERR! errno -4058 npm ERR! enoent ENOENT: no such file or directory, open 'C:\Nodejs-master\package.json' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: 어떻게 해결을 해야할까요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
락만 뮤텍스로 바꿨을뿐인데 프로그램이 죽습니다
락 부분이 좀 어려워 흔히 쓰는 뮤텍스 방식으로 수정해보았습니다. 사진은 하나만 넣었지만 WRITE_LOCK을 쓰는 모든 부분을 위와같이 수정했습니다. 하지만 위와 같은 에러가 나오는걸로 보아 멀티쓰레드 동기화 문제로 보입니다. 혹시 선생님이 쓰신 락이랑 뮤텍스 기반 락이랑 어떻게 다르기에 평범한 락으로 바꿨더니 프로그램이 죽는걸까요? (혹시 안보이시면 우클릭 -> 새 탭에서 이미지 열기 해주시면 잘보일거에요)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파라미터 질문 있습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]예를 들어 loginV3이나 logoutV3을 보면 HttpServletRequest 객체를 파라미터로 받아서 session 객체를 생성하는데 파라미터로 바로 HttpSession객체를 받아도 똑같이 동작하는 거 같습니다. 제 생각에는 session객체를 생성할 때 request.getSession(false||true) 여기 파라미터 차이같은데 무슨 차이가 있나요?
-
해결됨게임 프로그래머 취업 전략 가이드
안녕하세요. 게임 개발자의 재테크에 관해 질문드리고 싶습니다.
Rookiss님 강의 너무 잘봤습니다. 확실히 게임 개발의 로드맵을 그릴 수 있는 강의였습니다. 질문드리고 싶은것은 (1) Rookiss님께서 생각하시는 게임 개발자의 재테크는 어떤것이 가장 좋을지 여쭤보고 싶습니다. (2)그리고 괜찮으시다면 강의 수익외에도 Rookiss님께서 하고 계시는 다른 재테크가 있는지 알고 싶습니다. 흔히 말하기를 개발자는 자기 자신에게 투자하는 것이 가장 좋다고는 하는데 게임 개발자도 그에 해당하는 것인지 궁금하고 아무래도 고연봉 개발자가 되더라도 경제적 자유를 이루기에는 어려움이 있어보여 이런 질문을 드리게 되었습니다.
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
질문 드립니다.
안녕하세요. 8번째 챕터 진행했는데, 컴파일 에러는 뜨지 않지만 이상하게 코드가 안 돌아가서 질문 드립니다. (참고로 비주얼 스튜디오가 깔리지 않아서, DEV-C++로 하고 있어 scanf_s가 아닌 scanf로 작성하고 있습니다) #include <stdio.h> #include <time.h> #include <iostream> #include <stdlib.h> #include <string> // 10마리의 서로 다른 동물 (각 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 -> 같은 동물 찾으면 카드 뒤집기 // 모든 동물 쌍을 찾으면 게임 종료 // 총 실패 횟수 알려주기 int arrayAnimal[4][5]; // 카드 지도 (20장의 카드) int checkAnimal[4][5]; // 뒤집혔는지 여부 확인 int foundAllAnimals(); const char * strAnimal[10]; void initAnimalArray(); void initAnimalName(); void shuffleAnimal(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printAnimals(); void printQuestion(); int main(void) { srand(time(NULL)); initAnimalArray(); initAnimalName(); shuffleAnimal(); int failCount = 0; // 실패 횟수 while (1) { int select1 = 0; //사용자가 선택한 처음 수 int select2 = 0; //사용자가 선택한 두번째 수 printAnimals(); // 동물 위치 출력 printQuestion(); // 문제 출력 (카드 지도) printf("뒤집을 카드를 2개 고르세요 : "); scanf("%d %d" , &select1, &select2); if (select1 == select2) // 같은 카드 선택 시 무효 continue; // 좌표에 해당하는 카드를 뒤집어 보고 같은지 안같은지 확인 // 정수 좌표를 (x,y) 로 변환 int firstSelect_x = conv_pos_x(select1); int firstSelect_y = conv_pos_y(select1); int secondSelect_x = conv_pos_x(select2); int secondSelect_y = conv_pos_y(select2); // 같은 동물인 경우 if((checkAnimal[firstSelect_x][firstSelect_y] == 0 //카드가 뒤집히지 않았는지 && checkAnimal[secondSelect_x][secondSelect_y] == 0) && (arrayAnimal[firstSelect_x][firstSelect_y] == arrayAnimal[secondSelect_x][secondSelect_y]) ) //두 동물이 같은지 { printf("\n\n빙고! : %s 발견\n\n" , strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); checkAnimal[firstSelect_x][firstSelect_y] = 1; checkAnimal[secondSelect_x][secondSelect_y] = 1; } // 다른 동물인 경우 else { printf("\n\n 땡!! (틀렸거나 이미 뒤집힌 카드입니다)) \n"); printf("%d : %s\n" , select1 , strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); printf("%d : %s\n" , select2 , strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); printf("\n\n"); failCount++; } // 모든 동물을 찾았는지 여부, 1 : 참, 0 : 거짓 if (foundAllAnimals() == 1) { printf("\n\n 축하합니다 ! 모든 동물을 다 찾았네요 \n"); printf("지금까지 총 %d 번 실수하였습니다\n" , failCount); break; } } return 0; } void initAnimalArray() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; i++) { arrayAnimal[i][j] = -1; } } } void initAnimalName() { strAnimal[0] = "원숭이"; strAnimal[1] = "하마"; strAnimal[2] = "강아지"; strAnimal[3] = "고양이"; strAnimal[4] = "돼지"; strAnimal[5] = "코끼리"; strAnimal[6] = "기린"; strAnimal[7] = "낙타"; strAnimal[8] = "타조"; strAnimal[9] = "호랑이"; } void shuffleAnimal() { // □□□□□ // □□□□□ // □□□□□ // □□□□□ for (int i = 0; i < 10; i++) { for (int j = 0; j < 2; j++) { int pos = getEmptyPosition(); int x = conv_pos_x(pos); int y = conv_pos_y(pos); arrayAnimal[x][y] = i; } } } // 좌표에서 빈 공간 찾기 int getEmptyPosition() { // □□□□□ 0 1 2 3 4 -> 0 0 0 0 0 // □□□□□ 5 6 7 8 9 -> 1 1 1 1 1 // □□□□□ 10 11 12 13 14 -> 2 2 2 2 2 // □□□□□ 15 16 17 18 19 -> 3 3 3 3 3 while (1) { int randPos = rand() % 20; // 0 ~ 19 사이의 숫자 반환 // 19 -> (3,4) int x = conv_pos_x(randPos); int y = conv_pos_y(randPos); if (arrayAnimal[x][y] == -1) { return randPos; } } return 0; } int conv_pos_x(int x) { // 19 -> (3,4) return x / 5; } int conv_pos_y(int y) { // 19 -> 19 / 5 ? 몫은 3, 나머지 4 return y % 5; // y를 5로 나눈 나머지 값 } void printAnimals() // 동물 위치 출력 { printf("\n===== 이건 비밀인데.. 몰래 보여줍니다===\n\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { printf("%8s" , strAnimal[arrayAnimal[i][j]]); } printf("\n"); } printf("\n=======================================\n\n"); } void printQuestion() // 문제 출력 (카드 지도) { printf("\n\n(문제)\n"); int seq = 0; // seq // checkAnimal // □□□□□ 0 1 2 3 4 0 0 0 0 0 // □□□□ 하마 6 7 8 9 1 0 0 0 0 // □□□□□ 10 11 12 하마 14 0 0 0 1 0 // □□□□□ 15 16 17 18 19 0 0 0 0 0 for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { // 카드를 뒤집어서 정답을 맞혔으면 '동물 이름' if (checkAnimal[i][j] != 0) { printf("%8s" , strAnimal[arrayAnimal[i][j]]); } // 아직 카드를 뒤집지 못했으면 (정답을 못맞혔으면) 뒷면 -> 위치를 나타내는 숫자 else { printf("%8d" , seq); } } } } int foundAllAnimals() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { if (checkAnimal[i][j] == 0) { return 0; } } } return 1; // 모두 다 찾음 } 다음과 같이 작성했고, 컴파일시 에러는 뜨지 않지만 돌려볼 시 -------------------------------- Process exited after 3.839 seconds with return value 3221225725 계속하려면 아무 키나 누르십시오 . . .라고 나옵니다. 왜 이러는 걸까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
캐시 제어 헤더 no-cache, must-revalidate
캐시 제어 헤더 no-cache, must-revalidate 를 사용해야 할 때 원 서버에 대한 접근이 있는데, 프록시 서버가 필수로 존재를 해야할까요? 프록시 서버가 없어도 된다면 no-cahce 에서의 원 서버 접근이 불가할때 프록시의 데이터를 줘서 200ok 를 내리는데, 프록시 서버가 없을때 해당 처리는 504로 되는것일까요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
오늘도 좋은 강의 감사합니다.
안녕하세요! 오늘도 좋은 강의 감사합니다.