묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인텔리제이 알트텝
안녕하세요 김영한님 강의 듣고있는 학생입니다 다른게 아니고 인텔리제이를 설치를 했는데 인텔리제이 울티메이트를 설치했습니다 근데 울티메이트 설치후에 알트텝을 하면 프로젝트가 다 닫힌상태로 나와서 알트탭을 하면서 강의를 봐야하는데 알트텝을 하면 인텔리제이 사이드바에서 프로젝트 폴더를 다 열어놓으면 최상위 폴더인 프로젝트만 사라졌다가 다시 나타나서(다 닫힌상태로) 진행을 못하고 있습니다 도움을 주시면 감사합니다폴더를 다 열어놓으면 사라졌다가 다시 나타나면서 다 닫힌상태로 나와서 어떤걸 해야 다시 원상태로 작동할지 모르겠습니다 감사합니다.
-
미해결스프링 시큐리티 OAuth2
강사님 로그인 요청시 궁금한 점이 있습니다.
POST /login으로 요청시JwtAuthenticationFilter는 실행되지만JwtAuthorizationMacFilter는 왜 실행되지 않는 이유가 궁금합니다. FilterChainProxy에 additionalFilters 목록을 보게 되면, JwtAuthenticationFilter와 JwtAuthorizationFilter가 담겨있고 UsernamePasswordAuthenticationFilter앞에 있는것을 확인할 수 있는데, JwtAuthorizationMacFilter을 넘어가는 이유가 뭔지 궁금합니다 디버깅 중에 왜 안나왔는지 알게되었네요JwtAuthenticationFilter는 인증 성공후에 doFilter 를 안넘겨서 그 이후 체인이 실행하지 않아 검증 필터가 실행되지 않았습니다. 혹시 체인을 안태운 이유가 가장 마지막 필터인 FilterSecurityInterceptor or AuthorizationFilter 에서 SecurityContextHolder.getContext().getAuthentication 에 null 체크 예외 발생 때문에 일부러 안넘기신건가요?? 토큰 인증 필터 성공 이후에 체인 안넘기신 이유가 궁금합니다.안넘기게 되면 컨트롤러단까지 요청이 안가서 index 페이지가 안나와서
-
미해결실전! 스프링 데이터 JPA
엔티티, DTO 유효성 검사 관련 질문드립니다!
https://www.inflearn.com/questions/548289/%EC%97%94%ED%8B%B0%ED%8B%B0-dto-%EC%9C%A0%ED%9A%A8%EC%84%B1-%EA%B2%80%EC%82%AC%EC%97%90-%EB%8C%80%ED%95%B4-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4안녕하세요 강사님!위 질문글을 보고 이유에 대해 궁금증이 생겨서 질문 드립니다!"엔티티, DTO를 둘 다 유효성 검사를 하나요?" 라는 질문에 대해서"저는 주로 파라미터로 넘어오는 DTO에 유효성 검사를 선호하는 편입니다."라고 답변 주셨는데 혹시 그 이유를 알 수 있을까요? 그러면 RequestDto에서만 유효성 검사를 해주고Entity에는 validation관련 어노테이션 같은 걸 따로 안해주시는 건가요? 이유가 궁금합니다!
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
복사 단축키
안녕하세요 ! 도메인과 영속성 객체 구분하기 수업에서 1분 34초에서 UserEntity 에 있는 행을 복사하는데 이 때 나오는 단축키가 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
스프링 컨테이너와 스프링 빈 섹터 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]스프링 빈 조회 - 기본 1분 19초ac.getBean("memberService", MemberService.class);입력하면 자동으로 MemberService memberService=가 자동으로 입력되는데 어떻게 하신건가요? 스프링 빈 조회 - 동일한 타입이 둘 이상 3분 49초@Test @DisplayName("타입으로 조회시 같은 타입이 둘 이상있으면 중복 오류가 발생한다") void findBeanByTypeDuplicate(){ MemberRepository bean =ac.getBean(MemoryMemberRepository.class); }타입만 지정했다고 하셨는데 이게 무슨 뜻이에요? 3. 스프링 빈 조회 - 동일한 타입이 둘 이상-5분 49초에서아래와 같이 오류가 나는 위치가 아래인거는 알겠는데 정확히 이유가 뭔가요? 강의에서 아래와 같은 오류를 일부로 유발 시킨 건 알겠는데 클래스 타입이 같아도 에러 안난다고 했는데 왜 에러가 나나요?@Configuration static class SameBeanConfig{//static을 쓰는 이유는 ApplicationContextSameBeanFindTest 안에서만 사용하겠다. @Bean public MemberRepository memberRepository1(){ return new MemoryMemberRepository();//클래스 타입이 같아도 에러 안남. } @Bean public MemberRepository memberRepository2(){ return new MemoryMemberRepository();//클래스 타입이 같아도 에러 안남. } } org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemoryMemberRepository' available: expected single matching bean but found 2: memberRepository1,memberRepository2 스프링 빈 조회 강의 에서 질문이요.첫번째 테스트에 부분에 MemberRepository bean =ac.getBean(MemberRepository.class); 이걸 넣으면 아래와 같이 에러가 나는데요. 근데 이거는 bean에 할당하는건데 에러가 날 이유가 없지 않나요? 할당하는 것만으로도 왜 에러가 나는지 궁금합니다.package hello.core.beanfind; import hello.core.Appconfig; import hello.core.discount.DiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; public class ApplicationContextSameBeanFindTest { AnnotationConfigApplicationContext ac =new AnnotationConfigApplicationContext(SameBeanConfig.class); @Test @DisplayName("타입으로 조회시 같은 타입이 둘 이상있으면 중복 오류가 발생한다") void findBeanByTypeDuplicate(){ MemberRepository bean =ac.getBean(MemberRepository.class); assertThrows(NoUniqueBeanDefinitionException.class,() ->ac.getBean(MemberRepository.class)); } @Test @DisplayName("타입으로 조회시 같은 타입이 둘 이상있으면 빈 이름을 지정하면 된다.") void findBeanByName(){ MemberRepository memberRepository = ac.getBean("memberRepository1",MemoryMemberRepository.class); assertThat(memberRepository).isInstanceOf(MemberRepository.class); } @Configuration static class SameBeanConfig{//static을 쓰는 이유는 ApplicationContextSameBeanFindTest 안에서만 사용하겠다. @Bean public MemberRepository memberRepository1(){ return new MemoryMemberRepository();//클래스 타입이 같아도 에러 안남. } @Bean public MemberRepository memberRepository2(){ return new MemoryMemberRepository();//클래스 타입이 같아도 에러 안남. } } } No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memberRepository1,memberRepository2 스프링 빈 조회 강의에서 8분 20초에 아래처럼 key와 value부분이 나뉘어져있는데 키는 메소드 이름인것 같은데 벨류는 뭔가요?스프링 빈 조회 - 상속 관계 3분까지 따라 쳤는데 실수로 제가 bean을 한개만 등록했는데 실행해보니 아래와 같은 에러가 나옵니다. 이거는 예외 상황이 발생하지 않아서 오류가 생긴걸로 이해해도 되나요?package hello.core.beanfind; import hello.core.discount.DiscountPolicy; import hello.core.discount.RateDiscountPolicy; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoUniqueBeanDefinitionException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.junit.jupiter.api.Assertions.assertThrows; public class ApplicationContextExtendsFindTest { AnnotationConfigApplicationContext ac =new AnnotationConfigApplicationContext(TestConfig.class); @Test @DisplayName("부모 타입으로 조회시, 자식이 둘 이상 있으면, 중복 오류가 발생한다. 빈 이름을 지정하면 된다") void findBeanByParentTypeDuplicate(){ // DiscountPolicy bean=ac.getBean(DiscountPolicy.class); assertThrows(NoUniqueBeanDefinitionException.class,()->ac.getBean(DiscountPolicy.class)); } @Configuration static class TestConfig{ @Bean public DiscountPolicy rateDiscountPolicy(){ return new RateDiscountPolicy(); } } }에러사항: org.opentest4j.AssertionFailedError: Expected org.springframework.beans.factory.NoUniqueBeanDefinitionException to be thrown, but nothing was thrown. 스프링 빈 조회 - 상속 관계 6분하위 타입으로 조회한다는것이 class TestConfig 에서 return new RateDiscountPolicy(); 이부분과 이름이 같은걸로 조회한다는걸로 이해해도 되나요?@Test @DisplayName("특정 하위 타입으로 조회")//안좋은 방법 void findBeanBySubType(){ RateDiscountPolicy bean=ac.getBean(RateDiscountPolicy.class); assertThat(bean).isInstanceOf(RateDiscountPolicy.class); } @Configuration static class TestConfig{ @Bean public DiscountPolicy rateDiscountPolicy(){ return new RateDiscountPolicy(); } @Bean public DiscountPolicy fixDiscountPolicy(){ return new FixDiscountPolicy(); } } 스프링 빈 조회 - 상속 관계 8분@Test @DisplayName("특정 하위 타입으로 조회")//안좋은 방법 void findBeanBySubType(){ RateDiscountPolicy bean=ac.getBean(RateDiscountPolicy.class); assertThat(bean).isInstanceOf(RateDiscountPolicy.class); }assertThat(bean).isInstanceOf(RateDiscountPolicy.class);위 코드에서 assert 부분이 아래와 같은 의미를 갖는거 같은데 인스턴스 검사는 왜하는거에요?rateDiscountPolicy가 RateDiscountPolicy 클래스의 인스턴스인지를 검사합니다. 스프링 빈 설정 메타 정보 마지막부분에서 아래처럼 말씀하셨는데요.스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것 정도만 이해하면 된다.추상화라는게 아래 사진처럼 나열한다는것으로 이해하면되는건가요?(위 질문 사항에서 추가 질문)빈을 직접 등록한다는게 강의에서 appconfig파일에 나와있는것처럼 직접 등록하는건가요?public class Appconfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); //멤버서비스임플을 만들고 MemoryMemberRepository()만들어서 주입을 시켜줄꺼야. } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService(){ return new OrderServiceImpl(memberRepository(),DiscountPolicy()); }//멤버레파지토리와 디스카운트폴리시 쓰는데 @Bean public DiscountPolicy DiscountPolicy(){ // return new FixDiscountPolicy(); return new RateDiscountPolicy(); }// 디스카운트 바꾸면 여기만 바뀌면 됨됨 } 11.컨테이너에 등록된 모든 빈 조회5분 34초에 보통Object bean = ac.getBean(beanDefinitionName); 이부분 Object object 로 설정하는데 bean으로 다시 설정한 이유가 있나요? 아래는 전체 코드입니다. @Test @DisplayName("애플리케이션 빈 출력하기") void findApplicationBean(){ String[] beanDefinitionNames=ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition=ac.getBeanDefinition(beanDefinitionName);//빈에대한 정보들 if(beanDefinition.getRole()==BeanDefinition.ROLE_APPLICATION) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name = " + beanDefinitionName + "object= "+ bean); } } } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링입문시 인텔리제이 버전 및 필요한 자바 개념
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요김영한님 자바 버전 스프링 입문시 자바 버전은 11로 해야 되는 것을 알 고 있습니다-다만 인텔리제이버전(커뮤니티,무료기준)은 무엇으로 해야 되나요 ?- 인텔리제이가 어떤 버전이든 상관없나요 ?참고로 저는 지금 2023년 2월(커뮤니티)버전 인텔리 제이를 사용 중입니다 .그리고 자바는 스프링 프레임워크에 필요한 개념들 위주로 공부중입니다 .<stream, 삼항 연산자, Optional, 어노테이션, 인터페이스, 업/다운 캐스팅, 다형성, 추상 클래스, 상속, 생성자, 오버라이딩, 오버로딩, Getter/Setter, exception/throw/catch/finally, 람다식, 제네릭, 접근제한자위주로요 >-이 앞의 정도의 <개념>이면 스프링프레임워크를 학습 시 큰 문제가 없을 까요 ? -혹시 김영한님의 오프라인부트캠프 신설 계획이 있으신가요 ?유튜브에서 김영한님의 영상을 잘 보았습니다늘 항상 좋은 강의 감사드립니다 .
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 db 파일 생성 안됨
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의와 강의 자료를 바탕으로 해도 계속 이런 에러가 발생합니다.db 파일이 제대로 생성되지 않아서 생긴 오류일까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
생성과 수정 API 응답, 그리고 그 응답 Dto를 어떻게 구성할 것인가에 대한고민
안녕하십니까 강사님.저는 이제 5개월차가 된 신입? 백엔드 개발자 입니다.다름이 아니라 , 생성과 수정 API에 대한 응답으로 어떤 정보까지 넘기는것이 적합할지에 대해 고민을 하던 도중 강사님의 생각을 여쭤보고 싶어 질문을 드리게 되었습니다. Q1. 강사님 께서는 생성, 조회 , 수정, 삭제 API의 응답을 각각 어떻게 보내시는지 여쭤보고 싶습니다. 가장 먼저 조회의 경우는 말 그대로 path의 Entity 및 관련된 Entity 정보를 조합하여 응답 DTO로 변환하여 보내고 있습니다. 그런데 나머지 Write Operation에 대한 응답을 어디까지 보내야 하냐가 이슈 입니다.예를들면 엔티티의 생성의 경우 엔티티의 응답 DTO를 보내면 - 프론트에서 별도의 조회 API 호출 없이 바로 프론트가 화면에 뿌려줄 수 있으니깐 저는 생성의 경우에도 조회와 마찬가지로 Entity의 정보를 조합하여 응답 DTO로 변환하여 보내고 있었습니다. 그런데 이러한 부분이 Command Query Sperate 원칙에 어긋나는것 같아, 강사님께서는 혹시 생성한 Entity의 Key만 보내시는지, 아니면 Entity의 정보를 DTO로 변환하여 보내시는지 궁금합니다. 만약 정보를 다 보내신다면 이후에 별도로 조회API를 호출해야 하고 그 또한 비용일텐데 이러한 부분은 어떻게 하시는지 여쭤보고 싶습니다. 이제 수정 API인데요,제가 다룬 비즈니스 로직의 경우 수정 비즈니스 로직이 다양하고 , 각 비즈니스 로직의 경우 다뤄지는 Entity의 종류가 다른 경우였습니다. (중심 Entity는 동일하지만, 연관된 Entity를 누구까지 건드리냐의 차이) 그래서 응답으로 보내기 모호한 점이 첫 번째 이유이고,애초에 수정 후에 프론트 화면에서 그 엔티티의 정보를 보여줄 필요가 없어서 라는 두번째 이유에 의해서 에초에 엔티티의 Id값도 보내지 않고 있었는데요,이 수정 API의 응답을 성렬님은 어떻게 진행하지는지 그 이유가 궁금합니다. 마지막으로 삭제의 경우는 정말, 프론트에게 보낼 응답이 없어도 되는 경우 라고 생각했는데요,팀장님의 의견은 만약에 나중에 삭제한 Entity를 복구하는 요구사항이 추가되는것을 고려하여Id 정도는 넘기자는 의견을 내어주셨습니다.마찬가지로 삭제의 경우도 어떤식으로 수행하시는지 그 이유가 궁금합니다. Q2. 마지막으로 Entity의 ResponseDto의 필드를 어떤식으로 구성하시는지 궁금합니다 예를들면 저의 경우는 API는 프론트와 서버 간의 스펙이라고 생각하고, Entity의 단건조회의 경우는 단건 조회용 ResponseDto를, 전체조회의 경우는 전체 조회용 SummaryResponseDto를 별도로 만들어서 사용하고 있었습니다.(이런식으로 각 상황별 ResponseDto를 별도로 정의하고, 그 안에 관련된 Entity들의 필드를 직접 풀어넣는 방법) 저희 팀장님 께서는 프론트쪽도 일을 해오시다가 , 백엔드쪽 분야로 전향하신 케이스 인데요,그렇다 보니 어떻게 해야 프론트의 생산성이 올라가는지를 고려하시는 분 이셨고,팀장님의 생각은 서버에서 넘겨주는 응답에 일관성이 있어야 그 응답을 사용하는 프론트 측도 학습이 되고 놓치는 부분 없이 생산성이 올라간다는 의견이셨습니다. 그래서 Entity별로 당장 사용하지 않더라도 가능한 모든 필드를 담은 ResponseDto를 하나만 만들고,해당 ResponseEntity의 조합으로 각 API별 응답 Dto를 만들어서 사용하면 ,프론트 측 에서는 일관성 있는 응답값을 사용할 수 있다는 의견이셨습니다.물론 이 방법이 네트워크 패킷의 양을 쓸데없이 증가시킨다는 것을 알고 계시면서도,생산성에 큰 영향을 미치는 부분이라고 생각하셨습니다. 예를들어 다음과 같이 각 Entity의 응답 Dto의 조합별로 API의 ResponseDto를 만들 수 있습니다.ResponseDto{ UserDto{ id : 1, name : “aaa” … // User엔티티의 거의 모든 필드 } ItemDto{ id : 2, name : “bbb”, … // Item엔티티의 거의 모든 필드 }} 저는 이러한 부분에 대해 생각해 본 적이 없이,그냥 제가 “해당 API를 호출하는 화면에서 필요한 정보들만을 담아 |(혹은 여러 화면에서 쓰인다면 여러개를 고려) ResponseDto를 각각 만들어서” 넘겼는데요 강사님께서는 이러한 ResponseDto를 구성하는 부분에 있어서상황별로 필드를 재구성 하여 ResponseDto를 정의하여 사용하시는 편 인지아니면 생산성을 고려하여 각 Entity별 Dto를 만들고, 이들을 조합하여 ReponseDto를 정의하시는 편 이신지 혹은 다른 규칙이 있으신지 궁금합니다. 물론 그렇다고 , 팀장님의 의견에서 전체조회시 사용하는 DTO와 단건조회시 사용하는 DTO가 동일하더라도,전체조회 후 단건조회를 기존 Front가 가지고 있는 값을 그대로 쓰지 말고.,단건 조회용 API를 다시 호출하자 입니다!그저 핵심은 프론트가 다루는 ResponseDto의 일관성을 위해서 입니다 (결론은 생산성을 위해) 항상 좋은 강의,그리고 무엇보다도 강상님의 의견과 고민을 강의에 녹여주셔서정말 감사할 따름입니다. 덕분에 함께 고민하고 많이 배우는거 같습니다. 긴 글 읽어주셔서 감사합니다!
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
현업에서 제네릭 쓰나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]가끔 오류날 때 recompile 해보곤 하는데..G:\spring\spring-data-project\jpashop\src\main\java\jpabook\jpashop\api\MemberApiController.java:uses unchecked or unsafe operations.Recompile with -Xlint:unchecked for details. 이게 뭔가하고 찾아보니, @Data @AllArgsConstructor static class Result<T>{ private int count; private T data; }여기 이 부분이..물론 파란색이라 에러같은 느낌은 아니고, 그냥 안내 정도로 보이긴 하는데,https://bgpark.tistory.com/33 근데 제가 언뜻 왠만하면 제네릭 쓰지 말라고 들었던거 같긴 한데 기억이.. 잘못들었는지 왜곡되었는지..옛날 라이브러리들은 제네릭으로 구현된게 많아서 그냥 그거 쓰고 제네릭으로 따로 구현하지 말랬던거 같은데.. 제가 잘못 기억하고 있는 거겠죠?
-
미해결Practical Testing: 실용적인 테스트 가이드
프레젠테이션 레이어 테스트 코드 작성시 코틀린 non-nullable
안녕하세요. 강의 잘 보고 있습니다. 요청 객체를 테스트(ex. 신규상품을 등록할때 타입은 필수 값이다.) 할 때에 코틀린을 사용하는 경우 productType은 non-nullable 입니다. data class ProductCreateRequest( @field:NotNull(message = "상품 타입을 선택해주세요.") val type: ProductType, @field:NotNull(message = "판매 상태를 선택해주세요.") val sellingStatus: ProductSellingStatus, @field:NotBlank(message = "상품명을 입력해주세요.") val name: String, @field:Positive(message = "상품 가격을 입력해주세요.") val price: Int, ) 이런 경우 enum 타입은 bean Validation에서 NotNull이나 NotBlank에 대한 테스트는 불가능한 상태인데요. 이렇게되면 테스트 가능한 것들만 하는게 맞는건가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
rejectValue() 사용시 arguments에 따른 defaultMessage
검증 로직에서 arguments 값이 있는 경우 defaultMessage를 작성하지 않으면 컴파일 에러가 발생합니다.이 이유는 무엇인가요? arguments는 메세지에 사용하는 인자를 뜻한다고 했는데 사용할 인자는 있는데 사용대상이 없을 경우를 대비한걸까요? if (!StringUtils.hasText(item.getItemName())) { bindingResult.rejectValue("itemName","required"); } if (item.getPrice() == null || item.getPrice() < 1000 || item.getPrice() > 1000000) { bindingResult.rejectValue("price","range",new Object[]{1000,1000000},null); }
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
Test에서 NullpointerException이 떠요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의중 커넥션풀을 이용해 Test를 해보는 부분입니다.(강의에선 V1 로 사용하지만 저는 V0이라고 이름만 다르게했습니다)강의에선 이렇게 코드를 작성하시는데, 저는 똑같이 해서 test해보면 아래 crud메서드의 repository.save(member); 부분에서 nullpointerException이 발생합니다. 혹시 beforeEach 메서드 내의 초기화부분이 잘못된건가 해서이런식으로 초기화부분을 crud 메서드 안으로 가져온뒤 실행하면 테스트에 성공합니다.어디에 문제가 있는지를 잘 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
카테고리 관련 질문드립니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예 )2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 )[질문 내용]그러면 ManyToMany는 안쓴다고 하셨는데 .보통 카테고리는 실무에서 다는 알수 없겠지만 대략적으로 이해될수 있게 어떤 형식으로 entity를 구성하는지 알수있을까요보통 3뎁스 정도로 잡는다고 한다면요 ..실무에 이번에 jpa도입 할려고 하는데 카테고리는 어떤식으로 하는지 궁금합니다 .Mybatis를 주로 쓰고 관계형 테이블에서는 대충 감이 오는데 엔티티로 할려니 어떤식일까 강의 듣는 내내 .. 궁금해서요 ...id , parentid, level, name 등이 있다고 가정한다면요 ..
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
h2 설치과정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 모든 글들을 찾아본 결과 제가 원하는 답변들이 없어서 질문합니다 군인으로 지금 사지방에서 개발을 진행하고 있는데 h2 데이터베이스에서 항상 막혀 질문합니다.h2.bat 실행이 막혀있어 진행이 불가능합니다 혹시 이러한 해결책을 아시는지 궁금합니다. 의존성으로 추가해서 하는 방법이 있던데 yml 방식과 예전버전이라 방법이 안통하는것 같습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행 코드가 부족하게 나오네요 문제가 뭘까요..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 이상 프로그램이 실행이 안되네요 ㅠ문제가 뭔가요? 오류도 아니고..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
궁금증
제가 초기에 jar로 설정하면 jsp가 안ㄴ먹힌다고 들었는데, 지금까지 jsp가 잘 되는데 왜 그런걸까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2에 Member 테이블이 생성되지 않아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이렇게 컴파일 할 때 테이블이 실행되는 줄이 강의처럼 출력되지 않고 h2 에도 실제로 만들어지지 않아요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:field 태그에 대해서
th:field="*{itemName}" 이 태그의 *{itemName}" 은ValidationItemControllerV2 클래스에있는bindingResult.addError(new FieldError("itm", "itemName","상품 이름은 필수 입니다"));이 코드의 "itemName"과 매핑되는게 맞을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
수업을 듣다보니 제가 잘 이해한게 맞는지 궁금해서...
이렇게 이해해도 괜찮을까요?
-
해결됨스프링 핵심 원리 - 기본편
수동SpringBean등록 : @Bean을 사용, @Autowired사용X , 자동SpringBean등록 : @Component, @Autowired사용 이렇게가 맞을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]이 질문을 주변 사람에게 해봤더니 @Autowired는 의존성 주입과 관련된 부분이라 자동이든 수동이든 상관없이 @Autowired를 사용한다는 얘기를 들어서요..하지만 수동일땐 @Autowired를 사용안하던 것 같은데... 수동일 때도 @Autowired를 쓰긴 쓰나요..?