묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티
Spring Security 6.0 이상 (Spring boot 3.0 이상)에서 다중 config 설정 방법
안녕하세요 이렇게 좋은 Spring Security에 애를 많이 먹던 도중 늦게나마 열심히 듣고 있는 사람입니다. 강의를 들으면서 Spring Security 6.0 이상 버전으로 혼자 마이그레이션 해보며 공부를 진행하는데요..다른 분들은 모르겠지만 저는 6.0 이상 버전에서의 다중 보안 설정에서 애를 좀 먹어서.. 혹시나 저 같으신 분들이 있으실까봐 글을 남깁니다..! 다름이 아니라 Spring Security 6.0 이상 버전에서는 먼저오버라이드해서 함수를 구현하는 것이 아니라 컴포넌트화 시켜서 진행합니다. 또한 HttpSecurity 안의 내용을 구현하는데 변경점이 있다는 것이 가장 큰 차이점인 것 같습니다. 예를 들어 UserSecurityConfig, AdminSecurityConfig를 만들어서 각 경우에 따라 다른 설정을 적용하고 싶은 경우에 두 가지의 config 파일을 만들 수 있다고 가정하면.. 저의 경우에는 AdminSecurityConfig에서 지정한 부분이 권한 정보에 따라 접근이 막히지 않고 다 접근이 가능한 ("/admin/pay"를 user가 접근 가능) 상황이었습니다. 뭐가 문제인지 한참을 찾던 도중https://docs.spring.io/spring-security/reference/servlet/configuration/java.html공식 문서를 통해 답을 찾았습니다.간략하게 해결법부터 말씀드리자면 path로 접근 제한을 하는 경우에 http.securityMatcher()를 사용해야 한다는 점 입니다. 이렇게 하면 아주 잘 구분이 되더군요..! 혹시나 저처럼 하시는 분이 계실까봐 남깁니다..!@Bean @Order(0) public SecurityFilterChain adminFilterChain(HttpSecurity http) throws Exception{ http .securityMatcher("/admin/pay") .authorizeHttpRequests(request -> request.anyRequest().hasRole("ADMIN")); return http.build(); } @Bean @Order(1) public SecurityFilterChain systemFilterChain(HttpSecurity http) throws Exception{ http .securityMatcher("/admin/**") .authorizeHttpRequests(request -> request .anyRequest().hasAnyRole("SYS", "ADMIN")); return http.build(); } @Bean @Order(2) public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeHttpRequests(request -> request .requestMatchers(antMatcher("/user/**")).hasRole("USER") .anyRequest().authenticated());
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
11:04 초에 pk 값이 항상 들어간다고 하셨는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이전 강의에서 strategy = IDENTITY 일때만 persist 시점에 insert 쿼리가 나가서 pk 값을 얻을 수 있다고 하셨는데 지금 상태는 @GeneratedValue 디폴트값(auto) 인데 어떻게 pk 값을 얻을 수 있는건가요??
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
스웨거에 글 등록시 401 에러가 나와요 ㅠ
스웨거에 글 등록시 401 에러가 나와요 ㅠ 뭐가 문제일까요?
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
첫번쨰 사람이지 판단하기
샘 이거복붙으로 해봐도 안되네요 ㅜㅜ 왜 제시어를 입력을 해도 안되나요 ???? 제시어가 입력이되야하는데 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>끝말잇기</title> <style> </style> </head> <body> <div><span id="order">1</span>번쨰 참가자</div> <div>제시어:<span id="word"></span></div> <input type="text"> <button>입력</button> <script> const number = Number(prompt('몇명이참가하나요 ?:')); const $button =document.querySelector('button'); const $input = document.querySelector('input'); const $word = document.querySelector('#word'); //선택하고 let word;//제시어저장 let newWord;// 새로입력한단어저장 const onClickButton=() =>{ if(!word) // 제시어가 비어잇는가? { // 비어잇다 word = newWord; // 입력한단어가 제시어가 된다 $word.textContent = word; } else{ // 비어잇지않다 } }; const onInput = (event) => { newWord = event.target.value; // 키보드를 입력할때마다 그글자가 저장이된다 }; $button.addEventListenter('click',onClickButton); $input.addEventListenter('input',onInput); /*첫번쨰 참가자인지 어떻게 판단을 할가 ??? 제시어가 없으면 첫번쨰 참가자 제시어라고 안니오겟지 그래서 워드를 만든거고 <div>제시어:<span id="order"></span></div> */ </script> </body> </html>
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
MentionsTextarea 와 autoSize 사이 버그가 하나 있습니다.
MentionsTextarea 에 ctrl+c ctrl+v 를 이용하여 값을 입력시 사이즈는 조절되나 글자 줄 수가 잘려서 보이는 버그가 있습니다.MentionsTextarea 을 사용시 실제보이는 textarea와 보이지 않는 span 영역이 생성되는데 이 중 autosize에 span ref만 넘어가서 span영역만 커지고 textarea의 영역은 유지되서 생기는 버그로 보입니다.이후 글자를 제거 하거나 추가로 입력시 정상적으로 보이게 됩니다.
-
미해결[React 2부] 고급 주제와 훅
Library 각은 성격을 가진 module을 import할 때 질문
import * as MyRouter from "./lib/MyRouter"잘 몰라서 그러는데 위와 같이 Library 성격을 가진 module을 import할 때 default object 없이 위와 같이 import하는 convention이 있을까요? 아니면 그외 장점이 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UserWidget의 GetOwningPlayerPawn()은 컨트롤러가 붙어있는 폰만 유효한거죠?
GetOwningPlayerPawn() 함수가 UI와 관련된 플레이어 폰이라고 설명이 되있는데말그대로 플레이어컨트롤러가 붙어있는 Pawn인거죠??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-B 재귀함수 질문 있습니다
안녕하세요 선생님. 선생님께서 제공해주신 정답 코드를 보면 go 재귀 함수를 사용하는데 go의 재귀 부분을 이해하지 못하고 있습니다. void go(int here){ if(here == n + 1){ int sum = 0; for(int i = 1; i <= (1 << (n - 1)); i *= 2){ int cnt = 0; for(int j = 1; j <= n; j++) if(a[j] & i)cnt++; sum += min(cnt, n - cnt); } ret = min(ret, sum); return; } {(A) 위치} go(here + 1); a[here] = ~a[here]; go(here + 1);}위 함수에서 go(1)에서 시작하고 나면 go(2) => go(3) => go(4) 까지 가고 나서 재귀가 한번 끝나고 난 뒤 다음의 동작이 이해가 가지 않습니다. 동작을 확인해보려고 기저 사례 코드와 go(here+1) 코드 사이({A 위치}라고 하겠습니다!)에 a[i]의 요소를 확인해보는 코드를 삽입하여 확인하였습니다.(우선 저 위치에서 a[i]를 확인하는 지도 확실하지 않습니다.) 그런데 3x3 짜리 예시입력에 대해서 행의 뒤집기에 따른 행렬 a[i]의 경우의 수가 8개가 나와야 한다고 생각되는데 A위치에서는 8가지 나오지도 않았습니다. 혹시 마지막 3줄에 따른 재귀함수가 어떻게 돌아가는 지 알 수 있을까요? 4-B 문제와는 별개로 3주차 완전탐색 부터 재귀함수에 따른 문제 풀이 방식이 대부분인데 제가 재귀 함수에 대한 이해가 조금 부족한 것 같아서 어려움을 겪고 있습니다. 재귀 함수 부분을 만들 때(예를 들어 void go(int y, int x){~~} 라면) 언제 다시 (예를 들어 go(ny,nx)) 처럼 적어주어 재귀를 들어가야 하는 지에 대한 어려움이 있습니다. 혹시 이럴 때는 어떠한 방식으로 공부하면 좋을까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
강의 수강 연장 문의 드립니다
안녕하세요. 개인 사정으로 수업을 진행하지 못하였다가 최근 수강은 진행 하고 있는데, 강의 수간 기간이 있는지 몰랐습니다...수강 연장이 가능한지 문의 드립니다
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리제이 설치
맥에서 인텔리제이 설치한게 커뮤니티 버전인가요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
splash 이미지 질문
FutureOr<String?> redirectLogic(BuildContext context,GoRouterState state) { final UserModelBase? user = ref.read(userMeProvider); //로그인 중 final logginIn = state.location == '/login'; //회원가입 페이지 이동중인지 final joinIn = state.location == '/login/join'; //유저 정보가 없는데 //로그인중이면 그대로 로그인 페이지에 두고 //만약 로그인중이 아니라면 로그인 페이지로 이동 if(user == null && !joinIn){ return logginIn ? null : '/login'; } // //유저 정보가 없는데 // //로그인중이면 그대로 로그인 페이지에 두고 // //만약 로그인중이 아니라면 로그인 페이지로 이동 if(user is UserModelLoading){ return logginIn ? null : '/login'; } // // //user가 null이 아님 // // //UserModel // //사용자 정보가 있는상태면 // //로그인 중이거나 현재 위치가 SplashScreen이면 // //홈으로 이동 if(user is UserModel){ return logginIn || state.location == '/splash' ? '/' : null; } return null; }위와 같은 redirect 로직에서 처음final UserModelBase? user = ref.read(userMeProvider); 위와 같은 코드를 실행 할 떄 final userMeProvider = StateNotifierProvider<UserMeStateNotifier,UserModelBase?>((ref) { return UserMeStateNotifier(); }); class UserMeStateNotifier extends StateNotifier<UserModelBase?>{ UserMeStateNotifier() : super(UserModelLoading()) { get(); } Future<void> get() async{ //spalsh화면을 2초 보여주기 위한 스탑워치 await Future.delayed(Duration(milliseconds: 1800)); state = null; return; } Future<void> getMe(UserModel userModel) async { state = userModel; } }위의 코드에서 get 함수를 거치게 되는데 await를 걸어둔 delayed 로직이 다 끝나기도 전에 return을 해버려 splash 이미지가 다 뜨기도전에 로그인 화면으로 넘어갑니다 해결방법이 있을까요
-
미해결[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
강의 중 에러 질문
다르게 적용해보는 Feature Engineering15:50df_all['Age'] = df_all.groupby(['Title', 'Pclass'])['Age'].apply(lambda x: x.fillna(x.median()))에서 아래와 같은 에러가 뜹니다. 11613 if not value.index.is_unique: 11614 # duplicate axis 11615 raise err 11616 > 11617 raise TypeError( 11618 "incompatible index of inserted column with frame index" 11619 ) from err 11620 return reindexed_value TypeError: incompatible index of inserted column with frame index 이전 챕터에서 df_all["Age"].fillna(df_all.groupby(['Title', 'Pclass'])["Age"].transform("median"), inplace=True)위와 같은 진행했었던 기억이 있는데 비슷한 맥락이 맞나요?아직 모르는게 많아서 강의자료에서 에러가 뜨면 턱턱 막히네요.... 😢
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
서비스 중 API 수정이 어렵다는 부분에 궁금한 점이 있습니다
7:47부터 말씀하시는 내용에 대한 질문입니다.API 설계가 잘못되었더라도 서비스 도중이면 수정하기가 어렵다고 하셨는데요.예시로 보여주신 것처럼 API 내에서 쓰이는 함수는 섣불리 건들면 안된다는건 이해가 되었습니다. 그런데 (':url/members/:id')에서 (':url/users/:id')로 고치는 것과 같이 URL 수정에는 어떤 이유로 어려움이 있는지가 궁금합니다.제가 생각하기에는 개발자가 아닌 일반적인 사용자들은 프론트엔드에서 버튼과 같은 UI를 클릭해서 이용하지, 위 URL을 전부 입력해서 사용하는 경우는 잘 없지 않을까? 라고 생각이 들거든요.혹시 같이 작업 중인 동료 개발자들에게 혼란을 줄 수 있는 이유에서일까요?
-
미해결
파이어베이스를 이용한 안드로이드 앱 개발
파이어베이스에 realtime이란 데이터베이스가 있던데, 그렇다면 sqlite나 mysql을 사용하여 데이터베이스를 저장할 필요없이 realtime 데이터베이스로만 데이터들을 저장하면 될까요?! 그리고 초보자가 서버를 구축하려면 node js를 쓰는 게 제일 무난할까요? 고수님들..많은 조언 부탁드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
라벨인코딩 원핫인코딩 질문드립니다.
라벨인코딩이랑 원핫인코딩의 경우 X_train의 데이터 타입확인 시 object 형 컬럼이 있을때만 시행하는게 맞는걸까요?만약 전체 컬럼이 int형 또는 float 형일때는 안해줘도 되는건가요?만일 X_train 데이터에는 object 컬럼이 없는데 X_test 데이터에는 object 컬럼이 있어도 라벨인코딩 또는 원핫인코딩을 시행해줘야되는걸까요?추가적으로 데이터 분리의 경우 언제 사용해주는건가요?? 작업형 2유형에서 무조건적으로 사용해줘도 문제없는건지 아니면 사용할 조건이 있는건지 궁금합니다 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MEMBER테이블 생성안됨
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 다른 MEMBER테이블이 생성되지 않는다는 게시글을 읽고, H2경로 설정에 대한 글 전체 다 읽었지만 여전히 testMember()메서드는 통과하지만 MEMBER테이블이 생성되지 않습니다.... 참고로 로그에 CREATE TABLE( ... )은 정상적으로 나오네요. application.yaml은 다른 강의듣는 분 자료 검색해 참고해서 그대로 복붙했습니다(띄어쓰기 문제ㄴㄴ) jpashop의 경로는 C:에 있습니다..... 추가) 내pc>다운로드 의 경로에 있는 jpashop.trace, jpashop.mv파일을 삭제 후 이렇게 연결했더니 성공했지만 testMember()메서드가 통과하지 못하네요..... 오류메세지는 이렇게 납니다.org.h2.jdbc.JdbcSQLNonTransientConnectionException: Unsupported database file version or invalid file header in file "C:/Users/User/jpashop.mv.db" [90048-214] 제가 궁금한 점은왜 h2.bat실행시 바로 꺼지는가application.yaml과 h2 console의 경로만 맞춰주면 강의를 따라하지 않아도 된다고 하는데 맞는가jpashop의 경로와 h2의 경로를 맞춰야하는가...??
-
미해결데이터 자동화(with VBA)
vba음영처리되어있음
음영해제를 어떻게 하는지요?보이는데 체크할수 없게 음영처리되어있음
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
추상화, 의존성 주입 질문 드립니다!
안녕하세요 강의를 보다가 질문 드리고 싶은 부분이 있어 작성하게 되었습니다.강의자료 2.커넥션풀과 데이터소스 이해 마지막 부분에서"외부에서 DataSource 를 주입 받아서 사용한다." 라고 설명을 해주셨는데DataSource 의 구현체를 DriverManagerDataSource를 주입 받을지 HikariDataSource를 주입 받을지 어떻게 정해지는건지 궁금합니다. 라이브러리에 현재 h2 데이터 베이스만 등록되어있어DriverManager에 h2 Driver가 의존성 주입이 되고h2 Driver 구현체를 사용함으로써DataSource에 자동으로 DriverManagerDataSource 의존성 주입이 되고DriverManagerDataSource 을 구현체를 사용함으로써 PlatformTransactionManager에 자동으로DataSourceTransactionManager 구현체를 주입 받고 MemberServiceV3_1 에서도 자동으로private final PlatformTransactionManager transactionManager;DataSourceTransactionManager를 외부로 자동으로 주입 받는게 맞을까요?? 그러면 혹시 나중에 라이브러리에 DB가 2개 이상 존재하게 되면 인터페이스에 어떤 구현체를 주입하게 되는지특정 config 에서 드라이버 및 데이터 소스, 트랜잭션 매니저 주입을 설정하게 되는건지 질문드립니다. MemberServiceV3_1Test에서 아래와 직접 같이 의존성 주입을 하는 것과 마지막에 트랜잭션 문제 해결 - 트랜잭션 매니저2 정리 부분을 설명을 듣던 중 갑자기 질문을 생각하게 되었습니다.DriverManagerDataSource dataSource= new DriverManagerDataSource(URL, USERNAME, PASSWORD); memberRepository= new MemberRepositoryV3(dataSource); PlatformTransactionManager transactionManager= new DataSourceTransactionManager(dataSource);memberService= new MemberServiceV3_1(transactionManager, memberRepository);너무 뻔한 질문이라면 죄송하다는 말씀 드리겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예측 부분 오류 질문드립니다.
랜덤포레스트 하나만 실시 후에 예측 했는데요오류가 뜨는데 이유를 모르겠습니다.../usr/local/lib/python3.10/dist-packages/sklearn/base.py:439: UserWarning: X does not have valid feature names, but RandomForestClassifier was fitted with feature names warnings.warn( --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-106-aa9a7e4fa732> in <cell line: 2>() 1 # 예측 ----> 2 pred = model.predict_proba(X_test) 3 pred 3 frames/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name) 900 # If input is 1D raise error 901 if array.ndim == 1: --> 902 raise ValueError( 903 "Expected 2D array, got 1D array instead:\narray={}.\n" 904 "Reshape your data either using array.reshape(-1, 1) if " ValueError: Expected 2D array, got 1D array instead: array=[ 8285. 10192. 8675. ... 7390. 9977. 5696.]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
카이제곱
카이제곱 독립성검정에서의 검정통계량은 무슨의미를 가지나요?p-value는 이해했어요ㅠ