묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빈 중복 충돌 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2024-02-18T19:26:55.314+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 17.0.3 with PID 21364 (C:\Users\HJ\Documents\GitHub\Spring-Study\out\production\classes started by HJ in C:\Users\HJ\Documents\GitHub\Spring-Study)2024-02-18T19:26:55.316+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default"2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2024-02-18T19:26:55.488+09:00 WARN 21364 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication]2024-02-18T19:26:55.740+09:00 ERROR 21364 --- [ restartedMain] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:179) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:416) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar:3.2.2] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[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:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.2.jar:3.2.2]Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:361) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:288) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:306) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:197) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:165) ~[spring-context-6.1.3.jar:6.1.3] ... 18 common frames omittedProcess finished with exit code 0 -----------------------------------------다음과 같은 에러코드를 받았습니다 위에 내용을 보면Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository]해당 문구가 있는 것을 보고 같은 이름의 클래스가 2개 존재하여 bean이 중복되어 충돌이 일어난 것을 확인 하였는데 jpabook.jpashop.MemberRepository를 삭제했는데도 불구하고 해당 에러가 계속 발생합니다 왜일까요? ..존재하지 않는 사진 첨부하겠습니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
create test 부분에서 시퀀스 문제가 있습니다.
단일 테스트는 문제 없지만 전체 테스트 진행 시테이블의 id의 시퀀스가 계속 증가 하는 문제로 jpa save 시 id 1에 저장하려는 문제가 발생하여user-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0);post-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); -- insert into `posts` (`id`, `content`, `created_at`, `modified_at`, `user_id`) -- values (1, 'helloworld', 1678530673958, 0, 1); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `posts` (`content`, `created_at`, `modified_at`, `user_id`) values ('helloworld', 1678530673958, 0, 1);delte-all-data.sql delete from `posts` where 1; delete from `users` where 1; ALTER TABLE `users` ALTER COLUMN id RESTART WITH 1; ALTER TABLE `posts` ALTER COLUMN id RESTART WITH 1; 이와 같이 변경하였는데 혹시 다른 방법이 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
PATCH와 PUT의 차이점
14강 유저 업데이트 부분에서 PATCH가 아닌 PUT을 사용하는 이유가 궁금합니다!! 제가 알기로는 PATCH는 일부 수정이 가능하고, PUT은 완전 덮어쓰기라고 알고 있는데, PATCH가 아닌 PUT을 사용하는 이유가 무엇인가요?? 만약 PATCH 사용이 불가능한게 아니라 가능할 경우 코드가 어떻게 되는지도 궁금합니다! 항상 감사합니다!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다를 다대일 일대다로 사용하면 안되는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 안녕하세요! 다대다 매핑 관련하여 질문드립니다. 강의에서도 그렇고구글링을 했을 때도 그렇고 다대다 매핑을 항상@oneToMany @ManyToOne 으로 매핑을 하더라구요! 그러다가 문득@ManyToOne @OneToMany로 다대다를 풀어내는 경우는아예 없는건지 궁금해졌습니다.제가 지금 사이드 프로젝트를 하고 있는데erd를 @ManyToOne @OneToMany로 해놨었거든요..! 이 경우에 어떤 문제가 발생하는지 실무에서는 아예 사용하지 않는 다대다 매핑 방법인지 사용한다면 어떤 경우에 사용되는 것인지가궁금합니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.createQuery() 파라미터 질문드려요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 저의 경우에 인텔리j에서 저런식으로 String으로만파라미터가 잡히는데,강의 내용처럼 qlString으로 바꾸려면 어떻게 해야하나요.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
List Map 전환
주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화강의에서 Map으로 컬렉션 추가하는 것을 보고 질문 드립니다.(list를 map으로 변환하고 key인 orderId로, value인 orderItem 컬렉션 추가) 그대로 orderItems 리스트로 추가하는 방법과 비교해서 "매칭 성능 향상(O(1))"이 된다고 적혀졌는데,list → map 으로 바꾸는 비용 또한 고려해서구체적으로 어떻게 성능 차이가 있는지 궁금합니다.result.forEach(o -> o.setOrderItems(orderItems));
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
dialect 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]우선 개발 버전은 JDK 17입니다.강의에서 강사님이 h2를 이용하며 OracleDialect로 변경 후 정상적으로 동작이 되었는데현재 저의 셋팅에서는 정상적으로 작동이 되지 않더라구요H2 홈페이지를 검색 해본결과 Mode를 Oracle을 추가하면된다고 나와있었고 MODE를 Oracle로 변경하여도 오류가 발생하였습니다..오류내용은 https://www.inflearn.com/questions/1171985/dialect-%EC%84%A4%EC%A0%95-%EC%98%A4%EB%A5%98-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4이분과 같습니다..David님이 달아주신 답변에는 ojdbc를 의존성 추가를 하는것으로 되어있는데 시도해보았지만 해결되지 않았습니다..물론 이게 강의에 중점은 아니지만 스스로 해결해보려 해도 답이 안나와서 질문드립니다...다른 추가적인 설정이 필요한걸까요??ㅜㅜException in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1591) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1512) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at jpql.JpaMain.main(JpaMain.java:14) Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpql.Product] at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:230) at org.hibernate.id.factory.internal.IdentifierGeneratorUtil.createLegacyIdentifierGenerator(IdentifierGeneratorUtil.java:127) at org.hibernate.mapping.SimpleValue.createGenerator(SimpleValue.java:415) at org.hibernate.internal.SessionFactoryImpl.lambda$createGenerators$1(SessionFactoryImpl.java:457) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.hibernate.internal.SessionFactoryImpl.createGenerators(SessionFactoryImpl.java:456) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:271) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507) ... 4 more Caused by: org.hibernate.HibernateException: Could not fetch the SequenceInformation from the database at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:307) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.getSequenceInformationList(ExtractedDatabaseMetaDataImpl.java:151) at org.hibernate.id.enhanced.SequenceStyleGenerator.getSequenceIncrementValue(SequenceStyleGenerator.java:581) at org.hibernate.id.enhanced.SequenceStyleGenerator.adjustIncrementSize(SequenceStyleGenerator.java:259) at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:207) at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:224) ... 20 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ALL_SEQUENCES" not found; SQL statement: select * from all_sequences [42102-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8064) at org.h2.command.Parser.getTableOrViewNotFoundDbException(Parser.java:8035) at org.h2.command.Parser.readTableOrView(Parser.java:8024) at org.h2.command.Parser.readTablePrimary(Parser.java:1788) at org.h2.command.Parser.readTableReference(Parser.java:2268) at org.h2.command.Parser.parseSelectFromPart(Parser.java:2718) at org.h2.command.Parser.parseSelect(Parser.java:2824) at org.h2.command.Parser.parseQueryPrimary(Parser.java:2708) at org.h2.command.Parser.parseQueryTerm(Parser.java:2564) at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2543) at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2536) at org.h2.command.Parser.parseQueryExpression(Parser.java:2529) at org.h2.command.Parser.parseQuery(Parser.java:2498) at org.h2.command.Parser.parsePrepared(Parser.java:627) at org.h2.command.Parser.parse(Parser.java:592) at org.h2.command.Parser.parse(Parser.java:564) at org.h2.command.Parser.prepareCommand(Parser.java:483) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:639) at org.h2.server.TcpServerThread.process(TcpServerThread.java:289) at org.h2.server.TcpServerThread.run(TcpServerThread.java:191) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) at org.h2.engine.SessionRemote.done(SessionRemote.java:619) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:487) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1166) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:316) at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:291) ... 25 more
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
내부 클래스에 @Slf4j를 적용하는 이유
강의에서 내부 클래스에도 @Slf4j를 적용하는 것을 확인할 수 있는데 그 이유가 궁금합니다!@Slf4j @SpringBootTest public class TxBasicTest { @Slf4j static class BasicService { } }
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
applycation.yml 의 readTimeout 이 적용이 안됩니다.
Springboot 3.0.2ext { set('springCloudVersion', "2022.0.1")} 최신 부트 3.2 에서는 호환 버전이 없어서 그런지 잘 안되서 위 와 같은 버전으로 하니깐 동작을 하는데,타임아웃관련해서는 application.yml 에 설정한 부분이 적용안되는것 같습니다.아래 readTimeout 부분에 마우스 오버 해보니, "Cannot resolve configuration property 'feign.client.config.default.readTimeout' "라고 표시 되더라구요.혹시 버전에 따른 문제인지 코드부분을 점검해봐도 원인을 알 수 가 없네요.확인 좀 부탁드릴게요~ feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 @GetMapping("/health") public ResponseEntity<HealthCheckResponseDto> healthCheck() { try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); } ..... }
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
@Transactional 적용 (Spring Data JPA, JPA 상황에 따른..)
섹션 8의 <실용적인 구조> 강의에서 질문드립니다.JPA의 모든 데이터 변경은 트랜젝션 안에서 일어나기 때문에 JPA를 사용할 때는 리포지토리 계층에 @Transactional을 붙여야한다고 배웠습니다.그런데 Spring Data JPA는 @Transactional을 붙이지 않아도 @Transactional 처리를 자동으로 한다는 것 같은데 맞는 얘긴가요?원래 트랜젝션 적용은 서비스 계층에서 이뤄저야한다고 배웠습니다. 그래서 서비스 계층에서 @Transactional을 붙여왔고요. 그런데 해당 강의의 8분 지점에서 ItemServiceV2의 경우 Spring Data JPA에 의존하고 있기 때문에 리포지토리 계층에서는 @Transactional을 적용하지 않았고 서비스 계층인 ItemServiceV2에서 @Transactional을 적용한 것 같은데 맞을까요?
-
미해결코드로 배우는 React with 스프링부트 API서버
섹션8 > API 서버에서 소셜 회원처리
안녕하세요, 강사님.섹션8 > API 서버에서 소셜 회원처리18분 26초까지 영상을 보고로그인을 시도했는데 DB 테이블에 계정이 생성이 안되네요...어디쪽이 문제일까요??
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
13강 마지막 부분 질문 있습니다.
제가 람다식, 익명클래스, 제네릭에 대한 개념이 확실하게 안 잡혀서 코드이해가 너무 안 되길래 개념부터 다시 찾아보고 공부하고 있는데요 ㅠㅠㅠ 이렇게 공부하는 게 조금 과할 수 있지만 완벽하게 이해를 하고 넘어가고 싶습니다.제가 궁금한 점은query함수를 실행하면 sql이 적용된 결과데이터베이스 전체가 mapRow함수의 파라미터 rs로 들어가게 되는 것 같은데 데이터베이스의 자료형이 ResultSet인가요?rowNum 변수의 필요성입니다. mapRow메서드를 오버라이딩을 해줄 때 rowNum사용을 전혀 안 하고 있는 것 같은데, 어떤 값이 rowNum으로 들어가고 어떻게 작동하는 건가요?mapRow메서드의 반환값은 UserResponse객체 형태인데 결과적인 getUsers메서드의 반환값이 어떻게 List<UserResponse> 형태로 변환될 수 있나요? query함수의 역할인가요?감사합니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
테스트 코드에서 @BeforeEach가 아니라 sql 사용하시는 이유 문의드립니다.
안녕하세요!실무에서 테스트 코드 적용을 위해 강의를 열심히 듣고 있는 중 궁금한 부분이 있습니다. 테스트코드 사용 시 @BeforeEach를 사용하는 경우도 있는데, sql로 초기 데이터 추가를 사용하시는 이유가 궁금합니다. 작은 서비스가 아니고 복잡한 서비스의 경우 sql로 넣는게 편할것 같기는 한데, 상태에 따라 id값이 필요한 경우도 있고, sql로 작성 시 테스트 마다 데이터가 적용이 동일하지 않을 것 같기도 해서 실제 복잡한 프로젝트에서 어떻게 사용하시는지 궁금해서 문의드립니다.@BeforeEach가 한눈에 들어오지 않아서 잘 사용하지 않으신다고 설명해 주시기는 했지만, SQL로 사용 시 조회 등의 테스트에서는 특정 상태의 데이터 id를 알아야 하고, 그럼 SQL에서 해당 데이터의 id값과 상태값을 다시 확인해야 하는 형태는 동일하게 한눈에 안 들어올 것 같아서 고민이 되더라고요. 저도 SQL로 초기 데이터를 추가하는 형태로 사용하다가 이후에 테스트 코드의 유지보수가 쉽지 않은 경험이 있어서 강사님께서는 복잡한 비즈니스의 실무에서는 어떻게 사용하시는 궁금합니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
api404에러 진도좀 나가고 싶어요 ㅠㅠ
왜 404가 뜨는 지 잘 모르겠습니다. 인텔리제이 종료 했다 다시 시작 했는데도 그대로입니다 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문_재고수량초과() 테스트를 진행하는데 강의영상에서는 의도적으로 틀린결과값이 나오는 것을 예측하는 경우에도 초록불이 뜨는데, 저는 빨간불이 뜨고 테스트가 실패했다고 뜹니다. 이유를 알고 싶습니다.참고로 저는 JUnit5로 실습하고 있습니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
섹션7 이후 Todo List 조회 실패
안녕하세요 강사님.섹션 7까지 강의를 잘 보고 따라했는데요.이상하게 Todo가 안나타납니다.getList에서 데이터 조회까진 다 되고setServerData에도 값을 넣어주는데요.return에서 servaData를 뽑으려니 뽑히지가 않네요.그래서return ({serverData})만 해도 값이 안나옵니다.. 콘솔엔 뽑을 수 있게 오브젝트로 나오는데.. 혹시 추측되는 이유가 있으실까요?아래 깃허브 주소도 첨부하겠습니다.https://github.com/Jack0215/react-mall-with-spring확인 해주시면 감사하겠습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
h2-console 왼쪽 메뉴에 테이블이 안보입니다.
빨간색 영역에 생성된 테이블이 있어야 하는데 안보입니다.refresh 버튼을 누르거나 로그아웃 후 로그인해도 안보입니다.show tables; 명령어를 실행하면 테이블은 존재합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
hasIpAddress 설정 403
왜 게이트웨이로 접근이 안될가요?hasipaddress값에 제 컴 아이피를 적고http://220.86.33.96:9295/welcome > 접근가능한데 http://220.86.33.96:8000/user-service/welcome > 접근불가떠요..이해가안됩니다 게이트웨이서버건 유저 서버건모두 제 컴퓨터고 제 서버 아이피가 220.86.33.96인데..hasIpAddress값을 127.0.0.1로 주고 접근하면 모든곳에서 접근이 됩니다..
-
미해결실전! Querydsl
테스트에서 @Commit과 @Transactional(rollback=false) 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]테스트에서 DB에 반영되는 내용을 보기 위해서 @Commit을 다셨는데, 이전 강의들에서는 Transactional(rollback=false)로 그걸 수행하셨습니다. 차이가 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
테이블간에 연관관계가 없을 때 질문입니다.
안녕하세요만약 여러 테이블이 있는데 서로 연관관계가 맺어있지 않다면,JPA를 통해 JOIN이 불가능할까요? @ManyToOne과 같은 어노테이션을 사용할수 없는걸까요?모든 테이블이 PK만 있고 FK가 없는 상태입니다.USER 테이블에ID(PK)PC_IDNAME PC 테이블에ID(PK)PC_NAME 위와같이 컬럼이 있을 때, USER 테이블에 PC_ID를 FK로 지정하지 않아도, JPA에서 활용할 수 있을까요?현재 구현한 모든테이블이 이와같이 FK는 없고, PK만 지정되어있습니다 ㅠ 기존에 JDBC를 사용할땐 그냥 A.PC_ID와 B.ID를 JOIN해서 사용했습니다.