안녕하세요 캡틴판교님 덕분에 즐겁게 공부하며 개발하고 있는 주니어 개발자입니다. vue 끝장내기 강의에 코드 스플리팅 기법을 적용하여 component : () => import ( " @/xxx.vue " ) , 위와 같은 방법으로 라우터를 구성한 뒤에 타입스크립트를 적용하니 리턴타입이 없다고 나오는데요 (각 라우터를 파일분리 후 import하여 사용중입니다.) 아래와 같이 하니 오류없이 되긴하는데, 괜찮은 코드인지 궁금하여 질문 올리게 되었습니다. import { Component } from " vue/types/umd "; type ImportComponentType = Promise <{ default : Component }>; ... component : (): ImportComponentType => import ( " @/xxx.vue " ) ,
Flyweight Pattern 이론 강의 자료 중에 내적인 요소, 외적인 요소의 영어 표현으로 [Intrinsit], [extrinsit] 라는 표현이 있는데 해당 표현들은 [Intrinsic], [extrinsic] 표현인거 같습니다. 혹시 오타이신건가요? 항상 좋은 강의 감사드립니다.
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]