s3에 이미지 업로드 까지 성공을 하엿습니다. 근데 궁금한 점이 하나 생겼습니다. 이 사진은 s3가 아닌 그냥 백엔드 서버 폴더에다가 업로드를 한 사진이고 해당 이미지의 url 을 가져와 주소창에 넣어보면 이런식으로 브라우저에서 이미지가 보입니다. 허나.. 이번에는 s3에 업로드한 이미지 url을 가져다가 주소창에 넣어보니 이미지가 안나오고 해당 이미지가 그냥 다운받아집니다. s3에서 첫번째 사진처럼 url을 입력했는데 이미지가 브라우저창에서 보이도록 할 수 있는게 가능할까요?
임포트가 잘 안되어서 검색후 해결방법을 찾아서 해봤는데 해결이 안됩니다. 시도해본 방법 : https://hyesun03.github.io/2019/08/27/intellij-cannot-resolve-symbol-error/ https://ottl-seo.tistory.com/entry/IntelliJ-Cannot-resolve-symbol-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0 왜인지모르겠는데 프로젝트 삭제하고 다시 만드니까 됩니다.......................?
웹 브라우저에에러가 났고 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Jul 28 17:42:12 KST 2021 There was an unexpected error (type=Internal Server Error, status=500). 콘솔내용은------------------------------------------------------------------------------------------- 2021-07-28 17:57:10.164 ERROR 4736 --- [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.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1397) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1142) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na] 이런내용인데 .. 검색해봐도 해결방법을 잘 모르겠어서요 ㅠㅠ
안녕하세요 gaussianblur 이미지 augmentation을 적용할 때, 이미지에 cuda에 붙였을 때와 안붙였을 때 수행시간 차이가 발생하는데, 이유가 있을까요? 아래 코드에서는 0.001s, 0.001s씩 걸리는데 import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms import time import albumentations as A import numpy as np sample_img = torch.randn((1, 3, 224, 224), dtype=torch.float32) sample_img2 = torch.randn((3, 224, 224), dtype=torch.float32).cuda() gaussian = transforms.GaussianBlur(5) since = time.time() gaussian_img = gaussian(sample_img) print(f'time: {time.time()-since:.3f}s') since = time.time() a_gaussian = A.GaussianBlur() gaussian_img2 = a_gaussian(image=sample_img2.permute(1, 2, 0).detach().cpu().numpy())['image'] print(f'time: {time.time()-since:.3f}s') 위 코드에서 sample_img에 cuda를 붙이면 오히려 시간이 0.4초로 늘어나게 되네요
1. 일단 a -> b 로 데이터를 전송할때 인터넷을 활용하고, 수많은 노드(=서버)를 거쳐서 전달되는걸로 이해했는데 맞나요? 2. 8분 13초쯤에 논리적 연결이지 물리적 연결을 보장해주지 않는다는 것을 말씀하시면서 그 사이의 서버들이 연결되어 있는지는모른다고 표현하셨는데, ack을주고 받는 과정에 3번동안 주고 받았다면 a->b 로 가는 노드들이 적어도 하나이상은 연결되어 있다는거 아닌가요? 만약 그게 아니라면 무슨 연결을 체크한 것인지 이해가 잘 가지 않습니다. 단순히 서버가 존재하는지 여부인가요? 그걸 체크했다고 하더라도 오는길, 가는길이 있을수 밖에 없다고 느껴집니다. 3. 2번이 맞다면 물리적 연결, 논리적 연결이 무엇을 말하고 계신지 잘모르겠습니다. 4. 추가적으로 tcp 없이 데이터를 전송해서 서버가 닫혀있어 전송을 못받은 경우와 ack을 3번 주고 받은 경우에 ack을 주고 받는게 속도가 더 빠른가요? 질문을 바꿔서 tcp없이 데이터를 전송하는 그 자체로 해당 서버에서 데이터를 받았는지 안받았는지 체크할수 있는것 아닌가요? 근데 굳이 연결상태를 먼저 체크하고 보내는 이유가 궁금합니다. 보안이나 ack으로 체크하면 데이터 자체로 체크하는것 보다 속도가 빠르다 정도로 예상해봤습니다.
HTTP에서 맨 처음에 클라이언트-서버가 연결하고 있으면 서버가 계속 연결을 유지해야 하니까 자원이 많이 낭비돼서 비 연결성으로 요청 -> 응답 -> 종료 이렇게 바꿨는데 이러면 너무 오래걸리니까 지속 연결을 사용한다는데 결국 지속 연결 사용하면 맨 처음 자원이 많이 낭비 되던 시절로 돌아간 건가요?
JWT TOKEN을 만들기 전에 SPRING SEUCRITY 기초 지식에 부딪혔습니다. 물론 부족한 지식은 겨우 겨우 공부해가면서 보충했습니다. UserDetailsService라든지 Filter든지 다음 강의를 만드실 때는 초급자를 위해 이론에 대해 차근차근 설명해주셔서 SPRING SECURITY에 관한 강좌좀 만들어주셨으면 하는 바램이네요. 강의 마지막 부분에 가르쳤던 spring security를 적용해서 OAuth, Session, JWT token 로그인 관련 강의를 만들어 주시면 많이 볼 것 같습니다.
프로토콜. 통신규약, 즉 규칙이란거는 매번 들어서 알겠는데 그래서 프로토콜이 뭔가는 아직도 모르겠 습니다. 규칙을 적어놓은 문서를 말하는건지, 설명해주신 목적지 ip와 출발지 ip를 코드로 적어서 어딘가에 담는 것을 말하는건지, 무슨 알고리즘을 말하는건지 모르겠습니다. 마찬가지로 패킷도 데이터를 패킷으로 보낸다는 것은 알겠는데 패킷이 실제로 무엇인지는 잘 모르겠습니다. 예를들어, 리스트 같은 구조체를 코드로 만들어서 거기의 내용을 채워서 보내는걸 패킷이라고 부르는건가요? 패킷이나 아이피의 속성값이 무엇으로 이루어졌는지 가 아닌 이 자체가 무엇이고 어떻게 쓰인다는지 감이 오지 않아서 질문남깁니다. 더 나아가 인터넷이 tcp ip프로토콜로 이루어져 있다. 전혀 이해해본적이 없는 개념입니다 ㅠ
ERROR in ./client.jsx 1:12-28 Module not found: Error: Can't resolve 'react' in 'C:\Users\user\Desktop\react-project\lecture' ERROR in ./client.jsx 3:15-35 Module not found: Error: Can't resolve 'react-dom' in 'C:\Users\user\Desktop\react-project\lecture' ERROR in ./client.jsx 5:16-38 Module not found: Error: Can't resolve './WordRelay' in 'C:\Users\user\Desktop\react-project\lecture' 3 errors have detailed information that is not shown. Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it. WordRelay (webpack 5.47.0) compiled with 3 errors in 760 ms- 이런게 발생하네요... https://github.com/2winyear/react-project 제 깃,,,주소입니다
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
void Knight_Copy(Knight k) {} int main(){ Knight knight; Knight_Copy(knight); } 위와 같은 코드가 있습니다. Knight_Copy에서 만들어진 k는 생성자를 호출하지 않고 소멸자만 호출하나요? 제 컴파일러는 stack에 만들어진 k의 생성자를 호출하지 않았습니다.
1) 초기화 시점이 궁금합니다. 스프링컨테이너를 생성후 빈의 의존관계 주입까지 마치고 난후 초기화가 일어나는건가요? 2) 종료의 의미도 궁금합니다. 스프링 컨테이너를 디폴트로 만들때 싱글톤인걸로 배웠고 이것은 스코프가 싱글톤이므로 스프링 컨테이너와 생명주기를 나란히 한다는걸로 알고있는데요 , 강의에서 말하는 종료라는것은 프로그램을 정지시킬때 스프링 컨테이너도 없어지므로 , 스프링 컨테이너가 없어지기전에 그 안에 있던 객체들을 소멸시켜준다는 건가요?? 싱글톤으로 만든 스프링 컨테이너안에 존재하는 객체들은 프로그램이 작동하는 동안에는 소멸되지않는건가요?? DBCP에서 DB와 클라이언트를 연결해주는 connection객체를 싱글톤으로 만들고 이 connection 객체는 프로그램이 돌아가는 동안엔 소멸되지않는게 맞나요?
Average population of each continent 문제는 "모든 대륙의" 이므로 5개대륙 외에 north america null 과 antarctica null도 결과가 나와야 하지 않나요? 그러기 위해서는 inner join 이 아니라 Country 와 City 순서로 한 다음 left join이어야 할 둣 합니다.
그랩 마켓 서버 구축하기와 Express 프레임 워크 사용하기 수업 보면서 궁금한 점이 있습니다. 수업중 나온 화면을 비교용으로 캡쳐하였습니다. 수업을 보며 따라친 코드는 캡쳐한 화면처럼 나오지 않고 쭉 1~2줄 로 작성되어 보기가 매우 불편하게 나오더라구요; 그래서 영상 아래에 올려주신 깃헙 링크로 들어가 다르게 코드를 작성한게 있나 비교를 해봤지만 크게 다른부분을 찾을수 없었습니다. 영상에 캡쳐한거처럼 데이터가 나오게 하려면 어떻게 해놔야 하나요?..
1. @ResponseBody 와 ResponseEntity 의 기능적인 부분이 동일한 것으로 알고 있는데 ResponseEntity를 사용하면 HTTP header를 좀 더 편리하게 변경 할 수 있다고 이해하면 될까요? 2.어떤 상황에 어떤 것을 사용하는지 예시를 들어주실수 있나요? - 제가 생각한 예시는, HTTP 상태코드를 변경하지 않아도 되는상황 에 API통신을 할 때 @ResponseBody를 사용 하고 HTTP 상태 코드도 변경해야할 때 는 ResponseEntity 를 사용하는 것이라고 생각했습니다. (물론 @ResponseBody도 파라미터로 Response객체를 받아 헤더의 상태코드를 변경할 수 있지만 ResponseEntity는 추가 파라미터 없이 가능하니까 좀 더 유연하다?는 개념으로 이해했습니다.)
server.on("error", err => { console.error(err) }) 로 서버에 대한 에러를 잡아주고 있는데 try catch로 한번 더 에러를 잡는 이유가 궁금합니다. 그리고 try catch는 async await할때 사용하는 이유도 부탁드리겠습니다 ㅠㅠ