묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
새로운 테이블 추가방법?
새로운 테이블을 Model에 추가할 경우 어떤 방법이 있을까요?
-
미해결
스프링부트 테스트에서 @AuthenticationPrincipal UserDetails userDetails 테스트
컨트롤러 테스트에서 @AuthenticationPrincipal UserDetails userDetails에 해당하는 부분을 테스트하려고 하는데 계속 실패해서 질문드립니다 ㅠㅠ // 회원 탈퇴 @DeleteMapping("/{memberId}") @Tag(name = "member") @Operation(summary = "삭제 API", description = "유저를 삭제하는 API입니다.") @PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')") public String remove(@PathVariable Long memberId, @AuthenticationPrincipal UserDetails userDetails) { try { String email = userDetails.getUsername(); log.info("email : " + email); String remove = memberService.removeUser(memberId, email); return remove; } catch (Exception e) { return "회원탈퇴 실패했습니다. :" + e.getMessage(); } }이런식으로 프론트가 헤더에 accessToken을 보내주면 검증을 한 후 @AuthenticationPrincipal UserDetails userDetails이거로 정보를 가져와서 권한과 해당 유저인지 체크 후 처리하는 로직을 구성하고 있는데 이거를 테스트할 때 막혔습니다.일단 구글에서 검색해서 나온 방법들을 다 사용해도 실패가 뜨네요.↓구글에서 나온 방법 적용@Retention(RetentionPolicy.RUNTIME) @WithSecurityContext(factory = WithAuthUserSecurityContextFactory.class) public @interface WithAuthUser { String user() default "test@test.com"; String role() default "USER"; }public class WithAuthUserSecurityContextFactory implements WithSecurityContextFactory<WithAuthUser> { @Override public SecurityContext createSecurityContext(WithAuthUser annotation) { String email = annotation.user(); String role = annotation.role(); MemberEntity member = MemberEntity.builder() .memberId(1L) .email(email) .memberPw("dudtjq8990!") .memberName("테스터") .memberRole(Role.valueOf(role)) .nickName("테스터") .memberPoint(0) .provider(null) .providerId(null) .address(AddressEntity.builder() .memberAddr("서울시 강남구") .memberZipCode("103-332") .memberAddrDetail("102") .build()) .build(); UserDetails userDetails = new PrincipalDetails(member); Authentication authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(authentication); return context; } } @Test @WithAuthUser void remove() throws Exception { Long id = 1L; String email = "test@test.com"; mockMvc.perform(delete("/api/v1/users/{memberId}", id) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); verify(memberService).removeUser(id, email); } org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: No primary or single unique constructor found for interface org.springframework.security.core.userdetails.UserDetails 이런 오류가 발생합니다. 찾아보니까 UserDetails를 구현한 클래스 PrincipalDetails에 생성자가 없어서 나오는 오류라고 하는데 문제는 해당 클래스에 기본 생성자가 있다는 것입니다. 생성자가 있는데 계속 없다고 에러가 발생합니다. @ㅇNoArgsConstructorㅇ
-
미해결스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AutoAppConfig와 AppConfig의 빈을 중복 등록하면 충돌이 일어나기 때문에@ComponentScan( basePackages = "hello.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )이런식으로 필터를 씌워 막아둔 것으로 압니다.그런데 CoreApplicationTests를 실행하였을 때, NoUniqueBeanDefinitionException이 터지고 이를 해결하기 위해 AppConfig의 @Configuration 어노테이션에 주석을 걸어두니 정상적으로 테스트가 통과됩니다. 왜 이런건가요?
-
미해결백엔드 개발자 성능 개선 초석 다지기
모니터링 관련 질문
스카우터를 사용하면 트랜잭션 마다, 소요시간을 볼 수 있고, 로그도 확인이 가능한 것이 굉장히 매력적으로 느껴졌는데요실무에서도 많이 사용하는 툴 인가요? AWS 환경에서도 한 번 적용을 해보고 싶은데, AWS와도 같이 사용하는 편인가요?그리고 서버가 여러 대 있는, 스케일 아웃 환경에서는 어떤 식으로 사용되나요? 인스턴스마다 스카우터를 설치를 하고, 모니터링을 하는건가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
프로그래머스에서는 어떤 문제를 풀어야 하나요
레벨1은 그냥 풀겠는데 레벨2부터는 난이도 책정이 백준에 비해 넓은 것 같더라 구요 그래서 정답률 몇 짜리 정도 되는 걸 풀어야 하는지 알 수 있을까요
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
accounts/url 질의
화면과같이 include 부분 강좌와 다르게 저절로 세팅이 되고 서버 실행하면 계속 오류가나는데 어떻게해야하나요ㅜㅜ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS, BFS 소스 코드 질문있습니다
http://boj.kr/eb95bf013f5d4203bfdb1e9e027fc489백준에 DFS,BFS문제가 있어 강의 소스코드 복습차 풀어봤는데, 테스트케이스는 통과하지만 제출했을 때 오답입니다.소스코드를 응용하지 못하고 놓친 포인트가 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R. 질문있습니다
http://boj.kr/eaf52073800f4b9397140cea145862d6제 코드에서 놓친게 무엇일까요..!현재 노드에서 이어진 것이 없고, 잘리지 않았다면 리프노드로 판단해서 수를 카운트 해주었는데 오답입니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 질문있습니다!
http://boj.kr/132cce1f1dab4af7be9ad1e722220221이 코드가 틀린 이유가 뭘까요..ㅠ 도저히 모르겠네요.그리고, 정답 풀이에서 check bool 변수가 하는 역할이 무엇일까요? 제 코드와의 차이가 check 플래그 변수가 없다는 것이 가장 큰 차이인 거 같은데 왜인지 모르겠습니다..
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
문서에서 어떤걸 찾아야 하고 어떻게 읽어야하는지도 알려주시면 좋겠습니다
안녕하세요. 4. CDP Command 종류 많죠? 잘 정리된 사이트 소개해드림부분 강의 듣고있습니다. 파란 사이트, 초록 사이트 주소 알려주신다고 했는데 어디에 나와있나요? 그리고 문서에서 어떤 걸 저희가 능동적으로 찾아야 하고 어떻게 읽고 적용하는지도 알려주시면 좋겠습니다. 필요한 걸 저희가 직접 찾고 적용하는 방법을 알려주셔야 하는데 그냥 코드만 알려주시니까 저희 상황에 맞게 수정하는 방법을 모르겠습니다. 문서를 활용해서 저희에게 어떤 속성이 필요한지 찾는 방법도 자세히 알려주시면 감사하겠습니다. Emulation 이랑 Network랑 뭐가 다른지도 모르겠어요. setDeviceMetricsOverride 가 왜 필요한건진 알겠는데 이 속성이 필요하다는 걸 아는 방법은 모르겠어요. 즉 물고기를 잡아주기만 하는 게 아니라 잡는 방법을 알려주셨으면 합니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
route 오류
route 오류가 떠서요 라우터를 깔았는데 왜이럴까요 ??
-
미해결실리콘밸리 엔지니어와 함께하는 Apache Airflow
메타데이터 의미
강사님 안녕하세요메타데이터는 테이터의 설명 즉, 테이블에 대한 명세서 라고 정의 하는것을 봤습니다. 그런데 또 다른 의미로 원천 데이터 라는 의미로도 사용될 수 있을까요? 예를들어 overview강의에서 6:24초에 "다른 메타 데이터와 합성해서"라고 말씀 해주셔서요! 사소하지만 조금 헷갈려서 문의 드립니다!강의 잘 듣고 있습니다. 감사합니다!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
수정이라는 작업을 할 때 PUT을 더 사용하는 이유가 있을까요?
HTTP 메서드에 처음 공부할 때 수정의 경우에는 PUT과 PATCH를 사용한다고 배웠는데요. PUT의 경우에는 통째로 갈아끼우는 방식의 갱신이고PATCH의 경우에는 부분 수정이 가능하다고 배웠습니다.이 강의에서는 USER의 정보중에 이름만받고 있어서(PUT은 전체 필드를 명시해주어야 한다고 배웠습니다.) PATCH가 더 적당한 방식이 아닌가라는 생각이 들었습니다. PATCH가 아닌 PUTMapping을 사용하신 이유가 있으실까요? 그리고 이와 관련된 블로그 글들이 많은데 저마다 내리는 결론이 달라서 조금 혼란스럽습니다. 강사님의 생각을 듣고 싶습니다.좋은 강의 만들어주신 태현님을 존중하고 존경하며 이만 글 줄이겠습니다!
-
해결됨토비의 스프링 부트 - 이해와 원리
@Conditional 학습테스트 << 강의중 질문있습니다!
안녕하세요 토비님. 수업 잘 듣고있습니다다름이 아니라,학습테스트 강의 중에, @Conditional() 괄호 안에 있는 클래스의 리턴값에 따라 true/false를 반환하는 void conditional() 테스트 메서드에 대해 질문이 있습니다. true를 리턴하는 경우 코드가AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();ac.register(Config1.class);ac.refresh();MyBean bean = ac.getBean(MyBean.class);이고, false를 리턴하는 경우는AnnotationConfigApplicationContext ac2 = new AnnotationConfigApplicationContext();ac2.register(Config2.class);ac2.refresh();MyBean bean2 = ac2.getBean(MyBean.class);인데요..여기서 true 테스트는 성공하고 false테스트는 실패를 합니다.여기서 생긴 의문점은, ac와 ac2 둘다 스프링 컨테이너를 가리키는 것인데, ac.getBean의 결과와 ac2.getBean의 결과가 다르다는것은 앞서 ac.register()해서 등록한 MyBean이 ac2 스프링 컨테이너에는 없다는 것으로 해석이 되는데요.. 스프링에서는 스프링 컨테이너라는것이 하나 존재하고 그 안에 여러 빈들이 들어있다고 지금까지 생각하고 있었습니다.그래서 ac에서 bean을 등록했기때문에 ac2.getBean을 해도 똑같이 MyBean이 존재해야 하는것이 아닌가?? 라는 의문점이 듭니다. Q1. ac와 ac2 는 다른 스프링 컨테이너인가요 ??Q2.다른것이라면 , 스프링에서는 스프링컨테이너가 여러개 존재하는 것인가요??읽어주셔서 감사합니다. 새해 복 많이 받으세요
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃허브 권한 요청드립니다.
인프런 아이디 : jhj951105@gmail.com인프런 이메일 : jhj951105@gmail.com깃헙 아이디 : jhj951105@gmail.com깃헙 Username : OngNyang 감사합니다 :)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 5-R 주사위 윷놀이 질문이 있습니다.
#include<bits/stdc++.h>using namespace std; const int INF = 987654321;int a[14], mal[4], n = 10;int v[104]; 에서 원소 값을 넣어주는 int v[104]; 의 배열 크기가 70, 80으로 해보면 값이 달라지는 것을 확인을 했습니다. 실제로 31까지 밖에 인덱스를 사용하지 않음에도 불구하고 100 이상으로 배열의 크기를 올려줘야 하는 이유는 무엇일까요? 통상적으로 +3정도 배열의 크기를 잡아주었습니다! 이번 예시로 앞으로 배열의 크기를 잡을 때 3배 정도의 크기로 잡아주어야 하나 고민을 하게 되었습니다.
-
미해결현업 실무자에게 배우는 Kaggle 머신러닝 입문 - ML 엔지니어 실무 꿀팁
강의자료 요청드립니다.
강의자료 중 교안이 없어 연락드립니다. 교안(PPT) 요청드립니다. 아래 메일로 전달해주시면 감사하겠습니다. actorarnie@gmail.com
-
미해결프로그래밍, 어떻게 공부할 것인가
업무를 의도적 수련화 할 수 있나요? 를 포함한 몇 가지 질문
우선, 좋은 강의를 올려주셔서 감사합니다. 강의 내용을 모른채 살아왔던 과거 시간이 너무 아쉬울 정도로 너무 좋았습니다. 특히, 수강 기간이 정해져 있는 강의여서 쟁여놓고 안보는게 아니라 챙겨보게 되었는거 같아 다행이라고 생각합니다. 첫번째 질문은 업무를 의도적 수련화 할 수 있는지에 궁금합니다.전문성에 대한 다양한 의견과 미신 강의에서 우리가 하는 업무와 의도전 수련은 다르고,1만 시간의 법칙에서 말하는 세계적 수준을 하려면 업무 시간을 제외한 의도적 수련으로 1만 시간을 채워야 한다고 말씀하셨는데요. 그렇다면, 업무를 할 때 의도적 수련을 위한 4가지 조건이 충족된다면 이것도 1만 시간의 연습량에 포함될 수 있을까요? 두번째 질문입니다.안전한 놀이공원 보단, 진흙탕 같은 현실의 문제를 해결 할 때 개발자가 성장한다고 생각하는데, 이러한 시간도 1만 시간에 포함될 수 없는 걸까요? 세번재 질문입니다.전문성에 대한 대표적 미신 중 이해가 잘되면 기억이 오래 남는다 라는 사실이 미신 임을 좋은 사례와 근거를 기반으로 설명해주셨는데요. 그럼 기억이 오래갈려면 어떻게 하면 좋을까요? 네번째 질문입니다.이건 좀 모호할 수 있는데요. "한 권의 책만 읽은 사람을 조심하라"란 말이 있는데요. 창준 님의 강의가 너무 설득되고 좋긴 한데, 저 말이 딱 제 상황은 아닌가 걱정되는데.. 제가 너무 맹목적으로 추종하고 있는건 아닌가 생각이 드네요. 이건 질문이라고 하기는 좀 그런거 같긴 합니다.
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
일시적인 리다이렉션 307 Temporary Redirect 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 김영한님의 강의 잘 듣고 있습니다.강의를 듣가가 궁금한 점이 생겼는데요일시적인 리다이렉션에서 307 Temporary Redirect는 Post로 요청하면 똑같이 요청 메서드도 유지가 되는데 만약 주문 데이터를 Post /order HTTP/1.1로 요청을 하면 응답으로 HTTP/1.1 307 Temporary Redirect 헤더 부분에 Location: /order-result/19 결과 위치를 알려주는 거라면 리다이렉트시 어떤 형태로 Post를 하게 되나요? Post면 위치로 이동 후 다시 결과를 등록하는 건가요..?이해가 잘 안됩니다. 307은 Post로 요청을 하면 다시 Post로 리다이렉트가 되니깐 PRG가 될 수 없는 건가요?
-
미해결
SQL 오류문의
아래 선생님 강의 보면서 따라했는데 END AS NAME 콤마하고 띄우고 * 를 입력했는데 오류가 발생합니다.구문SELECT CASEWHEN CategoryID = 1 THEN '음료'WHEN CategoryID = 2 THEN '탄산'ELSE '기타' END AS NAME, *FROM Products