onto의 개념은 알았습니다 그런데 example2에서 R4->R3 변환시 R3에 있는 임의의 벡터 b 에 대해서 T( x ) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재 하면 onto라는게 이해가 되지 않습니다. R3에 있는 임의의 벡터 하나에 T( x ) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재 한다 하여도 R3에 있는 어떤 벡터에는 T( x ) = b가 되지 않는 경우도 있을수 있는거 아닌가요? 예를 들면 onto가 되지 않는 예시를 설명하신 1.8 피피티 8페이지의 그림처럼요. 이 그림이 Rm에 있는 특정 벡터들에는 T( x ) = b 를 만족하는 Rn스페이스의 x 가 최소한 하나이상 존재하지만, Rm에 있는 어떤 벡터들에는 T( x ) = b가 되지 않아서 not onto인 상황 아닌가요?
template<typename T> BufferWriter& BufferWriter::operator<<(const T& src) { *reinterpret_cast<T*>(&_buffer[_pos]) = src; _pos += sizeof(T); return *this; } reinterpret_cast c++강의에서 아주 강력한 변환 포인터랑 정수사이도 변환이 가능하고.. 다 가능한 변환 느낌이었는데 앞에*를 붙여주는 이유가 궁금합니다. *reinterpret_cast<T*>(&_buffer[_pos]) = src; =========================== T*로 변환하는데 src가 참조라서 *를 한번 더 붙여주신건가요?
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 제가 Spring Security로 예제를 만들어보고 있었습니다. 그런데 익명 사용자인 경우 컨트롤러의 Authentication 파라미터로 주입되지 않더라고요. @GetMapping("/authentication") @ResponseBody public String authenticationTest(Authentication authentication) 예를 들면 컨트롤러에 이런 함수를 만들면 일반적인 인증 사용자인 경우에는 Authentication 객체가 주입되지만 익명 사용자인 경우에는 Authentication객체가 주입되지 않았습니다. 이유를 찾아보니 표준 서블릿 API 스펙을 따르기 위해서라고 합니다. 다른 응용 프로그램이 spring security의 구현에 의지하지 않도록 하기 위해서고 굳이 익명 사용자인 경우에도Authentication 객체를 주입받고 싶으면 spring security의 getContext().getAuthentication() api를 사용하면 된다고 합니다. 그래서 이유에 대해서는 제가 이렇게 찾아서 궁금한 부분은 아닌데요. https://github.com/spring-projects/spring-security/issues/4011 이 링크에 가보시면 내부적으로 왜 Authentication 객체가 익명 사용자인 경우 컨트롤러에 주입이 안 되는지 나온 부분이 있습니다. SecurityContextHolderAwareRequestWrapper이 객체에 아래와 같은 부분이 있다는 것입니다. private Authentication getAuthentication() { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (!trustResolver.isAnonymous(auth)) { return auth; } return null; } SecurityContextHolderAwareRequestWrapper 객체는 HttpServletRequest가 RequestCacheAwareFilter를 통과하면서 재구성된 request 객체라고 합니다. 그래서 SecurityContextHolderAwareRequestWrapper객체에서 getAuthentication()라는 함수를 호출해서 Controller의 Authentication 타입 파라미터에 주입해주는 Security전용 HandlerMethodArgumentResolver가 있을 것 같은데, 제가 아무리 찾아봐도 정확히 이런 Resolver가 있다는 글을 못 찾겠더라고요. 혹시 아신다면 알려주시면 감사하겠습니다.
#include <stdio.h> int main(void) { int c, total_byte = 0, line_count = 0; while ((c = getchar()) != EOF) { total_byte++; if (c == '\n') ++line_count; } printf("파일 크기 : %d 바이트\n" , total_byte); printf("파일 줄 수 : %d 행\n" , line_count); return 0; } 소스코드는 이렇게 되어 있구요 실행하면 출력 결과가 안 나오고 그냥 빈화면만 뜨네요 제 생각엔 while문이 무한루프에 빠져서(?) 그런 것 같은데 어떻게 해결해야 할지를 잘 모르겠습니다
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
1. C#에도 순수가상함수 개념이 있나요? 아직까지는 못본거 같아서요. 2. 9:40부터 나오는 Base.(가상함수) 는 어느정도의 부모계층 까지 올라가나요? 최상위 부모계층의 메소드를 쓰게되나요? 3. 자식 클래스에서 쓰이는 메소드가 부모 클래스에서 쓰이는 메소드에 몇가지 추가적인 기능만 붙었다고 가정했을때는 어떤 방식이 효율적일까요 첫번째. 자식클래스 메소드에 부모클래스의 메소드 기능을 복붙한 후에 뒤에 몇가지 기능을 추가하는 방법 아니면 두번째. 부모클래스의 메소드에 sealed를 붙여 자식클래스들이 공용으로 사용하는 기능만 남기고 자식클래스에서 sealed로 묶인 부모클래스의 메소드를 호출한 뒤 자식클래스만의 추가적인 메소드를 만들어 호출하는 방법 이렇게 두가지 생각중인데 다른 방법이 있는지도 궁금합니다.
졸업프로젝트 진행 중 상태코드에 대한 질문이 있어 남기게 되었습니다. 깃허브가 작동하는 방식을 살펴보았는데, 이슈의 댓글 생성시에 201대신 200코드를 반환하는 것으로 파악했습니다. (https://developer.mozilla.org/ko/docs/Web/API/Location) 200과 201코드의 차이점은 location응답헤더의 유무인 것으로 알고 있는데, 댓글 생성시에는 새로운 자원(댓글)이 만들어지지만 생성된 이후에 페이지 자체는 변하지 않기 때문에 location이 없는 200 상태코드가 오는 것으로 생각했습니다. 이슈가 생성될 때에는 이슈페이지로 이동하게 되지만 201대신 302를 통해서 리다이렉트하는 방식을 사용하고 있더군요. (네이버와 티스토리도 분석해본 결과)결과적으로 페이지를 이동하든, 이동하지 않든 생성시에 201을 사용하는 곳은 아무데도 없었습니다. 이런 사이트들은 어떤 규칙을 지키는지, 201 상태코드가 실제로 사용되는 부분은 어떤 곳인지 궁금합니다!! 감사합니다!!
class unit : def __init__ ( self , name , hp , speed ): self . name = name self . hp = hp self . speed = speed print ( " {} unit creation complete" . format ( name )) class AttackUnit ( unit ): def __init__ ( self , name , hp , speed , damage ): unit . __init__ ( self , name , hp , speed ) self . damage = damage print ( " {} 생성 완료." . format ( self . name )) print ( "HP {0} , Damage {1} " . format ( self . hp , self . damage )) unit 클래스에서 상속 받을때 __init__ ( self , name , hp , speed , damage ):을 다시 다 적는 이유가 뭔가요? 밑에 줄에 unit . __init__ ( self , name , hp , speed ) 이 있으면 굳이 적을 필요 없다고 생각했는데 지우니까 오류가 뜨네요 왜 그런지 궁금합니다.
안녕하세요. 강의 정말 잘 듣고있습니다. 강의를 듣다 모르는 것이 생겨 질문을 남기게 되었습니다 ㅎㅎ. ppt 37p에서 클라이언트가 서버한테 요청을 할 때 예를 들어 게임같은 경우는 8090포트를 사용한다 되어있는데, 해당 포트는 랜덤으로 정해지는 건가요? 그리고 서버의 11220포트는 서버 쪽에서 정한 포트 번호인건가요??
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
5분대부터 헷갈리고 있습니다. 59번째 줄에 killKnight(knight); 가 남아있어서 그런가? 싶은 생각이 듭니다. 1. 59번째 줄 이후로 knight.hp값이 0이 되있는 상태인데 쓰여진 코드를 보면 knight2.hp는 처음부터 0을 참조하는것이 아닌가 싶어서요 62번째 줄의 knight.hp=0을 쓰신 이유를 모르겠습니다 위 생각과는 상관없이 설명만을 토대로 정리할 겸 써보자면 2. 5분대에 있는 61번째 쓴 줄이 C++ 에서는 Knight& knight2 = knight 라고 표현될수 있는 건가요? 3. new를 써서 메모리 할당을 했는데 해제는 안하나요?
이미지 출력하는 부분에서 에러가 발생합니다. 에러 내용은 이러합니다. 파일 경로에 이미지가 uuid형식으로 저장되는 것은 확인 하였습니다. 어떻게 해결해야하나요 ? 2022-04-28 18:33:16.708 ERROR 18184 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.io.FileNotFoundException: URL [file:C:/Users/gyfls/Desktop/backend/study/file/${imageFile.getStoreFileName()}] cannot be resolved in the file system for checking its content length at org.springframework.core.io.AbstractFileResolvingResource.contentLength(AbstractFileResolvingResource.java:240) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:121) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:45) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:260) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:211) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:293) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135) ~[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]
안녕하세요 Q&A 게시판에 있는 한글 깨짐 현상에 대한 모든 질문&답변을 읽은 후 실행해보았고 구글링하여 해결하려 했으나 되지 않아 질문 드립니다! 질문 강의 : HelloServlet (18m) 질문 내용 : 해당 강의를 따라하면서 인터넷에 http://localhost:8080/hello?username=신 을 검색했을 때 인터넷과 콘솔에서 모두 한글이 깨져 나옵니다. https://www.lesstif.com/java/intellij-file-console-encoding-121012310.html https://goddaehee.tistory.com/248 https://knoow.tistory.com/195 위 방법 모두 해보았습니다. 다만 아래 방법을 따라할 때 약간 이상한 점이 있어 알려드립니다. ---------------------------- 1. vmoptions 파일 수정 Google 검색을 해보면 대부분이 이 방법을 제시한다. Intellij가 설치된 경로에 bin 폴더로 가면 idea.exe.vmoptions 와 idea64.exe.vmoptions 이렇게 두 개가 있는데, 본인의 환경에 맞게(64bit인 경우 idea64) 파일을 수정하면 된다고 한다. (사실 난 두 파일 전부 다 수정함) 실제 해당 파일의 맨 아랫줄에 -Dfile.encoding=UTF-8 을 추가 해봤으나, 바뀌는 건 없었다 출처: https://knoow.tistory.com/195 [ICT Story] ---------------------------- 위의 방법을 할 때 저는 idea64.exe.vmoptions 만 존재하고 idea.exe.vmoptions는 폴더에 없었습니다. 또한 idea64.exe.vmoptions에 -Dfile.encoding=UTF-8를 추가하려고 파일을 열었을 때 -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -XX:CICompilerCount=2 -Dsun.io.useCanonPrefixCache=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Djdk.attach.allowAttachSelf=true -Dkotlinx.coroutines.debug=off -Djdk.module.illegalAccess.silent=true 위처럼 되어 있다는 다른 사람들과 다르게 저는 아무리 기다려도 아래 한 줄만 파일이 존재했습니다. -Xmx750m 확인 부탁드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 다대다 관계에서 페치조인 성능에 대해 질문이 있습니다. 실전 JPA1의 프로젝트를 기준으로 orders와 item은 다대다 관계이기 때문에 사이에 order_item이라는 중간 엔티티를 둬서 일대다 , 대다일 로 풀어내주셨습니다. 이때 order 를 이용해서 그 주문한 상품의 이름을 알고싶은 경우 1) 처음에 order id를 기반으로 order와 연관된 orderItem을 모두 가져오는 페치조인을 하였고 2) 이후 그 여러 orderItem 각각에 대하여 다시 페치조인으로 orderItem을 조회하여 orderItem과 , Item을 모두 가져왔습니다. 이후에 Item의 이름을 출력해 보았는데, 2번 과정에서 어차피 각각의 orderItem에 대해 페치 조인이 사용되는 것 이기에 - orderItem의 개수만큼 inner join이 나갔습니다. 그래서 이를 수정하여 수정 1) 동일하게 order id를 기반으로 order 와 연관된 orderItem을 모두 가져오는 페치조인 수행 후 수정 2) 각각의 orderItem에 대하여 orderItem.getOrder.getName() 으로 연관된 Item의 이름을 조회하였더니 위와 동일한 개수의 SQL이 나가지만, inner join을 쓰지 않고 단순히 where문을 사용한 조회 문이 나갔습니다. => 이를 보고 , 다대다의 관계에서 한쪽을 이용해 연관된 다른 한쪽을 조회해야하는 상황에서는, 위의 수정된 방법처럼 처음에는 페치조인을 쓰고 + 이후에는 지연로딩으로 인한 단순 조회를 사용하는 식으로 사용하고 있는데요 이런식으로 사용하는것이 맞게 사용하는 건지 궁금합니다.