묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
영상이 안 보입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제목 그대로 인데요mac에서 강의를 듣던중에 다음강의로 넘어가니 그이후 강의부터는 영상이 안 보입니다모바일로는 보이는데 pc로 보려면 어떻게 해야할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 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되는 데이터를 다시 버퍼에 채운다는 점에서 두 전략은 같은 것으로 보입니다. 차이점을 알려주시면 감사하겠습니다~
-
미해결스프링 시큐리티 완전 정복 [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는 주로 프레임워크나 비즈니스 로직에 특화된 작업을 처리할 때 사용되며, 스프링과 같은 프레임워크에서 제공하는 레벨에서 사용함"이라고 이해하면 되는건가요?? 강의를 보다 보면 인터셉터가 필터보다 더 유용하다고 느껴졌는데 실무에서는 어떻게 사용하는지 궁금합니다 ! 감사합니다
-
미해결스프링 핵심 원리 - 기본편
싱글톤 @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 연결 구조가 이렇게 되어있는게 맞을까요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
영상이 검정색으로 화면이 안보여요...
영상 실행은 되는데 화면이 검정색으로 뜨고 아무것도 안보여용...어제만 해도 별문제 없엇는데 확장프로그램 문제인가 해서 사파리로도 들어갔는데 똑같이 어둡게 나오네요... 혹시 다른 강의도 그런가 하고 다른분 강의 켜봤는데 그분 강의는 잘 화면이 나오고 여기 해당 강의만 어둡게나와요! 근데 아이패드로 접속해서 틀면 제대로 나오는데.. 노트북에서 보고 싶은데 해결방법이 뭘까요... 추가적으로 강력새로고침해서 캐시도 지워보고 시크릿모드에서도 해보고 다해봤는데도 같은 현상입니다. 혹시해서 확장프로그램 삭제하고 노트북도 껏다 켜봤습니닥 ㅠㅠ...
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
수동 빈 등록에서 기초적인 부분인것 같은데 질문 드립니다..
ItemServiceApplication에서 @Import를 통해서 config를 임포트 받는 이유가 무엇인가요? 로드맵 첫 강의인 스프링 입문에서는 @Import를 해주지 않았는데 본 강의에서는 적용되어있는 이유가 궁금합니다. 또 config 패키지로 구분되어있는 곳의 config 하나를 (메모리컨피그를 이용했습니다) itemservice패키지 바로 하위로 이동하여 주었고 Itemservice패키지 하위로 이동한뒤 ItemServiceApplication에서 @Import를 제거하니까 실행이 안되는데 그 이유가 있나요?
-
미해결
스프링부트에서 게시글 등록(mp4 파일 포함)시 영상 바로 안보입니다.
현재 스프링부트에서 게시글을 등록하는 기능을 만들고 detail 페이지에서 등록한 내용을 확인할 수 있도록 설정했습니다. 게시글 제목, 내용, mp4 영상을 받도록 하고 있는데 게시글 등록 후 바로 detail 페이지에 들어가 확인하면 동영상이 보이지 않습니다. 그래서 경로가 잘못됐나 싶어서 페이지 소스 보기를 통해 확인해봤는데 경로도 정확하게 호출되고 있습니다. 그 후 서버 재실행 후 다시 확인해보니 그제서야 동영상이 보이고 있습니다. 이에 대한 해결 방법을 잘 모르겠습니다. 아래는 게시글 등록에 대한 컨트롤러 코드, 서비스 코드, html 코드입니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
cropper 오류 문제로 질문드립니다..
좋은 강의 덕분에 공부를 열심히 잘 하고 있습니다 선생님 감사드립니다. 다름이아니라 이번 강의 중 cropper 사용에서 똑같이 설치 후이미지 파일을 불러오면 Uncaught TypeError: $newImage.cropper is not a function at reader.onload 지정된 함수가 아니라고 뜨는데 cropper가 안 먹혀서 그런 걸까요 ㅠㅠ..? 서치하고 코드를 계속 봐도 답이 나오지 않아 이렇게 질문 드립니다..
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
MVC와 API의 차이점
안녕하세요 강사님!!다름이 아니라 공부를 하다가 MVC와 API의 차이점(?)에 대해 알아보게 되었습니다!그래서 내린 결론이Spring MVC구조의 @Controller는 컨트롤러의 리턴값이 ViewResolver에 의해 해석되어서 특정 View가 html응답으로 전송된다.반면 REST API구조의 @RestController에 의한 호출은 View를 리턴하는 것이 목적이 아닌, 데이터를 전송하는 것을 목적으로 응답이 전송되어 진다.라고 내렸습니다.첫번째로, 위에서 제가 내린 결론이 맞는 말인지와두번째로, 그럼 MVC를 쓰는 경우와 API를 쓰는 경우가 언제인지가 궁금합니다.제가 아직 개념이 부족해서 그런건지는 몰라도 MVC를 쓰면 프론트엔드의 역할이 없어지는게(?) 아닌가 하는 착각이 들어서...답변 부탁드리겠습니다!!
-
미해결견고한 결제 시스템 구축
excludeTags 오류
안녕하세요 강사님build.gradle에서 excludeTags("TooLongTime")를 추가하고 Reload All Gradle Projects 를 하는 과정에서아래와 같이 오류가 발생합니다 Caused by: java.lang.ClassNotFoundException: org.gradle.internal.impldep.org.junit.platform.launcher.TagFilter Unable to load class 'org.gradle.internal.impldep.org.junit.platform.launcher.TagFilter'.This is an unexpected error. Please file a bug containing the idea.log file.
-
미해결
Access Token과 Refresh Token을 어디에 저장해야 할까요?
현재 프로젝트를 진행중인데, Access Token과 Refresh Token을 헤더에 담아 로컬스토리지에 저장하는 방법을 사용중입니다. 그런데 로컬 스토리지는 보안에 취약하다는 글을 보았습니다. 로컬 스토리지에 담아도 jwt 정책으로 대응이 가능하다는 글도 있었습니다. Access Token과 Refresh Token을 어디에 저장해야 할까요? 만약 로컬 스토리지나 쿠키에 저장한다면 어떻게 관리해야하나요?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
직렬화, 역직렬화 관련
안녕하세요. 좋은 강의 감사합니다.직렬화, 역직렬화 관련해서 질문이 있습니다.저는 Spring 프레임워크를 사용해서 프로듀서와, 컨슈머를 각각 따로 서버를 만들어서 개발 하고 있습니다.수업 내용은 단순히 String이지만 제가 실무에 사용하려고하는건 웹 애플리케이션 과 같이 DTO 클래스로받은 데이터를 그대로 프로듀서에서 send()에 담아서 보내고 있습니다. 컨슈머에서 DTO로 받으려고관련 자료를 찾아 보니 JsonSerializer가 있어 해보았습니다. Object 로 받아서 여러 DTO를 받을 수 있는Consumer factory를 만들다 보니 여러 에러가 발생해서 ObjectMapper를 사용했습니다.@Component public class ObjectMapperService { private final ObjectMapper objectMapper = new ObjectMapper(); public <T> T convertValue(String json, Class<T> valueType) throws JsonProcessingException { return objectMapper.readValue(json, valueType); } }@Component @Slf4j @Data @RequiredArgsConstructor public class KafkaConsumer { private final ObjectMapperService mapper; @KafkaListener(topics = "member-join", containerFactory = "commonKafkaListenerContainerFactory") public void receiveMemberJoin(ConsumerRecord<String, String> consumerRecord, Acknowledgment acknowledgment) throws Exception { String value = consumerRecord.value(); MemberJoin memberJoin = mapper.convertValue(value, MemberJoin.class); String recommendCode = memberJoin.getRecommendCode(); log.info("recommendCode: {}", recommendCode); log.info("received payload = {}", memberJoin.toString()); acknowledgment.acknowledge(); } }이런식으로 사용해서 DTO클래스로 사용했는데 실무에서는 어떤식으로 하는지 궁금합니다. 혹시 참고할 수 있는 정보가 있을까요?감사합니다.