묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
3시간동안 했는데 해결이 안됩니다.. 도와주세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]데이터 베이스를 찾을수 없다고 합니다.프로젝트도 2번이나 새로 만들어 봤고 강의 보면서 다른게 있나 확인도 해봤는데 계속 안됩니다. DB의 문제일까요? org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springConfig' defined in file [C:\class\code\springboot\hello-spring2\bin\main\com\spring2\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.8.jar:2.7.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.8.jar:2.7.8] at com.spring2.HelloSpring2Application.main(HelloSpring2Application.java:10) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.7.8.jar:2.7.8]Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.25.jar:5.3.25] ... 24 common frames omittedCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.25.jar:5.3.25] ... 38 common frames omittedCaused by: java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.25.jar:5.3.25] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:171) ~[spring-boot-autoconfigure-2.7.8.jar:2.7.8] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:123) ~[spring-boot-autoconfigure-2.7.8.jar:2.7.8] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48) ~[spring-boot-autoconfigure-2.7.8.jar:2.7.8] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90) ~[spring-boot-autoconfigure-2.7.8.jar:2.7.8] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.25.jar:5.3.25] ... 39 common frames omitted이렇게 에러가 나오고 h2도 실행시킨 상태에서 했는데 원인을 모르겠습니다..
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean validation은 메세지 컨버터에도 적용할 수 있다
생각해보니 이전까지 유효성검사는 modelAttribute이 붙은 객체에 대해서만 했었네요modelAttibute나 requestbody나 둘다 객체가 들어오니까 유효성 검사가 될수밖에없는거아닌가요??왜 아래와 같은 말을 하신거죠?"메세지 컨버터를 사용하는 requestBody에도 적용할수있다" < 이말은 적용안될것같은데 적용된다! 이런얘기잖아요.. 뭔 생각을 하면 적용이 안되는거아닌가? 이런생각을 하게 되는거죠?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 메소드 GET, POST 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저는 /new-form에서 POST요청이 들어오면 post를 처리하고 /save로 GET을 요청한다고 생각했습니다. (/new-form 페이지에서 전송을 누르고, new-form.jsp를 보면 form의 메소드 형식이 post이기 때문에 POST 요청이 들어오는 페이지는 /new-form이고 action ="save"이기 때문에 GET을 통한 /save로 이동이라 생각합니다.) 혹시 이 부분을 설명해주실 수 있을까요? ㅠㅠ 그래서 위 사진처럼 코드를 작성해보았는데 문제없이 작동합니다. 괜찮은 건가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
DB격리레벨 강의자료중 궁금한점이 있습니다.
이부분 따로 언급을 안해주셨는대요.DB 격리가 READ COMM이어도 스프링 JPA어플리케이션을 쓰면은 Repateable Read가 보장이된다는 이야기인가요?그말은 즉 JPA를 쓰면 굳이 DB 격리레벨이 Repeate하는것보다 Read Commit으로 낮춰놓고 쓰는게 더 성능상 좋은거네요? 이해한게 맞느니 확인부탁드립니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 스코프와 Test 시 .class 역할에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 싱글톤을 사용시 자동으로 관리해주기 때문에@PostConstruct,@PreDestroy 를 사용안해도 되는게맞다면 빈 콜백생명주기 함수 때 따로 적용해서 DB클클라이언트, 네트워크 사용시 쓴다했는데싱글톤 스코프로 한다면 쓸 일이 없는걸까요 ??@PostConstruct,@PreDestroy 방법이 싱글톤 스코프를 사용 시 전부 자동으로 해결이 되는건지 ?? @PostConstruct,@PreDestroy 싱글톤 스코프를 사용시 따로 안써줘도 되는건지 ?네트워크나 db 연결 같은 시에만 사용을 하는건지 ... 헷갈려서 질문 남깁니다. 2.new AnnotationConfigApplicationContext() 에서괄호 안에 .class 적을 시 해당 클래스는 자동으로@ComponentScan 적용 대상이 된다고 하셨는데괄호 안에 .class 지정 시 @Component 사용을 안해도되고 .class 지정 시 해당 클래스에@Configuration,@ComponentScan 이 붙는다고 생각을 해도 되는 걸까요 ?
-
해결됨토비의 스프링 부트 - 이해와 원리
HelloController의 applicationContext 생성자 주입
안녕하세요.강의를 잘 듣고 있습니다! 다름이 아니라, Bean의 생명주기 메소드 강의에서 마지막 부분이 HelloController의 applicationContext를 생성자 주입하는 코드로 변경하면서 끝이 납니다. 그런데 DI와 단위 테스트 강의에서 HelloController의 테스트 코드를 작성할 때 보여주시는 HelloController.java의 코드를 보면 applicationContext를 생성자에서 파라미터로 받는 부분이 없어져 있습니다. 2개의 강의 사이에서 applicationContext를 파라미터로 받는 코드를 리팩토링하는 부분을 설명해주시는 부분이 제가 찾기에는 보이지 않아서... 혹시 보충 설명을 해주시면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]헷갈리는 부분이 있어 질문드립니다. em.persist(member) 를 하게 되면 DB에 저장이 바로 되는건지, 영속성 컨텍스트에만 저장이 되는건지 궁금합니다. 그리고 DB 연결이 안되어 있는 상황에서 em.persist(member) 를 하게 된다면 어디에 저장이 되는 건지도 헷갈립니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
spring boot3에서 kotlin 사용할때 jdk 버젼 선택
안녕하세요spring boot3에서 kotlin 사용할때 jdk 버젼 선택에 대해 고민인데요jdk8을 쓰는게 나을지 spring boot에서 추천하는 jdk17을 쓰는게 나을지가 고민입니다.어떻게 판단하는게 좋을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실무에서 스프링 시큐리티를 주로 사용하는지, 로그인 세션 기능 같은 부분들은 직접 구현을 하는지 아니면 스프링 제공 기능을 사용하는지 궁금합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
마이바티스 @Mapper 인터페이스에 트랜잭션
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강의를 듣다가 궁금한 점이 생겨서 질문을 남겨봅니다. 강의에서는 Repository 클래스에서 JPA를사용하여서 데이터베이스에 접근하고있고, 해당 save 메서드에 @Transactional 어노테이션을 사용해서 트랜잭션을 사용하고 계시는데, 마이바티스의 경우 @Mapper 어노테이션을 사용하여 인터페이스로 작성하게 되는데 예제처럼 각각 메서드에 @Transactional(propagation = Propagation.REQUIRES_NEW) 어노테이션을 명시하면 예제와 동일하게 동작하는지가 궁금합니다. 컨트롤러에서 직접 @Mapper 인터페이스의 메서드를 호출할때 트랜잭션을 적용하고 싶은 경우가 있지않을까 해서 질문남겨봅니다. 감사합니다.
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
No1 출력
No2만 출력이 되는데 No1은 왜 출력이 안되는지 알수 잇을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로퍼티 관련하여 질문있습니다!
HelloData 클래스에 @Data 애노테이션은 빼고, 모든 필드를 매개변수로 받는 생성자만 추가하여도 바인딩이 잘 되는 것을 확인했습니다.setter가 없어도 바인딩이 되는 것은 스프링이 내부에서 더 섬세하기 처리하기 때문에 바인딩이 되는 것인가요??
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
v1/ v2 v1은 실행이 잘되는데 v2는 실행이 안됩니다!
21강 책의분야 추가하기에서 v1이 아닌 v2에서 사용자등록, 책등록을 실행하려고하면 서버에 여녁ㄹ이 불가능하거나, 네트워크 오류입니다 라는 alert창을 출력하고Itellij내의 오류는 발생하지 않고 v1에서는 문제없이 저장이 잘됩니다,, 그래서 코드에 문제가 있나해서 library-app-complete로 실행해봐도 똑같은 오류가 발생하고console창에는 아무런 오류도 발생하지 않습니다 ,, oracle과 port번호 충돌이 일어나서 port번호를 변경해 줬습니다Application.tmlbuild.gradle
-
미해결스프링 핵심 원리 - 기본편
coreApplication 실행시 자동 종료
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.<CoreAppliction 실행 모습><build.gradle 모습>CoreApplication을 실행하면 강사님과 다르게 출력이 되고 스프링도 제가 종료하지 않아도 자동적으로 종료가 됩니다. build.gradle에 혹시 제가 잘못 추가한 부분이 있을까요??
-
해결됨토비의 스프링 부트 - 이해와 원리
Context 오브젝트에서 클래스로더를 가져온 것과 현재 오브젝트에서 클래스 로더를 가져왔을 때 어떤 차이가 있나요?
안녕하세요. 강의 너무 재미있게 잘 듣고 있습니다. 강의 듣다가 클래스 로더를 가져오는 부분에서 의문점이 있는데요(사실 이전부터 개념이 명확하지 않아 어려움이 있었습니다)MyOnClassCondition 만들면서 context.getClassLoader() 이렇게 클래스 로더를 가져왔는데 이렇게 가져오는 것과 this.getClass().getClassLoader() 이렇게 가져오는 것이 어떠한 차이가 있는지 궁금합니다.둘다 동작은 잘 되거든요.스프링 부트와 크게 관련된건 아니라고 생각들지만 인터넷 글을 봐도 명확하게 이해가 잘 안되서 초고수 토비님께 문의드립니다. 명강의 감사합니다.!!
-
해결됨스프링 시큐리티 OAuth2
OAuth2 Login에 대해 궁금한 점
안녕하세요해당 강의를 통해서 OAuth2 로그인을 따라해보면서, 궁금한 점이 생겨서 질문 드립니다.만약에 기존 유저에 OAuth2 로그인을 적용시키려면 어떻게 하는 지 궁금하네요..요즘 여러 서비스에서, OAuth2를 도입하고 기존 계정에 Toggle 버튼 같이 네이버, 카카오 등을 On, Off 할 수 있는 기능들을 제공합니다하지만 Spring Security OAuth2 Login 기능으로 기존 계정에 on,off 처럼 연결이 가능할까 의문도 들고 생각도 해봤지만 도저히 떠오르지 않더라구여더군다나 기존 계정에 JWT 로 인증을 하고 있었다면 불가능하지 않나 생각이 들었습니다.너무 막연하게 질문을 드렸는데, 정확하게 알고 싶은 것은 유저 상세 페이지에서 토글 버튼 같은 것으로 네이버 연동을 시도하여 네이버 로그인을 시도했을 때,OAuth2UserService 에서 기존 유저에 대한 정보를 알 수 있는 방법이 있는 지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
@Autowired 필드 명만 빈 이름으로 변경
조회 대상 빈이 2개 이상일 때 해결 방법으로@Autowired 로면 필드 이름, 파라미터 이름으로 빈 이름을 추가 매칭한다 고 하셨는데파라미터로 매칭하는 경우 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy fixDiscountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = fixDiscountPolicy; }이거는 이해가 갑니다. 근데 필드명으로 매칭하는 경우가 헷갈리는게 강사님께서 말씀하신 필드명으로 매칭하는 방법은 private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired private DiscountPolicy rateDiscountPolicy; @Autowired public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy fixDiscountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = fixDiscountPolicy; }이거는 rateDiscountPolicy가 그냥 사용되지 않아서 돌아 가는 거 아닌가요?rateDiscountPolicy를 사용해서 필드 명으로 매칭하려면 private final MemberRepository memberRepository; @Autowired private DiscountPolicy rateDiscountPolicy; public OrderServiceimpl(MemberRepository memberRepository, DiscountPolicy rateDiscountPolicy) { this.memberRepository = memberRepository; this.rateDiscountPolicy = rateDiscountPolicy; }이렇게 바꾸고 createOreder 메소드에 discountPolicy를 rateDiscountPolicy로 다바꿔야 돌아가던데 @Override public Order createOreder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); // 기존 코드 // int discountPrice = discountPolicy.discount(member, itemPrice); // 바꾼코드 int discountPrice = rateDiscountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } 코드가 잘 작동되긴한데 이게 강사님이 말씀하신 방법이 맞는지 의문이 들더군요...ㅠㅠ답변 주시면 정말 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요. 질문 있습니다.
타임리프로 받을 때 model에 넣어준 키-값이랑 errors를 키 값으로 받으셔서 뷰를 구성하시는데 자바스크립트에서 ajax로 컨트롤러 호출해도 똑같이 errors 키값을 입력해서 사용하면 에러 메시지 처리를 똑같이 가져와서 사용가능한걸까요??
-
해결됨토비의 스프링 부트 - 이해와 원리
스프링 처음 배우는데..
우선 저는 스프링의 스 자도 모르는 상태에서, 토비님의 네임드만 보고 생각없이 후딱 구매해버렸습니다..!스프링부트를 듣는데 스프링 레거시, jsp, 서블릿 관련 자세한 지식 없이 강의 교안대로 가면 문제 없나요?
-
해결됨스프링 핵심 원리 - 기본편
@Controller에서 @Component
@Controller 어노테이션엔 @Component가 있어 컴포넌트 스캔대상이 되고 스프링 빈에 등록되는 것으로 아는데컨트롤러 클래스가 스프링 빈 등록된다 해도 쓸데가 있나요? 언제 쓰이는건가요?