173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
안녕하세요! 복습하는 도중에 이런 에러가 발생되어 질문드립니다 ㅠㅠ import pandas as pd X_train = pd.read_csv('X_train.csv',encoding="euc-kr") y_train = pd.read_csv('y_train.csv') X_test = pd.read_csv('X_test.csv',encoding="euc-kr") print(X_train.shape,y_train.shape) # X_train.head() # y_train.head() # X_train.info() #X_train 환불금액 결측치, 오브젝트 두개 # y_train.info() X_train = X_train.fillna(0) X_train.isnull().sum() X_train = X_train.drop(['cust_id'],axis=1) cust_id = X_test.pop('cust_id') #라벨인코딩 from sklearn.preprocessing import LabelEncoder cols = X_train.select_dtypes( include = 'object').columns cols for col in cols : le = LabelEncoder() X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col]) X_train.head() #검증데이터 분리 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train['gender'], test_size = 0.2, random_state = 2022) X_tr.shape, X_val.shape, y_tr.shape, y_val.shape #모델링 - 랜덤포레스트 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score model = RandomForestClassifier(random_state=2022) model.fit(X_tr,y_tr) pred = model.predict_proba(X_val) roc_auc_score(y_val,pred[:,1]) pred = model.predict_proba(X_test) <------------------이 과정에서 발생되는 오류입니다 pred ValueError: Input X contains NaN. RandomForestClassifier does not accept missing values encoded as NaN natively. 라는 에러가 발생합니다 ㅠㅠ 코드를 검토해봐도 이상은 없는거같은데.. 뭐가문제일까요? ㅠㅠ
python 머신러닝 빅데이터 pandas 빅데이터분석기사
2023-06-10T07:06:10.126Z
댓글 2
좋아요 0
조회수 742
해결됨
[코드팩토리] [초급] 8시간만에 끝내는 코드팩토리의 Typescript 완전정복 풀코스
Generic in inheritance 강의에서 궁금한점이 있어서 질문 드립니다! 밑에 코드처럼 자식 클래스(Winter, Winter2)가 부모 클래스(Person)로 부터 상속을 받았는데 Winer와 Winter2 둘다 super constructor로 부모 속성을 설정 하지 않았는데 어떻게 정상적으로 인스턴스에서 부모속성을 가져오는지 궁금합니다~ class Person<T, Z>{ name: T; age: Z; constructor(name: T, age: Z) { this.name = name; this.age = age; } } // Winter 클래스 상속 class Winter extends Person<string, number>{ }; const winter = new Winter('김민정', 22); console.log(winter); // Winter2 클래스 상속 class Winter2<T, Z> extends Person<T, Z>{ } const winter2 = new Winter2('김민정', 22); console.log(winter2); 보통의 경우 이렇게 해줘야 하지 않나요? 이렇게 해도 작동은 잘 되더라고요ㅎㅎ;; constructor(name:string, age:number){ super(name, age) } 그런데 또 이런 경우는 super constructor 하지 않으면 에러가 발생합니다 ㅎ; class Winter3<T, Z, Part> extends Person<T, Z>{ part?: Part; constructor(part?: Part) { this.part = part } }
5km
2023-06-10T07:02:03.895Z
댓글 1
좋아요 0
조회수 360
해결됨
실전! Querydsl
아래와 같이 작성했는데 memberJpaRepository. searchWhere() 메서드 호출이 안되네요 ..ㅠㅠ 코드가 문제일까요? @Repository //@RequiredArgsConstructor public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory jpaQueryFactory; // 순수 jpa 와 QueryDsl 적용 전 준비 public MemberJpaRepository(EntityManager em) { this.em = em; this.jpaQueryFactory = new JPAQueryFactory(em); } List<MemberTeamDto> searchByBuilder(MemberSearchCond condition){ // BooleanBuilder 동적쿼리 BooleanBuilder builder = new BooleanBuilder(); //StringUtils.hasTest() import stirng.framework -> null, "" 값에 대한 boolean 값 반환 if(hasText(condition.getUsername())){ builder.and(member.username.eq(condition.getUsername())); } if(hasText(condition.getTeamName())){ builder.and( team.name .eq(condition.getTeamName())); } //age 는 null 값 허용 if (condition.getAgeGoe() != null) { builder.and(member.age.goe(condition.getAgeGoe())); } if(condition.getAgeLoe() != null){ builder.and(member.age.loe(condition.getAgeLoe())); } return jpaQueryFactory .select (Projections.constructor( MemberTeamDto.class, member.id , member.username, member.age, team.id , team.name )) .from(member) .leftJoin( member.team ,team) .where(builder) .fetch(); } List<MemberTeamDto> searchByWhere(MemberSearchCond condition){ return jpaQueryFactory .select(Projections.constructor(MemberTeamDto.class, member.id , member.username, member.age, team.id , team.name )) .from(member) .leftJoin( member.team , team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeLoe()), ageLoe(condition.getAgeLoe()) ).fetch(); } private BooleanExpression usernameEq(String username){ return StringUtils.hasText(username) ? member.username.eq(username): null; } private BooleanExpression teamNameEq(String teamName){ return StringUtils.hasText(teamName) ? team.name .eq(teamName): null; } private BooleanExpression ageGoe(Integer ageGoe){ return ageGoe!= null ? member.age.goe(ageGoe): null; } private BooleanExpression ageLoe(Integer ageLoe){ return ageLoe != null ? member.age.loe(ageLoe): null; } }
빛혜원
2023-06-10T07:01:59.592Z
댓글 1
좋아요 0
조회수 409
미해결
타입스크립트의 모든 것
이런식으로 변수에 값을 할당하면서 동시에 사용할수 있다고 하셨는데 examples2 type을 object 선언후 as 로 IExam 을 감싸는 이유가 따로 있을까요 저렇게 했을경우 value 프로퍼티 접근을할경우 빨간줄이 뜨는데 이럴땐 해결하는 방법이 따로 있을까요??
규행
2023-06-10T06:57:27.853Z
댓글 1
좋아요 0
조회수 437
해결됨
홍정모의 따라하며 배우는 C언어
마지막 예시로 * modifier가 scanf 함수에 어떻게 적용되는지 설명하셨는데, *이 scanf 에서 쓰이면 이것과 결합된 형식 지정자는 무시되는 건가요??
이재완
2023-06-10T06:49:54.114Z
댓글 1
좋아요 1
조회수 305
미해결
[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
<header> <footer> 시맨틱태그와 <div class="header"> 클래스 네임 중에 어떤방식으로 시험을 봐야할까요? 둘 다 상관없나요? 강의 화면이랑 다운받은 html 다른 경우도 있는 것 같아서요~
원스텝
2023-06-10T05:52:35.822Z
댓글 1
좋아요 1
조회수 549
미해결
[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
안녕하세요 마지막 프로젝트는 게임이 실행이 안되는거같은데 아직 미완성이라 그런건가요?
김선우
2023-06-10T05:51:42.424Z
댓글 2
좋아요 0
조회수 619
미해결
스프링부트 시큐리티 & JWT 강의
코드 링크 : https://github.com/YuYoHan/JWT 나오는 에러 : 2023-06-10 13:57:50.618 ERROR 17488 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null at com.example.jwt.service.UserService.login( UserService.java:61 ) ~[classes/:na] at com.example.jwt.service.UserService$$FastClassBySpringCGLIB$$41c8b5f9.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke( MethodProxy.java:218 ) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.invokeMethod( CglibAopProxy.java:386 ) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.access$000( CglibAopProxy.java:85 ) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:704 ) ~[spring-aop-5.3.27.jar:5.3.27] at com.example.jwt.service.UserService$$EnhancerBySpringCGLIB$$e9411f63.login(<generated>) ~[classes/:na] at com.example.jwt.controller.UserController.authorize( UserController.java:54 ) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.web.method.support .InvocableHandlerMethod.doInvoke( InvocableHandlerMethod.java:205 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:150 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:117 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:895 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1072 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:965 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:555 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:623 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:209 ) ~[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.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:51 ) ~[tomcat-embed-websocket-9.0.74.jar:9.0.74] 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.security .web.FilterChainProxy$VirtualFilterChain.doFilter( FilterChainProxy.java:337 ) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security .web.access.intercept.FilterSecurityInterceptor.invoke( FilterSecurityInterceptor.java:115 ) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security .web.access.intercept.FilterSecurityInterceptor.doFilter( FilterSecurityInterceptor.java:81 ) ~[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.access.ExceptionTranslationFilter.doFilter( ExceptionTranslationFilter.java:122 ) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security .web.access.ExceptionTranslationFilter.doFilter( ExceptionTranslationFilter.java:116 ) ~[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.session.SessionManagementFilter.doFilter( SessionManagementFilter.java:126 ) ~[spring-security-web-5.7.8.jar:5.7.8] at org.springframework.security .web.session.SessionManagementFilter.doFilter( SessionManagementFilter.java:81 ) ~[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.authentication.AnonymousAuthenticationFilter.doFilter( AnonymousAuthenticationFilter.java:109 ) ~[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.servletapi.SecurityContextHolderAwareRequestFilter.doFilter( SecurityContextHolderAwareRequestFilter.java:149 ) ~[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.savedrequest.RequestCacheAwareFilter.doFilter( RequestCacheAwareFilter.java:63 ) ~[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 com.example.jwt.config.jwt.JwtAuthenticationFilter.doFilter( JwtAuthenticationFilter.java:64 ) ~[classes/: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:829 ) ~[na:na] 제가 알기로는 이 오류는 final을 추가 하지 않아서 생기는 오류로 알고 있는데 문제는 제가 @RequiredArgsConstructor와 final을 모두 추가를 해줬습니다. 그런데 계속 null 오류가 생기네요. 강의와 똑같은 코드는 아니고 변형을 했는데 전체 코드는 git 링크를 올렸으니 일단 오류에서 나온 코드만 따로 올립니다. **UserService** import java.util.Optional; @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; private final BCryptPasswordEncoder bCryptPasswordEncoder; private final AuthenticationManagerBuilder authenticationManagerBuilder; private final JwtProvider jwtProvider; @Transactional public UserEntity signUp(User user) throws Exception { UserEntity userEntity = UserEntity.builder() .email(user.getEmail()) .password(bCryptPasswordEncoder.encode(user.getPassword())) .userName(user.getUserName()) .role(Role.USER) .build(); if(userEntity != null) { return userRepository.save(userEntity); } else { throw new Exception("가입이 실패하셨습니다."); } } public Optional<UserEntity> findById(Long userId) { Optional<UserEntity> byId = userRepository.findById(userId); return byId; } public TokenDTO login(String userEmail, String userPw) { UserEntity byEmailAndPassword = userRepository.findByEmailAndPassword(userEmail, userPw); // 1. Login ID/PW를 기반으로 Authentication 객체 생성 // 이 때 authentication는 인증 여부를 확인하는 authenticated 값이 false UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(byEmailAndPassword.getEmail(), byEmailAndPassword.getPassword()); // 2. 실제 검증 (사용자 비밀번호 체크)이 이루어지는 부분 // authenticate 매서드가 실행될 때 CustomUserDetailsService 에서 만든 loadUserByUsername 메서드가 실행 Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); // 해당 객체를 SecurityContextHolder에 저장하고 SecurityContextHolder.getContext().setAuthentication(authentication); // authentication 객체를 createToken 메소드를 통해서 JWT Token을 생성 // 3. 인증 정보를 기반으로 JWT 토큰 생성 TokenDTO tokenDTO = jwtProvider.createToken(authentication); HttpHeaders headers = new HttpHeaders(); // response header에 jwt token을 넣어줌 headers.add(JwtAuthenticationFilter.HEADER_AUTHORIZATION, "Bearer " + tokenDTO); return tokenDTO; } } **UserController** @PostMapping("/login") public ResponseEntity<?> authorize(@RequestBody User user) { String email = user.getEmail(); String password = user.getPassword(); TokenDTO login = userService.login(email, password); return ResponseEntity.ok().body(login); } @RequiredArgsConstructor @Slf4j public class JwtAuthenticationFilter extends GenericFilterBean { public static final String HEADER_AUTHORIZATION ="Authorization" ; private final JwtProvider jwtProvider; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) request; // 1. Requset Header에서 JWT 토큰 추출 String jwt = resolveToken(httpServletRequest); String requestURI = httpServletRequest.getRequestURI(); if(StringUtils.hasText(jwt) && jwtProvider.validateToken(jwt)) { // 토큰이 유효할 경우 토큰에서 Authentication 객체를 가지고 와서 SecurityContext 에 저장 Authentication authentication = jwtProvider.getAuthentication(jwt); SecurityContextHolder.getContext().setAuthentication(authentication); log.info("Security Context에 '{}' 인증 정보를 저장했습니다., uri : {}", authentication.getName(), requestURI); } else { log.debug("유효한 JWT 토큰이 없습니다. uri : {}", requestURI); } chain.doFilter(request, response); } // Request Header 에서 토큰 정보를 꺼내오기 위한 메소드 private String resolveToken(HttpServletRequest httpServletRequest) { String bearerToken = httpServletRequest.getHeader(HEADER_AUTHORIZATION); if(StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")){ return bearerToken.substring(7); } else { return null; } } } 제가 JWT에 대해서는 잘 몰라서 계획한게 맞는 구성인지는 모르겠지만 계획한 것은JwtProvider에서 accessToken과 refreshToken을 만들고 TokenDTO담아주고 로그인시 그것을 리턴해주려고 계획했습니다. @Slf4j @Component public class JwtProvider { private static final String AUTHORITIES_KEY = "auth"; private Key key; public JwtProvider(@Value("${jwt.secret_key}") String secret ) { byte[] keyBytes = Decoders.BASE64.decode(secret); this.key = Keys.hmacShaKeyFor(keyBytes); } // 유저 정보를 가지고 AccessToken, RefreshToken을 생성하는 메서드 public TokenDTO createToken(Authentication authentication) { // 권한 가져오기 String authorities = authentication.getAuthorities().stream() .map(GrantedAuthority::getAuthority) .collect(Collectors.joining(",")); long now = (new Date()).getTime(); // Access Token 생성 Date accessTokenExpire = new Date(now + 360000); String accessToken = Jwts.builder() .setSubject(authentication.getName()) .claim("auth", authorities) .setExpiration(accessTokenExpire) .signWith(key, SignatureAlgorithm.ES512) .compact(); // Refresh Token 생성 // Date 생성자에 삽입하는 숫자 86480000은 토큰의 유효기간으로써 1일을 나타낸다. String refreshToken = Jwts.builder() .setExpiration(new Date(now + 86400000)) .signWith(key, SignatureAlgorithm.ES512) .compact(); return TokenDTO.builder() .grantType("Bearer") .accessToken(accessToken) .refreshToken(refreshToken) .build(); } // JWT 토큰을 복호화하여 토큰에 들어있는 정보를 꺼내는 코드 // 토큰으로 클레임을 만들고 이를 이용해 유저 객체를 만들어서 최종적으로 authentication 객체를 리턴 // 인증 정보 조회 public Authentication getAuthentication(String token) { // 토큰 복호화 메소드 Claims claims = parseClaims(token); if(claims.get("auth") == null) { throw new RuntimeException("권한 정보가 없는 토큰입니다."); } // 클레임 권한 정보 가져오기 Collection<? extends GrantedAuthority> authorities = Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(",")) .map(SimpleGrantedAuthority::new) .collect(Collectors.toList()); // UserDetails 객체를 만들어서 Authentication 리턴 User principal = new User(claims.getSubject(), "", authorities); return new UsernamePasswordAuthenticationToken(principal, token, authorities); } private Claims parseClaims(String token) { try { return Jwts.parserBuilder() .setSigningKey(key) .build() .parseClaimsJws(token) .getBody(); } catch (ExpiredJwtException e) { return e.getClaims(); } } // 토큰의 유효성 검증을 수행 public boolean validateToken(String token) { try { Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token); return true; } catch (io.jsonwebtoken.security.SecurityException | MalformedJwtException e) { log.info("잘못된 JWT 서명입니다."); } catch (ExpiredJwtException e) { log.info("만료된 JWT 토큰입니다."); } catch (UnsupportedJwtException e) { log.info("지원되지 않는 JWT 토큰입니다."); } catch (IllegalArgumentException e) { log.info("JWT 토큰이 잘못되었습니다."); } return false; } } package com.example.jwt.domain.jwt; import lombok.*; @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class TokenDTO { // JWT 대한 인증 타입, 여기서는 Bearer를 사용하고 // 이후 HTTP 헤더에 prefix로 붙여주는 타입 private String grantType; private String accessToken; private String refreshToken; } 그리고 추가 질문이 있습니다. PrincipalDetailService에서 @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { UserEntity userEntity = userRepository.findByEmail(email); log.info("user : " + userEntity); return new PrincipalDetails(userEntity); } 여기서 오버라이드한게 인자를 username으로 받는데 강의에서는 로그인 자체를 name으로 했지만 저는 로그인을 email형식으로 하려고해서 email로 바꿨는데 맞는건가요..?
유요한
2023-06-10T05:10:20.104Z
댓글 1
좋아요 0
조회수 1574
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요. 몇 가지 질문 드리고자합니다. 로그아웃 후 client.clearStore() 통해서 로그인 정보를 지워주는 것으로 알고 있는데 accessToken이 지워지는건가요? 로그아웃 후 새로고침을 하면 위와 같은 코드가 동작하여 refreshToken이 남아 있어서 토큰을 재발급 받고 있습니다. 로그아웃을 할 때 refreshToken도 삭제할 수 있나요?
react node.js seo graphql next.js
용준
2023-06-10T04:17:47.968Z
댓글 1
좋아요 0
조회수 471
미해결
따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
https://wisdom-cs.tistory.com/m/32 광고는 아니고... 제가 그냥 뒤적이다가 안되서 찾은건데 여기 말대로 하니까 되네요. 결국 보면 해당 강의 참고해서 정리한거같은데 도움이 되셧으면 좋겟네요
aws docker github ci/cd travis-ci 데이터-엔지니어링
2023-06-10T03:39:15.018Z
댓글 1
좋아요 1
조회수 422
해결됨
토비의 스프링 부트 - 이해와 원리
spring boot 3.0 버전 부터 CLI 를 통한 run 명령어가 사용불가능한 것으로 보이는데 대체할 수 있는 방법이 있을까요? https://github.com/spring-projects/spring-boot/issues/32263
spring spring-boot spring-jdbc
jaden
2023-06-10T03:29:00.255Z
댓글 2
좋아요 0
조회수 782
미해결
실전! Querydsl
안녕하세요. 프로젝션으로 결과를 반환할 때 엔티티를 매개 변수로 받으면 안되는 건지 궁금증이 생겼습니다. @Data @NoArgsConstructor public class MemberDto { private String username; private int age; @QueryProjection public MemberDto(Member member) { this.username = member.getUsername(); this.age = member.getAge(); } } 넣어주고자 하는 값이 많을 때 엔티티 자체를 넘겨주면 되지 않나? 라는 생각이 들어 케이스를 구글링해봤는데 모든 예제를 봤을 때 각각의 필요한 값만 매개변수로 설정하는 것으로 보이더라구요. 혹시 그 이유가 있는것인지, 이렇게 매개변수를 엔티티로 받게 되면 문제가 될 부분이 있어서 사용을 하지 않는 것인지 궁금합니다. 감사합니다!
chaerin920
2023-06-10T03:02:04.210Z
댓글 1
좋아요 0
조회수 659
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 api 인증키를 발급받기 위해 sendgrid를 가입하려고 하는데 가입이 되지 않아서 질문남깁니다!!
chlendyd7
2023-06-10T02:41:07.474Z
댓글 3
좋아요 1
조회수 1129
미해결
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
selectedDate 에 현재날짜를 입력했는데 현재날짜가 아니라 과거의 특정 고정날짜를 넣고자 하는데 어떻게 해야 할까요? 예를 틀어 2020.01.01 을 selectedDate 에 넣는 방법요
덕쿵
2023-06-10T02:40:37.259Z
댓글 1
좋아요 0
조회수 325
미해결
[리뉴얼] React로 NodeBird SNS 만들기
import { useState, useRef, useEffect } from 'react'; function VideoPlayer({ src, isPlaying }) { const ref = useRef(null); useEffect(() => { if (isPlaying) { ref.current.play(); } else { ref.current.pause(); } }); return <video ref={ref} src={src} loop playsInline />; } export default function App() { const [isPlaying, setIsPlaying] = useState(false); return ( <> <button onClick={() => setIsPlaying(!isPlaying)}> {isPlaying ? 'Pause' : 'Play'} </button> <VideoPlayer isPlaying={isPlaying} src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" /> </> ); } 위의 코드는 링크에 있는 리액트 공식 문서에 있는 코드입니다 https://react.dev/learn/synchronizing-with-effects useEffect에서 배열을 생략하면 맨처음에 실행되고 그이후는 리랜더링 될때마다 실행된다는데 이번 강좌에서 리액트는 변경하는 props와 state만 리랜더링한다고 하셨습니다 그럼 useEffect를 배열없이 사용하면 연결된 모든 자식 혹은 부모 컴포넌트에서 리랜더링되는 props와 state가 발견이 되면 useEffect가 작동되는 건가요?
react redux node.js express next.js
i1004gy
2023-06-10T02:35:47.174Z
댓글 1
좋아요 1
조회수 295
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
빅데이터분석기사 실기시험 hist 사용이 가능한가요 ? 사용을 못하는 상황에서는 로그적용해볼만한 데이터 분포 확인 쉽게 하는 방법이 무엇이 있을지 궁금합니다 3-6 Regression노트북에서 insurance 데이터셋의 charges 값에 로그를 취하실 때 왼편으로 치우친 것을 확인하신 것 관련 질문입니다 LinearRegression은 모델에 random_state를 안 줘도 계속 5888 이라는 RMSE 값이 나오는 반면에, RandomForestRegressor의 경우, (아마도 모델에 random_state적용이 없어서) 결과가 계속 달라집니다. 혹시 LinearRegression은 원래 그런 특징이 있는 모델인가요??
python 머신러닝 빅데이터 pandas 빅데이터분석기사
김민지
2023-06-10T02:22:12.364Z
댓글 1
좋아요 0
조회수 482
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
안녕하세요? 열심히 수강 중인 직장인입니다. 섹션4 react 기초 1강에서 설명하시는 대로, node.js, npm, yarn까지는 설치가 완료되었습니다만, 그 후 notion이라는 곳에 접속하여 다른 사항들을 설치하고자 하였으나, notion 접속 방법을 모르겠습니다. 영상을 보고 강사님이 접속하신 곳 주소를 그대로 입력하여 접속 및 회원가입을 하였으나, 강사님이 영상에서 보시는 곳과는 사뭇 다른 곳이라 접속 방법 등을 문의코자 글 남깁니다. 빠른 답변 부탁 드립니다.
react node.js seo graphql next.js
gunaadatcom
2023-06-10T02:18:21.028Z
댓글 2
좋아요 0
조회수 833
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제3 의 9번 문제를 풀었는데 답에 '대구'만 나오지 않고 밑에 다른 설명이 나오는데, 무슨 의미이고 왜 나오는지 궁금합니다. [코딩 내용] import pandas as pd df = pd.read _csv('members.csv') # print(df.shape) # print(df.head(10)) df = df.fillna(method = 'bfill') df.head() df = df.groupby(['city', 'f2']).sum().reset_index() df.head() df = df.sort_values('views', ascending=False) df.head() print(df.iloc[2,0]) [답안내용] 대구 <ipython-input-102-fa90dbbb01dd>:7: FutureWarning: The default value of numeric_only in DataFrameGroupBy.sum is deprecated. In a future version, numeric_only will default to False. Either specify numeric_only or select only columns which should be valid for the function. df = df.groupby(['city', 'f2']).sum().reset_index()
python 머신러닝 빅데이터 pandas 빅데이터분석기사
ycann
2023-06-10T02:03:57.520Z
댓글 1
좋아요 0
조회수 341
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님!!! 작업형1 모의문제3 의 7번에서 행의 평균을 loc 를 사용하여 구하셨는데, 혹시 axis=1 을 사용하여 행별로 평균을 못 구하는지요/ 즉, df[2001].mean(axis = 1) 로 할때 에러가 발생다던데 loc만 사용해야 하는가요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
ycann
2023-06-10T01:42:41.595Z
댓글 1
좋아요 0
조회수 309
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
제 하이라키를 첨부해봤습니다. 유니티짱의 y축을 프리징하면 정상적으로 작동하는것처럼 보이지만 근본적인 해결책은 아닌것같습니다. 유니티짱의 하이라키와 플레인의 하이라키 스샷을 찍어봤습니다. ps. 혹시 몰라서 cube의 하이라키도 체크했습니다 cube에는 is trigger를 체크했는데 강의의 내용과 일치하는지 궁금합니다
acocmaster
2023-06-10T01:06:13.115Z
댓글 1
좋아요 0
조회수 545