월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 핵심 원리 - 기본편
오류가 뜨는데 원인을 못찾겠습니다..
오랜만에 공부하러 왔는데 죄다 오류라고 뜨네요appconfig 자체의 빈을 아예 못찾아서 이러는것 같은데건드리지도 않았는데 왜 이러는지...오류를 찾을 수 있는 방법이 있을까요?
- 미해결스프링 핵심 원리 - 기본편
HashMap<String, DiscountPolicy> 데이터
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.일단 LIst<DiscountPolicy>에 데이터들이 들어가있는 것을 보아 component 등록을 통해 컨테이너에 있는 것 같습니다.또한 getBeanDefinitionName을 통해서 bean으로 등록된 이름도 출력되는데hashMap<String, DiscountPolicy> 에 들어가 있는 데이터가 하나도 없어요...결국 beanDefinitionName이 HashMap에 있는 String에 들어가지 않은 거 같은데 어떻게 해결할 수 있을까요?
- 해결됨스프링 핵심 원리 - 기본편
@Configuration을 안 쓰고 @Bean만 쓴 경우
안녕하세요:) @Configuration과 Bytecode의 조작의 마법 강의에서 질문드리고 싶은 점이 있습니다. AppConfig에서 @Configuration을 안 쓰고 @Bean만 쓴 경우에 스프링 빈으로는 다 등록된다고 하셨는데요,그렇다면 스프링 빈으로 올라갈 때 memberRepository()가 세 번 호출되면서 이름은 memberRepository으로 존재하고 인스턴스 객체는 그때마다 덮어씌우기 되는 건가요??아니면 이름 한 개에 여러 개의 객체 인스턴스가 스프링 빈으로 등록되는 걸까요?또는 프로토타입 스코프 빈처럼 요청할 때마다 새로 생성되는 건가요..?? 또 @Bean만 작성해도 스프링 빈으로는 등록되지만, memberRepository가 스프링 컨테이너가 관리하는 스프링 빈이 아니라는 말도 이해가 잘 안가서요..! 같이 질문드리고 싶습니다.질문이 매끄럽지 못해서 죄송합니다 ㅠㅠ
- 미해결스프링 핵심 원리 - 기본편
CoreApplication 실행시 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예강의초반의 설명에 따라 hello.core.CoreApplicaton을 실행하니MemberServiceImpl에서 생성자가 1개의 bean을 필요로 하는데 두개의 bean이 찾아졌다고 합니다. Description에따라 MemberServiceImpl, MemoryMemberRepository, AppConfig를 확인해보았지만강의와 다른 점을 찾지 못해 해결하지 못하였습니다. Action에 적힌 것처럼 @Primary를 붙이거나 @Qualifier을 붙여서 해결해야 하는 건가요?MemberServiceImplAppConfigMemoryMemberRepositoryAutoAppConfig
- 미해결스프링 핵심 원리 - 기본편
@Autowired 빨간줄
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)@Autowired 입력시 빨간줄이 뜹니다무시하고테스트 코드 동작시에는 통과로 뜨지만,키값과 값이 비어있습니다.에러 내용은 다음과 같습니다.Autowired members must be defined in valid Spring bean (@Component|@Service|...) @Component를 추가하면 없어지지만,테스트 코드 실행시 키값과 값이 비어있는것은 동일합니다..
- 미해결스프링 핵심 원리 - 기본편
mysql 연동관련
안녕하세요 옛날에 했던 프로젝트 db를 mysql로 바꾸는 중에 에러가 났습니다.db connection까지도 완료 했는데 에러가 뜨네요무슨 문제일까요....
- 미해결스프링 핵심 원리 - 기본편
Spring 에서 MVC 간 객체를 넘겨주는 방법에 대한 질문
강의하셨던 코드를 쭉 훑어봤습니다.강의에서 Spring이 굉장히 방대한 것을 알았습니다. 그리고, Spring에서의 MVC구조에 대해서는 대략 알게 되었습니다. 강의를 듣다 문득 궁금해졌던 부분인데,Spring 에서는 객체를 Spring Container에 넣어줘서 Bean으로 관리한다고 알려주셨습니다. Bean으로써 관리되는 객체는 Spring이 자동적으로 Dependency Injection을 한다고도 알려주셨고요.Spring Container, Bean은 자동 객체의 생성과 관리를 관장한다고는 알고있긴합니다만, MVC간 data 전달은 잘 모르겠습니다. 궁금한것은 Model Controller View간 객체를 전달 할 때의 방법과 그 내부적인 원리에 대해서입니다.Controller에서 Service/DTO/Repository쪽에서 Object를 어떻게 HTML인 View 에 전달하는지그리고 View에서 어떻게 Object를 사용하고,또 그 Object를 어덯게 Controller에 전달하는지가 알고싶습니다.또, URL에서 QueryString이 어떻게 Client쪽에서 처리되어 Server쪽에 도달하는지, 그 내부적인 프로세스에 대해서 알고싶습니다.전체적으로 Object들이 어떤 흐름으로 MVC에 전달되고, MVC 내부적으로 어떻게 Object들을 공유하길래 HTML과 Java Code간 객체의 데이터를 공유가능한건지 궁금합니다. 이건 Serialization과 관련된 내용인가요? 저 내용들을 다 알려주시기 어렵다면, 검색 키워드만이라도 알려주시면 좋겠습니다. "how does spring send objects with view internally and controller" "how does spring view send object to controller internally"등으로 검색해봐도 원하는 정보가 나오지 않네요...또한, 저 내용들이 김영한님 강의에 있는 내용이라고 하고, 더 강의를 들으면 알 수 있는 내용이라고 한다면, 검색 키워드와 함께 김영한님 강의 어느부분에서 다루는지도 알려주셨으면 합니다. 일단 강의는 모두 구매한 상태라 들을 수 있습니다..
- 미해결스프링 핵심 원리 - 기본편
스프링 빈 등록과 의존관계 설정
수동으로(AppConfig를 이용해서) 스프링 컨테이너에 빈을 등록하는 과정에서 만약 다른 빈이 필요하다면 해당 빈의 의존성이 주입 된다고 이해했는데 그렇다면 실제로 등록과 의존성 주입은 거의 동시에 일어나고 강의에서 이 두 과정을 분리해서 설명한 것은 이해를 돕기 위한 것인지 확인 차 질문 드립니다.
- 미해결스프링 핵심 원리 - 기본편
been.getClass() 출력할 때 값이 다른데 상관없을까요?
제 결과영한님의 결과bean = class hello.core.AppConfig$$EnhancerBySpringCGLIB$$bd479d70xxx.SpringCGLIB의 xxx 는 어떤 의미인가요? 저는 아무것도 뜨지 않아서 이게 잘못된 결과인가 싶어서 질문드립니다.학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
- 미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔과 의존관계 자동 주입 시작하기 test중 NoSuchBeanDefinitionException 에러
package hello.core.member; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class MemberServiceImpl implements MemberService { //private final MemberRepository memberRepository = new MemoryMemberRepository(); private final MemberRepository memberRepository; @Autowired public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member){ memberRepository.save(member); } @Override public Member findMember(Long memberId){ return memberRepository.findById(memberId); } //싱글톤 test용 public MemberRepository getMemberRepository() { return memberRepository; } }basicScan 테스트를 진행하는데 코드를 몇 번씩 비교했는데 저렇게 떠서 왜인지 찾다가 https://www.inflearn.com/questions/799379/nosuchbeandefinitionexception-no-qualifying-bean-of-type-x27-hello-core-member이 사이트에서 OMG님이 제공해주신 test코드 @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); System.out.println("================"); String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for(String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); if (beanDefinitionName.contains("memberService")) { if(beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { System.out.println("beanDefinitionName : " + beanDefinitionName + " beanDefinition : " + beanDefinition); } } } System.out.println("================"); // MemberService memberService = ac.getBean(MemberService.class); // assertThat(memberService).isInstanceOf(MemberService.class); }를 돌리면 제공해주신 출력 예시대로 나오는데 ,정작 강의에서 해주시는 Test코드는 계속 에러가 나고 있습니다 ㅠㅠㅠ어떻게 해결해야할까요..?
- 해결됨스프링 핵심 원리 - 기본편
실행 결과에 로그
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]저는 실행 결과가 왜 깔끔하게 나오지 않는지 알려주세요..!
- 미해결스프링 핵심 원리 - 기본편
빈 생명주기 콜백 시작 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 생명주기 콜백 시작 강의 17:38 설명을 보면객체와 생성과 초기화를 분리해서 생성자에 파라미터로 받는 것은 되도록이면 지양하라고 설명해주셨고예시로 setXXXX( 파라미터), setter를 사용하셨습니다. 바로 전 강의에서 의존관계 자동주입 @Autowired를 사용할 땐 생성자 초기화를 주로 하고수정자(setter)는 생성자 초기화를 사용하지 않을때 가끔 사용하라고 하셔서 두 내용이 머릿속에서 충돌하고 헷갈립니다!어떤 부분이 다른건가요? 제가 이해를 잘못한건지 궁금합니다. 답변 기다리겠습니다 감사합니다
- 미해결스프링 핵심 원리 - 기본편
예전부터 궁금했는데, 강의자료가 PDF 말고는 없나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]PDF 파일을 다운 받아서, 굿노트에서 보고있는데 코드를 복사한다던가 appConfig.xml 파일을 다운해서 "다양한 설정 형식 지원 - 자바 코드, XML" 강의에서 말씀하신대로 엔터프라이즈 인텔리제이가 아니기 때문에 resources 디렉토리 안에 넣어주려고 하는데도 파일을 받을 수 있는 링크가 어디있는지 모르겠습니다. 저만 못보는건가요 ? 그냥 따라쳐도 되나요?
- 미해결스프링 핵심 원리 - 기본편
테스트시 로그가 뜨지 않는다면 어떻게 해야하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]테스트 시 로그가 뜨지 않습니다!
- 미해결스프링 핵심 원리 - 기본편
AppConfig를 스프링 방식으로 전환 후, MemberApp, OrderApp에서 스프링 로그가 출력되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]AppConfig를 스프링 방식으로 전환 후, 수업에서 보이는 것 처럼 MemberApp, OrderApp에서 스프링 로그가 출력되지 않습니다.[OrderApp 실행화면]자바 버전은 openjdk 21, springframework 버전은 3.2.1 입니다.@Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public static MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public static RateDiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } }public class MemberApp { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(1L); System.out.println("new Member = " + member.getName()); System.out.println("find Member = " + findMember.getName()); } }public class OrderApp { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); OrderService orderService = applicationContext.getBean("orderService", OrderService.class); Long memberId = 1L; Member member = new Member(memberId, "memberA", Grade.VIP); memberService.join(member); Order order = orderService.createOrder(memberId, "itemA", 10000); System.out.println("order = " + order); } }
- 해결됨스프링 핵심 원리 - 기본편
역할에 대한 구현이 하나만 존재하는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]이미 비슷한 질문과 답변이 있었네요!-> 추상화도 비용이기 때문에, 확장 가능성이 없다면 처음에는 구체 클래스로 직접 구현 하고 이후 확장 필요성이 생기면 리팩토링을 하면서 추상화를 사용할 수 있다.구체에 의존하지 않고 추상에 의존해야한다는 DIP 원칙을 예시 코드에서는 OrderServiceImpl 이 MemberRepository, DiscountPolicy 라는 추상 클래스에 의존해서 달성하고 있는 것으로 이해 했습니다. 만약 MemberRepository 라는 역할의 구현이 MemoryMemberRepository 밖에 없고 구현이 늘어날 가능성이 거의 없는 경우라고 가정하면, 그때도 MemberRepository 라는 인터페이스를 만들고 OrderServiceImpl 이 구체 클래스가 아닌 추상 클래스를 의존하도록 만드는 것이 일반적인지 현업에서의 경험이 궁금합니다. 구체 클래스만 작성해서 바로 OrderServiceImpl 이 의존하도록 만들고 싶은 유혹이 올 것 같아요.
- 미해결스프링 핵심 원리 - 기본편
test 실행후 결과
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]어느 순간부터 테스트클래스를 실행시키면 아래 결과창에 Test Results라고만 나오고 각각의 test들의 결과는 나오지 않습니다. 무엇을 어떻게 설정해야 할까요? 테스트 이름 뿐만 아니라 class의 이름도 뜨지 않습니다.
- 미해결스프링 핵심 원리 - 기본편
application 실행 시 log-demo 페이지 404 에러가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝트 전체 파일 : https://drive.google.com/file/d/1GSLGt7mplnz7FSfy0AgcI-_TVa_rDOAo/view?usp=sharing LogDemoController / LogDemoService 작성하여 application을 실행 시켰고 localhost:8080/log-demo 접근 시 404에러가 뜹니다.다른 로그는 남지 않고 아래와 같은 로그만 계속 남겨집니다.강의 초반 패키지 생성 시 따라가지 못하여 com.example.inflearn_01로 생성했었는데 이 부분이 문제일까요?다른 것들 최대한 따라한다고 했봤는데 이부분에서 문제가 생깁니다 😭😭 확인한번 부탁드립니다!
- 미해결스프링 핵심 원리 - 기본편
ConfigurationSingletonTest 코드 오류 여쭤봅니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.ConfigurationSingletonTest 코드에서 오류가 나서 질문드립니다. cannot find symbol이란 에러가 뜨는데 찾아보니경우1) orderServiceImpl.java 에서 memberRepository를 주입하지 않아 생기는 오류라고 뜹니다. 경우2) import 문의 문제일 수도 있다고 뜹니다. 둘 중 어떤 경우인지, 또 어떻게 고쳐야 할 지 모르겠어서 여쭤봅니다. 문제가 생긴 코드 OrderServiceImpl
- 해결됨스프링 핵심 원리 - 기본편
21:40 필드주입 과정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]21:40 쯤 테스트 과정에서 필드 주입으로 인해 null이 뜬다 하셨는데 이해가 안갑니다.필드 주입으로 인해 처음 객체가 생성될 시 의존성 주입으로 생성됨그로 인해 외부에서 다시 DI 를 하면 변경이 안됨DI 가 되질 않아서 NULL 이 떴다? 라고 이해하면 되는건가요?