예 /abc 실행할때 @ModelAttribute("good") UserBean good 이렇게 리퀘스트영역에 객체가 저장되어 전송되서 jsp파일에서 사용하고 form태그를 이용하여 데이터를 /abc_pro 로 넘길때 @ModelAttribute("good") UserBean good 여기서 이게 /abc에서 만든 객체의 주소값이랑 같은지 아니면 새롭게 다시 만들어져 /abc에서 넘긴 데이터값이 주입이 되는지 햇갈려서 문의드립니다
Serial 큐는 특정 하나의 스레드에서만 처리한다고 설명해주셨는데 제가 찾아보니 어떤 글에서는 특정 하나의 스레드가 아니라 한번에 하나의 스레드라고 하네요. 링크: https://stackoverflow.com/questions/51057441/serial-dispatch-queue-will-use-only-one-thread ,,,그래서 Serial 큐는 특정 하나의 스레드에서 처리하는게 맞는건가요?
현업에서는 어떤식으로 NativeSQL을 작성하는지 궁금해서 질문드립니다 권장 순서 부분에서 엔티티 조회나 DTO조회 방식이 안될때 NativeSQL이나 스프링 JdbcTemplate을 사용한다고 하셨는데 그정도면 굉장히 복잡한 쿼리라고 생각이 듭니다 그렇다면 이러한 쿼리는 일반적으로 개발자가 직접 작성하는지 아니면 DBA의 도움을 받아서 작성하는지 궁금합니다
현재 모든 템플릿을 완성하고 로컬 호스트에서 잘 동작함을 확인한 상태입니다. 영상에서와는 조금 다르게 postgresql - rds 연동을 하려고 하는데 어떻게 해야 할지 모르겠습니다. 우선 파이참을 사용하시는거 같아 깃에 올려놓은 마지막 마스터 파일을 다운받았고 파이참으로 프로젝트를 열었는데 venv폴더가 없습니다. 따라서 pip list또한 볼 수 없습니다. 그럼 구름에서 바로 연동을 해보자 싶어서 구름에서 영상과 같이 시도 했는데 postgresql은 인터넷 레퍼런스등을 찾아봐도 import mysql 같은 걸 찾지 못했습니다. 일단 그냥 되나 싶어서 올려봤는데 결과는 역시나 안되고요 화면은 잘 보이고 로그인이 안되는 상태로 html이 시행되는걸로 보아 postgresql의 연동이 안된걸로 보여집니다. 아무래도 import파일이 없기때문이 아닐까 싶은데 해결방법이 궁금합니다. 제 구름 url 입니다. https://goor.me/xSZ7r
안녕하세요 수업 잘 듣고 있습니다 개선된 코드에서 질문있습니다. <개선된 코드> import sys #sys.stdin=open("in1.txt", "r") a=input() b=input() sH=dict() for x in a: sH[x]=sH.get(x, 0)+1 for x in b: sH[x]=sH.get(x, 0)-1 for x in a: if(sH.get(x)>0): print("NO") break; else: print("YES") if(sH.get(x)>0): -> 이부분에서, 왜 Sh.get(x)!=0으로 안쓰시고 >0 으로 쓰신건지 궁금합니다. 답을 낼때 차이가 없는 것은 알겠는데, 혹시 (!=)을 사용하면 시간이 오래걸리는 그런 문제가 있는건지 궁금해서 여쭤봅니다.
안녕하십니까 선생님의 강의 정말 유익하게 잘 보고 있습니다. 다름이아니라 상품주문 test 를 하게되면 ==== 오류 org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading 이런식으로 납니다.그래서 id가 자동으로 생성이 안되는내용이라서 @GenereatedValue 가 이미 Item 에 id 에 선언되어있고 혹시나 해서 setId로 id 값 지정후 해보니 그다음으로는 == 오류 전문 java.lang.NullPointerException at jpabook.jpashoop.service.OrderService.order(OrderService.java:41) at jpabook.jpashoop.service.OrderService$$FastClassBySpringCGLIB$$f6e85b24.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) at jpabook.jpashoop.service.OrderService$$EnhancerBySpringCGLIB$$ac50f3a2.order(<generated>) at jpabook.jpashoop.service.OrderServiceTest.상품주문(OrderServiceTest.java:44) 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:686) 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$6(TestMethodTestDescriptor.java:212) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248) at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211) at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53) 이런식으로 NullPointEception 이 일어납니다. 혹시 이렇게 되면 item class가 문제인지 또는 service 와 repository 문제인지 혹시 알고싶습니다.
안녕하십니까 이런 부분으로 질문드리게 되어 죄송합니다 ㅠ 다만 이미지 업로드 부분에서 drag&drop 기능 및 파일 선택 후 업로드 기능 전부 제대로 실행되지 않아 어려움을 겪고 있습니다 현재 로컬 폴더에 지정한 경로상으로 image를 드래그앤 드롭 하면 저장은 됩니다만 write.html 게시판 글 작성 상으로는 이미지가 전혀 나타나질 않습니다 . uploadImage()의 문제인 듯 하여 코드를 첨부했습니다 혹시 틀린 부분이 있다면 알려주시면 정말정말 감사할 듯 합니다! //write.html -> uploadImage() function uploadImage(image){ print("<file upload>") var data = new FormData(); data.append("image", image); $.ajax({ url: "{{url_for('board.upload_image')}}", cache: false, contentType: false, processData: false, data: data, type: "post", success: function(url){ var image = $("<img>").attr("src", url).css('max-width', "900px"); $("summernote").summernote("insertNode", image[0]); }, error: function(data){ console.log(data); alert(data); } }); } console log를 살펴봐도 다른 에러가 발생하지 않았으며 image파일은 게시판에 이미지를 올릴 때마다 차곡차곡 저장은 됩니다만 글 작성 내용에서는 전혀 포함이 되질 않습니다 # board.py -> /upload_image, /images/<filename> @blueprint.route("/upload_image", methods=["POST"]) def upload_image(): if request.method == "POST": file = request.files["image"] if file and allowed_file(file.filename): filename = "{}.jpg".format(rand_generator()) savefilepath=os.path.join(app.config["BOARD_IMAGE_PATH"], filename) file.save(savefilepath) return url_for("board.board_images", filename=filename) @blueprint.route("/images/<filename>") def board_images(filename): return send_from_directory(app.config["BOARD_IMAGE_PATH"], filename) 혹시 몰라 board.py 에 구현된 upload_image 항목 역시 첨부했습니다
안녕하세요 강의 잘보고 있습니다. 다른게 아니라 강의랑 직접적인 연관 없지만 궁금해서 여쭤봅니다. 혹시 강의 중간중간에 직접 그리신 prototype chart ?? 같은 걸 보여주시면서 내용이랑 흐름을 설명해주시던데.. 어떤 사이트? 프로그램인? 인지 좀 알 수 있을까요?? 감사합니다.
안녕하세요 승화님! 강의듣고 그로스해킹 전반에 이해를 하고 흥미를 가질 수 있었어요 감사합니다 :-) A/B test의 샘플 사이즈 정하는 부분에서 궁금증이 있는데요, 원하는 조건을 대입해서 n이라는 샘플 사이즈가 구해졌을 때 각 집단별로 n이상의 샘플 사이즈면 두 집단의 비율이 크게 달라도 문제가 되지 않을까요?? 샘플 수가 n보다 훨씬 큰 경우에 문제가 되지 않을지 궁금합니다! 감사합니다
안녕하세요. Vue + Spring Security 를 이용하여 사이트를 구성하고 있는데요. (csrf 이용) 궁금한게 있어 문의드립니다. 1) Spring Security 토큰이 생성되는 시점이 언제인가요? 로그인 성공 후? 2) 로그인 성공후 ajax 로 토큰을 내려줘야 할꺼 같은데 서버에서 어떻게 내려줘야 할지 모르겠습니다. 3) 로그인 후 접속할때마다 토큰이 계속 바뀌는 건가요? 그렇다고 한다면 접속할때마다 서버에서 토큰값을 내려주는 코드를 모든 api에 넣어줘야 할까요??