월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 핵심 원리 - 기본편
Scope 사용하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점까지 강의를 듣고 어느정도 프로토타입의 특성을 알게 되었습니다. 그런데 실무 경험이 없어서 그런지 프로토타입을 왜 사용하는지, 싱글톤과 프로토타입을 왜 같이 사용하는지 모르겠습니다.
- 해결됨스프링 핵심 원리 - 기본편
OCP 원칙관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]만약에 새로운 구현체를 만들어서 기능을 확장하게 되면 인터페이스에 새로운 내용을 추가해야 할수도 있을거 같은데 이러면 OCP 원칙에 위반된게 아닌건가요?예를 들면 구현체에Member del(Member member){ // 코드 생략 }이런식으로 멤버를 삭제하는 기능을 만들어서 확장한다고 하면 인터페이스에 Member del(Member member);라는 코드를 추가해야지 않나요??
- 미해결스프링 핵심 원리 - 기본편
mainDiscountPolicy 사용 시 StartApplicationTest에서 에러가 납니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. mainDiscountPolicy를 만들고 test를 돌려봤는데 다음과 같은 에러가 납니다.StartApplicationTest를 제외하고는 다 통과합니다.잘 따라한 것 같은데 에러가 나서 질문드립니다. 어떻게 해결해야 할까요? java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@15f2eda3 testClass = spring.demo.StartApplicationTests, locations = [], classes = [spring.demo.StartApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@27912e3, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@30b6ffe0, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@24c22fe, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@72ade7e3, org.springframework.boot.test.context.SpringBootTestAnnotation@315e37a3], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
- 해결됨스프링 핵심 원리 - 기본편
static class
static class 설정파일왜 대부분의 테스트시 static class 를 이용해서 스프링설정을 하시나요? default class 를 이용해서 스프링 설정을 하는건 어떤지 궁금합니다.
- 해결됨스프링 핵심 원리 - 기본편
스프링 컨테이너를 테스트에 통합한 경우
강의자료에 아래의 문장이 있습니다. 순수한 자바 테스트 코드에는 당연히 @Autowired가 동작하지 않는다. @SpringBootTest 처럼 스프링 컨테이너를 테스트에 통합한 경우에만 가능하다. 이 말의 의미가 아래 2가지 경우 모두 해당되는게 맞을까요?1) @SpringBootTest 이 있는 클래스 내부에서 @Autowired 를 사용해서 의존관계주입하는 경우 2) Class 내부에 @Autowired 를 사용해서 의존관계를 표시하고 new AnnotationConfigApplicationContext(test.class) 으로 스프링 컨테이너를 생성한 경우
- 미해결스프링 핵심 원리 - 기본편
AppConfig import 되지 않는 이유가 궁금합니다..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]AppConfig가 import되지 않는 이유가 궁금합니다.
- 미해결스프링 핵심 원리 - 기본편
CoreApplication 작동시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 마지막 스프링 부트 테스트에서 오류가 발생했습니다..강의 들으면서 똑같이 했는데 왜 저는 빈이 두개 나온다고 오류가 나올까요.... AppConfig.class 에서 @Configuration을 주석 처리 하면 스프링부트 테스트가 되긴 하는데 강의에서 주석처리하는걸 못봐서,,,,,어떻게 해야하는걸까요..?
- 해결됨스프링 핵심 원리 - 기본편
@RequiredArgsConstructor를 포함한 생성자 2개
[질문 내용]@RequiredArgsConstructor //필수값(ex final)으로 생성자를 제공 public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; //final을 붙이면 값이 무조건 필요하다는 뜻 public OrderServiceImpl() { System.out.println("abc"); } }이런식으로 @RequiredArgsConstructor 으로 final을 매개변수로 갖는 생성자와 매개변수가 없는 생성자를 따로 만들면 이런식으로 변수가 초기화 되지 않았다고 오류가 발생하는데 @RequiredArgsConstructor은 생성자가 없을 때만 사용할 수 있는거라서 매개변수 없는 생성자를 만들었기 때문에 @RequiredArgsConstructor` 가 작동을 안 하는건가요?
- 미해결스프링 핵심 원리 - 기본편
setter 주입 테스트 코드
[질문 내용]영상에는 생성자 주입 테스트만 있어서 수정자 주입을 했을 때 테스트 하는 방법에 대해 생각해 봤습니다.@Test void test(){ ApplicationContext ac = new AnnotationConfigApplicationContext(OrderServiceImpl.class); MemoryMemberRepository memberRepository = new MemoryMemberRepository(); memberRepository.save(new Member(1L, "name", Grade.VIP)); OrderServiceImpl bean = ac.getBean(OrderServiceImpl.class); bean.setMemberRepository(memberRepository); bean.setDiscountPolicy(new FixDiscountPolicy()); Order order = bean.createOrder(1L, "itemA", 10000); Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000); }이렇게 테스트 코드를 작성하는게 맞을까요?
- 미해결스프링 핵심 원리 - 기본편
의존관계 필드 주입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 똑같이 코드를 따라한 것 같은데 NoSuchBeanDefinitionException 이 터집니다.
- 미해결스프링 핵심 원리 - 기본편
@Autowired 생략 주소찍기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 중 memberRepository 와 discountPolicy 주소를 출력하는 것이 안 됩니다.logback.xml 문서는 이미 작성되어 있습니다.
- 미해결스프링 핵심 원리 - 기본편
FixDiscountPolicy의 discount()의 매개변수로 price를 넣는 이유
@Override public int discount(Member member, int price) { // int price 는 왜 넣지 ? if (member.getGrade() == Grade.VIP) { return discountFixAmount; } else { return 0; } }이 메서드에서, discount의 매개변수로 member와, price를 넣고 있습니다. member 객체는 Grade의 값이 VIP인지 알아내야 하므로 넣는것을 이해하고 있습니다.그런데 price는, 메서드 내에서 사용하지 않고 있는데 왜 price 값을 매개변수로 넣고 있나요 ? 확장 가능성 때문이라고 봐야할까요 ?
- 미해결스프링 핵심 원리 - 기본편
member와 findMember의 .isEqualTo 비교
강의내용 7:00 에 등장하는 Assertions.assertThat(member).isEqualTo(findMember);에서 member와, findMember를 isEqualTo(내용비교)를 통해 내용이 같은지 검증을 하고 있습니다. 여기서는 당연히 member와 findMember의 내용비교가 같다는 것을 이해하였습니다.그런데 isSameAs(주소값 비교)로 검증을 해보아도 주소 값이 같다는 결과가 나왔습니다. println() 메서드를 통해 member와 findMember의 주소값이 같다라는 결과도 눈으로 확인하였습니다. member는 new Member(1L, "memberA", Grade.VIP); 를 통해 객체를 새로 생성하여 member객체에 담았고,findMember 객체는 member의 값을 join을 통해 memberServiceImpl.join -> MemoryMemberRepository.save를 호출하여 store에 저장되어이있는 값을 findById를 통해 가져와서 Member 타입의 findMember에 새로 저장을 했다라고 생각이 들어, 제 생각에는 member와 findMember의 주소값 비교가 다르다는 결과가 나와야 되지 않나 싶어 질문 남깁니다.member객체와 findMember의 주소값 비교가 어떻게 같을 수 있는 것인가요 ?
- 미해결스프링 핵심 원리 - 기본편
빌드 오류가 발생해요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.강의를 보면서 그대로 코드를 따라치면서 공부하고 있는데 한번씩 org.junit package does not exist 같은 오류가 나면서 빌드에 실패하는 경우가 있습니다.설정에서 build and run using, run tests using을 모두 intellij IDEA로 바꾼 상태인데로 오류가 반복되는데 이런 경우의 원인과 해결법이 알고 싶습니다.
- 해결됨스프링 핵심 원리 - 기본편
@Configuration과 싱글톤
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]스프링 컨테이너의 싱글톤 방식을 확인하기 위해서 강사님의 코드를 똑같이 따라쳤는데 조회되는 값이 동일하지 않고 다릅니다 ㅠㅠ
- 미해결스프링 핵심 원리 - 기본편
웹 서버
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Tomcat started on port(s): 8080 (http) with context path '' Started CoreApplication in 0.914 seconds (JVM running for 1.528) 이라는 메시지가 나와야 하는데, 똑바로 gradle에도 implementation 'org.springframework.boot:spring-boot-starter-web'을 넣고 실행을 했는데, Whitelavel Error page가 뜨지 않고 접속할 수 없다고 뜹니다.
- 미해결스프링 핵심 원리 - 기본편
Enum의 기능과 멤버 클래스에서 id를 Long으로 하는 이유가 무엇인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.Enum의 기능과 역할 그리고 멤버 클래스 생성시 id를 Long으로 한 이유를 알고 싶어요
- 미해결스프링 핵심 원리 - 기본편
No tests found for given includes 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링 환경 설정과 실행의 코드를 작성하는 중에 오류가 떠서 코드를 몇번이고 확인했는데 어디가 잘못된건지 모르겠어요ㅠ
- 해결됨스프링 핵심 원리 - 기본편
모든 테스트 한번에 실행
지금까지 만든 테스트 작성코드는 총 3가지입니다.RateDiscountPolicyTestMemberServicetestOrderServiceTest 각각 실행하지 말고 한번에 실행하고 싶은데 어떻게 해야 하나요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
- 미해결스프링 핵심 원리 - 기본편
console 색상 변경
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 영한님 안녕하세요. ansi terminal 로 적용하고 싶어서 Grep Console plugin 비활성화 후 resources/application.properties 에서 spring.output.ansi.enabled=always 를 적용해도 똑같고 gradle refresh를 해도 위 사진과 똑같은 상황입니다. 어떻게 적용하는지 모르겠습니다..ㅠ 2. properties 에서 logging.level.root=info를 적용하지 않으면 많은 로그가 나오는데요 무조건 info 를 적용해야하는걸까요?