묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Redux vs MobX (둘 다 배우자!)
redux-thunk질문
현재 강의 프로젝트 파일에서는 툴킷을 설치하지도, redux-thunk를 따로 설치하지도 않았는데 어느 부분이 thunk인 건가요? 여기서 말하는 thunk미들웨어는 그냥 이름만 thunk인 것이고 진짜 redux-thunk의 thunk미들웨어는 툴킷 영상에서 사용한 createAsyncThunk인가요?
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 액츄에이터 build info 표시 안 됨 문의드립니다.
안녕하세요.김영한 선생님 강의를 수강하며 따라가던 중 액츄에이터 수업을 듣는 부분까지 왔습니다.엑츄에이터에서 제공하는 엔드포인트 중 build에 대한 정보를 노출하는 부분이 있는데, 해당 부분에서 문제가 발생해 진도를 못나가고 있습니다.수업과 같이, build.gradle에 해당 코드를 추가했습니다..... springBoot { buildInfo() }코드 추가 후 build하여 프로젝트 폴더의 build/resources/main/META-INF/build-info.properties 파일이 생성된 것을 확인했고, 내용은 다음과 같습니다.build.artifact=actuator build.group=hello build.name=actuator build.time=2023-06-01T08\:10\:08.314770Z build.version=0.0.1-SNAPSHOT마지막으로, 현재 application.yml 파일에 설정한 내용입니다.management: endpoints: web: exposure: include: "*" info: env: enabled: true info: app: name: hello-actuator company: yh혹시 제가 잘못 이해하고, 설정한 것이 있을까요..?도움을 구합니다 ㅜㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백준 1152질문
선생님 눈뜨고쓸정도로 스플릿외워서 이때다싶어 사용했습니다만 바로 시간초과가 뜨네요 ㅜhttp://boj.kr/c6c01ff909ca445dbb0b4a283faf9b02이게 제가 한 링크고#include <bits/stdc++.h>using namespace std;int main() { string s; int a = 1; getline(cin, s); for (int i = 0; i < s.length(); i++) { if (isspace(s[i])) { if (s.length() == 1) { cout << 0; return 0;} else if (i > 0 && isspace(s[i - 1])) { cout << 0; return 0;} else if (i == 0 || i == s.length() - 1) continue; else a++; } } cout << a; return 0;}이건 통과되는 다른사람껀데 아무리봐도 이해가 잘 안되네요 ㅜㅜ 알려주십셔
-
미해결모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)
파이썬 lv3 의 py_ad_4_2.py 에서 Image를 열기만 하고 닫지는 않으셨습니다.
메모리 누수가 일어날 것 같은데 코드 수정 부탁드립니다.with 문을 써서 구현해야될 것 같은데 어떻게 수정해야될까요? 문제되는 코드img, *images = [Image.open(f) for f in sorted(glob.glob(path_in))] # open 만 하고 닫지는 않음.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2
데이터 전처리할 때 왜 id를 삭제하나요?학습할 때 필요할 지테스트의 id값이 최종적으로 필요할 지 어떻게 아나요?
-
해결됨OpenGL 쉐이더 (5) shader 3D 그래픽스 - 3D 카메라 뷰잉, 프로젝션, MVP 변환 파이프라인
compute shader
openGL 4.3 버전부터 (4.2 버전일 수도 있습니다) compute shader 가 지원된다고 하는데혹시 compute shader 에 대해서도 따로 강의로 다뤄주실 계획 있으신가요?
-
미해결예제로 배우는 스프링 입문 (개정판)
순환참조와 bean 주입에 대한 질문입니다!
순환참조에 있어서 생성자 주입이 컴파일 타임에서 잡아낼 수 있는 이유가 빈을 주입하는 순서가 달라서라고 인터넷 서칭을 하다 알게 되었는데요,이해한 바로는 생성자 주입은 빈을 생성 + 주입을 동시에 하고,세터 주입, 필드 주입은 빈을 생성하고, 주입하는 단계가 나뉘어 있어 컴파일 타임에 잡지 못한다고 이해를 했는데, 맞을까요?만약 맞다면, 생성자 주입 또한 생성 + 주입 시에 빈팩토리에서 찾아서 없다면 생성 후에 넣으면 되는 것인데, 왜 컴파일 오류가 나는지 이해가 가지 않습니다. 만약 순환참조로 생성조차 안된다면 세터주입, 필드주입 또한 실행되지 않는게 맞지 않나요?? (아래는 제가 참고한 블로그의 글입니다)관련해서 공식문서를 참고해보고 싶은데, 어느부분을 찾아봐야 할지 잘 모르겠습니다 ㅠ
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
chrome에서 localhost:8080/hello 실행 시 2번 출력됩니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Hello 서블릿 강의 초반에 아래의 내용을 작성하고,public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); } }chrome 브라우저에서 "localhost:8080/hello"으로 실행시키면 "HelloServlet.service" 이 2번 출력됩니다.그런데 Edge에서 실행시키면 1번 출력됩니다.무엇이 잘못되었는 지 알려주시면 감사하겠습니다...
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
15-02 API-GateWay 2
안녕하세요 수업을 잘 따라가고 있던 중 오류가 발생하였습니다... docker을 작동 하였고 아래와 같이 나와 도커를 확인 하였습니다.gatway제외한 나머지는 작동이 되는 걸 확인 하였고 gateway만 따로 작동을 하자 아래와 같이 에러가 발생하였습니다... 버전문제 때문에 그런건가요...??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
마지막 테스트케이스에서 시간 초과가 납니다.
안녕하세요 선생님. 복습을 하면서 문제를 다시 풀어보았는데요 , 선생님 방식과 같은 방식으로 해결 했다고 생각했는데 마지막 테스트케이스에서 타임 리밋이 떠서 , 혹시 제 코드보고 문제점이 있다고 생각되시는 부분 있으면 짚어주시면 감사하겠습니다.
-
미해결Spring Boot JWT Tutorial
@ManyToMany를 일대다 관계로 풀어서 작성중 문제가 생겼습니다...
public class User { @Id @Column(name = "user_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long userId; @Column(name = "username", length = 50, unique = true) private String username; @JsonIgnore @Column(name = "password", length = 100) private String password; @Column(name = "nickname", length = 50) private String nickname; @JsonIgnore @Column(name = "activated") private boolean activated; @OneToMany(mappedBy = "user") private Set<UserAuthority> authorities; }public class UserAuthority implements Serializable{ @Id @ManyToOne @JsonIgnore @JoinColumn(name = "user_id") private User user; @Id @ManyToOne @JoinColumn(name = "authority_name") private Authority authority; } public class Authority { @Id @Column(name = "authority_name", length = 50) private String authorityName; } 이렇게 Entity를 작성했고 @Transactional public User signup(UserDto userDto) { validationUser(userDto); Authority authority = Authority.builder() .authorityName("ROLE_USER") .build(); UserAuthority userAuthority = UserAuthority.builder() .authority(authority) .build(); if(userAuthority.getAuthority() == null){ throw new RuntimeException("권한정보가 없습니다"); } User user = User.builder() .username(userDto.getUsername()) .password(passwordEncoder.encode(userDto.getPassword())) .nickname(userDto.getNickname()) .authorities(Collections.singleton(userAuthority)) .activated(true) .build(); return userRepository.save(user); }UserService는 중간에 UserAuthority로 빌드하는 것을 추가해줬습니다. private org.springframework.security.core.userdetails.User createUser(String username, User user, UserAuthority userAuthority) { if (!user.isActivated()) { throw new RuntimeException(username + " -> 활성화되어 있지 않습니다."); } List<GrantedAuthority> grantedAuthorities = user.getAuthorities().stream() .map(authority -> new SimpleGrantedAuthority(authority.getAuthority().getAuthorityName())) .collect(Collectors.toList()); return new org.springframework.security.core.userdetails.User(user.getUsername(), user.getPassword(), grantedAuthorities); }CustomUserDetailService도 String 타입으로 일치 해야 함으로 authority.getAuthorityName()을 authority.getAuthority().getAuthorityName())로 변환해주었습니다. 이후 data.sql의 admin 아이디는 모든 메서드가 잘 되는데 signup으로 회원가입후 getUesr메서드시 권한정보가 넘어오지 못했다는 오류가 발생합니다.2023-06-02 00:43:56.952 ERROR 18668 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.lang.IllegalArgumentException: A granted authority textual representation is required at org.springframework.util.Assert.hasText(Assert.java:289) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.security.core.authority.SimpleGrantedAuthority.<init>(SimpleGrantedAuthority.java:39) ~[spring-security-core-5.7.8.jar:5.7.8] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na] at project.hanseovill.security.TokenProvider.getAuthentication(TokenProvider.java:88) ~[main/:na] at project.hanseovill.security.JwtFilter.doFilter(JwtFilter.java:41) ~[main/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 2023-06-02 00:43:56.961 ERROR 18668 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception java.lang.IllegalArgumentException: A granted authority textual representation is required at org.springframework.util.Assert.hasText(Assert.java:289) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.security.core.authority.SimpleGrantedAuthority.<init>(SimpleGrantedAuthority.java:39) ~[spring-security-core-5.7.8.jar:5.7.8] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na] at project.hanseovill.security.TokenProvider.getAuthentication(TokenProvider.java:88) ~[main/:na] at project.hanseovill.security.JwtFilter.doFilter(JwtFilter.java:41) ~[main/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:427) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:357) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:373) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:237) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:319) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 2023-06-02 00:43:56.962 ERROR 18668 --- [nio-8080-exec-7] o.a.c.c.C.[Tomcat].[localhost] : Exception Processing ErrorPage[errorCode=0, location=/error] java.lang.IllegalArgumentException: A granted authority textual representation is required at org.springframework.util.Assert.hasText(Assert.java:289) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.security.core.authority.SimpleGrantedAuthority.<init>(SimpleGrantedAuthority.java:39) ~[spring-security-core-5.7.8.jar:5.7.8] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na] at project.hanseovill.security.TokenProvider.getAuthentication(TokenProvider.java:88) ~[main/:na] at project.hanseovill.security.JwtFilter.doFilter(JwtFilter.java:41) ~[main/:na] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:661) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:427) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:357) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:373) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:237) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:319) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 근데 postman 확인시 authorities가 들어갔다고 나옵니다하지만 getUserName을 통해 확인해보면안들어간게 맞습니다...회원가입후 반환하는 값이 authorities안에 authority가 한겹 더있는 상태라 권한정보를 인식을 못하는 것 아닌가라는 생각을 했는데 admin 같은경우에는 잘 됩니다.며칠째 붙잡고있는데 해결을 못하고 물어볼만한 곳이 없어 여기에 남겨봅니다...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
IntelliJ에서 Thymeleaf 자동완성 되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]IntelliJ Ultimate Edition 을 사용하는데요. IntelliJ 는 html 에서 Thymeleaf 자동완성 기능이 없나요?Thymeleaf Plugin 은 설치했습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
요청 데이터 DTO 관리 방법 질문드립니다.
안녕하세요. 프로젝트 진행 중 궁금한 부분이 생겨 질문 드립니다.클라이언트 요청 데이터를 @RequestBody 등으로 DTO 클래스에 매핑하여 사용할 때 DTO 클래스를 각 요청 유형( 생성, 수정, 삭제, 기타, ... )마다 핏하게 생성하는 게 좋은지, 하나의 DTO 클래스에 입력 받은 후 필요한 것만 뽑아 사용하는 것이 좋은지 질문 드립니다.저는 각 요청 유형마다 핏하게 생성한 후 알맞은 유효성 검사를 적용하는 것이 코드 파악 등 유지보수 관점에서 좋다 생각했습니다. 다만 다른 개발자 분께서 요청마다 DTO를 생성하면 클래스가 너무 많아진다는 의견을 주셔서 고민입니다. 저도 느꼈던 부분이기도 했구요.영한님 혹은 다른 서포터즈 분들은 어떤 방법을 선호하시나요? 좋은 방법이 있다면 추천부탁드립니다.
-
해결됨[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
수강 중 질문 있습니다.
이전 강의 영상에 작성한 질문에 이어 질문 드립니다.일단 이중 객체 검출을 수행 해보려 하는데 힘든 부분이 있습니다. 이전 질문에 대해 말씀드리면 먼저 모델로 큰 이미지를 찾고 같은 모델을 사용하여 작은 이미지를 찾는 것 입니다.1. 이 강의 영상 포함하여 dataset이나 yaml파일을 선생님의 깃허브에서 불러오시는데 제가 자체 제작한 dataset은 제 컴퓨터의 로컬에 있습니다.(ex 바탕화면의 image폴더) 이를 불러오려고 구글링 하여 아래 코드를 사용했습니다.folder_path = r"C:\Users\user\Desktop\image"# 폴더 내의 모든 파일을 가져옴file_list = os.listdir(folder_path)위 코드를 사용하면 없는 폴더라고 에러가 뜨더군요.. 혹시 로컬에서 코랩으로 개인 데이터를 가져오는 방법이 있는지 궁금합니다.2. yaml파일이 잘 이해가 되지 않습니다. 일단 이해한 바로는 설정 파일이나 데이터 구조를 표현하기 위해 사용하는 파일 같은데 이전에 yolo inference 강의 영상에선 못 본 것 같아(있는데 못 봤을 수도 있습니다..) 왜 Ultralytics Yolo에는 사용하는지 궁금합니다.위에 말씀드린 것처럼 개인 dataset을 cvat로 200장 정도 만들어 뒀습니다.. 이미지는 블랙박스 이미지로 도로위 번호판을 annotation하여 로컬에 저장했습니다. (class는 '번호판' 하나)이를 위한 yaml파일을 로컬에서 생성하고 업로드 하는 방법이 궁금합니다.원래 yolo v3로 이중 객체 검출을 만들려고 했습니다. 구상한 모델은 일단 yolo inference 강의의 코드로 pre-training된 yolo에 저의 이미지를 업로드 하여 결과 값의 자동차 부분만 crop하여 자동차 부분의 이미지를 폴더에 저장하고 싶습니다.3. 저의 이미지로 모델을 돌리면 사람 자동차 등 80개의 class에 대해 bbox가 나오는데 이 중 특정 class에 대해서만 보고 싶다면 어떻게 해야 할까요?4. yolo의 수행 결과로 bbox가 나오는데 이 bbox의 좌표값으로 원본 이미지를 crop하는 것이 궁금합니다.5. 제가 구상한 모델의 특성 상 test하기가 애매합니다.자동차 부분을 crop하고 번호판을 찾는 것이라 crop한 이미지에 대한 label을 붙이기도 힘들 것 같습니다.따라서 저의 Custom dataset으로 yolo를 학습시켜 inference한 경우와(1), pre-training yolo v3에서 자동차 부분을 찾아(3~4번 질문) 추출된 이미지를 Custom dataset으로 학습 된 yolo(2)의 성능 비교를 하고 싶다면 어떤 방법이 있을까요?마지막으로 yolo v3모델로 하려고 했는데 Custom dataset의 사용과 학습 시키는 것은 Ultralytics Yolo에서 설명 해주셔서 yolo v3모델로의 Custom dataset학습은 힘든가 궁금하기도 합니다.두서 없이 궁금한 부분을 적어 봤는데 긴 질문에 대해 죄송합니다. object detection에 관심이 생겨서 하나하나 공부하고 있는데 하면 할수록 어렵네요 ㅠㅠ...
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
소켓 질문
소켓은 파일이라고 배웟습니다.파일은 hdd에서 접근합니다. 그러면 소켓통신이라는건 서로 다른 프로세스가 hdd 위에서만 데이터를 주고 받는다 라고 이해할 수 잇을까요?그리고 RAM 이나 cpu에 캐시하지 않고 hdd에서만메모리가 이동하는 것인지도 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-g
http://boj.kr/29fb43fd10d44ca584e97162656381a0안녕하세요 선생님 제 코드 맨 밑에 반례가 안돌아가는 논리적 이유를 알 수 있을까요?? 그리고 저는 질문게시판으로 저 반례를 찾은것인데 이러한 애매한 반례는 어떻게 찾는것이 좋을까요? 예를들어 저 반례는 선생님이 설명해주신 최대 최소로 찾을 수 있는 반례가 아닌거 같습니다.제 코드의 33- 37번째줄은 벡터인경우에만 실행이되나요?선생님이 max값을 200000으로 설정하신 이유가 궁금합니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
함수 동작 원리가 궁금합니다.
function checkmood(mood, goodCallback, bacCallback) { if (mood === "good") { goodCallback(); } else { bacCallback(); } } checkmood("good", sing, cry); function sing() { console.log("sing"); } function cry() { console.log("cry"); } checkmood("good", sing, cry) 이 부분에서 sing이 함수이지만 값으로 들어갔는데, 함수 인자는 값으로만 들어가는걸까요?!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka connector mysql 연결 오류
kafka connector mysql 연결 부분에서 오류가 납니다mac m1 환경인데 구글링해도 이유를 모르겠어서 질문 남깁니다
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
혹시 chapter3 파일에서
이렇게 전 갖다대야 뜨는데 강사님처럼 경고창 밑줄에 안갖다대도 경고 뜨게하려면 어떻게해야해요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-g 질문
http://boj.kr/29fb43fd10d44ca584e97162656381a0안녕하세요 선생님 제가 많은 테스트 케이스들이 돌아가는데 맨 아래에 주석으로 넣은 테케가 돌아가지 않습니다. 혹시 제 코드의 논리적 오류가 무엇인지 찾아주실 수 있으십니까?33줄에서부터 37번째줄까지의 코드는 예전에 벡터를 활용할시 잘 돌아갔는데 큐는 저런 코드를 못사용하나요??