월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 핵심 원리 - 기본편
생성자 주입을 사용하는 경우 생성과 초기화의 분리
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 :) 강의를 듣다가 초기화 시점에 대한 의문이 생겨 질문 드립니다. 먼저 객체의 생성과 초기화를 분리해야 한다는 말의 요지는 이해하였습니다!그런데 생성자 주입을 사용하는 경우에는 생성자 호출과 함께 의존관계가 주입된다고 배웠는데,이 경우에는 생성자 내에서 초기화를 함께 해도 정상적으로 초기화가 일어날 수 있는 것인가요? (객체에서 외부 API 연결 초기화 등의 작업을 해야 하는 경우)혹은 다른 권장되는 방법이 있다면 알려주시면 감사하겠습니다 !! 항상 좋은 강의 감사합니다 🙂
- 해결됨스프링 핵심 원리 - 기본편
request scope
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]LogDeomContrller에서 MyLogger myLogger = myLoggerProvider.getObject(); 할 때 MyLogger 객체를 생성해서 반환하는 것으로 인지했습니다. 그런데 LogDeomService에서 다시 한 번 MyLogger myLogger = myLoggerProvider.getObject(); 를 할 때 어떤 원리로 LogDeomContrller에서 생성된 MyLogger객체를 가져올 수 있는지 궁금합니다.
- 해결됨스프링 핵심 원리 - 기본편
@Configuration
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Configuration을 지정해주지 않아도 스프링 컨테이너 파라미터에 등록하게 되면 싱글톤이 보장되는게 맞나요? 맞다면 그 이유는 scope의 defualt가 싱글톤이기 때문인가요? @Configuration의 역할이 CGLIB를 사용해서 싱글톤을 유지해주는걸로 알고있는데 만약 1번에 가정이 맞다는 경우에 굳이 @Configuration을 사용하지 않아도 싱글톤을 유지해줄텐데 @Configuration을 사용하는 이유가 궁금합나다.
- 미해결스프링 핵심 원리 - 기본편
의존관계 자동 주입 - 조회한 빈이 모두 필요할 때
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]조회한 빈이 모두 필요할 때, List, Map을 사용하는 예제에서요 DiscountService 클래스는 Map으로 모든 DiscountPolicy를 주입받는다고 했는데 생성자로 의존관계가 주입되는건가요??그리고 만약 생성자로 의존관계가 주입된다고 하면 Map<String, DiscountPolicy> 에서 String 타입은 빈으로 등록된 게 없어서 의존관계가 주입될 수 없는거 아닌가요??
- 미해결스프링 핵심 원리 - 기본편
롬복
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]롬복 관련해서 질문이 있는데요 @RequiredArgsConstructor 쓰면 자동으로 생성자에 의존관계가 주입되는 건가요??
- 미해결스프링 핵심 원리 - 기본편
의존관계 자동 주입 - 필드주입
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]의존관계 자동주입 부분 강의에서 필드 주입이라는거는 스프링 컨테이너에서 빈을 찾아서 주입해주는걸 말하는 건가요?? 필드 주입은 정확히 어떤 때 쓰는건가요??
- 미해결스프링 핵심 원리 - 기본편
의존관계 자동 주입 강의 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]의존관계 자동 주입 부분 강의듣고 있는데요 생성자 주입이랑 수정자 주입부분 설명하실때 코드에 this.memberRepository = memberRepository;이런 코드가 존재하는데 이는 필드값을 변경하는거 아닌가요?? 싱클톤 컨테이너 강의에서 싱글톤 방식의 주의점에서 특정 클라이언트가 값을 변경할수 있는 필드가 있으면 안된다고 하셨는데 그러면 위의 코드처럼 쓰면 안되는거 아닌가요??
- 미해결스프링 핵심 원리 - 기본편
수정자 주입
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수정자 주입 부분 강의에서setter함수에 print문을 넣었을때 @Autowired 를 붙이면 프린트문이 출력이 되는데 @Autowired를 안 붙이면 프린트문이 출력이 안된다고 하셨는데 왜 그런건가요??AutoAppConfigTest를 실행시켰을때 setter 함수를 호출하지 않았는데 OrderServiceImpl에서 @Autowired를 붙여 수정자 주입을 붙였을때 setter의 프린트문이 출력되는 원리는 무엇인가요??
- 미해결스프링 핵심 원리 - 기본편
의존관계 자동 주입 - 생성자 주입
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]생성자 주입 부분에서 생성자 주입을 이용하면 setter 메서드를 쓰면 안된다고 하셨는데 왜 그런건가요??생성자 주입을 하면 setter 메서드는 아예 못쓰는 건가요???
- 미해결스프링 핵심 원리 - 기본편
싱글톤 패턴 문제점에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다.클라이언트 코드에서 getInstance() 메소드를 이용해서 싱글톤을 이용한다면 구체 클래스를 의존하므로 DIP에 위반된다. (AppConfig와 같이 설정 정보 클래스를 사용하지 않는 것을 전제)3. 생성자가 private로 자식 클래스를 만들기 어렵다.4. 클라이언트가 구체 클래스에 의존해서 OCP 원칙을 위반할 가능성이 높다. (AppConfig와 같이 설정 정보 클래스를 사용하지 않는 것을 전제)5. 내부 속성을 변경하거나 초기화 하기 어렵다.6. 테스트하기 어렵다.여기서 5, 6 부분이 잘 이해가 잘 되지 않는데예시를 보여줄 수 있을까요?
- 해결됨스프링 핵심 원리 - 기본편
아직 자동, 수동 실무 운영 기준이 안 와닿아요.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저는 그래도 한 눈에 볼 수 있는 AppCofig가 더 좋은 것 같아요. 아직 배우는 중이고, 실무 경험이 없어서 그런거겠죠? 실무 경험이 많으시니 보통 Service, Repository, Controller같은 거는 거기서 거기이니 그러신 거겠죠? 저는 @Service, @Repository, @Cotroller는 최상단에 놓고, 나머지는 아래쪽에 넣고 줄바꿈 좀 해주고 주석 좀 넣어주고 그런 식으로 하는 게 좋을 것 같아요. rate fixed 같은 경우는 강의대로 따로 모아두고 ApplicationContext에 인자로 여러 개 추가할 수 있으니까..
- 미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컴포넌트 스캔 강의를 듣다 질문이 있는데요 @ComponentScan 을 쓰면 @Configuration도 꼭 써줘야 되나요 아니면 그냥 @ComponentScan만 써도 되는건가요??? 두 개의 어노테이션의 차이는 뭔가요?그리고 앞선 강의인 싱글톤 컨테이너에서 @Configuration 과 @Bean 을 이용했을땐 따로 @Autowired 안써서 의존관계를 주입을 안해줬는데 그때는 따로 의존관계를 주입하지 않아도 되나요??
- 해결됨스프링 핵심 원리 - 기본편
@configuration 싱글톤
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]싱글톤으로 등록이 되는 이유는 AutoAppConfig에 @Configuration이 붙었기 때문인가요?
- 해결됨스프링 핵심 원리 - 기본편
ac.getBeansOfType(Object.class);
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링 컨테이너에 설정 정보를 넣어주고 이를 기반으로 테이블을 만드는 것으로 인지했습니다.현재 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); 와 같이 설정하였고obj클래스는 스프링 컨테이너에 설정 정보를 넣어주지 않았는데 컨테이너 안에 왜 obj 빈이 존재하며 getBeansOfType을 할 수 있는 이유가 궁금합니다.
- 해결됨스프링 핵심 원리 - 기본편
Map<String, DiscountPolicy> 등록될 때 String
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Map에 DiscountPolicy 주입될 때, getBean하는거랑 비슷하잖아요. 이 때 String도 자동으로 넣어주는.. 그런 부분이 잘.. 안 와닿아서요. 그러니까 Map 자체는 Key가 필요하기 때문에, 자동으로 맵 자체가 그러니까 따지자면 getBean(DiscountPolicy.class).toString()해서 자체적으로 넣어주는 거죠? 이걸 Map<>이 실행해주는거죠?
- 미해결스프링 핵심 원리 - 기본편
IoC 컨테이너에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.'AppConfig 처럼 객체를 생성하고 관리하면서 의존관계를 연결해 주는 것을 IoC 컨테이너 또는 DI 컨테이너라 한다. ' 라고 하셨는데여기서 IoC 컨테이너라고 부르는 이유가AppConfig를 사용하는 클라이언트 구현 객체가외부에서 구현 객체를 주입하는 방식을 통해(DI) 프로그램의 제어를 외부로 넘기는 것(IoC)을 만족하기 때문인가요? 정리 하자면IoC: 프로그램의 제어를 외부로 넘기는 것DI: 외부에서 구현 객체를 주입하는 방식 결국 IoC 라는 개념이 DI 같은 개념을 사용해서 프로그램 제어가 외부로 넘기는 방식이라고 이해해도 되는지 궁금합니다.
- 미해결스프링 핵심 원리 - 기본편
빈 스코프 강의 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 스코프와 Provider 강의를 듣고 있는데요 그대로 코드 따라치고 있는데 web 패키지를 빌드하면 java: package hello.core.common does not exist이런 오류가 뜹니다 ㅠㅠㅠ분명히 hello.core 아래에 common 패키지가 존재하고 있고 import도 잘 되어있는데 왜 안되는 건가요??이런 경우 문제를 어떻게 해결하나요??
- 미해결스프링 핵심 원리 - 기본편
@Bean 메서드를 호출하면 프록시되어서 AppConfig@CGLIB 의 override 된 함수가 실행되는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한님의 말씀에 의하면AppConfig의 자식클래스인 AppConfig@CGLIB가 스프링 빈으로 제일 먼저 등록되어서, 누가 @Bean 메서드를 호출하려할때 가로챈? 다음, 빈으로 등록된 AppConfig@CGLIB에 override 된 해당 메서드를 실행하여 (등록이 안되어 있으면)스프링 빈으로 등록할지, 등록된 걸 내보낼지 결정한다. 라고 이해했는데 맞는지 궁금합니다!
- 해결됨스프링 핵심 원리 - 기본편
참조값이 다른게 스프링 컨테이너를 사용하지 않아서라고 이해했는데 맞는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에 전부터 계속 스프링 컨테이너를 사용하시다가 이번에 아래 그림처럼 AppConfig 객체를 바로 생성해서 사용하시길래 처음에 "스프링 컨테이너를 만들었는데 왜 참조값이 다르게 나오지?"라고 잘못이해했었는데요,제가 이해한게 맞다면 아래 첫번째 그림은 스프링 컨테이너를 사용한게 아니라서(싱글톤 패턴도 사용하지 않았고) 매번 함수 호출시마다 new에 의해 객체가 새로 생기는거고, 두번째 그림이 스프링 컨테이너를 생성해서 등록된 하나의 객체를 사용하고 있는거라고 이해했는데 맞는지 궁금합니다 :)
- 해결됨스프링 핵심 원리 - 기본편
컴포넌트 스캔 쓰나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]기존의 AppConfig가 훨씬 좋은 것 같아요..먼저 구현체의 이름으로 등록된다는 점, 그리고 갈아끼울 때 구현체 코드를 수정해야 된다는 점, 그리고 궁극적으로 의존관계를 한눈에 보지 못하는데 이거 쓰나요..?