묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@ManyToOne 에서 join fetch해준 쿼리가 있으면 Batch SIze 영향 안 받나요?
ToOne관계만 우선 모두 페치 조인으로 최적화,컬렉션 관계는 배치사이즈로 최적화 하는 부분입니다.@ManyToOne 에서컬렉션이 아닌 부분들은join fetch해서 필요한 파트 땡겨온다고 배웠습니다.그런 후 ,한편컬렉션인 부분은 default batch size로 전체필드에적용해서인쿼리로 가져온다고 들었습니다.예를들어 Order 클래스에 컬렉션List<OrderItem> orderItems이 있으면 Orderitems 의 프라이머리 키 만큼인쿼리를 날리는 쿼리 ,그리고OrderItems안에 들어있는 Item의 프라이머리 키 만큼인쿼리를 날리는 쿼리 ============================강의에서 날린 쿼리 기록을 보면selectorder0_.order_id as order_id1_6_0_,member1_.member_id as member_i1_4_1_,delivery2_.delivery_id as delivery1_2_2_,order0_.delivery_id as delivery4_6_0_,order0_.member_id as member_i5_6_0_,order0_.order_date as order_da2_6_0_,order0_.status as status3_6_0_,member1_.city as city2_4_1_,member1_.street as street3_4_1_,member1_.zipcode as zipcode4_4_1_,member1_.name as name5_4_1_,delivery2_.city as city2_2_2_,delivery2_.street as street3_2_2_,delivery2_.zipcode as zipcode4_2_2_,delivery2_.status as status5_2_2_fromorders order0_inner joinmember member1_on order0_.member_id=member1_.member_idinner joindelivery delivery2_on order0_.delivery_id=delivery2_.delivery_id limit ?2023-01-30 17:24:30.973 DEBUG 11572 --- [nio-8080-exec-5] org.hibernate.SQL :selectorderitems0_.order_id as order_id5_5_1_,orderitems0_.order_item_id as order_it1_5_1_,orderitems0_.order_item_id as order_it1_5_0_,orderitems0_.count as count2_5_0_,orderitems0_.item_id as item_id4_5_0_,orderitems0_.order_id as order_id5_5_0_,orderitems0_.order_price as order_pr3_5_0_fromorder_item orderitems0_whereorderitems0_.order_id in (?, ?)2023-01-30 17:24:30.980 DEBUG 11572 --- [nio-8080-exec-5] org.hibernate.SQL :selectitem0_.item_id as item_id2_3_0_,item0_.name as name3_3_0_,item0_.price as price4_3_0_,item0_.stock_quantity as stock_qu5_3_0_,item0_.artist as artist6_3_0_,item0_.etc as etc7_3_0_,item0_.author as author8_3_0_,item0_.isbn as isbn9_3_0_,item0_.actor as actor10_3_0_,item0_.director as directo11_3_0_,item0_.dtype as dtype1_3_0_fromitem item0_whereitem0_.item_id in (?, ?, ?, ?)========================총 3개입니다.컬렉션이 아닌 부분들에도 Batch Size 영향이 미쳤을텐데..컬렉션이 아닌 부분들에 배치사이즈 영향이 안미친 이유가 join fetch로 이미 영속성에 존재해서 그런건가요?Member, Delivery도Batch Size 영향을 받았으니여기도 인쿼리 날려줘야 되지 않나 생각이 들었어요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원가입( ) 테스트케이스 질문입니다
강의 보면서 똑같이 작성하는 중에 회원가입( ) 케이스에서 java.lang.IllegalStateException: Failed to load ApplicationContext 에러가 발생했습니다.제가 진행하는 환경이 Junit5이라서 이것저것 찾아본 결과 @RunWith(SpringRunner.class)을 이미 스프링부트에서 지원하고있다고 하여 지우고 public도 지워봤지만 적절한 해결방법이 아닌것같아 코드 원복하고 질문 드립니다. 어떤부분을 수정해야할까요..? 에러구문입니다java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication]; nested exception is 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.domain.MemberRepository] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:188) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ... 25 moreCaused 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.domain.MemberRepository] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349) at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287) at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128) at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:295) at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:249) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:206) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:174) ... 37 more H2콘솔도 위의 경로에 따라 동작중이고 application.yml파일 화면도 첨부합니다. 각종 시도를 하였지만 테스트에러를 해결할 수 없어서 코드는 일단 강의내용과 동일하게 작성해 두었습니다. Junit5에서는 위의 문제를 어떻게 해결해야 하나요??
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
library-app-complete 코드 실행방법
library-app-complete 파일을 실행해보고 싶은데요 LibraryAppApplication.kt 에 intelliJ IDEA 로 들어가면 원래 초록색 세모버튼 재생하는게 잇어야되잖아요 ? 그게 없는데 어떻게 하면 실행해볼 수 있을까요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java file outside of source root 오류 때문에 main 클래스 실행이 안 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.위와 같이 모두 세팅을 진행했는데, Java file outside of source root라는 문구가 뜨면서 main 클래스를 실행할 수 없는 상황입니다.어떻게 해결해야 할까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
-arlth 가 뭔가요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용] h2 db 설치 연결 확인 후,home 에 test.mv.db 파일을 확인해야 된다면서llll -arlth 이렇게 들어가시는데 이게 뭔가요?여기서 막혀서 답답하네요.맥 써본 적도 없고 실무도 윈도우로 하는데 어지럽네요.ll 이 dir 이라는건 아는데 -arlth 는 처음 봐요.home이 어딜 말하는건지 모르겠어요.
-
해결됨호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Interceptor 여러번 호출
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AuthInterceptor()); } }@Slf4j public class AuthInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info(" >> preHandle"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { log.info(" >> postHandle"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { log.info(" >> afterCompletion"); } } 호출이 여러번 되는 현상이 발생합니다. preHandle 로그가 3번 찍혀요.검색하여 기본 + 2번 더 호출된다는 글을 보았으나, 제게는 해결책이 아니었습니다.(https://okky.kr/articles/598386)2번 더 호출 될 때에는 request.getParameter null로 넘어옵니다. (acceessToken까지 진행해보다가 롤백했어요 ... 이거부터 해결이 되어야해서 ㅠ.ㅠ)도와주세요 호돌맨님! (git 주소 가렸어요 ! :D)
-
미해결스프링 시큐리티 OAuth2
선행학습 질문
안녕하세요 강의 듣기 초반인데 상세한 설명이 너무 좋은것 같습니다~! 나중엔 다 수강을 할 예정이지만 OAuth2를 먼저 사용하게 될 예정이라 1편 실전프로젝트 전 단계인 스피링시큐리티 기본API 및 Filter 이해 , 주요 아키텍처 이해 정도만 선행으로 듣고 OAuth2를 들어도 될까요? 아님 실전프로젝트도 다 듣고 OAuth2를 듣는게 좋을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
감사합니다!!!
시간 가는 줄 모르게 마지막 수업까지 마쳤습니다. 열띤 강의로 수고 많으셨습니다. 감사합니다!!!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
스프링3.0에서 querydsl 설정시 나는 빌드 에러 문의드려요!
implementation "com.querydsl:querydsl-jpa:5.0.0" implementation "com.querydsl:querydsl-apt:5.0.0"//querydsl 추가 //def querydslDir = 'src/main/generated' def querydslDir = "$buildDir/generated/querydsl" querydsl { library = "com.querydsl:querydsl-apt" jpa = true querydslSourcesDir = querydslDir } sourceSets { main { java { srcDirs = ['src/main/java', querydslDir] } } } compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } configurations { querydsl.extendsFrom compileClasspath } 스프링 3.0.2에서 위와 같이 설정후 빌드하였고 아래와 같은 에러가 발생하였습니다.Build file '/Users/erp/build.gradle' line: 53 (line 53은 def querydslDir = "$buildDir/generated/querydsl" 바로 아래 라인 입니다.)A problem occurred evaluating root project 'erp'.> Could not find method querydsl() for arguments [build_5ohy7uzmfkm7dcwikqo1apfbo$_run_closure5@4ab35249] on root project 'erp' of type org.gradle.api.Project. 이 문제가 계속해서 해결되지 않아... 도움요청 드립니다 ㅠㅠ
-
미해결스프링 배치
롤백 관련 질문드립니다.
여러 스탭을 포함한 Job을 실행하는 과정에서 Job이 실패하면 실패하기 전까지는 커밋이 되는데, 그게 아니라 Job이 실패하면 Job이 실행하시 전으로 롤백할 수도 있나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 cmd창에서 gradlew build 오류
안녕하세요 현재 윈도우 쓰고있는 학생입니다. 빌드하고 실행하기 단계에서 cmd창을 열어서 gradlew.bat과 강의상에 나와있는 clean build 을 입력해도 사진첨부해드린거와 같이 계속 오류가 나는데 무엇이 문제일까요 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 오류 질문드립니다.
antlr.NoViableAltException: unexpected token:generatedAlias0org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: generatedAlias0 near line 1, column 8 [select generatedAlias0 from...] 이 부분에서 계속 에러가 뜨는데 이유를 모르겠어서 질문드려요!참고로 이와 비슷한 문의 글도 인프런과 stackoverflow에서 봤지만, 마땅한 오타가 없어서 여기에 글 올립니다! // MemberServiceIntegrationTest import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Commit; import org.springframework.transaction.annotation.Transactional; import with.younghan.kim.domain.Member; import with.younghan.kim.repository.MemberRepository; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { //given Member member = new Member(); member.setName("spring100"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } // MemberService import org.springframework.transaction.annotation.Transactional; import with.younghan.kim.domain.Member; import with.younghan.kim.repository.MemberRepository; import java.util.List; import java.util.Optional; @Transactional public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** * 회원 가입 */ public Long join(Member member) { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** * 전체 회원 조회 */ public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } } // JpaMemberRepository import with.younghan.kim.domain.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } @Override public Member save(Member member) { em.persist(member); return member; } @Override public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } @Override public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } @Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } } // Member import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
재밌게 잘 보고있습니다.
1배속이지만 다른강의 2배속 느낌이네요.. 이게 실무인가 싶기도 하고 ㅎ_ㅎ 특정 메서드를 만들면, throw new 이후 나오는 건 따로 설정을 하신거려나요?
-
해결됨토비의 스프링 부트 - 이해와 원리
`@ConditionalOnClass` 관련 문의
안녕하세요! 강의에서 한가지 궁금한 점이 있어서 질문드립니다!@ConditionalOnClass 어노테이션에서 XmlMapper.class 는 빨간 줄로 나와서 찾아보니import com.fasterxml.jackson.dataformat.xml.XmlMapper;가 resolve 되지 못하는 것으로 추측되었습니다. 이런 경우는 빌드가 되지 않아야 하는 것이 아닌가 싶어서 제가 무엇을 놓치고 있는 것인지 알고 싶어 문의드립니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로그인 및 권한관리 관련한 부분을 다루신 강의가 있나요??
기능들 구현하는 부분을 따라해보면서 공부하고 있는 시작 단계입니다. 로그인과 권한관리를 다루고 구현하는 기능들의 중요성과 필요성을 느꼈는데 해당 강의에서는 위의 기능은 배제한다고 하셔서 해당부분에 대해 강사님께서 다루신 관련 강의가 있나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 이후 실행안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 와 Git Bash 연동을 하고 Alt + F12 눌러서 터미널 실행했습니다../gradlew build 와 cd build/libs 까지 성공했는데java -jar hello-spring-0.0.1-SNAPSHOT.jar 는 엔터를 눌러도 아무일도 일어나지 않네요파일의 권한이 rw 밖에 없어서 그런거 같아서 chmod 777 hello-spring-0.0.1=SNAPSHOT.jar로 실행 권한을 부여하려고 했는데도 실행 권한이 바뀌지가 않네요....어떻게 해야 해당 자바 파일 실행할 수 있을까요
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker 네트워크는 물리적으로 다른 ip에서도 연동가능한가요?
안녕하세요 이 강의를 통해 처음으로 docker를 학습하고 있는 중인데, 궁금한게 있습니다.docker 네트워크를 사용해서 여러 컨테이너를 연결 할 수 있다고 하는데, 물리적으로 다른 아이피에 있는 컨테이너도 하나의 도커 네트워크로 연결 할 수 있는건가요?이 예제를 학습해서 aws의 2개의 ec2에서 서비스를 분할하여 배포를 하고 싶은데, 이 네트워크 개념으로 가능한 일인지요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트에서 H2 Member테이블에 정보추가 X
통합테스트 진행하고있는데회원가입이 오류없이 잘 작동합니다.하지만 MEMBER테이블에 가보면 아무런 정보가 추가되지 않았습니다.어디에 문제가 있는걸까요? 다시 실행해보니 중복회원이라고 뜨긴합니다ㅠ그래도 테이블에는 내용이 없습니다
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO 기본값 설정법
안녕하세요. 강의를 듣던 중 @RequestParam 의 defaultValue 값 설정 관련해서 궁금증이 생겨 질문남깁니다.강의에서는 offset, limit 값을 @RequestParam을 사용해 defaultValue 값을 설정할 수 있었는데, 만약 @ModelAttribute나 @RequestBody로 객체를 통해 값을 받는 상황에서는 어떻게 객체 내부 필드들에 defaultValue를 설정할 수 있을까요??
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
인텔리제이에 firsproject를 불러오는데 뭔가 자꾸 오류가 뜨네요...
강의 그대로 다 따라했는데 어느 부분에서 이러는지 ㅁ르겠습니다...