묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
localhost:8080/path 빈화면 출력 에러에 관하여
프로젝트 생성 후 서버를 띄우는 것까지는 정상적으로 작동하였고 서블릿 코트를 작성해서 설정한 urlPatterns에 입력한 값으로 검색을 하니 Whitelabel Error Page만 계속 뜨는데 어떤 부분에서 문제인지 잘 모르겠습니다.
-
미해결스프링 핵심 원리 - 기본편
자바빈 vs 스프링빈
자바빈 과 스프링빈은 용어에서 빈이라고 되어 있어서 헷갈리는데요, 그냥 다른 것이라고 생각하는데 더 나을까요?
-
미해결PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)
117번 동영상이 안올라온거 같아요
그런거 같아요
-
미해결실전! 스프링 데이터 JPA
단건 조회 시 Optional
<순수 JPA 기반 리포지토리 만들기>에서 단건 조회 시 Optional로 반환하는데, repository layer에서 orElseThrow를 던지는 방법은 별로인가요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
FormLogin, HttpBasic를 모두 비활성화해도 로그인 이후에 Redirect가 발생하나요?
안녕하세요. 강사님. 강의 외적인 내용이지만, 질문 좀 드리겠습니다.JWT로 로그인하는 스프링 서버를 만들었는데요.클라우드에 올린 서버가 포스트맨의 POST 형식의 로그인 요청을 수행한 뒤, 동일한 url의 GET 요청으로 Redirect 되는 현상을 발견했습니다.스프링 서버를 로컬에서 띄우는 경우에는 발생하지 않습니다. 강의를 전부 듣지는 않았지만, FormLogin, HttpBasic를 모두 비활성화해도 로그인 이후에 Redirect가 발생하나요? Redirect를 안하고 싶은 경우는, 어떻게 설정하면 될까요?JwtFilter의 doFilter 로직에 AuthenticationSuccessHandler 구현체를 만들어서 처리하면 되는 것까지 확인했습니다.
-
미해결스프링 핵심 원리 - 기본편
영상이 안 보입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제목 그대로 인데요mac에서 강의를 듣던중에 다음강의로 넘어가니 그이후 강의부터는 영상이 안 보입니다모바일로는 보이는데 pc로 보려면 어떻게 해야할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
No tests were found
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]위처럼 join_membership하면 체크표시가 뜨고 한글로 작성하면 No tests were found라고 뜨는 이유는 뭔지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
전체 회원 다 뜨는거 말고 원하는 아이디만 찾을떄 어떻게해야 할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <form action="/members/find" method="post"> <div class="form-group"> <label for="name">찾기</label> <input type="text" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit">찾기버튼</button> </form> </div> <!-- /container --> </body> </html>find.html입니다.<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <table> <thead> <tr> <th>#</th> <th>이름</th> </tr> </thead> <tbody> <tr th:each="member : ${members}"> <td th:text="${member.id}"></td> <td th:text="${member.name}"></td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html> memberfind.html 입니다 memberController.java 입니다 @GetMapping("members/find") public String find(MemberForm form) { return "members/find"; } @PostMapping("members/find") public String find(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberfind"; } } List<Member> members = memberService.findMembers(); 여기 부분을 List<Member> members = memberService.findOne(); 으로 바꾸어야할텐데 ()-> 여기안에 매개변수를 뭘로 해야할까요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
QuerryDSL은 JPA기술에서만 적용이 가능한가요? + 여러가지 질문이 있습니다.
JPA소개2 강의에서 여러 프로젝트의 DB관련 기술을 보면 QueryDSL을 사용한다고 설명해주셨는데 이전 다른 기술 강의에서도 queryDSL은 동적쿼리를 자동으로 생성해준다 라고 들었습니다. 마이바티스나 jdbc템플릿에서는 queryDSL을 사용하지 못하는건가요?+ 그리고 프로젝트를 해보려고 하는데 jpa는 내용이 많은것 같아 MyBatis를 먼저 사용해서 프로젝트를 진행하고 추후에 영한님의 다른jpa강의 로드맵을 수강하면서 프로젝트를 수정해볼려고 생각중입니다. 그것과 관련된 질문으로 섹션8부터 있는 내용들을 일단 건너뛴 후 프로젝트를 진행하고 나서 나머지 섹션을 수강하고 로드맵의 스프링 로드맵의 핵심원리 고급편과 핵심원리 활용을 수강하여도 학습에 무리가 없을까요? 아니면 섹션 8내용은 일단 건너뛴 후 핵심원리 활용과 고급편을 수강은 일단 하는게 좋은가요?
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
DROP 전략과 LATEST 전략의 차이점이 무엇인가요?
안녕하세요. 수업 잘 듣고 있습니다~백프레셔 전략 중 DROP과 LATEST 전략은 결국 버퍼가 비워질 때까지 Publsiher에서 emit되는 데이터를 제거(drop or discard)하는 것으로 이해했습니다. 버퍼가 비어지는 시점 이후로 emit되는 데이터를 다시 버퍼에 채운다는 점에서 두 전략은 같은 것으로 보입니다. 차이점을 알려주시면 감사하겠습니다~
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실무에서 매핑 테이블은 어떻게 활용할 수 있을까요?
토이 프로젝트를 진행하던 중 궁금한 내용이 생겨서 질문 드립니다.과거 Mybatis와 같은 것을 활용해 진행할 때는코드 매핑 테이블에 코드값 (기본키)과 코드명 이렇게 있고특정 테이블에서는 이러한 코드 값 키를 들고 있어 서브쿼리를 활용해 코드 명을 가져오는 방식으로 활용했습니다.JPA에서 위 구조를 활용하려면 특정 엔티티에 코드 엔티티를 넣고 서로 연관관계를 걸어 준 후에 fetch join으로 select 하는게 베스트 일까요?
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
Security 에서 사용되는 Filter 의 @Bean 등록에 관하여 질문있습니다.
안녕하세요 선생님, 제가 읽은 spring security 문서와 제공해주신 ppt 의 내용에 약간 다른 점이 있어서 질문드립니다. [인증 관리자 - AuthenticationManager - 1] 강의 20:54 에 나오는 ppt 에는 CustomAuthenticationFilter 를 @Bean 으로 등록하라고 나옵니다. 그런데 제가 읽은 spring security 문서에서는 spring security 전용 Filter 는 단순히 @Bean 으로만 등록하면 servlet container 에 의해서 자동으로 Filter 로 등록되버리기 때문에 FilterRegistrationBean 까지 사용해서 이를 우회하라는 글을 본적이 있습니다. 참고: Architecture :: Spring Security 혹시 ppt 오타일까요?
-
미해결
spring GCP 배포 mysql 문제
현재 spring boot 프로젝트를 GCP를 통해 배포하는 중인데요,rds 만들어서 연동도 잘 해두었고 ssh로 들어갔을때 mysql 연동도 잘 됩니다.근데 jar 파일로 서버를 실행하려고 할 때 이런 에러가 나더라구요ㅜㅜ 찾아보니까 mysql 연동 문제라고 하던데 아무리 봐도 모르겠습니다...제발 도와주세요ㅜㅜㅜ
-
미해결
동시성 처리 관련 스레드 풀 설정 질문
@Test @DisplayName("쿠폰 여러 명 발급") void 쿠폰_여러_명_발급() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { final int threadNumber = i + 1; Integer key = i; executorService.submit(() -> { try { couponService.issueCoupon(param, usersMap.get(key)); } catch (PessimisticLockingFailureException e) { .... }쿠폰 발급 동시성 처리 관련해서 테스트 코드 작성 간 궁금한 점이 있어서 질문을 올립니다. 구글링해서 작성해봤는데, 제가 이해하는 게 맞나 싶어서요... Executors.newFixedThreadPool(32) 이렇게 설정해주면, 32 개의 고정된 스레드 풀을 생성한다는 것이고 1,000 명의 유저가 해당 스레드 풀이 나눠서 작업이 수행된다는 것인가요 ? 그러니까 하나의 스레드에서 약 31명의 유저를 담당한다는 뜻일까요 ? 아니면 순차적으로 1,000 명의 유저를 하나의 스레드에 한 명씩 배치하여 작업하는 것이고, 실질적으로 한 순간에 32명의 유저만 작업한다는 뜻일까요 ? ㅠㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 시큐리티와 필터 그리고 인터셉터 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 항상 강의 잘 보고 있습니다.서블릿 필터는 서블릿이 제공하는 기술이고,스프링 인터셉터는 스프링 MVC가 제공되는 기술이라고 설명하셨습니다.또한, 인터셉터는 스프링 MVC 구조에 특화된 필터 기능을 제공하고, 스프링 MVC를 사용하고, 특별히 필터를 꼭 사용해야 하는 상황이 아니라면 인터셉터를 사용하는 것이 더 편리하다고 말씀하셨습니다. 그리고 스프링 시큐리티는 필터들의 집합이라고 이해하고 있습니다. 그러면 실무에서는 스프링 시큐리티로 필터를 사용하고,인터셉터를 스프링 MVC에서 사용하는 등 함께 사용하나요?? 즉, "스프링의 시큐리티의 Filter는 Servlet Container에서 동작하여 모든 요청에 대해 실행되므로 보다 저수준의 작업을 처리하기에 적합" 하고,"스프링 MVC의 Interceptor는 주로 프레임워크나 비즈니스 로직에 특화된 작업을 처리할 때 사용되며, 스프링과 같은 프레임워크에서 제공하는 레벨에서 사용함"이라고 이해하면 되는건가요?? 강의를 보다 보면 인터셉터가 필터보다 더 유용하다고 느껴졌는데 실무에서는 어떻게 사용하는지 궁금합니다 ! 감사합니다
-
미해결Practical Testing: 실용적인 테스트 가이드
a 서비스에서 b 서비스를 의존하는 코드에 대한 테스트는 어떻게 해야 되나요??
안녕하세요 강사님, 궁금한게있습니다.인스타그램, 페이스북을 사용할 때 제가 쓴 게시글에 다른 사람이 댓글을 달면 알림이 생성되는데, 제가 작성한 로직에서는 CommentService에서 댓글을 작성하고 alarmService를 호출하여 알림까지 생성하는 로직입니다.이렇게 로직을 짰을 때 제가 생각한 문제점에 대한 해답을 찾고 싶습니다.1. CommentService에서 다른 Service를 의존하게 되는 것2. 댓글 작성이라는 테스트를 짤 때 댓글 작성에 초첨을 맞출 수 없고 알림까지 테스트를 작성해야 되기 떄문에 핵심 기능 외에 다른 부가적인 기능 때문에 테스트의 집중도가 떨어집니다.3. 한 트랙잭션에 묶여서 알림을 생성하는데 문제가 발생하면 댓글도 생성되지 않습니다.이러한 경우 어떤 학습을 통해 개선할 수 있는지 가르쳐주실 수 있나요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤 @Configuration
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]class StatefulServiceTest { @Test void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean(StatefulService.class); StatefulService statefulService2 = ac.getBean(StatefulService.class); // Thread A : A 사용자 10000원 주문 // statefulService1.order("userA", 10000); int userAPrice = statefulService1.order("userA", 10000); // Thread B : B 사용자 10000원 주문 // statefulService2 .order("userB", 20000); int userBPrice = statefulService2.order("userB", 20000); // Thread A : A 사용자 주문 금액 조회 // int price = statefulService1.getPrice(); // System.out.println("price = " + price); System.out.println("userAPrice = " + userAPrice); System.out.println("userBPrice = " + userBPrice); } static class TestConfig { @Bean public StatefulService statefulService() { return new StatefulService(); } } }이 코드에서 TestConfig는 @Configuration 어노테이션을 붙이지 않았는데 어떻게 싱글톤이 보장된건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿이 제공하는 HttpSession 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 스프링 부트 내에는 서블릿 컨테이너와 스프링 컨테이너가 있다고 알고 있습니다.또한, 서블릿 컨테이너는 스프링 컨테이너 외부에 존재하기 때문에 bean에 직접 접근할 수 없습니다.그리고 DB에 직접 접근하여 요청을 처리하는 것은 스프링 컨테이너 내에서 이루어집니다. 이때, 궁금한 점이 있습니다.1."서블릿이 제공하는 HttpSession"이라는 개념이 잘 이해가 안됩니다. 서블릿이 제공하는 HttpSession은 스프링 컨테이너에서 bean으로 등록되어 사용되는게 맞나요? 아니면 서블릿 컨테이너에서 관리하는 것이 HttpSession인가요? 서블릿 컨테이너, 톰캣, WAS 그리고 스프링 컨테이너에 대해서 고민하다 보니 HttpServletRequest가 헷갈립니다HttpServletRequest는 서블릿이 HTTP 요청 메시지를 파싱한 결과를 담은 객체인데 그러면 HttpServletRequest는 서블릿 컨테이너 안에 존재하는 서블릿이 스프링 컨테이너에게 넘겨주고, 스프링 컨테이너는 HttpServletRequest를 받아서 스프링 컨테이너 안에서 처리를 하는 건가요??아니면, 스프링 부트 내에는 서블릿 컨테이너가 있고 스프링 컨테이너가 존재하기 때문에 각각의 그냥 아래와 같이 작성하면 서블릿 컨테이너 내에 존재하는 HttpServletRequest 객체를 처리한 것인가요?설명 부탁드립니다. 감사합니다
-
미해결스프링부트 시큐리티 & JWT 강의
25강 마지막 테스트에서 오류
-25강 마지막 테스트 부분에서 실행 오류가 발생합니다.PrincipalDetailsService's loadUserByUsername()도 실행이 확인이 안됩니다. java.lang.NullPointerException: Cannot invoke "org.springframework.security.authentication.AuthenticationManager.authenticate(org.springframework.security.core.Authentication)" because "this.authenticationManager" is null at com.oopsw.myboot.config.jwt.JwtAuthenticationFilter.attemptAuthentication(JwtAuthenticationFilter.java:63) ~[classes/:na] 전체 코드는 다음과 같습니다.@RequiredArgsConstructor //4.1 public class JwtAuthenticationFilter extends UsernamePasswordAuthenticationFilter{ private final AuthenticationManager authenticationManager; //4.1 @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { try { ObjectMapper om=new ObjectMapper(); Users user=om.readValue(request.getInputStream(), Users.class); System.out.println(user); UsernamePasswordAuthenticationToken authenticationToken =new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()); Authentication authentication =authenticationManager.authenticate(authenticationToken); PrincipalDetails principalDetails = (PrincipalDetails) authentication.getPrincipal(); System.out.println(principalDetails.getUser().getUsername()); return authentication; } catch (IOException e) { e.printStackTrace(); } return null; } }
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
전체 구조
안녕하세요! 먼저 항상 친절한 답변 감사드립니다 ㅎㅎ구조가 어떻게 되어있는 건지 헷갈려서 나름 그려봤는데...JPA를 사용할 때 전체 db 연결 구조가 이렇게 되어있는게 맞을까요??