월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨스프링 핵심 원리 - 기본편
역할과 구현 분리 이유
역할과 구현을 분리하는 이유가 궁금한데요. 어떤 역할(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에 저장하는 특성상 메서드들의 차이가 있지않을까하는데 이때 각 구현체에서 추가로 메서드를 작성하는게 옳은 방향인건지 잘 모르겠어요
- 해결됨스프링 핵심 원리 - 기본편
appconfig에 등록한거랑 @Component해서 등록한걸로 어느게 우선순위인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]web 라이브러리를 설치했는데parameter 0 of constructor in hello.core.member.memberserviceimpl required a single bean, but 2 were found이런 오류가 뜨더라고요appconfig안에 MemberRepository의 @Bean 과@Configuration //설정 public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } .... }MemoryMemberRepository.class의 @component//@Component public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store= new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } } 이렇게 두개가 겹쳐서 그런거같은데@Component를 지우니깐 잘되더라고요.둘다 우선순위가 따로 없는건가요?그리고 실습에서는 appconfig안에 Bean을 지웠나요?component를 지웠나요?열심히 들었는데 어디서 부터 실습을 잘못했는지 잘모르겠네요 죄송합니다.
- 미해결스프링 핵심 원리 - 기본편
MyLogger 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.package Hproject.core.common; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import java.util.UUID; @Component @Scope(value="request") public class MyLogger { private String uuid; private String requestURL; public void setRequestURL(String requestURL) { this.requestURL = requestURL; } public void log(String message){ System.out.println("["+ uuid+ "]"+ "[" + requestURL+"]"+message); } @PostConstruct public void init(){ uuid= UUID.randomUUID().toString(); System.out.println("["+ uuid+ "] request scope bean create "+this); } @PreDestroy public void close(){ System.out.println("["+ uuid+ "] request scope bean close "+this); } }해당 MyLogger 클래스에서 init() 메소드 안에서 ,uuid의 값을 랜덤으로 초기화 시켜 줬는데,이 메소드가 아니라 처음에 필드 선언 부분에서 초기화 시키는건 안되는건가요??
- 미해결스프링 핵심 원리 - 기본편
빈, 컨테이너도 넓은 의미에서 객체일까요 ??
듣다보니 쓰임이 많을것같은 클래스를 빈으로 등록하고, 그 빈들을 컨테이너가 관리하는데 이렇게하는 이유를 생각해보면 멤버서비스, 오더서비스처럼 호출이 잦은 클래스를 한곳에서 관리하면 접근이 편할 것 같습니다 이렇게 빈으로 관리하는 이유가 무엇인가요 ??예전에 질문드렸을 때 객체 하나 자체는 메모리가 많이 들지 않는다고 하셨습니다. 그럼 객체를 많이 만들어도 메모리를 절약하기 위함은 아닐 것 같은데 빈, 컨테이너 개념을 이용하는 다른 이유가 있나요 ??
- 미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException가 발생하는 테스트를 만들고 싶은데 안 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아니요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]의존성 주입이 안 되는 상황을 테스트 하기 위해ㅅComponentScan의 basePackges를 멤버로 제한하고 orderService를 호출해서 UnsatisfiedDependencyException에러가 발생하는 테스트를 진행하는데 테스트가 오류가 발생합니다.ComponentScan의 basePachages 설정 제가 만든 테스트: UnsatisfiedDependencyException에러가 발생시 테스트를 성공하게 하는 것이 목표로그 결과로그결과 확대
- 미해결스프링 핵심 원리 - 기본편
무조건 인터페이스-구현체 를 나누는게 좋은 건 아니겠죠 ???
모든 상황에서 인터페이스(DiscountPolicy)-구현체(FixDiscountPolicy) 처럼 나누는게 좋은 건 아니겠죠 ??지금 상황처럼 정책이 바뀔 경우가 없다면 그냥 바로 구현체를 만드는 게 더 효율적인 것 같은데, 설계상 정책이 안바뀐다 하더라도 만약의 상황을 대비해 인터페이스를 만들어두는편인가요 ??
- 미해결스프링 핵심 원리 - 기본편
테스트코드에서 스프링컨테이너 호출 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링 컨테이너 테스트 할 때 보통 ApplicationContext 인터페이스에 없는 메서드들도 있기 때문에 AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext 을 쓰면 되는걸까요??
- 해결됨스프링 핵심 원리 - 기본편
강사님께서 말씀하시는 "클라이언트 코드"는 무엇인가요 ??
클라이언트 코드라고 자주 언급해주시는데, 사용자와 관련되어 일하는 코드를 전반적으로 일컫는 말일까요 ???
- 미해결스프링 핵심 원리 - 기본편
DIP와 관련된 어노테이션
강의 : 스프링 핵심원리 - "관심사의 분리" 현재 스프링 안쓰고 자바로만 하고 계시니 강의에는 안맞을 수도 있는데 궁금해서 질문 드립니다 ...DIP지키려고 객체생성 안해주고 인터페이스들을 선언만 해주고, 생성자 주입으로 마침내 DIP를 지킬 수 있다 이렇게 이해를 했습니다.여기서 더 나아가서 생성자도 쓰기 귀찮으니 @RequiredArgsConstructor쓰면 아래 코드에서 생성자 부분 안쓰고도 원래 의도대로 DIP지킬 수 있는거죠???
- 미해결스프링 핵심 원리 - 기본편
질문있습니다.
[질문 내용]빈 생명주기 콜백에 대해 공부하면서 의문점이 드는게 이 라이프사이클을 활용하여 테스트를 짜는걸 일개학생이 혼자 프로젝트를 진행할때 쓸 데가 있을까요?만약 있다면 언제 사용하면 좋을까요?
- 미해결스프링 핵심 원리 - 기본편
빈의 초기화가 무엇을 의미하나요?
현재까지 배운 내용으로 스프링 컨테이너가 빈의 생성+의존관계 주입을 해주는것은 이해가 가지만 초기화를 해준다는게 정확히 어떤 개념인지 이해가지 않습니다 앞선 강의에서 나왔던 @PostConstruct 어노테이션이 붙은 메소드를 초기화라고 생각하면 될까요?
- 미해결스프링 핵심 원리 - 기본편
포트번호가 생성이안되요
CoreApllication 클래스를 실행시키면 교수님처럼 localgost 8080이 출력이되고 웹사이트에서 url쳤을떄 화면이 띄워져야하는데 저는 연결조차안되네요
- 미해결스프링 핵심 원리 - 기본편
memberRepository에 lombok getter적용이 안됩니다
안녕하세요 강의 복습 도중 OrderServiceImpl에 getMemberReposiotry 메소드가 있어서 @Getter를 붙였는데 테스트 시에 cannot find symbol error가 뜹니다 IDE에서는 빨간줄도 안뜨는데 오류가 나는 이유가 무엇일까요?