안녕하세요! 강의를 듣다가 햇갈리는 부분이 있어서 문의 드립니다. --------------------- --------------------- Dockerfile 작성시 1. npm install을 실행하기 위해 package.json을 작성한다. 2. package.json을 컨테이너에 복사해주기 위해 COPY 옵션을 줘서 넣어준다. 3. ./ 경로에 복사할 경우 파일 중복 및 파일 관리 문제가 발생할 수 있어서 WORKDIR 옵션으로 복사할 파일 경로를 설정해준다. --------------------- --------------------- 이런 식으로 흐름으로 진행이 되는것 같은데요, WORKDIR 옵션을 어떻게 줬느냐에 따라서 package.json 파일이 위치하는 경로가 달라질것 같은데.. 질문1. package.json파일의 위치에 상관없이 npm install이 실행 되는건가요?(이건 node.js 공부를 해야하는 거겠죠..? ㅎㅎ) 질문2. 아니면 node.js가 아니라 다른 베이스 이미지 파일을 사용한다면 WORKDIR 경로에 따라서 이미지 실행이 안될수도 있나요? 답변 부탁드리겠습니다 ㅜㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 오늘 들은 강의에 나온 view와 addAttribute를 실습하고 있었습니다. static/tiles/에 있는 이미지를 출력하는 프로그램을 작성하고 있었는데 인텔리제이에서만 정상 동작하고 터미널 빌드시 의도치 않은 결과가 발생하였습니다. 인텔리제이에서 빌드시 1번, 3번은 이미지가 나오며 2번은 나오지 않습니다. 기본 경로가 static이니 예상된 결과대로 작동한 것입니다. 터미널에서 빌드시 아래와 같이 1,2,3번 모두 이미지가 나오지 않습니다 1. 인텔리제이 빌드와 터미널 빌드시 경로가 달라지나요? 2. 터미널 빌드를 통해 jar 파일로 프로그램을 실행한다면 static/tiles/aatrox_0.jpg 파일을 보려면 경로를 어떻게 잡아야하나요? 3. thymeleaf실행 시 html파일이 위치한 경로를 출력하는 방법이 있다면 알려주시면 감사하겠습니다.
안녕하세요! 이번에도 좋은 강의 감사합니다. 명쾌하게 설명해주셨는데, 제가 이해한 것이 맞는지 확인받고자 질문드립니다. 전략이란 의도를 동일하게 사용하기 때문에 템플릿 콜백 패턴도 전략패턴의 일종인데 차이를 생각해보자면 전략패턴은 context의 인스턴스 변수로 전략을 참조하고, 템플릿 콜백 패턴은 context의 관련 메서드로 callback 받는 차이가 있다고 이해하였습니다. 이런 차이로 아래 두가지를 생각해보았는데 제대로 이해한 것이 맞을지 궁금하여 질문드립니다. 1. 전략패턴은 템플릿 콜백 패턴보다 context와 전략간 의존성이 더 강하단 단점이 있고, 반면에 자주 사용되는 context라면 템플릿 콜백 패턴은 재사용성이 떨어진다는 단점이 있을 것 같습니다.(매번 callback을 정의해주어야하므로) 2. 전략패턴은 런타임시 객체가 생성될 때 전략이 정해지고, 템플릿 콜백 패턴은 context가 해당 전략을 실행할 시점에 전략이 정해진다고 정의하여도 괜찮을까요? 감사합니다.
안녕하세요! 시험 응시 전에 궁금한게 있어 질문글 남깁니다:) CSS 코드를 작성하다보면 .content-inner {} 처럼 아무 속성이 없는 줄이 종종 생기는데요, 제출하기 전에 모두 지워주는 것이 좋을까요? 사소한거지만 확실하게 해두는 편이 좋을 것 같아서 여쭤봅니다!
샘플 프로젝트를 스프링 부트 최신버전으로 하고 jdk는 1.8로하고 그래이들로 만들었습니다. HomeController @Controller public class HomeController { @GetMapping("/") public String index() { return "login"; } @GetMapping("/login") public String login() { return "/index__"; } } 이렇게 해서 도메인 접속 시 login페이지로 이동하게 했는데 war로 cafe24에 배포를 하면 정상적으로 login페이지가 보여집니다. 여기까지는 문제가 없는데 문제는 Spring Security를 적용했을 때 발생합니다.ㅠㅠ CustomAuthenticationEntryPoint는 public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); } } 이렇게 되어있고, SecurityConfig 파일은 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() .and() .formLogin() .loginPage("/login"); http.exceptionHandling() .authenticationEntryPoint(new CustomAuthenticationEntryPoint()); } } 이렇게 되어있습니다. 원래 SecurityConfig에 설정을 다 넣었었는데 Security만 적용을 하고 cafe24에 배포를 하면 404오류가 계속 나와서 아무리 이리저리 방법을 찾아봐도 도저히 방법을 찾을 수 없어서 기본 설정만 저렇게 넣어놓고 테스트를 했는데도 404오류가 나옵니다.ㅠㅠ 분명 로그인 페이지를 /login 으로 하고 기본 로그인 페이지도 이동하는 매핑을 했는데 왜 안되는지 모르겠네요.ㅠㅠ 오류 메시지는 2021-12-02 16:50:12.197 INFO 48329 --- [com-startStop-1] com.example.sample.ServletInitializer : Started ServletInitializer in 7.449 seconds (JVM running for 9.477) 02-Dec-2021 16:50:12.204 심각 [sample.cafe24.com-startStop-1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter errorPageSecurityFilter java.lang.AbstractMethodError at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:112) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4708) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:974) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1850) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 02-Dec-2021 16:50:12.205 심각 [sample.cafe24.com-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file 02-Dec-2021 16:50:12.205 심각 [sample.cafe24.com-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors 02-Dec-2021 16:50:12.207 정보 [sample.cafe24.com-startStop-1] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext 02-Dec-2021 16:50:12.229 경고 [sample.cafe24.com-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: sun.security.provider.SeedGenerator$ThreadedSeedGenerator.run(SeedGenerator.java:362) java.lang.Thread.run(Thread.java:745) 02-Dec-2021 16:50:12.230 경고 [sample.cafe24.com-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Thread.sleep(Native Method) sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread.run(SeedGenerator.java:475) java.lang.Thread.run(Thread.java:745) 입니다. 오류로그를 보면 정확히는 모르겠는데 추측해보면 에러페이지 시큐리티 관련 필터를 불러오지 못해서 발생하는 오류인 것 같은데.. 검색을 해 봐도 해결이 안되네요.ㅠㅠ 왜 로컬에서는 잘 되는데 war로 묶어서 cafe24 호스팅에 배포를 하면 위와같은 오류가 나오고 안될까요?ㅠㅠ jdk버전은 로컬이나 cafe24모두 openJdk1.8버전입니다.
(저는 일단 쉬프트연산자가 a << b라고하면 a를 b만큼 왼쪽으로 옮긴다 정도만 알고있습니다) int _mask = (1 << (int)Define.Layer.Ground | (1 << (int)Define.Layer.Monster); 부분에서 Define에 있는 Ground는 현재 값을 9, Monster = 8로 해두었는데 1. 왜 _mask의 값을 쉬프트 연산자로 1을 왼쪽으로 9만큼(Define.Layer.Ground)옮기고 Monster일때는 1을 왼쪽으로 8만큼 옮기게 해서 _mask에 값을 할당을 하나요? 2. _mask에 왜 하드코딩으로 값을 넣어주지 않고 쉬프트 연산자를 사용해서 정수값을 넣어주나요?? 3. 1 << (int)Define.Layer.Ground하게 되었을때 1을 왼쪽으로 9칸 보내면 0001 0000 0000 으로(2진수) 256이 되서? AddLayer의 9번과 안 맞는것 아닌가요...??? 4. 쉬프트연산을 사용하는것이 빠르다면 왜 빠른것인가요??
pop, insert 말고 swab을 이용한 구현을 했는데 혹시 성능적으로 더 비효율적일까요? 테스트 케이스 자체는 무리없이 수행했습니다. #3-8 곶감(모래시계) N = int(input()) arr = [list(map(int,input().split())) for _ in range(N)] M = int(input()) order = [list(map(int,input().split())) for _ in range(M)] def moveRight(x): for i in range(N-1): x[0], x[i+1] = x[i+1], x[0] return x def moveLeft(x): #print(x) p = N-1 for i in range(p): x[0], x[p-i] = x[p-i], x[0] return x #1. 명령 횟수만큼 타일 옮기기 for i in range(M): j = order[i][0]-1 if order[i][1] == 0: for _ in range(order[i][2]): arr[j] = moveLeft(arr[j]) else : for _ in range(order[i][2]): arr[j] = moveRight(arr[j]) ''' for i in range(N): print(arr[i]) ''' #2. 모래시계의 합 tot = 0 s, e = 0, N for i in range(N): #print(s,e) for j in range(s,e): tot += arr[i][j] if i<N//2 : s +=1 e -=1 else : s -=1 e +=1 print(tot)
예를 들어 iris / Species 예측 모형을 만든 후에 Accuracy를 구하라 하는데요 tmp <- confusionMatrix (test$Species, p3) 한 다음에 tmp$byClass 나 $overall 이 안먹는데 어떻게 하나요? > tmp <- confusionMatrix(tet$Species, p2) > tmp$byClass Error in tmp$byClass : $ operator is invalid for atomic vectors > tmp$overAll Error in tmp$overAll : $ operator is invalid for atomic vectors
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 다음과 같은 코드를 설명해 주셨습니다. @ResponseStatus (HttpStatus. BAD_REQUEST ) @ExceptionHandler (IllegalArgumentException. class ) public ErrorResult illegalExHandler (IllegalArgumentException e){ log .error( "[exceptionHandler] ex" , e) ; return new ErrorResult( "BAD" , e.getMessage()) ; } 여기서 IllegalArgumentException 또는 이를 상속한 자식의 예외가 발생했을때, 등록된 @ExceptionHandler를 통해 위의 핸들러로 예외가 처리되고, WAS 에게는 정상 응답후 끝난다고 하셨습니다. 즉, 이전처럼 WAS에서 다시 서블릿으로 예외를 처리할 컨트롤를 호출하지 않는다 하셨습니다. 이는 HandlerExceptionResolver 활용 에서 알려주셨던 내용입니다. 하지만 의문이 있는데, 위 코드에서는 @ResponseStatus가 추가되어 있습니다. @ResponseStatus는 내부적으로 response.sendError(statusCode, resolvedReason); 를 통해 response 내부에 오류가 발생했었음을 상태로 저장하게 됩니다.(이전 강의에서 알려주셨던 내용) 이후 이를 WAS가 인지하게 되어 기본 에러 페이지인 "/error"로 재요청을 보내야 하는것 아닌가요? 스프링 부트는 r esponse.sendError(...) 가 호출되면 모든 오류는 " /error" 를 호출하게 된다 . 라고 알려주신게 생각납니다! 이부분이 어떻게 처리되는 것 인가요?? 조금만 더 알려주시면 감사하겠습니다!!
안녕하세요~ 컴퓨터에 대해 정말 잘 아는게 없는 이제 막 코딩을 공부해보고자하는 1인입니다. 좋은사람 님 강의를 통해 잘 배우고자 합니다. 다름이 아니고 Ch2-1 개발환경설정에 파이썬 설치 내용이 있는데, 강의 당시는 2019년 인것 같고 현재 기준으로는 어떤 버전을 설치해야하나요? 파이썬 웹사이트 다운로드에서 최신 버전을 눌러보면 강의에서 말씀하신 'executable' 은 없고 'embeddable' 만 있기도 하고... 현재 기준으로 어떤걸 설치해야할지 알려주시면 감사하겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 John Ahn님 반갑습니다! 혹시 채팅방 어플리케이션에서 라디오 박스를 만들어서 설문조사 할 수 있게 만들 수도 있을까요? 제가 한 번 만들어 보고 싶은데 DB 저장에서 이것 저것 해보다가 MongoDB에도 적용해보고, MySQL에도 적용을 해보고 여러 가지를 시도를 해보았는데 제가 끝맺음이 제대로 안되어서 제대로 마치고 싶습니다ㅎㅎ.. 라디오 박스를 해서 설문조사 처럼 만들어보고 싶은데 배울 수 있을만한 John Ahn님 강의가 있을까요? 감사합니다!!
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. 위의 이런 에러가 나는데 몇시간 헤메이어도 도무지 제실력으론 찾지를 못하겠네요 범준님 부탁드려용 사랑해용 소스는 깃헙 에 올려두었사옵니다 https://github.com/dongguntechnology/Stack-Navigation