묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 에러 미전달 케이스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용]기존 섹션에서 추가한 인터셉터가 있는 경우 sendError에서 지정한 에러 코드가 아닌 정상 값을 응답 값을 전달받은 이유가 궁금합니다. 에러를 포함한 응답 값이 없는 경우 톰캣에서 무조건 200 값을 반환하는 것인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
main함수 실행 시 무한 로딩이 걸립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음에 spring boot세팅하고 JpashpApplcation의 메인 함수를 실행하면 강의 영상과 달리 로딩 버튼이 뜨는데 계속 기다려도 사라지지 않습니다. 그리고 중간에 그냥 stop하면 Execution failed for task ':JpashopApplication.main()'.> Build cancelled while executing task ':JpashopApplication.main()'* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 1m 4s3 actionable tasks: 1 executed, 2 up-to-date 이렇게 뜨네요. 하지만 localhost:8080은 정상 실행되는데 문제 없는건가요?
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException이 떠서 CoreApplicationTests가 안됩니다..
UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/yungyeong-il/Desktop/study/core/out/production/classes/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository 이렇게 애러가 떴는데 어떤걸 고쳐할지 모르겠습니다. 현재 강의는 색션7 의존관계 자동 주입 옵션처리 듣던중에 발견했습니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC 작동순서가 맞는지 확인 부탁드립니다!
@Controller @RequestMapping("/springmvc/v3/members") public class SpringMemberControllerV3 { private MemberRepository memberRepository = MemberRepository.getInstance(); @GetMapping("/new-form") public String newForm() { return "new-form"; } } 핸들러 조회: 클라이언트로부터 /springmvc/v3/members/new-form에 대한 GET 요청이 들어오면, 스프링 MVC는 @RequestMapping("/springmvc/v3/members")과 @GetMapping("/new-form")을 통해 이 요청을 처리할 SpringMemberControllerV3 클래스의 newForm() 메소드를 핸들러로 결정합니다.핸들러를 처리할 수 있는 핸들러 어댑터 조회: 스프링은 결정된 핸들러(컨트롤러의 메소드)를 실행할 수 있는 핸들러 어댑터를 찾습니다. 스프링 MVC에는 여러 종류의 핸들러 어댑터가 있으며, 이 경우에는 RequestMappingHandlerAdapter가 사용됩니다.handle(): 핸들러 어댑터는 핸들러 메소드(newForm())를 호출하는 handle() 메소드를 실행합니다.handler(controller) 호출: newForm() 메소드가 호출되어 실행됩니다. 이 메소드는 뷰의 이름을 문자열로 반환합니다. 여기서는 "new-form"이 반환됩니다.ModelAndView 반환: 이 예제에서는 단순히 뷰 이름을 문자열로 반환합니다. 스프링 MVC는 이 문자열을 바탕으로 ModelAndView 객체를 내부적으로 생성하며, 모델 데이터는 비어 있고, 뷰 이름은 "new-form"입니다.ViewResolver 호출: 반환된 뷰 이름 "new-form"을 기반으로 ViewResolver가 호출됩니다. ViewResolver의 역할은 뷰 이름을 실제 뷰 객체로 변환하는 것입니다. 스프링 MVC에서는 InternalResourceViewResolver 등 다양한 ViewResolver 구현체를 사용할 수 있으며, 이는 보통 applicationContext.xml 혹은 @Configuration 설정 클래스에서 설정됩니다.View 반환: ViewResolver는 요청된 뷰 이름에 해당하는 실제 뷰 객체를 찾아 반환합니다. 예를 들어, JSP를 사용하는 경우, "new-form" 이름은 /WEB-INF/views/new-form.jsp 파일에 해당하는 JstlView 객체로 해석될 수 있습니다.render(model) 호출: 뷰 객체는 ModelAndView에서 제공하는 모델 데이터(이 예제에서는 비어 있음)를 사용하여 뷰를 렌더링합니다. 렌더링 과정에서 최종적으로 클라이언트에게 보낼 HTML이 생성됩니다.HTML 응답: 생성된 HTML이 클라이언트에게 응답으로 전송됩니다. 클라이언트는 이 HTML을 받아 브라우저에서 렌더링합니다. MVC의 대략적인 개념을 위와 같이 이해하면 될까요? (gpt가 정리해준건데 정확한지 모르겠습니다 ㅠ)
-
미해결스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]안녕하세요! 현재 기본편 Sec 7에 옵션처리 쪽을 듣고 있습니다. 2분 쯤 중에 오류가 나서 같이 라이브 코딩을 하면서 오류를 고치고 있었습니다. 하지만 영한님께서 오류를 고쳤지만 저는 자바 `CoreApplicationTest`에서 오류가 납니다. 오류의 내용은 IllegalStateException, UnsatisfiedDependencyException, NoUniqueBeanDefinitionException 세가지 오류가 납니다. NoUniqueBeanDefinitionException는 이름이 같은 Bean이 있는거 같아서 열심히 @Component 가 붙은 클래스들을 살펴보았습니다. 하지만 제가 봤을때는 중복된 Bean이 보이지 않았습니다. 오류의 내용 중에 memberServiceImpl에서 같은 빈이 두개가 발견되었다고 하던군요. 아마 제가 찾지 못하는 거 같은데 혼자서 오류를 찾을려고 잘 보이지도 않고 막막해서 질문 드립니다. 다음은 압축한 코드입니다. https://drive.google.com/file/d/1nie2IVX8eCfmNC4PmjTr9uMowFjMoEpm/view?usp=sharing
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
ec2서버에서 user예약어 관련 오류이신분
현제 45강까지 완료했고구글링해서 user라는 키워드가 현제 제가 쓰고있는 버전에서는 예약어이기때문에 사용아 안된다는것까지 인지했습니다.그래서 yml에 dev에 해당하는 url에 NON_KEYWORDS=USER까지 입력했고User class에 @Table(name ="USER")까지 적용해서git을 이용해서 ec2서버에 적용했지만 동일한 오류가 발생합니다.2일정도를 해결하려했는데 안되어서 질문 남깁니다.저의 github 는 https://github.com/Jo-Jun-Yeong/library-app입니다.그리고 제가 사용하는 hc2 ip는54.180.104.239입니다 다른 인프런에 답글달아주신 글도 봤지만user가 예약어이니 nonkeyword적용해라 이상의 해결을 못봤습니다..///////////////////////////////////////////라고 질문하려했는데마지막으로 ./gradlew build가 적용되지않아서 그런거지않을까? 해서 ./gradlew clean 후 build했더니 적용되었습니다.특히 User.class에 @Table(name="user")적용을 해야 하는것 같습니다. 저처럼 2틀동안 삽질하지 않으셨으면 좋겟네요
-
미해결실전! 스프링 데이터 JPA
스프링 부트 3.x버전은 쿼리가 다르게 나오나요?
slice 설명해주시는 부분인 16:30 부분에 쿼리가 저는 아래와 같이 나오는데 하이버네이트6 버전이여서 다르게 나오는 걸까요?selectm1_0.member_id,m1_0.age,m1_0.team_id,m1_0.usernamefrommember m1_0wherem1_0.age=?order bym1_0.username descoffset? rowsfetchfirst ? rows onlyList로 테스트 하는 경우도(18:57) 아래와 같이 다르게 나옵니다.selectm1_0.member_id,m1_0.age,m1_0.team_id,m1_0.usernamefrommember m1_0wherem1_0.age=?order bym1_0.username descoffset? rowsfetchfirst ? rows only
-
미해결스프링 핵심 원리 - 고급편
섹션 11 @target, @within 중 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, AOP에서 사용하는 포인트컷 지시자에서, args, @args, @target은 단독으로 사용하게 된다면 스프링 모든 빈에 대해서 적용을 시도하기 때문에, 에러가 나는 것을 강의에서 확인해주셨는데요.그런데, execution을 사용할 때 모든 메서드에 대해서 적용이 가능하도록 execution(* *(..)) 과 같은 식으로 사용해도 스프링 모든 빈에 대해서 적용을 시도하게 되고, 그러면 동일하게 에러가 발생해야되지 않는지 궁금합니다! (test 초반에 에러 안 나는 것은 봤는데 왜일까요 ㅠㅠ)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 mvc 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 입문 강의 섹션2. MVC와 템플릿 엔진 강의 중 @RequestParam의 required 기본값은 true이고, false로 설정하고 싶으면 @RequestParam(value = "name", required=false)와 같이 수정하면 된다고 하셨는데, required값이 false이면 강의의 예제와 무슨 차이인건가요??required값을 false로 설정하고 실행해봐도 여전히 localhost:8080/hello-mvc로 실행하면 오류가 발생하고, localhost:8080/hello-mvc?name=spring!과 같이 실행해야 하던데 required값이 true인 경우와 false인 경우 무슨 차이인지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
gradle 추가 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]구글 드라이브https://drive.google.com/file/d/19HZLXOHOBKSSTVnudj6r6RXOBZu5elEy/view?usp=sharing 안녕하세요 강의 9분쯤 build.gradle 부분에서 버전에 따라 다 실행 해봤는데 아래와 같은 오류가 발생하여 질문 남깁니다. 제 스프링 부트 버전은 v3.2.4로 알고있습니다.
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
RestaurantApi 컨트롤러 개발 질문
안녕하세요 쥬쥬님 RestaurantApi 컨트롤러 개발 시 프론트로부터 파라미터를 받고 서비스로 바로 넘겨주셨는데 현업이나 일반적으로 보통 컨트롤러에서 파라미터를 받으면 그대로 서비스 단으로 넘겨주는지 궁금합니다!
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
@Transactional 질문 있습니다!
안녕하세요@Transactional 어노테이션을 클래스에다가 붙이면 안에 있는 메서드에 전부 적용되는 것으로 알고 있는데쥬쥬님께서는 메서드 하나하나에 적용을 하시더라구요 혹시 메서드에 하나하나 달아주는 이유를 알 수 있을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable을 이용한 getMapping 사용시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Get 요청 특성상 URL에 개인정보가 들어가게 되면 보안상에 큰 문제가 없을까요? 실무 환경에서도 유저 ID같은 정보를 전달할때 PathVariable을 사용하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 통합 테스트
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WARNING: A Java agent has been loaded dynamically (C:\Users\dlfnx\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.12\be4984cb6fd1ef1d11f218a648889dfda44b8a15\byte-buddy-agent-1.14.12.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended https://drive.google.com/file/d/1DZgTN4_woYB6PZGeJvSiUOLJ5TB8VCq9/view?usp=drive_link 코드 오류 난 것이 있는지 확인해 봤는데 제 눈에는 잘 보이지 않습니다.. 혹시 왜 오류가 난 것인지 알 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
빈 조회 방법을 알려주시는 이유가 혹시 무엇일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 조회 방법을 알려주시는 이유가 혹시 무엇일까요?실무에서 많이 사용될까요?
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
신규강의 요청드립니다!
안녕하세요 기존 강의인 스프링 + 전자정부 프레임워크 강의 수강생입니다. EA + 전자정부 프레임워크 무료 수강 쿠폰 요청드립니다.감사합니다!!
-
미해결스프링 핵심 원리 - 기본편
System.out.println 하여 출력한 결과가 안보이는 분들!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]file로 redirection 해보세요.프로젝트 디렉토리에 "test_output.txt" 파일명으로 생성됩니다. try { PrintStream printStream = new PrintStream(new FileOutputStream(new File("test_output.txt"))); System.setOut(printStream); String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = applicationContext.getBean(beanDefinitionName); System.out.println(beanDefinitionName + " : " + bean); } } catch (Exception e) { e.printStackTrace(); }
-
미해결스프링 핵심 원리 - 고급편
CGLIB 와 클래스 로딩시점의 차이..
동적 프록시로 앞에서 배운 CGLIB도바이트 코드를 조작하는거 아닌가요?그런데 CGLIB도 프록시를 사용하는것이자나요? AOP에서 AspectJ의 클래스로딩시점에 바이트 코드을 조작한다는건 무슨차이인가요? 여기서는 프록시를 사용안하고 바이트 코드만 조작한다는거고cglib는 바이트 코드도 조작하고 프록시도 사용하나요..?그런거라면.. 바이트 코드를 어차피 조작할건데 cglib는 왜 프록시를 사용하나요?ㅠㅠ
-
미해결스프링 핵심 원리 - 고급편
concrete proxy controller에는 requestmapping이 없지 않나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]보니까 ControllerV2에는 @Getmapping으로 인해 url매핑이 잘 되어 있는데, 결국 이 controllerv2가 아닌 concrete proxy controller가 스프링 빈으로 등록이 될 것이고, 클라이언트가 url을 입력해 요청하면 이 구체 프록시 컨트롤러로 요청이 갈텐데, 문제는 여기에 @Getmapping이 없어서 요청을 못받지 않나요>? 아니면 이 concrete proxy controller가 controllerv2를 상속받기때문에, controllerv2의 @Getmapping정보까지 같이 가져가게 되는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
의존성 주입시 프록시 객체 주입
public MemberController(MemberService memberService) { this.memberService = memberService; System.out.println("memberService : "+memberService.getClass()); } 생성자 주입을 통해 의존성 주입을 하였습니다. memberService는 콘솔창을 통해 프록시 객체인 것을 확인하였습니다. 해당 내용과 관련해서 2가지 질문이 있습니다. Q1) 스프링 빈에 올라가는 것은 모두 프록시 객체가 올라가나요 ?? Q2) 의존성 주입시 프록시 객체가 주입되고 MemberService 의 메소드가 호출되는 경우 실제 MemberService 객체가 호출되나요 ?? 감사합니다 ~!