묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
entity와 DTO의 join
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 영한님 jpa 로드맵을 수강하고 사이드프로젝트를 진행중인데요. 제목과 같이 entity 와 dto를 join할수 있는지 궁금합니다. 구체적으로 설명해보자면 우선 1. open api를 통해서 List<T> 를 DTO로 받아서(ex, 상품 list) 사용자가 상품을 좋아요 누른 데이터를 DB에 저장해두었습니다.(member idx 와 상품 idx 저장) open api 에서 받은 데이터는 따로 DB에 저장하지 않고 호출시마다 DTO로 응답하는데요. 2. 여기서 당연하게도 open api에서 받은 list에는 사용자의 좋아요가 담겨 있지 않기때문에 DB에서 사용자가 좋아요 누른 상품 list를 조회 후에 open api 에서 받은 list 를 돌며 좋아요 데이터를 추가해주고 있습니다. 혹시 2번처럼 진행하지않고 DB에서 사용자 좋아요 누른 상품(entity)을 open api 에서 받은 데이터(DTO)와 join 하는 방법은 없을까요? 설명이 부족하다면 말씀 부탁드립니다 ! 감사합니다.
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
포트폴리오 질문드립니다!
안녕하세요 선생님 선생님 강좌 로드맵대로 학습을하고 온라인으로 독학 취업준비를 하고있는 학생입니다! 다름이 아니라 포트폴리오 제작을 완벽하게는 아니지만 어느정도 제작했다고 생각하여 호스팅을 하고 피씨에서는 잘보여지는데 실제 아이폰으로 보면 pdf가 아예 안보여지는 현상이나 예제섹션이 깨지거나 그런부분도 완벽하게 잡아주고 지원을 해야하는지 질문드립니다! ㅜㅜ감사합니다...
-
미해결
인프런 운영 - 재생 관련 요청(사이드카)
1:1 문의하기를 도저히 찾을 수가 없습니다. 보통 사이드카로 강의를 듣고 메인 화면에서 정리를 하거나 코드를 작성하는데, 이번에 강의를 들으려고 하니 화면이 안나오더라구요. 찾아보니 사이드카로는 화면이 안나온다고 돼있던데... 그래서 일단은 한 화면에서 강의도 듣고 또 코드도 쳐보고 해봤는데 원래 듣던 시간의 2배는 더 걸리는 것 같습니다. 사이드카를 사용하면서 강의를 들을 수 있는 방법을 찾아주세요. 왜 이렇게 바뀐건가요?
-
미해결홍정모의 따라하며 배우는 C언어
"" 와 ''의 차이
char a = 'A'; 와 char a = "A";의 아스키 코드 값이 달라지는 것 같이 보입니다. 이러한 이유가 무엇이고 어떤 식으로 ''와 ""를 분리해서 써야하는지 알려주시면 감사할 것 같습니다!!
-
미해결Slack 클론 코딩[실시간 채팅 with React]
mutateChat 내부 dm에 들어가는 데이터 에러
안녕하세요 제로초님 강의 3:41의 내용을보고 코드를 치는도중에 myData와 Sender, userData.id, Receiver 이 Failed to compile 에러가 났습니다 로초님께서 올려주신 깃헙코드를 복붙도해보고 강의코드와 비교도해보고 API문서도 확인해보았으나 제가 어느부분을 놓쳐서 이러한 에러가 나는지 모르겠습니다 const { workspace, id } = useParams<{ workspace: string; id: string }>(); const { data: userData } = useSWR<IUser | false>(`/api/workspaces/${workspace}/users/${id}`, fetcher); const { data: myData } = useSWR('/api/users', fetcher); const { data: chatData, mutate: mutateChat, setSize, } = useSWRInfinite<IDM[]>( (index) => `/api/workspaces/${workspace}/dms/${id}/chats?perPage=${PAGE_SIZE}&page=${index + 1}`, fetcher, ); 제 SWR 코드입니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
file.dir 경로 질문입니다 ㅠㅠ
현재 경로 설정은 이렇게 되어 있습니다. 위와 같은 에러가 나오며 파일 저장이 안됩니다 ㅠ java.io.IOException: java.io.FileNotFoundException: C:\Users\hdhwin\AppData\Local\Temp\tomcat.8080.1372549510501022096\work\Tomcat\localhost\ROOT\Users\hdhwin\study\file\pngegg (4).png (지정된 경로를 찾을 수 없습니다) at org.apache.catalina.core.ApplicationPart.write(ApplicationPart.java:122) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at hello.upload.controller.ServletUploadControllerV2.saveFileV1(ServletUploadControllerV2.java:64) ~[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:197) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.46.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.46.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] Caused by: java.io.FileNotFoundException: C:\Users\hdhwin\AppData\Local\Temp\tomcat.8080.1372549510501022096\work\Tomcat\localhost\ROOT\Users\hdhwin\study\file\pngegg (4).png (지정된 경로를 찾을 수 없습니다) at java.base/java.io.FileOutputStream.open0(Native Method) ~[na:na] at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298) ~[na:na] at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237) ~[na:na] at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187) ~[na:na] at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.write(DiskFileItem.java:406) ~[tomcat-embed-core-9.0.46.jar:9.0.46] at org.apache.catalina.core.ApplicationPart.write(ApplicationPart.java:120) ~[tomcat-embed-core-9.0.46.jar:9.0.46] ... 51 common frames omitted
-
미해결애플 웹사이트 인터랙션 클론!
강의 자료가 이상해요.
저도 수업을 듣다가 조금 이상해서요 ㅎㅎ 아래 질문글에 답변다신 것 보아 수업자료가 덮어씌우기 되어버린 것인지 답변다신 것대로 업데이트가 아직 안 된 것 같아요. 다음 수강생들을 위해 부탁드려요 선생님~
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
인텔리제이 빨간색 파일
[질문 내용] 이렇게 빨간색 파일로 된 것은 git에 add를 했음에도 계속 남는데 괜찮은 건가요? 인텔리제이는 처음이라..
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 전파 관련 질문입니다.
강사님, 안녕하세요. 트랜잭션 전파 관련 질문이 있습니다. @Transactional(REQUIRES_NEW)를 가진 A함수에서 @Transactional(REQUIRES_NEW)를 가진 (외부에 있는) B함수를 호출할 때에도 강의의 예시(@Transactional을 가진 함수에서 @Transactional(REQUIRES_NEW)를 가진 함수 호출)와 같은 논리로 작동한다고 봐도 될까요? 예를 들어 X함수 -> A함수 -> B함수 순으로 호출한다고 할 때, X 함수가 @Transactional (default값, REQUIRED)를 가지고 있고 A, B 함수가 @Transactional(REQUIRES_NEW)를 가지고 있다면 X 함수와 A 함수가 각각 별도의 물리 트랜잭션을 가지고 있는 것처럼 A 함수, B 함수도 X와 A의 관계처럼 서로 별도의 물리 트랜잭션을 가지고 있다고 판단할 수 있을까요? 만약 그렇다면 X -> A / A -> B 이렇게 관계를 따로따로 생각을 하는 것이 맞을까요? 로그를 찍어봤을 때 B 함수에서 롤백이 일어나도 A 함수의 데이터에는 영향을 주지 않고, A ~ X의 관계도 그러한 것으로 보이는데 이론적으로도 맞는 것인지 확인하고 싶습니다.
-
미해결C#으로 로그인 가능한 앱 구현하기 Xamarin 자마린 폼즈 (안드로이드, 윈도우)
상품등록시 api로 매개변수 전달
일단 외부 아이피를 풀어서 주소창에 외부아이피:포트 치면 api창이 잘 접속 됩니다 url세팅도 외부 아이피로 해서 테스트하면 상품이 잘 등록이 됩니다 그런데 실제 휴대폰으로하면 웹 API에서 매개변수가 널값을 받습니다 넘어가서 중단점이 잡히는데 널값입니다 가상휴대폰 에서는 값이 잘 넘어갑니다 어디를 봐야 하는것일까요 그리구 자동생성 API도 좋긴한데 쿼리문 쓰는 단순 API강의가 있었으면 좋겠습니다 c# API 로 사진 올리고 바코드 찍고
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
안녕하세요 ui 직군에서 일하고 있는 수강생인데요
이제 1년을 채운 아트 ui직군 입니다 회사 내부 ui툴을 이용해 주로 작업을 진행하였고 몇몇 아이콘들을 담당했었습니다 추후 유니티를 사용하는 회사에서 일하고 싶은 마음이 있는데 아직 유니티를 현업에서 사용해본적은 없어서 저연차 인 ui 직군에게 요구되는 소양이 어떻게 될까요? 혹은 어떤겄들을 익히면 도움이 될까요 지금 회사에서는 너무 내부툴에만 익숙해지는 느낌이 강해서 공부를 하려 합니다
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
안녕하세요 질문 있습니다.
안녕하세요 기압센서 부분 관련 질문 드립니다. 질문 1) 강의를 보면 10분 50초 부분에 3 bytes를 받아서 상위 두 bytes를 shift하고 bitwise OR연산을 한다고 하는데 강의 뒷 부분의 실제 코드에는 그러한 연산을 하는 부분이 없는거 같은데 어느 함수 부분에서 그러한 연산을 하나요?? 질문 2) 10분 23초 부분에 EN_LPFP와 LPFP_CFG 를 각가 1로 설정해야 된다고 되어 있는데 코드 어느 부분에서 그러한 설정을 하나요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
논리적으로는 FK가 있으나 물리적으로는 FK가 없는 실무의 디비에서 참고할 점이 있을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 현재 회사에서 스프링 부트로 전환중에 생긴 궁금증입니다. 강좌에서는 대부분 연관 관계가 있는걸 전제로 하고있지만 현재 팀에서 이미 서비스 중인 DB는 논리적으로는 FK가 있지만 물리적으로는 모두 FK가 제거된 상태로 서비스가 되고있습니다. 이런 상황에서 참고해야 될 자료나 알아야 할 점이 있는지 궁금합니다. 일단 너무 감이 안잡혀서 질문이 좀 장황해젔는데요 일단 궁금한 점은 강좌에서 연관관계를 매핑하고 LAZY나 EAGER속성을 통해 설정하기도 하는데 물리적인 관계가 없다면 이런 부분을 못쓰는건가요?? 그리고 다음으로 궁금한 점은 물리적으로 관계가 없는 상황에서는 조인 등을 어떻게 거는지 그런 부분들이 궁금합니다.
-
미해결
uwsgi 소켓 설정 후 service nginx start시 502가 뜨는 오류해결 도움이 필요합니다!
django와 html을 연결하여 vscode내에서 로컬로 웹사이트를 볼 수 있게 설정한 뒤 aws를 이용하여 외부로 웹페이지를 배포하고자 유튜브에 올라와있는 (2257) Django 프로젝트 AWS 배포하기 - YouTube를 참고하여 천천히 따라나갔습니다. vscode상에 있는 django와 html을 연결한 내용을 git에 올린 뒤 우분투에서 git clone을 통해 받아와 /home/ubuntu/내 프로젝트 를 완성하였고 유튜브를 따라 천천히 나아가다가 마지막에 service nginx start를 한 후 public 주소를 입력 시 502 에러가 뜨는 것을 확인하였습니다. 우분투 내에서 python manage.py runserver 0.0.0.0:8000을 입력하면 외부에서 홈페이지가 잘 뜨니 코드상에는 문제가 없는것 같고 우분투에서 /var/log/nginx/error.log을 통해 에러코드를 cat으로 확인하니 2022/06/14 14:17:05 [crit] 4751#4751: *1 connect() to unix:/home/ubuntu/Final-term-project-DjangoWeb-/uwsgi.sock failed (13: Permission denied) while connecting to upstream, client: 121.136.144.86, server: _, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/ubuntu/Final-term-project-DjangoWeb-/uwsgi.sock:", host: "52.35.25.97" 이렇게 떠서 구글링을 통해 권한을 shmod로777로 변환해보거나 해도 여전히 502가 떴었습니다. 이에 제가 내린 결론은 /etc/nginx/nginx.conf /etc/nginx/sites-enabled/default uwsgi.ini 이 세가지를 설정하는 과정에서 값을 틀리게 입력했다는 것이 저의 생각입니다. 이것이 현재 저의 home/ubuntu/프로젝트/ 의 상태입니다. html과 django의 연결은 구글링을 통해 한 웹사이트로 구성하였으며 이는 git 에 올라갔고 git clone을 통해 우분투에 받아와진 상태입니다. uwsgi.ini의 상태입니다. vi /etc/nginx/nginx.conf를 통해 입력한 값입니다. vi /etc/nginx/sites-enabled/default를 통해 입력한 값입니다. 이후 sudo service nginx restart를 시도한 후 aws에 있는 제가 만든 인스턴스의 public주소를 주소창에 입력하자 502 에러가 나왔고 에러log는 맨위에 있는 것이 나왔습니다. 여러 오타도 찾아보고 사용자권한도 설정하며 계속 수정해나갔지만 결과에 도달할 기미가 보이지 않아 질문/ 답변에 찾아와 질문드리게 되었습니다. 도움을 주시면 감사할 것 같습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 단에서 예외가 발생했을 때, 롤백 관련 질문 드립니다.
안녕하세요. 제가 스프링부트로 프로젝트를 만들던 중 궁금한 점이 생겨서 질문드립니다. 현재 제 상황은 서비스 단에서 기본적인 설정을 @Transactional(noRollbackFor = WebClientResponseException.class)로 해놓고 DB접근 기술은 JPA를 사용했습니다. 그리고 통합테스트에서 테스트 코드를 통해 해당 예외가 발생했을 때, 롤백이 되는지 안되는지를 확인하는 과정이었습니다. 저는 당연히 예외 발생 전까지의 트랜잭션 내에서 CRUD가 롤백되지 않고 DB에 반영이 되었다고 생각했는데 테스트 결과, DB에 반영이 안되었습니다. 그 원인으로 제가 생각할 때, JPA의 특성인 쓰기 지연이 발생해 영속성 컨텍스트에만 우선 entity들을 등록해놓고 해당 트랜잭션이 정상적으로 종료될 때, 영속성 컨텍스트에 저장된 엔티티들을 DB에 저장하고 비정상적으로 종료될 때(예외발생), 영속성 컨텍스트에 저장된 엔티티들을 DB에 반영안하는 것 같습니다. 그래서 설정 값으로 noRollbackFor 을 설정하더라도 DB에 쿼리가 안날라간 상태(영속성 컨텍스트에만 반영된 상태)이면 해당 값은 롤백 대상이 아닌것으로 판단하는 것이라 생각합니다. 그래서 실제로 제가 em.persist(특정 엔티티)를 하고 바로 em.flush()를 하니까 테스트코드가 성공하는 것을 확인했습니다. 혹시 제가 생각하는 부분이 맞는지 여쭙고 싶어서 이렇게 질문을 드리게 되었습니다. 답변해주신다면 정말 감사하겠습니다!!
-
미해결스프링 핵심 원리 - 기본편
18:52~ 부터 똑같이 코드를 실행하는데 의존관계를 각 private에 넣어서 실행했는데 오류가 나요..
basicscan에 위 코드를 실행하는데 오류가 발생하더라고요.. @Beanpublic OrderService orderService(){ System.out.println("call AppConfig.orderService"); //return new OrderServiceImpl(memberRepository(),discountPolicy()); return null;} void basicScan(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService=ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); OrderServiceImpl bean=ac.getBean(OrderServiceImpl.class); MemberRepository memberRepository=bean.getMemberRepository(); System.out.println("memberRepository = "+memberRepository);org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.order.OrderServiceImpl' available at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:351) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:342) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1172) at hello.core.scan.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:20) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리트윗 모델 관계에 대해 질문드립니다.
안녕하세요 제로초님, DB 모델링 관계에 대해 질문드립니다. 위 코드는 리트윗 시 리트윗을 당한(?) 게시글의 내용까지 포함하여 프론트로 데이터를 보내주는 부분인데요. model : Post, as : 'Retweet', 부분을 리트윗 게시물에 Retweet이라는 이름으로 post 모델의 테이블 구조를 가져온다고 이해했습니다. 실제로 리트윗을 한 후에 redux devtools에서 아래처럼 Retweet이라는 항목에 post 모델 구조 그대로 데이터가 들어오는 것을 확인했는데요 여기에서 궁금한 점은 model : Post, as : 'Retweet', 이 부분만으로 어떻게 Retweet이라는 항목에 원본인 1번 게시물의 데이터를 가져오는 지 궁금합니다. belongsTo로 인해 생성된 RetweetId : 1이 가리키는 정보를 모두 포함시키겠다 같은 뜻으로 이해해도 될까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
몇가지 궁금한점에 대해 질문합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 1. 2. 사진첨부해드리고 말씀드리겠습니다 1) member객체를 인스턴스하고, em.persist(member)를 할 시점에서 List<Order>에 여러 order객체들이 있을경우 같이 저장하기위해 CASCADE를 ALL로 지정한게 맞는지 궁금합니다. 2) 위의 내용이 맞을 때, 밑에 내용에서 createOrder 메소드 for문 안에서 order.addOrderItem(orderItem)를 하고나서 order를 persist 할경우, 여러개의 orderItem이 같이 저장되기위해서 해당 Order 엔티티안에 orderItems 리스트객체를 cascade cascadeType.All선언해야하는데, OrderItem이 Item과 연관관계가 있어서 cascade all를 선언 안하는게 맞는지 궁금합니다. 만약 그게 맞다면 caseCade.All를 선언 안하면 order 객체을 persist 할 시점에 List<orderItem>들을 같이 저장이 안되는걸로 알고 있습니다. 그렇다면 order 엔티티 안에 createOrder 메소드로 반환값 받는 order에 있는 OrderItems 리스트 객체를 for문으로 돌려서 각각의 OrderItem객체를 persist 하여 order값도 같이 persist 시키는게 맞는건지 궁금합니다.
-
미해결자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
클래스 생성과 관련하여 질문 있습니다
AbstractClassEx ex= new ClassEx(10,"Java"); 라고 클래스를 생성하였는데 왜 자료형을 AbstractClassEx로 생성을 해야하나요?? ClassEx ex = new ClassEx로 생성하면 안되는지 궁금합니다 또한 추상클래스는 클래스가 생성되지 않아 자식클래스가 부모클래스의 생성자를 호출하기 위하여 super를 사용하여 호출하였는데, 클래스 생성시 파라미터 값을 입력하지 않고 AbstractClassEx ex3= new ClassEx(); 라고 생성하였을 경우에도 추상클래스와 실체클래스의 생성자가 모두 호출되는데 어떻게 그런건지 궁금합니다
-
미해결머신러닝 엔지니어 실무
실습 관련 질문
강의 잘 듣고 있습니다. 감사합니다. 질문이 몇가지 있어 질문드립니다~ lesson2처럼 kfp.components.func_to_container_op 로 하고 docker image 안넣으면 뭐가 base image 가 되는건가요?? lesson3에서는 왜 func_to_container_op 할때 add 함수에 python_component 데코레이터 달았는지요? lesson2랑 뭐가 다른가요? add_task1,2를 func_to_container_op로 하고, 결과를 받아서 add_3을 만들수는 없나요? return 값의 output 은 return 인자가 다수인 경우는 어떻게 처리되나요? lession4에서 file_outputs 는 왜 들어가는지요? 안들어가도 /tml/results.txt 에 저장되고 화면에 뿌려져서 task.output 에서 값 가져올 수 있는거 아닌지요? lesson5 에서는 func_to_container_op가 데코레이터가 되었는데… lesson2 의 func_to_container_op랑 뭐가 다른건지요??