묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
Spring boot 버젼과 java 버젼에 대해서 질문이 있습니다.
https://www.inflearn.com/questions/700027/spring-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1안녕하세요!강의를 수강 중 spring boot 3.0으로 빌드를 하니 위의 답변처럼 되지 않아 spring boot 2.7.7으로 변경하였습니다. 다만 아래의 Junit에 대한 빌드부분에 대한 내용차이가 있어서 이 부분도 동일하게 가져가야하는 부분인지 혹시 몰라 질문드립니다!! 감사합니다.영한님 강의 빌드제 빌드
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
형 변환 (전반전)중에서
해당 강의 8:50 정도 부분에서 double convertedScoreDouble = score;이 부분이 191 -> 191.0 으로 변환되었다고 해주셨는데그 다음 줄에 sout(score) 를 입력하니 191 그대로 나옵니다.제가 실수 한 부분이 무엇인가요??
-
미해결스프링 핵심 원리 - 기본편
@Autowired ApplicationContext 확인좀 해주세요
1번 new AnnotaitonConfigAplicationContxt(ClientBean, PrototypeBean.class) 하는 순간 2번 @Autowired가 작동하면서 new AnnotaitonConfigAplicationContxt(ClientBean, PrototypeBean.class) 가 ApplicationcContext applicationContext;로 DI 되는 게 맞죠?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
나도 코딩님 안녕하세요 !
자바 강의 잘 듣고 있습니다! 저 같은 경우는 자바는 처음이 아니지만 이번 기회에 자바를 되돌아보려고 강의를 구매하게 되었습니다 !! 다름이 아니오라 공부한것을 개인 블로그에 작성하고 싶은데 출처 밝히고 올려도 될까요 ?? 출처 예시도 알려주시면 감사하겠습니다 !!
-
미해결스프링 핵심 원리 - 기본편
Autowired 왜 쓰냐고 물어보면 이렇게 대답해도 괜찮을까요?
설정정보 파일에서 수동으로 @Bean을 등록하고 의존관계 주입까지 설정 하는 방법은 수동등록해야 할 @Bean의 개수가 많아지면 관리가 번거롭고 오류가 발생할 확률이 커져서 @ComponentScan과@Component를 이용해서 Bean을 자동 등록 하는 방법이 생겼는데 이렇게 되면 기존의 의존관계를 수동으로 설정하는 방법을 사용할 수 없어서 @Autowired라는 애너태이션을 사용해서 컨테이너에 등록된 Bean을 끌어와서 의존관계 주입을 해줍니다.
-
해결됨스프링 핵심 원리 - 기본편
ClienBean에 PrototypeBean 객체 생성에 관해 궁금한 것이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 듣다가 의문점이 생겨서 질문 드립니다.ClientBean에 이미 로직을 실행해서 prototypeBean을 생성하고 나중에 로직을 한번 더 실행할때Provider에서 prototypeBean으로 불러오는 것과 Logic() 메서드에서 getBean()으로 prototypeBean 불러오는것 둘다 ClientBean에 있는 기존의 prototypeBean을 스프링에서 새로운 prototypeBean을 생성해서 기존꺼를 덮어쓴다고 이해하면 맞을까요?? 제가 나름대로 테스트해본결과 로직을 실행 시킬때마다 ClientBean이 가지고 있던 prototypeBean의 객체 주소값이 달라져서 제가 이해 한 내용이 맞는지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
전달값(Parameter) 강의에서 for문 이해가 필요합니다
안녕하세요 나도코딩님 새해복 많이받으세요!전달값(Parameter) 강의 듣고있는데public static void powerByExp(int number, int exponent) { // 전달값을 2개 받는경우 int result = 1; for (int i = 0; i < exponent; i++) { result = result * number; } System.out.println(number + " 의 " + exponent + " 승은 " + result); powerByExp(3,3); // 3 * 3 * 3 = 8여기서 for문의 사용법이 이해가 안가는데 result = result * number;3의 3승을 한다고했을때3 * 1, 3 * 3, 9 * 3는 이렇게 3번 계산하는거잖아요?그러면 이걸 출력한다고하면System.out.println(number + " 의 " + exponent + " 승은 " + result); result는 27이 나오는데 마지막 9 * 3 만 result라고 해석하는건가요?3*1, 3*3 은 왜 result 라고 해석을 안하는건가요?매소드 너무 어렵습니다.. ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
외부라이브러리 호출
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 설정정보로 등록하면 외부라이브러리에도 초기화, 종료메서드를 적용할 수 있다는 것은 이해가 되었는데요. 그 외에는 외부라이브러리에 적용할수 없다는 말이 무슨 의미인지 잘 모르겠습니다. 질문을 여럿 찾아봤는데 질문이 조금 달라서..해결이 안됬네요DB커넥션 예를 들면, 초기화, 종료 메서드를 단순히 애노테이션(@PostConstruct, @PreDestroy)이 등록된 메서드안에서 호출하면, 그 안에서 호출된 여러 라이브러리 메서드처럼 결국엔, 굳이 설정정보사용안하고도 사용할수 있다(적용할수 있다)고 볼수 있는거 아닌가라고 생각이 듭니다.제가 지금 잘못 이해한거 같긴한데, 어디 부분을 잘못 이해해서 이런 생각을 하는건지 잘 모르겠습니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 패턴 단점이 이해가 안 갑니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링을 사용하시기 전에 순수 자바 코드로 싱글톤 생성하신 다음에 싱글톤 패턴이 가질 수 있는 단점에 대해 설명해주셨습니다.싱글톤 패턴을 구현하는 코드 자체가 많이 들어간다. 의존관계상 클라이언트가 구체 클래스에 의존한다. private 생성자로 자식 클래스를 만들기 어렵다.이 중 1번,3번은 스프링에서 개선됨이 확실하게 보이는데 2번은 크게 달라진 점을 모르겠습니다.자바로만 싱글톤 만들었을 때 활용(SingletonService가 MemberService를 상속받았다고 가정했을 때)public class AppConfig { public MemberService memberService(){ return SingletonService.getInstance(); } }public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); MemberService memberService1 = appConfig.memberService(); // 활용 } }이렇게 만들면 의존관계상 클라이언트가 구체 클래스에 의존하지 않는 것 아닌가요?물론 다른 단점들이 다 고쳐지니 스프링을 안 쓸 이유가 없지만 DIP, OCP 개선을 중요하게 언급하신 것 같아서 넘어가기 찝찝하네요. 자바로 만들 때 DIP가 위반되는 이유가 뭔가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
강의 보면서 공부한 내용 블로그에 작성 가능할까요?
요즘 공부한 내용 블로그에 작성하면서 공부하고 있는데 혹시 저작권같은 문제가 있을까봐 여쭤봅니다..추가로 혹시 스프링 강의 올리실 계획은 있으신지도 궁금합니다
-
해결됨스프링 핵심 원리 - 기본편
MemberApp 실행시 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.현재 m1 맥북을 사용하며 강의를 따라가고 있는데 MemberApp 클래스에서 실행시 결과가new member 와 find Member 의 = 다음으로 저렇게 나옵니다.강의에서의 실행결과가 똑같이 나오게 하려면 어떻게 해야 할까요?
-
미해결스프링 핵심 원리 - 기본편
javax.inject Provider 주입 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.build.gradle에 다음과 같이 Provider를 적용하도록 설정하였습니다.또, 강의처럼 PrototypeProviderTest 클래스 코드를 작성하였습니다.그러나 ClientBean에서 javax.inject의 Provider를 사용하려고 할 시 (2번 방식), No qualifying bean of type 'javax.inject.Provider<hello.core.scope.PrototypeProviderTest$PrototypeBean>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 라는 오류가 발생하고 있는 상황입니다.때문에 직접 문제를 해결해보려고 Autowired를 받는 방식 말고 new Provider<PrototypeBean>() {...} 를 해 봤으나, 해당 문제가 해결되긴 하나 원래 목적과 부합하지 않다고 생각이 들었습니다.버전이 달라졌기 때문에 발생하는 오류인 것일까요?@Autowired(required = false)로 테스트 해 보면 Cannot invoke "javax.inject.Provider.get()" because "this.provider" is null 로 제대로 스프링 컨테이너에 PrototypeBean이 등록이 안 된 듯한 오류가 발생하였습니다. PrototypeBean은 이렇게 작성 해 두었습니다.
-
해결됨스프링 핵심 원리 - 기본편
테스트 코드 작성 질문입니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 백엔드 개발자를 꿈꾸는 대학생입니다.Spring 프로젝트를 진행하면서 테스트 코드를 작성하다가 궁금한 점이 생겨서 글을 작성하게 되었습니다.질문 1.querydsl을 사용해서 업데이트를 하고 정상적으로 변경되었는지 JPA를 사용해 엔티티를 가져와서 확인할 때 1차 캐시에 값을 가져와서 예상과 다른 결과가 발생했습니다.캐시에서 값을 가져오지 않게하기 위해서 테스트 코드 내에 entityManager.clear()를 사용하였는데 테스트 코드 내에서 clear() 메소드를 사용하는 것이 안 좋은 코드인지 궁금합니다.질문 2.위의 문제를 해결하기 위해서 JPA의 dirty checking을 이용하도록 코드를 수정했습니다.제가 공부하기로는 dirty checking은 변경된 부분만 변경하지 않고 모든 필드를 수정하기 때문에 많은 쿼리를 발생시켜 성능적으로 떨어질 수 있다고 알고 있습니다.그렇다면 필드가 적을 경우에는 dirty checking을 사용해도 무방한 지와만약에 dirty checking을 지양하는 다른 이유가 있다면 어떤 이유인지 궁금합니다.질문 3.김영한 개발자님이 생각하시는 잘 작성된 테스트 코드란 무엇인가?가 너무 궁금합니다! 강의 내용과 약간? 무관한 내용인 것 같아서 죄송합니다..!
-
미해결스프링 핵심 원리 - 기본편
DL (의존관계 조회)와 DI (의존관계 주입)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 질문을 참고하면서 Provider를 통해서 싱글톤 빈을 DL 하는 경우에는 싱글톤 빈이 생성되는 것이 아니라 조회된다.프로토타입은 조회할 때마다 새로 생성되는 것으로 DL은 컨테이너를 통해서 빈을 찾아온다고 생각하면 된다.를 보고 싱글톤 빈을 DL 하는 경우에 대하여 의문이 생겼는데 이 과정이 DI (의존관계 주입)과 별 차이가 없다고 느껴졌는데 (프로토타입은 새로 생성되니까 차이가 있다고 생각했습니다.) 싱글톤 빈의 경우에도 의존관계 주입을 할 때 이름이 같은 빈을 찾아서 주입한다고 배워서 조회하는 것과 차이가 없다고 생각이 들었습니다. 둘의 차이가 있는 것인가요??
-
미해결스프링 핵심 원리 - 기본편
getid()를 찾을수 없다 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]같은 질문글의 import hello.core.member.Member; 부분은 추가해도 안먹힙니다.
-
해결됨스프링 핵심 원리 - 기본편
CoreApplication 생성이 안됐어요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)build.gradle까지 했는데 CoreApplication 없어서 강의보고 CoreApplication 생성해보니 에러 뜨더라구요https://drive.google.com/file/d/1VEjp2fk8EanR4O3tORA_nKa4wWMlasFv/view?usp=sharing
-
해결됨스프링 핵심 원리 - 기본편
16:50에서 객체의 생성과 초기화를 분리하자 고 하셨는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]우선 객체의 생성과 초기화를 분리하자는 글엔 완전 공감합니다. 근데 동시에 궁금한 점도 몇개 생겼습니다외부에서 접근가능한 setter를 계속 열어주어야 하는데 괜찮나요?생성하고자 하는 객체의 인스턴스 변수에 final 못 붙이지 않나요?@Component일 경우 final 못쓰니 @RequiredArgsConstructor 적용 못하는 문제도 있을 거 같아요
-
미해결스프링 핵심 원리 - 기본편
OrderApp 테스트
OrderApp 클래스 만들고 실행하면이렇게 뜨는데 뭐가 잘못된 걸까요?? MemberApp에선 잘 동작했는데 ㅠㅠ 코드 다 지우고 다시 따라쳤는데도 안되네요
-
미해결그림으로 배우는 자바, 파트2: 객체지향!
강의 정리 내용
안녕하세요 ! 쌤 덕분에 자바를 쉽게 이해하면서 공부하고 있습니다!다름이 아니라, 강의에서 중요한 부분을 블로그에 정리하고 싶은데 강의가 유료다보니 블로그에 공개 게시글로 올리는건 무리겠죠?
-
해결됨스프링 핵심 원리 - 기본편
싱글톤 컨테이너 자료 오타
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의를 시청하는 중 오타가 발견되어 게시판에 글 남깁니다.제공해주신 자료 '5.싱글톤 컨테이너' 3page 코드에 달린 주석 부분2. public으로 열어서 객체 인스터스 ~인스터스 -> 인스턴스가 맞다고 생각합니다.