묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문제오류인가요?
M개의 DVD는 모두 같은 크기여야 제조원가가 적게 들기 때문에 꼭 같은 크기로 해야 한다. 같은 크기( DVD 녹화길이) 여야만 하는데 예시는 (1,2,3,4,5) = 15분 (6,7) = 13분 (8,9) = 17분 다른 크기 아닌가요?
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
sync, async 질문
안녕하세요. sync, async 에 대해서 잘 이해가 가지 않는 부분이 있어서 질문드립니다. 1. sync와 async는 "메인" 쓰레드에서 큐에 작업을 넣고, 이를 OS가 다른 Thread로 배분하는데 이 작업이 끝나기를 오직 "메인" 쓰레드에서 기다리는지의 여부로 이해했는데 정확한 걸까요? 메인이 아닌 다른 쓰레드에서도 sync, async 구분이 될 수 있나요? 2. 메인 쓰레드에서 큐에 async인 작업1을 넣어서 다른 쓰레드A에서 그 작업1을 하게 되었다고 하고, 그리고 그 작업1에는 또 concurrent큐에 sync인 작업2를 넣는 코드가 있었다고 합시다. 2-1. 작업2를 직접 수행하는건 쓰레드A가 되나요? 2-2. 쓰레드B는 sync 작업2를 실제로 수행할 쓰레드라고 할 때, 쓰레드A에서는 쓰레드B에서 작업 2를 끝내고 리턴될때까지 쓰레드 A의 작업1이 block되는 건가요? 쓰레드A에서 또 다른 쓰레드B로 넘어가게 될 테니 메인쓰레드가 아닌 쓰레드A에서 쓰레드B가 끝날때까지 기다리는건가 싶습니다... 잘 모르겠습니다 ㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
제 예상과 다르게 응답을 하고 있습니다
제 index.js 파일 일부입니다. app.use(express.static(path.join(__dirname + '/public'))); app.get('/', (req, res) => { console.log('메인페이지 겟요청'); res.send('hi'); //res.sendFile(path.join(__dirname, '/public/index.html')); }) 위와 같이 작성 후 localhost:3000/ 에 접속하면 저는 hi를 받을 줄 알았는데 public 폴더에 있는 Index.html 을 응답받습니다. 그리고 express.static 부분을 주석처리하면 그제서야 hi를 응답받는데, 이유가 무엇일까요??
-
미해결[Python 실전] 웹크롤링과 데이터분석 : 전세계 축구 선수 몸값 분석
transfermarkt.com 페이지에 대해서 status_code가 404로 오류가 나타납니다.
안녕하세요. headers={"User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36"} url="https://www.transfermarkt.com/" r=requests.get(url,headers=headers) r.status_code 해당 코드 결과가 404로 나옵니다. 404의미를 찾아보니 해당 페이지가 없을 때 나오는 오류라고 하는데 해당 페이지는 잘 접속이 되는 상태입니다. 새로고침도 해보고 다시 켜보기도 하고 캐시도 삭제해본 상황 입니다. 오류의 이유가 무엇인지 알 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Input질문
앞서 한 질문과 이어지는것 같기도 합니다. static Managers s_Instance; public static Managers Instance { get { Init(); return s_Instance; } } private InputManagers _input = new InputManagers(); public static InputManagers Input { get { return Instance._input; } } 와 같이 강의에서과 같이 코트를 짜면 유니티에서 원하는대로 캐릭터가 잘 움직입니다. 그러나 마지막 Instance._input를 s_Instance._input으로 바꾸거나 _input을 static으로 바꾸고 마지막에 return _input으로 바꾸는 등 Instance의 getter를 통하지 않고 _input을 호출하면 캐릭터가 움직이지 않습니다. 제가 생각했을 때 유니티 내 캐릭터는 PlayerController를 부품으로 가지고 있고 PlayerController는 Managers안에있는 Input 이라는 getter함수에만 접근했으니 Managers의 start함수는 실행되지 않는다? 라고 추론하긴 했습니다만 정확히 왜 이러는지 모르겠습니다. 그리고 또 궁금한점은 PlayerController를 유심히 보면 OnKeyboard함수는 Update부분이 아닌 Start부분에서만 구독할 수 있는데 우리가 키보드를 누르는 순간은 이미 play된 이후고, 그렇다면 이후에 저희가 누른 키보드는 더이상 구독될 수 없는것 아닌가요? 한번 구독하는 부분을 모두 Update함수로 옯겨본 후 play해보니 처음과 동일하게 캐릭터가 잘 움직였습니다. 이 부분은 정말로 이해가 가지 않습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이에러
hello-spring 을 오픈하면 이런식의 에러가 뜨는데 이유를모르겠습니다.. 도와주세요 ㅠㅠ * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Exception is: org.gradle.initialization.exception.InitializationException: Gradle could not start your build. at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65) at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:48) at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:64) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type CrossBuildFileHashCache using BuildSessionServices.createCrossBuildFileHashCache(). at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:848) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:773) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:786) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:772) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:786) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:772) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:786) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:772) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621) at org.gradle.internal.service.DefaultServiceRegistry.find(DefaultServiceRegistry.java:305) at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:289) at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:284) at org.gradle.initialization.DefaultGradleLauncherFactory.createDefaultGradleLauncher(DefaultGradleLauncherFactory.java:191) at org.gradle.initialization.DefaultGradleLauncherFactory.doNewInstance(DefaultGradleLauncherFactory.java:158) at org.gradle.initialization.DefaultGradleLauncherFactory.doNewInstance(DefaultGradleLauncherFactory.java:101) at org.gradle.initialization.DefaultGradleLauncherFactory.newInstance(DefaultGradleLauncherFactory.java:80) at org.gradle.composite.internal.DefaultRootBuildState.<init>(DefaultRootBuildState.java:47) at org.gradle.composite.internal.DefaultIncludedBuildRegistry.createRootBuild(DefaultIncludedBuildRegistry.java:90) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:57) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.lambda$execute$0(BuildTreeScopeLifecycleBuildActionExecuter.java:33) at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:32) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:27) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:104) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:55) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:64) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.lambda$execute$0(SessionScopeLifecycleBuildActionExecuter.java:54) at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:67) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:50) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55) ... 30 more Caused by: org.gradle.api.UncheckedIOException: Failed to create parent directory 'C:\01DevelopKits\hello-spring\.gradle' when creating directory 'C:\01DevelopKits\hello-spring\.gradle\6.9\fileHashes' at org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:313) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:86) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:43) at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:103) at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68) at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open(DefaultCacheRepository.java:126) at org.gradle.api.internal.changedetection.state.CrossBuildFileHashCache.<init>(CrossBuildFileHashCache.java:44) at org.gradle.internal.service.scopes.VirtualFileSystemServices$BuildSessionServices.createCrossBuildFileHashCache(VirtualFileSystemServices.java:360) 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 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104) at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:34) at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:846) ... 73 more
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
카드역배치 문제 질문
강사님 안녕하세요 카드역배치문제 질문 있습니다 문제랑 풀이는 이해가 가는데요 문제에서 '1부터 20까지 숫자가 하나씩 쓰인 20장의 카드가 아래 그림과 같이 오름차순으로 한 줄로 놓여있다' 라고 나옵니다 그래서 마지막에 pop를 이용하여 0을 제거하기는 하지만 처음부터 시작할때 a라는 리스트가 0부터 시작해도 상관이 없는건가요...?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
userData?.Workspaces.map 타입에러가 납니다.
새롭게 로그인을 한 직후 바로 Workspace페이지로 이동하지않고 undefinded 타입 에러가 납니다. 이후 새로고침을 한번 실시하면 정상 실행됩니다. 해결방법을 모르겠어요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
왜 Test에 transactional을 또 붙여야하나요?
service에 이미 @Transactional을 붙어있는걸로 보이는데 왜 test코드에 또 Transactional을 붙여줘야 하는건가요? 어차피 Service에서 데이터 추가 , 삭제는 다 이루어지고 있는것 아닌가요?
-
미해결Vuetify Admin Template 만들기 - 기본편 (Based Vue2)
vuetify 설치후 class를 이용한 css 적용 안됨
해당 내용을 따라서 vuetify 설치를 완료했는데 class="d-flex justify-center"등의 css 가 적용이 안됩니다. ㅠㅜ 뭐가 문제일까요? 코드 문제는 아닌 것 같은데 class 를 이용한 css 적용을 위한 vuetify는 또 따로 뭐 다운 받아야 하나요?
-
미해결스프링 시큐리티
Remember-me .CookieTheftException Exception 문의
안녕하세요 ^^. 강의 잘듣고 있습니다. 리멤버미 토큰 관련해서 질문이 있습니다. 스프링 시큐리티 리멤버미 기능을 이용하고 있는데요, 토큰 저장소는 DB 에 저장을 해놓고요. 하지만 스프링 application 을 restart 하게 되면 .CookieTheftException Exception 이 터집니다. 디버깅해보니, 이전에 저장되어 있던 Token value 와 새로 인입된 Token Value 가 일치하지 않더라고요.. 테스트 순서는 아래와 같습니다. 1. 리멤버미를 이용한 로그인 후 로그인 성공 2. DB 및 쿠키 remember-me 확인 완료 3. Springboot app 재시작 4. front 페이지 새로고침 5. RememberMeTokenRepository -> updateToken 메소드 호출 되면서 token value DB update ( 이때 페이지 새로고침했다고 토큰이 새로 발행되는게 맞나요? 토큰 expire 시간이 지나지도 않았는데) 6. 기존 token value 와 신규 token value 불일치로 인한 RememberMeTokenRepository -> removeUserTokens 메소드 호출되면서 token 삭제 7. .CookieTheftException 예외 터짐 일단 어플리케이션 재기동 이후 페이지 새로고침을 하는 순간 기존에 토큰 값이 아닌 새로운 값이 업데이트 되는데, 업데이트된 토큰 값 과 기존의 토큰 값이 불일치 하니 당연히 에러가 터지겠죠.. 근데 왜 업데이트가 되는지 이해가 잘 안되네요.. 혹시 어플리케이션 재기동하게되면 리멤버미 기능을 이용해서 이미 로그인되어 있는 유저들은 어떻게 처리해야 좋을까요? 혹시 몰라 아래 로그 달아드릴게요.. 강의 너무 감사합니다. 2021-07-16 16:10:09.061 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 획득 Hibernate: select rememberme0_.series as series1_1_, rememberme0_.last_used as last_use2_1_, rememberme0_.token as token3_1_, rememberme0_.username as username4_1_ from persistent_logins rememberme0_ where rememberme0_.series=? 2021-07-16 16:10:09.262 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 획득 tokne oulEuy+jZS+XqpkJfzYwBw== 2021-07-16 16:10:09.297 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 업데이트 [ddCMgrk5Gm0hEqiH4LuvaQ==] [55vHBaBrKjGiA039ZzOH4w==] Hibernate: select rememberme0_.series as series1_1_, rememberme0_.last_used as last_use2_1_, rememberme0_.token as token3_1_, rememberme0_.username as username4_1_ from persistent_logins rememberme0_ where rememberme0_.series=? Hibernate: update persistent_logins set last_used=?, token=?, username=? where series=? Hibernate: select member0_.id as id1_18_, member0_.created_at as created_2_18_, member0_.updated_at as updated_3_18_, member0_.access_token as access_t4_18_, member0_.access_yn as access_y5_18_, member0_.account_type as account_6_18_, member0_.activated as activate7_18_, member0_.birth_date as birth_da8_18_, member0_.branch as branch9_18_, member0_.comment as comment10_18_, member0_.email_address as email_a11_18_, member0_.gender as gender12_18_, member0_.group_name as group_n13_18_, member0_.guide_count as guide_c14_18_, member0_.last_accessed_at as last_ac15_18_, member0_.name as name16_18_, member0_.password as passwor17_18_, member0_.phone as phone18_18_, member0_.point as point19_18_, member0_.position as positio20_18_, member0_.refresh_token as refresh21_18_ from tb_member member0_ where member0_.email_address=? 2021-07-16 16:10:09.403 ERROR 18296 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.lang.NullPointerException: null at org.springframework.security.authentication.AccountStatusUserDetailsChecker.check(AccountStatusUserDetailsChecker.java:41) at org.springframework.security.web.authentication.rememberme.AbstractRememberMeServices.autoLogin(AbstractRememberMeServices.java:137) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:104) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834) 2021-07-16 16:10:09.412 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 획득 Hibernate: select rememberme0_.series as series1_1_, rememberme0_.last_used as last_use2_1_, rememberme0_.token as token3_1_, rememberme0_.username as username4_1_ from persistent_logins rememberme0_ where rememberme0_.series=? 2021-07-16 16:10:09.421 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 획득 tokne 55vHBaBrKjGiA039ZzOH4w== 2021-07-16 16:10:09.441 INFO 18296 --- [nio-8080-exec-1] c.m.c.r.RememberMeTokenRepository : remember-me token 삭제 11 Hibernate: select rememberme0_.series as series1_1_, rememberme0_.last_used as last_use2_1_, rememberme0_.token as token3_1_, rememberme0_.username as username4_1_ from persistent_logins rememberme0_ where rememberme0_.username=? Hibernate: delete from persistent_logins where series=? 2021-07-16 16:10:09.492 ERROR 18296 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception org.springframework.security.web.authentication.rememberme.CookieTheftException: Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack. at org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices.processAutoLoginCookie(PersistentTokenBasedRememberMeServices.java:113) at org.springframework.security.web.authentication.rememberme.AbstractRememberMeServices.autoLogin(AbstractRememberMeServices.java:136) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:104) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:398) at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:257) at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:352) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834) 2021-07-16 16:10:09.493 ERROR 18296 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost] : Exception Processing ErrorPage[errorCode=0, location=/error]
-
해결됨실전! Querydsl
10:10 bulkUpdate 질문입니다.
안녕하세요! 강의 재밌게 듣고 있습니다. bulkUpdate 부분에서 flush, clear를 하지 않았는데도 업데이트 후의 값으로 나옵니다. hibernate 버전 업데이트의 영향인 걸까요? hibernate 버전은 5.5.10 을 쓰고 있습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하십니까!!!!
안녕하십니까!!!! 좋은 강의 제공해주셔서 감사합니다~ 다름이 아니라 rest api 서버 구축을 하려고하는데 http 메소드 중 put,delete를 사용하려고 하니 보안취약점에 걸리는 문제가 생길수도 있을거 같은데 그러한 경우에 혹시 대비책이 있을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스)
활성화 사용자 질문
활성화 사용자와 전체 사용자의 차이는 무엇인가요? 가령, 사인업만 진행하면 활성화 사용자가 아닌 전체 사용자입니다. 그런데 표에 보면 전체 사용자 90명일 때 활성화 사용자가 20명인 수준이던데 그렇다면 하루에 90이나 가입했다는 소리인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
InputManagers과 static
이전 강의에서 Managers에 대하여 강의하실때 static Managers s_Instance; ... (1) static Managers Instance { get ... } ...(2) 이런 코드를 사용하셨습니다. 이에대한 저의 이해를 확한하겠습니다. (1)번에서 사용한 static은 다른 곳에서 같은 Managers타입의 새로운 클래스를 생성하는것이 싫고, s_instance라는 유일한 Managers를 이용하여 모두를 관리(?)하고 싶다는 뜻이고 (2)번에서 사용한 static은 다른곳에서 s_instance를 부르고 싶을 때 매니저를 new를 이용하여 새롭게 만들지 말고 형식이름을 통해 간접적으로 호출하기 위한 static이라는 뜻, 으로 이해했습니다. 이 이해가 맞는지 확인하고싶습니다. 이러한 이해가 맞다면 궁금한 점이 생깁니다. 첫째로 (이 질문은 처음 Managers를 생성하고 설명한 강의해서 했어야 할것 같으나 양해부탁드립니다.) 다른 파일에서 Managers를 생성하고 싶을 때에는 유일성이 보장된 Managers 내의 s_instance를 간접적이로 호출해야 하는데 다른 사람들이 Managers를 직접적으로 new를 이용해서 호출하는 참사(?)가 발생할 수 있다는 생각이 듭니다. 언듯 생각해보아도 Managers가 필요하면 Managers를 호출하는것이 Managers내부의 Instance를 호출하는것보다 더 직관적이기 때문에 이러한 실수(?)를 저지를 것 같습니다. 이러한 것을 방지하기 위해서는 Managers의 접근한정자를 public으로 열어두면 안될 것 같다는 생각이 듭니다. 이러한 이해가 맞는지요 두번째로 만약 Managers의 접근한정자를 public이 아니고 다른 접근한정자로 바꾸어서 다른곳에서의 접근을 제한하고 싶을 때 처음보는 이상한 빨간줄이 생성되었습니다. 조금 찾아보니 namespace에 정의된 클래스는 private가 안된다고 합니다. internal과 public만 가능하다고 하네요. 이 파일에는 namespace가 없는줄 알았는데 숨겨져있거나 컴파일할 때 자동으로 만들어주는 것인가요? 그리고 이것을 막아두는 이유는 무엇인가요? 세번째로 InputManagers _input = new(); public static InputManagers Input { get { return Instance._input; } } 과 static InputManagers _input = new(); public static InputManagers Input { get { return _input; } } 의 차이를 잘 모르겠습니다. inputManagers를 만드신 이유는 input이 발생하였을 때 한번에 해당 input을 처리하기 위함이라고 생각했습니다. 그렇다면 InputManagers는 처음 Managers와 비슷하게 하나의 클래스가 유일성이 보장되어야 할 것 같다는 생각이 듭니다. 이렇게 생각하면 InputManagers 인스턴스를 생성할 때 static으로 호출해야 할것 같다는 생각이 들지만 어차피 위의 버전이나 밑의 버전이나 private으로 다른곳에서 못보게 막아두고 getter를 통해 간접적으로 접근할 것이면 큰 의미가 있나 싶기도 하나 제가 생각 못한 이유가 있는것 같아 질문드립니다. 너무 길고 두서없게 질문한 것 같아서 죄송합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
dto 에서의 setter 필요여부 질문입니다.
앞서 활용 1편에서 무분별한 세터는 코드의 유지보수를 떨어뜨린다고 하셨는데요, 그렇다면 혹시 dto에서도 세터의 사용을 지양하는 방법도 실무에서 사용되는지 궁금합니다. 저는 아래처럼 최초 생성시에만 값을 할당하는 방식입니다. @Getterstatic class JoinMemberResponse { private final Long id; public JoinMemberResponse(Long id) { this.id = id; }}
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다.
시간초과와 상관없이 다음과 같은 코드를 만들어보았는데 제대로 작동이 안됩니다. 어디가 잘못된 것인가요? #include<stdio.h> #include<vector> using namespace std; int main(){ freopen("input.txt", "rt", stdin); int n, m, i, k, cnt=0, tmp; scanf("%d", &n); vector<int> a(n); for(i=0; i<n; i++){ scanf("%d", &a[i]); } scanf("%d", &m); vector<int> b(m); for(i=0; i<m; i++){ scanf("%d", &b[i]); } vector<int> c(n+m); for(i=0; i<n; i++){ for(k=0; k<m; k++){ if(a[i]==b[k]){ c[i]=a[i]; cnt++; } } } for(i=0; i<cnt-1; i++){ for(k=i+1; i<cnt; i++){ if(c[i]>c[k]){ int tmp; tmp=c[i]; c[i]=c[k]; c[k]=tmp; } } } for(i=0; i<cnt; i++){ printf("%d ", c[i]); } return 0; }
-
미해결
for 문을 두개 이상쓰고 else if를 쓰면 안되나요?
if (m == 'L') for (o = 1; o < i; o++) printf(" "); for (j = 1; j <= s; j++) printf("*"); else if(m == 'R') for (k = 1; k <= n-i; k++) { printf(" "); } for (p = 1; p <= s; p++) { printf("*"); } printf("\n") 저기서 왜 for 문을 두개 이상쓰고 else if를 사용하면 안되는걸까요..ㅜㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 단방향관계에서 "일"에 FK가 있을 때 질문드립니다!
연관관계 관리를 위해 "일"에서 FK수정이 일어나면 상대 테이블도 수정이 일어난다는 것은 이론적으로 이해를 했습니다. 쿼리문을 확인해보면 UPDATE문도 2번 날아가는 것을 확인했구요.. TEAM(일), MEMBER(다) 예시에서 TEAM(일)에만 단방향으로 List<Member>가 있습니다. TEAM에서 외래키인 List<Member>를 수정할 때 상대 객체 Member에는 TEAM과 관련된 필드(칼럼)이 없는데 MEMBER 테이블에는 어떤 수정이 UPDATE되는지 궁금합니다.. 정리해보면, "일"을 수정했을 때 "다"에 어떤 실질적인 변화가 일어나는 것인지 감이 잡히지 않습니다...
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
파이썬 알고리즘 문제풀이 선수지식 강의자료 요청
안녕하세요. 선생님의 좋은 강의 잘 듣고 있습니다. 파이썬 선수지식에서 강의하시는 강의자료는 혹시 없으실까요? 저는 문과생이라 파이썬 코딩이 낯설지만 잘 따라가고 있는 중입니다. 그런데 강의자료가 없으니 정리하는데 좀 오래걸려서요 부디 강의자료를 공유해주시면 감사하겠습니다. 제~ 이메일 주소는 1104py@naver.com 입니다. 답변 주시면 감사하겠습니다.