묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
비동기 인증까지 한 상태이며, 배포 목적으로 빌드 시 에러가 발생합니다.
ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean buildDeprecated 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 15s 8 actionable tasks: 8 executed ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean build > Task :test MemberCertificationApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1773 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:191 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/ubuntu/memberCertification/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. 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 15s 8 actionable tasks: 8 executed ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean build > Task :test MemberCertificationApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1773 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:191 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/ubuntu/memberCertification/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. 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 14s 8 actionable tasks: 8 executed구글에 검색해본 결과, java: error: invalid flag: --warning-mode=all을 하면 된다는 글을 보고 Preferences > Compiler > java Compiler에 --warning-mode all --stacktrace 입력을 하고 실행을 해봤습니다.java: error: invalid flag: --warning-mode=all가 발생하며 실행이 되지 않습니다. 어떻게 해야 에러를 고칠 수 있을까요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요 질문있습니다.
MemberListControllerV4 에서 model을 return 하지 않고도 FrontControllerServletV4에서 process메소드를 호출해도 model에 members 값이 들어가 있는이유가 참조변수라서 그런건가요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
jpaRepository 에서 update 메서드 테스트 질문 드립니다.
jpaRepository에서 update 관련 메서드를 테스트하던 중 고민이 생겼습니다.update로 변경한 결과가 DB가 아닌, 영속성 컨텍스트에만 반영이 되어서 수정된 값을 확인하기 위해 find()메서드로 저장된 객체를 불러오면 수정한 것과 다른 원본 결과가 출력됩니다.이 문제를 해결하기 위해 두 가지 방법을 생각해보았습니다.하나는 @Modifying 애노테이션에 clearAutomatically = true 라는 옵션을 달아주는 방법이었는데, 이 방식은 테스트를 위해 프로덕션 코드를 수정하기도 하고 성능에 문제가 발생해서 제외하였고다른 하나는 테스트 코드에 EntityManager를 이용해 강제로 flush()와 clear()를 이용해 영속성 컨텍스트를 비워주도록 하는 방법이었습니다. 이 방식도 테스트 코드가 깔끔하지 않고 더 jpa에 종속적이게 되는 것 같아서 마음에 들진 않는데 강사님은 어떤 방식으로 해결하셨는지 궁금합니다!
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Build and run using과 Run tests using을 Gradle이 아닌 InteliJ IDEA로 실행하면 해당 에러가 발생합니다.
Description: Parameter 0 of constructor in com.example.membercertification.security.config.SecurityConfig required a single bean, but 2 were found: - authenticationProvider: defined in file [/Users/jjeong/Desktop/study/memberCertification/out/production/classes/com/example/membercertification/security/provider/FormAuthenticationProvider.class] - restAuthenticationProvider: defined in file [/Users/jjeong/Desktop/study/memberCertification/out/production/classes/com/example/membercertification/security/provider/RestAuthenticationProvider.class] This may be due to missing parameter name information Action: Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed Ensure that your compiler is configured to use the '-parameters' flag. You may need to update both your build tool settings as well as your IDE. (See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x#parameter-name-retention) 해당 에러에서 적힌 provider 2개를 @Qualifier와 @Primary로 설정하면 /api에서 로그인 할 경우, 로그인 영속성이 안 되는데 어떻게 해결해야 하나요 ?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문
[질문 내용]objectMapper을 써서 JSON을 Java로 변환시킬때readValue()안에 있는 자바 클래스안에 생성자가 있어야 되는걸로 알고있습니다 !그럼 따로 만들지 않았으니 자바가 생성해주는 기본생성자를 쓰는 것인가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 직접 만들기 관련 질문입니다.
SessionManager를 보면 SESSION_COOKIE_NAME과 로그인 할 때마다 새로 생성한 sessionId로 쿠키를 만드는 것 같습니다.이 프로그램을 사용하는 여러 멤버들이 동시에 로그인을 한다면, sessionId는 다르지만 SESSION_COOKIE_NAME이 동일한 쿠키가 중복되서 생기지 않나요?findCookie에서는 SESSION_COOKIE_NAME만 가지고 로그인한 멤버가 사용하는 sessionId를 제대로 찾을 수 있는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
SQL MAPPER Mybatis
최근에 우연히 spring.start.io에서 프로젝트를 만들다가 스프링 부트 3.3버전에서는 mybatis 의존성 추가를 막아 놓은것을 발견했습니다. mybatis라는 기술이 최신 버전의 스프링에서는 별로 좋지않은 방법이어서 의존성 추가를 못하게 막아놓는 건가요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
JpaRepository 조건
스프링 데이터 JPA 조건2에서SpringDataJpaRepository의 findAll 메서드의 `@Query`에서 오타를 내서 코드가 테스트에서 오류가 발생했습니다. 추후 코드를 고치니 문제를 해결할 수 있었습니다. 여기서 궁금한 점은 테스트에서 findAll에만 영향을 미치는 것이 아니라 왜 전체 테스트에서 오류가 발생하는 것인지 궁금합니다. 혹시 이 부분에 대해선 프록시 객체를 띄우는 데, 메서드의 유효성을 검사하는 로직이 존재하거나 아니면 다른 무언가가 있는지 궁금합니다. package hello.itemservice.repository.jpa; import hello.itemservice.domain.Item; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; public interface SpringDataJpaItemRepository extends JpaRepository<Item, Long> { List<Item> findByItemNameLike(String itemName); List<Item> findByPriceLessThanEqual(Integer price); // 쿼리 메서드(아래 메서드와 같은 기능 수행) List<Item> findByItemNameLikeAndPriceLessThanEqual(String itemName, Integer price); // 쿼리 직접 실행 // error를 추가해 쿼리 오류 생성 @Query("error select i from Item i where i.itemName like :itemName and i.price <= :price") List<Item> findItems(@Param("itemName") String itemName, @Param("price") Integer price); }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DTO request와 response
dto에서 request를 구성할 때에 Create와 Update에 대한 request를 두 개로 나누어 구성하시는 것을 봤습니다.제가 생각하기에 user 테이블에 접근하여, userService에 사용되기 위한 것이니 UserRequest라는 클래스를 만들어 하나로 통합하여 사용하면 보기 편하고 사용하기 쉬울 것 같습니다.성능에서 차이가 있다던지 request를 따로 구별해서 사용하신 이유가 있는지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HttpRequestServlet - 기본 사용법 강의 질문
빈 등록이 제대로 안되서 생긴 오류 같은데 원인을 모르겠습니다package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } }package hello.servlet.basic.request; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header") public class RequestHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { printStartLine(request); } private static void printStartLine(HttpServletRequest request) { System.out.println("--- REQUEST-LINE - start ---"); System.out.println("request.getMethod() = " + request.getMethod()); // GET System.out.println("request.getProtocol() = " + request.getProtocol()); // HTTP/1.1 System.out.println("request.getScheme() = " + request.getScheme()); // http // http://localhost:8080/request-header System.out.println("request.getRequestURL() = " + request.getRequestURL()); // /request-header System.out.println("request.getRequestURI() = " + request.getRequestURI()); // username=hi System.out.println("request.getQueryString() = " + request.getQueryString()); System.out.println("request.isSecure() = " + request.isSecure()); // https 사용유무 System.out.println("--- REQUEST-LINE - end ---"); System.out.println(); } } 2024-05-28T16:16:58.435+09:00 WARN 10588 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed2024-05-28T16:16:58.452+09:00 INFO 10588 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-05-28T16:16:58.498+09:00 ERROR 10588 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1223) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1161) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[main/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:62) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.2.5.jar:3.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1257) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:951) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1217) ~[spring-beans-6.1.6.jar:6.1.6] ... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na] ... 22 common frames omitted
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 데이터 베이스 연결 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)뭐가 문제일까여 밑에 글 찾아보고rm -rf test.mv.dbtouch test.mv.db 하면 된다길래 해봣는데이렇게 뜹니다 ! ㅠ 도와주세요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
enhancer by cglib 출력
JPA 적용3 - 예외 변환 6:02에 Enhancer~ 이런 식으로 출력이 되는데, 저의 경우는 다음과 같았습니다.정상적으로 스프링 예외 추상화로 변환했음에도 왜 Enhancer ~ 이런 식으로 출력이 안되는 것인가요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
토이프로젝트 실행시 이메일 설정 부분에서 앱비밀번호 항목이 보이지 않습니다.
계정차이일 수 있겠지만, 해결방법을 찾을 수 있을까 하여 문의드립니다. 제 구글 계정은 앱비밀번호 항목이 없습니다. 혹시 다른 방법이 없을까요?
-
미해결스프링 핵심 원리 - 기본편
빈 생명주기에서 @PostConstruct, @PreDestory는 필수인가요??
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 스프링 빈 생명주기를 공부하다가 헷갈리는 부분이 있어서 질문드립니다. 보통 스프링 빈 생명주기라고 함은 아래와 같이 설명하는데요.스프링컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료여기서 궁금한게, 초기화 콜백 과 소멸전 콜백 단계는 모든 스프링 빈의 생명주기에 필수단계인지 궁금합니다.DB 커넥션처럼 WAS 띄울 때 한번 연결하고 두고두고 쓸 것 들을 대상으로만 @PostConstruct 를 사용하는 것으로 알고 있는데, 대부분 인터넷에서 빈 생명주기를 설명할 때 초기화콜백, 소멸전 콜백을 꼭 포함시키길래 모든 스프링 빈 생명주기에 위 단계가 필요한 것인지 궁금하여 여쭤봅니다.
-
미해결스프링 시큐리티 OAuth2
AuthenticationManager 질문 있습니다.
강사님 강의 스프링 시큐리티 6 에서 AuthenticationManager를 생성할 때 HttpSecurity.getSharedObject()를 사용하는 것으로 공부했는데 AuthenticationConfiguration 으로 생성하는 것과는 어떤 차이가 있는 건가요?더 권장되는 방식이 있는 건가요?? 좋은 강의 감사합니다.
-
미해결실전! 스프링 데이터 JPA
단방향으로 코드를 짜도 Lazy 로딩으로 바꿔야하나요??
양방향으로 코드를 짤때 Lazy로 바꿔야하는건 이유를 아는데단방향일때는 굳이 안바꿔도 되지 않을까 생각이 들어 질문합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 window 설정 h2.bat 안됩니다 도와주세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이런식으로뜹니다.자바 버전은 17 동일하게 쓰고 있습니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 테이블 생성이 되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 이전 강의의 MEMBER (id, username으로 구성된 테이블) 까지는 잘 생성이 되었는데 [엔티티 클래스 개발] 부터 DB가 업데이트 되지 않는 것 같습니다. 개발 환경 특이사항스프링부트 3.3 / JUnit5 현재 문제 상황애플리케이션 실행 시 Started Application까지 문제 없이 실행된 이후 쿼리가 찍히지 않음DB에는 변동이 없음 (MEMBER는 이전에 생성했던 테이블) 질문 전 확인 완료 사항프로젝트 처음 생성 시 생성되는 Application 클래스의 패키지 하위에 엔티티 클래스들이 위치함h2로 테이블 생성이 안됩니다.ddl-auto 옵션이 create로 설정되어 있음h2 테이블 생성이 안됩니다application.yml의 들여쓰기를 확인함h2 데이터베이스 테이블 생성이 안됩니다. DB url을 정확히 입력함 확인 부탁 드립니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 오류
cmd가서 종료한다음 다시 실행햇는데도 안되어서 질문 드려요
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 내용중 커멘드라는 용어에 대해서 질문 있습니다.
강의 중 종종 나오는 "커멘드"가 어떤 의미를 뜻하는지 궁금합니다. 사전에 나오는 뜻 그대로를 의미하시는건지요..