실전문제풀이1 6번
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
응용 프로그램 계층이 망이크로서비스를 기반으로 하기 때문에 A도 C도 서버리스지만 코드를 짜야하는 A가 아닌 API를 쓰는 C가 정답인건가요?
- 네트워크
- aws
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
응용 프로그램 계층이 망이크로서비스를 기반으로 하기 때문에 A도 C도 서버리스지만 코드를 짜야하는 A가 아닌 API를 쓰는 C가 정답인건가요?
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
데이터베이스도 생성해주고 해당 테이블도 만들어주었으나 정보를 입력했을 때 해당 테이블을 찾지못해 내부 서버 오류가 발생합니다. 추가적으로 더 설정해줘야 하는 것이 있나요? 아래 로그 첨부하겠습니다ㅠㅠ java.sql.SQLSyntaxErrorException: Table 'library.user' doesn't exist at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException( SQLError.java:121 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException( SQLExceptionsMapping.java:122 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal( ClientPreparedStatement.java:916 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal( ClientPreparedStatement.java:1061 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal( ClientPreparedStatement.java:1009 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate( ClientPreparedStatement.java:1320 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate( ClientPreparedStatement.java:994 ) ~[mysql-connector-j-8.0.33.jar:8.0.33] at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate( ProxyPreparedStatement.java:61 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate( HikariProxyPreparedStatement.java ) ~[HikariCP-4.0.3.jar:na] at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2( JdbcTemplate.java:973 ) ~[spring-jdbc-5.3.29.jar:5.3.29] at org.springframework.jdbc.core.JdbcTemplate.execute( JdbcTemplate.java:656 ) ~[spring-jdbc-5.3.29.jar:5.3.29] at org.springframework.jdbc.core.JdbcTemplate.update( JdbcTemplate.java:968 ) ~[spring-jdbc-5.3.29.jar:5.3.29] at org.springframework.jdbc.core.JdbcTemplate.update( JdbcTemplate.java:1023 ) ~[spring-jdbc-5.3.29.jar:5.3.29] at org.springframework.jdbc.core.JdbcTemplate.update( JdbcTemplate.java:1033 ) ~[spring-jdbc-5.3.29.jar:5.3.29] at com.group .libraryapp.controller.user.UserController.saveUser( UserController.java:37 ) ~[main/: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.29.jar:5.3.29] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:150 ) ~[spring-web-5.3.29.jar:5.3.29] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:117 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:895 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1072 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:965 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at javax.servlet.http.HttpServlet.service( HttpServlet.java:555 ) ~[tomcat-embed-core-9.0.79.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.29.jar:5.3.29] at javax.servlet.http.HttpServlet.service( HttpServlet.java:623 ) ~[tomcat-embed-core-9.0.79.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:209 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:51 ) ~[tomcat-embed-websocket-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.29.jar:5.3.29] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.29.jar:5.3.29] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.29.jar:5.3.29] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.29.jar:5.3.29] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.29.jar:5.3.29] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.29.jar:5.3.29] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:167 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:481 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:130 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:390 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1790 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.util.threads.ThreadPoolExecutor$ Worker.run ( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at org.apache.tomcat.util.threads.TaskThread$ WrappingRunnable.run ( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.79.jar:9.0.79] at java.base/ java.lang.Thread.run ( Thread.java:834 ) ~[na:na]
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
다른 일정으로 연속적으로 학습을 하지 못해서 다시 복습 후 시험을 치루려고 하는데요 수강 연장 부탁드리겠습니다^-^
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
13) 메모리 몇에 스토리지가 몇이 되면 ec2가 lambda보다는 비용효율적인가요? 17) C에 보안그룹은 인스턴스랑 연결되는거고 서브넷은 NACL인줄 알았는데, 서브넷도 보안그룹과 연결될 수 있나요?
해결됨
mongoDB 기초부터 실무까지(feat. Node.js)
강좌대로 Blog.updateMany({ "user._id": userId }, { "user.name": name }) 로 하니 블로그 데이터 유저 정보가 변경이 계속 안되고 있습니다 ㅠㅠ 유저 데이터는 정상적으로 변경이 되었는데요 문제점을 모르겠습니다. 해당 코드 깃허브 : https://github.com/alinfanclub/KimDevlogServer/blob/updateMany/src/routes/userRouter.js userRouter.put("/:userId", async (req, res) => { try { const { userId } = req.params; if (!mongoose.isValidObjectId(userId)) return res.status(400).send({ err: "invalid userId" }); const { age, name } = req.body; if (!age && !name) return res.status(400).send({ err: "age or name is required" }); if (age && typeof age !== "number") return res.status(400).send({ err: "age must be a number" }); if (name && typeof name.first !== "string" && typeof name.last !== "string") return res.status(400).send({ err: "first and last name are strings" }); // let updateBody = {}; // if(age) updateBody.age = age; // if(name) updateBody.name = name; // const user = await User.findByIdAndUpdate(userId, updateBody, { new: true }); let user = await User.findById(userId); if (age) user.age = age; if (name) { user.name = name; await Blog.updateMany({ "user._id": userId }, { "user.name": name }); } await user.save(); return res.send({ user }); } catch (err) { console.log(err); return res.status(500).send({ err: err.message }); } });
해결됨
재고시스템으로 알아보는 동시성이슈 해결방법
안녕하세요. 강의 잘 보고 있습니다. 의문이 생겨 질문을 남깁니다. 트랜잭션 전파속성을 REQUIRES_NEW로 해서 새로 생성한 이유가 있을까요? 그냥 REQUIRED로 하면 안되나요?? 강의 내에서 데이터소스를 분리하는 것을 추천해주셨는데, 커넥션 풀 사이즈를 늘리면 안되나요?? 감사합니다.
해결됨
AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
안녕하세요, 강의 수강 중 궁금한 점이 있어 질문 남깁니다. Scale-in 시에도 기본적으로 graceful shutdown 되도록 ecs autoscaling 내부에서 처리가 되는 것일까요? 아니면, graceful shutdown을 위해서는 따로 설정을 해야하는 것일까요? 감사합니다!
해결됨
AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
안녕하세요, 강의를 듣다 궁금한 점이 생겨 질문 남깁니다. 이전에 lightsail에서 load-balancing 시 port를 80으로 설정했어야해서 현재 node 서버가 80 port로 설정되어 있잖아요! 만약, node 서버의 port를 4000으로 열어놓고, ECR을 통해서 service 생성 시 load-balancer 세팅에서 사진의 부분이 80:4000으로 자동적으로 바뀌는 건가요? 어떻게 ecr에서 현재 port가 80으로 열려있는 지 인식하고 위와같이 선택할 수 있는건가요? node port가 4000이였다면, 어떻게 되는 것일까요? 감사합니다!
미해결
스프링 시큐리티 OAuth2
CustomAuthorityMapper 클래스에서 강사님과 코드는 동일하나 authorities가 넘어올시에 위와 같이 넘어옵니다. 그래서 강사님 영상과 다르게 ROLE_USER만이 authority에 대해서 담기게 되고 위의 사진은 hasRole 권한을 해제하여 찍어본것입니다. /api/user에 진입이 불가합니다 코드는 동일한데 뭐가 문제일까요,,,? 강사님의 네이버 로그인시는 response를 안벗기고도 진입이 가능해서 질문드립니다 package io.security.oauth2.sociallogin; import lombok.RequiredArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper; import java.util.Collection; import java.util.HashSet; import java.util.Set; public class CustomAuthorityMapper implements GrantedAuthoritiesMapper { private String prefix = "ROLE_"; @Override public Set<GrantedAuthority> mapAuthorities(Collection<? extends GrantedAuthority> authorities) { HashSet<GrantedAuthority> mapped = new HashSet<>(authorities.size()); for (GrantedAuthority authority : authorities) { mapped.add(mapAuthority(authority.getAuthority())); } return mapped; } private GrantedAuthority mapAuthority(String name) { if(name.lastIndexOf(".") > 0){ int index = name.lastIndexOf("."); name = "SCOPE_" + name.substring(index+1); } if (!this.prefix.isEmpty() && !name.startsWith(this.prefix)) { name = this.prefix + name; } return new SimpleGrantedAuthority(name); } }
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 아래 처럼 print를 찍었을 때, 저는 id 1과 2가 두 개가 나오지 않습니다. 관련 코드는 아래 첨부하겠습니다. 강의대로 똑같이 했는데, 왜 1개씩만 나오는지 모르겠습니다.. distinct를 넣었을 때와 안넣었을때의 결과가 같습니다. DB에서는 4개로 나오는데 Postman이랑 콘솔에서는 2개로 난오네요.. [v3 적용 시] package jpabook.jpashop2.api; import jpabook.jpashop2.domain.Address; import jpabook.jpashop2.domain.Order; import jpabook.jpashop2.domain.OrderItem; import jpabook.jpashop2.domain.OrderStatus; import jpabook.jpashop2.repository.OrderRepository; import jpabook.jpashop2.repository.OrderSearch; import lom bok.Data; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.ut il.List; import java.util.stream.Collector s; import stati c java.util.stream.Collectors. toList ; @RestController @RequiredArgsConstructor public class OrderApiController { private final OrderRepository orderRepository; @GetMapping("/api/v1/orders") public List<Order> ordersV1(){ List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); // 프록시 객체 초기화 order.getDelivery().getAddress(); List<OrderItem> ord erItems = order.g etOrderItems(); orderItems.stream().forEach(o -> o.getItem().getName()); } return all; } @GetMapping("/api/v2/orders") public List<OrderDto> ordersV2(){ List<Order> orders = orderRepository.findAllByString(new OrderSearch() ); List<OrderDto> collect = orders.stream() .map(o -> new OrderDto(o)) .collect( toList ()); return collect; } @GetMapping("/api/v3/orders") public List<OrderDto> ordersV3(){ List<Order> orders = orderRepository.findAllWithItem(); for (Order order : orders) { System. out .println("order ref= " + order + " id=" + o rder.getId()); } List<OrderDto> collect = orders.stream() .map(o -> new OrderDto(o)) .collect( toList ()); return collect; } @Data static class OrderDto{ private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; // VO는 그대로 사용해도 되지만, (VO는 객체이기 때문에, 안에 값이 변하면 다른 객체로 판단) private List<OrderItemDto> orderItems; // 엔티티는 DTO로 다시 한번 래핑이 필요하다. public OrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); orderItems = order.getOrderItems().stream() .map(orderItem -> new OrderItemDto(orderItem)) .collect( toList ()); } } @Data static class OrderItemDto { // OrderItem에서 필요한 값만 다시 추출 private String itemName; // 상품명 private int orderPrice; // 주문 가격 private int count; // 주문 수량 public OrderItemDto(OrderItem orderItem) { itemName = orderItem.getItem().getName(); orderPrice = orderItem.getOrderPrice(); count = orderItem.getCount(); } } } public List<Order> findAllWithItem() { return em.createQuery("select o from Order o" + " join fetch o.member m" + " join fet ch o.deliv ery d" + " join fetch o.orderItems oi" + " join fetch oi.item i", Order.class) .getResultList(); }
미해결
AWS Certified Cloud Practitioner 자격증 준비하기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [간단한 주문 조회 V3: 엔티티를 DTO로 변환 -패치 조인 최적화] 강의에서 5분 50초 쯤에 v2를 돌려봤을 때, 강사님은 쿼리가 5번 나오는데, 저는 계속 7번이 나오더라구요... order가 처음에 주문 2개를 만들어서 이미 영속성 상태라 그 다음에는 1차 캐시에서 가져오는 것으로 보여 쿼리는 생성이 안되어야 한다고 생각이 드는데, 왜 계속 order 쿼리가 2번 더 나오는 걸까요...? [Query] 2023-10-25T21:54:33.448+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select o1_0.order_id, o1_0.deliver_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only 2023-10-25T21:54:33.449+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473449 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first 1000 rows only; 2023-10-25T21:54:33.450+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-10-25T21:54:33.451+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473451 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=? select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=1; 2023-10-25T21:54:33.451+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-10-25T21:54:33.451+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473451 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=? select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=1; 2023-10-25T21:54:33.452+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select o1_0.order_id, o1_0.deliver_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.deliver_id=? 2023-10-25T21:54:33.452+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473452 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=? select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=1; 2023-10-25T21:54:33.453+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2023-10-25T21:54:33.453+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473453 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=? select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id=2; 2023-10-25T21:54:33.453+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2023-10-25T21:54:33.454+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473454 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=? select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id=2; 2023-10-25T21:54:33.454+09:00 DEBUG 37176 --- [nio-8080-exec-3] org.hibernate.SQL : select o1_0.order_id, o1_0.deliver_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.deliver_id=? 2023-10-25T21:54:33.454+09:00 INFO 37176 --- [nio-8080-exec-3] p6spy : #1698238473454 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop2 select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=? select o1_0.order_id,o1_0.deliver_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.deliver_id=2; [OrderSimpleApiController] package jpabook.jpashop2.api; import jpabook.jpashop2.Repository.OrderRepository; import jpabook.jpashop2.Repository.OrderSearch; import jpabook.jpashop2.domain.Address; import jpabook.jpashop2.domain.Order; import jpabook.jpashop2.domain.OrderStatus; import lomb ok.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 ja va.util.stream.Collectors; /** * X To One (컬렉션 X) * Order * Order -> Member * Order -> Delivery */ @RestController @RequiredArgsConstructor public 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개 List<Order> orders = orderRepository.findAllByString(new Order Search()); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) // map : a -> b로 치환 .collect(Collectors. toList ()); return result; } @GetMapping("/api/v3/simple-orders") public List<SimpleOrderDto> ordersV3() { List<Order> orders = orderRepository.findAll WithMemberDel ivery(); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(Collectors. toList ()); return result; } @Data static class SimpleOrderDto{ // API 명세서 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(); } } } [OrderRepository] ... public List<Order> findAllWithMemberDelivery() { return em.createQuery("select o from Order o" + " join fetch o.member m" + " join fet ch o.deliv ery d", Order.class) .getResultList(); }
미해결
안녕하세요 spring tools4를 설치하였고 돌아가는지 확인하고 싶어 확인하는 도중에 오류가 걸려서 글 올립니다. java는 11로 사용하였고 demo1는 local로 실행했을 때 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0 오류가 떠서 java버전이 다르다는 것을 알기는 알아냈지만 인터넷으로 검색한 방법을 다 써봐도 해결이 안됐습니다. 사용한 방법은 build path에서 jre system library로 해보았고 installed jres도 제대로 해두었습니다. compiler에도 11로 표시하였는데 혹시 다른 추가적이 방법이 있을까요
해결됨
하루만에 배우는 aws 서버리스
다음과 같은 양식으로 남겨주세요. 질문을 한 배경 :코드 보고 싶습니다 질문내용 :Lambda 함수 생성 + code 분석" 파트를 듣고 있는데요, index.mjs 코드를 올려주신다고 했는데, 어디서 볼 수 있을지 궁금합니다 선생님
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
문제에 '외부 공급자의 서비스에 연결해야 합니다.' 라고 되어있는데 VPC피어링, VPC엔드포인트, AWS PrivateLink가 다른 클라우드 플랫폼 VPC나 온프레미스 네트워크와도 호환(?)되는 기능인가요?
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
화면에서 보여주시는 내용정리된 노트?는 어디서 볼수있나요?
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
늘 답변 감사합니다. latency & geo location routing policy강의의 마지막 예제에서 미국에서 접속하면 geo1, geo2 중 어디로 라우팅되나요? 라우팅이 없는 연결이라 404가 뜰까요?
해결됨
자바 ORM 표준 JPA 프로그래밍 - 기본편
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 저는 ddl auto를 create로 하고 시퀀스 전략 했을 때, persist 안하고 봐도 시퀀스가 그냥 1, 증가가 50입니다.. 그 다음 persist를 한번 해 봤더니, next value for member_seq를 한번만 호출했습니다. 근데 persist 2번 이상하면, next value for member_seq를 2번 호출합니다. 시퀀스의 현재값도 101번이 됩니다. 뭔가 JPA쪽에서 놓친건가요..? 아니면 제가 뭔가 강의에서 놓친건가요? 그렇게 현재값 101번 만든 후, 이번엔 dll.auto 를 none으로 해서 다시 돌려봤더니 다서 persist 해서 테이블에 저장해서 나온 건 52부터 찍힙니다. persist 안한 것 persist 1번 next value for member_seq 한번 호출 persist 2번 호출 next value for member_seq가 두번 호출 됍니다. 그런데.. 이 상태에서 ddl.auto 를 none으로 하고 다시 한번 로직을 실행해 봤더니.. 어.. 제 생각이 맞다면 101부터 id가 매겨져야 할 것 같은데.. 어.. public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member1 = new Member(); member1.setUsername("A"); Member member2 = new Member(); member2.setUsername("B"); Member member3 = new Member(); member3.setUsername("C"); em.persist(member1); em.persist(member2); // em.persist(member3); tx.commit(); } catch (Exception e){ tx.rollback(); } finally { em.close(); } emf.close(); } 사용 버전 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex-hello-jpa</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.9.Final</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.1.214</version> </dependency> </dependencies> </project>
미해결
따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
imsang-gyu@limsanggyu-MacBookPro nodejs-docker-app % docker run -p 5000:8080 limsanggyu/nodejs internal/modules/cjs/loader.js:818 throw err; ^ Error: Cannot find module '/nodemon' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }
미해결
AWS Certified Solutions Architect - Associate 자격증 준비하기
획일화 할 수 없는 질문이라는 것 압니다만 문항에 secret manager이랑 systems manager parameter store이 있으면 secret manager가 정답일 확률이 더 높나요? 둘 차이가 뭔지 검색해도 잘 모르겠는데 전자가 기능이 더 많은 것 같아서요