월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 핵심 원리 - 기본편
getBeanDefinition() 메서드가 존재하지 않네요?
getBeanDefintionNames()하고 getBeanDefintionCount()두개 만 존재하는데 다른 메서드를 써야 하나요?
- 해결됨스프링 핵심 원리 - 기본편
싱글톤 빈과 request scope 빈
컨트롤러 빈은 싱글톤이고, 여기에 Provider로 매 클라이언트의 요청시마다 새로운 request scope빈을 생성해 주입해준다는 것 까지는 이해했습니다. 그런데 강의 7:40처럼 메서드 logDemo를 호출하는 메인 쓰레드를 sleep()하고 그 사이 여러번 요청을 했을때, 쓰레드가 깨어나면서 각 요청마다 새로운 request scope빈이 생성되고 다시 여러번 종료되는 것이 이해가 되지 않습니다. 컨트롤러 빈은 싱글톤이라, 다음번 새로운 request빈이 들어올 때까지는 전의 request빈의 주소값을 갖고 있을텐데 어떤 과정으로 싱글톤빈의 log-Demo실행 중 내부 주입되는 request빈이 교체될 수 있을까요? 컨텍스트 스위칭처럼 logDemo의 실행간 내부 주입되는 빈이 교체되는 건가요?
- 미해결스프링 핵심 원리 - 기본편
스프링전환 실행시 로그내용이 나오지 않네요?
스프링 전환 실행 후 실행창에 나오는(4분50초) 로그 내용이제 실행화면에는 안나오고 결과 값만 나오네요???코딩은 똑 같이 했고, 결과도 잘 나옵니다.== appConfig에 어노테이션도 다 달았습니다.
- 미해결스프링 핵심 원리 - 기본편
실제로도 수동빈을 작성할 일이 많이 있나요 ??
프레임워크라는 것을 생각해보면 스프링이 의도한대로 로직을 짜는게 잘 설계하는거라고 생각이 되는데, 그럼 수동빈을 설정할 일이 많나요? 그리고 그것도 좋은 설계인가요 ??
- 해결됨스프링 핵심 원리 - 기본편
오류
주문과 할인 도메인 개발 강의에서 아래와 같이 작성하였는데요. package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPlicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMemberRepository(); private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPolicy = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPolicy); } public DiscountPolicy getDiscountPolicy() { return discountPolicy; } } int discountPolicy = discountPolicy.discount(member, itemPrice);이 부분에서 변수 discountPolicy가 초기화되지 않았을 수 있습니다. 라는 오류가 뜹니다. 실제 이 부분 때문에 실행이 안되는데요.인터페이스를 초기화할 수 없어서 그런거 아닌가요..?저만 안되나요..?
- 미해결스프링 핵심 원리 - 기본편
메서드 추출 시, @NotNull 이 자동으로 붙습니다
윈도우에서 ctrl + alt + M 을 입력했을 때, 강의처럼 Extract Method 창이 뜨지 않고이렇게 바로 추출할 수 있게 나오는데 이 방법으로 생성을 하면 @NotNull 이 붙은 채로 같이 생성이 됩니다.붙이고 사용해도 되는걸까요?(+ 그리고 사진과 같은 방식 말고 강의에서처럼 타입같은거 바로 바꿔서 추출할 수 있게 하는 창을 띄울 순 없을까요? 이렇게 하니 static도 자동적으로 붙어버리네요)
- 해결됨스프링 핵심 원리 - 기본편
싱글톤으로 여러 사람의 정보를 어떻게 저장하나요 ?
싱글톤을 활용해서 개인정보 등을 저장한다고 하면 MemberService 객체 하나가 여러 사람들에게 사용되잖아요? 근데 어떻게 각각의 사람들의 객체를 생성해주며 그런 개인정보를 db에 저장할 수가 있는걸까요? DB에 저장할 때는 결국 객체 자체를 저장하지 않습니까? 근데 싱글톤은 객체가 1개라는 점이 너무 상반되어서 이해가 안되는 것 같습니다
- 해결됨스프링 핵심 원리 - 기본편
@Autowired 의존성 주입 궁금한
@Autowired private final MemberRepository memberRepository;private final MemberRepository memberRepository; @Autowired public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; }차이점을 잘 몰라서 그런데...의존성 주입 할때 아래 코드로 하는 이유가 무엇입니까?
- 미해결스프링 핵심 원리 - 기본편
DiscountPolicy는 웹앱 계층구조에서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]DiscountPolicy는 비즈니스로직(할인)을 구현하였으니, 웹앱 계층구조에서 서비스 계층에 해당하는건가요??
- 해결됨스프링 핵심 원리 - 기본편
역할과 구현을 분리함으로 얻는 이점의 궁금함
안녕하세요! 이제 막 공부하기 시작했습니다. 공부 중에 궁금한 점이 생겨서 질문을 올립니다.예제 만들기 1에서 회원 서비스로 회원가입과 회원조회를 인터페이스로 만든 후 구현객체를 만들었습니다.왜 회원 서비스를 인터페이스와 구현객체로 나눈 것인지 잘 이해가 가지 않습니다. 회원 저장소는 인터페이스로 만들어 구현 객체를 원하는 객체로 장착하기 위해 인터페이스로 만든 것은 이해했습니다. 회원 서비스를 역할과 구현을 나눔으로 얻는 이점이 있나요 ?
- 미해결스프링 핵심 원리 - 기본편
MemberServiceTest 실행시 오류가 납니다.
테스트 실행시 오류가 납니다.메서드 내용을 전부 막고 실행해도 오류가 납니다.-- build.gradle에 { exclude group : 'org.junit.vintage', module : 'junit-vintage-engine' } 이게 없길래 추가 해 줬는데도 오류 납니다. 2. Assertions.assertThat()는 구문 오류(빨간 글씨)가 계속 나옵니다. Assertions.assertEquals()는 정상처리 됩니다.
- 미해결스프링 핵심 원리 - 기본편
service, repository에서 memberId의 타입을 Long으로 선언한 이유
MemberService의 findMember()와 MemberRepository의 findById()에서 매개변수 memberId의 타입을 long이 아닌 Long으로 선언한 이유가 궁금합니다. Member 클래스를 선언할 때 id 필드의 타입이 long이 아닌 Long인 이유는 다음 글을 통해 알 수 있었는데, 이 메서드들에서 memberId의 타입을 long이 아닌 Long으로 선언한 이유는 무엇인가요?
- 해결됨스프링 핵심 원리 - 기본편
역할과 구현 분리 이유
역할과 구현을 분리하는 이유가 궁금한데요. 어떤 역할(ex. 회원 데이터 저장하기)에 대한 구현 방법이 여러가지이기 때문인가요? (구현 방법이 여러가지라면 구현법을 변경할 가능성이 있기에) 이게 역할과 구현을 분리하는 이유인가요?그렇다면 어떤 역할에 대한 구현 방법이 단 1가지라면 역할과 구현을 분리하지 않아도 되는 것인가요? 만약 그렇다면 '구현체가 1개인 경우에는 인터페이스명 + Impl을 클래스명으로 하는 것이 관례'라는 관례가 존재하는 이유가 무엇인가요? 구현체가 단 1개라면 인터페이스-클래스가 아닌 클래스만 존재하면 되는거 아닌가요...?
- 미해결스프링 핵심 원리 - 기본편
런 실행 sysout이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기서 java나 스프링 부트가 떠야하는데 안떠요ㅜ 프로젝트를 잘못 만든건가요? 전체파일 스프링부트 실행했을때 스프링 실행은 되는데,process finished with exit code 0 은 안뜹니다.뭐가 문제죠?
- 해결됨스프링 핵심 원리 - 기본편
Test 코드에서 assertThrows 사용시 에러 표시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Test 코드 작성 시 assertThrows에서 항상 저 error가 뜹니다... 우선 테스트는 잘 돌아갑니다 ! 근데 또 이게 눈에 빨간줄이 보이면 엄청 신경 쓰이고(?) 그런게 있어서 질문 드려봅니다 !
- 미해결스프링 핵심 원리 - 기본편
appconfig @Bean 에러와 콘솔로 내용이 나오지 않습니다 어떻게 해결해야할까요 ?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.test에서 Appconfig 에서 똑같이 작성했는데 에러가 되고 ,콘솔로 내용이 나오지 않습니다 어떻게 해결해야할까요 ?
- 미해결스프링 핵심 원리 - 기본편
appconfig 에러와 콘솔에 결과값이 출력되지 않아요.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.현재 AppConfig 저기부분이 똑같이 작성했는데도 에러가 뜨고 , 콘솔로 내용이 나오지 않습니다 어떻게 해결해야할까요 ?
- 미해결스프링 핵심 원리 - 기본편
메서드 run 하면 console 내용이 안나와요 .
====================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 메서드 run 실행하면 코드가 원래 결과나 주소값이 출력되었는데 console 내용이 출력되지 않습니다 ㅠ 어떻게 해야할까요 ?
- 미해결스프링 핵심 원리 - 기본편
AutoAppConfigTest BasicScan() NoSuchBeanDefinitionException오류 발생
그전까진 모든 테스트를 통과했는데, 조회대상 빈이 2개이상일때 해결방법을 테스트 하는 과정에서 자꾸 AutoAppConfigest BasicScan()에서 NoSuchBeanDefinitionException오류가 발생합니다 ㅠㅠ파일 구글 드라이브 링크 첨부합니다.. 감사합니다https://drive.google.com/file/d/1CR8RZDO7Wf2VpildMbeLpTah5vYTtAZJ/view?usp=sharing
- 미해결스프링 핵심 원리 - 기본편
interface와 구현체에서 메서드도 같아야하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]interface를 생성해야하는 이유는 이해가 됐는데 interface에서 작성한 메서드들을 구현체에서 오버라이딩하는데 이떄 오버라이딩하는 코드 말고 추가적으로 코드를 작성하는게 바람직한가요?예를들어 repository인터페이스를 구성할 때 Mysql을 이용하기 위한 레포지토리와 Memoryrepository를 따로 구현할 때 아무래도 DB에 저장하는 특성상 메서드들의 차이가 있지않을까하는데 이때 각 구현체에서 추가로 메서드를 작성하는게 옳은 방향인건지 잘 모르겠어요