묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
AnnotationConfigApplicationContext(appconfig.class, DiscountService.class)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 3: 42초쯤에 스프링 컨테이너를 생성하여appconfig.class 도 함께 넣어주는데 이미 다른 테스트ex) AutoAppconfigTest같은 곳에서 빈으로 등록해주었는데 또 컨테이너 안에다가appconfig.class 를 빈으로 등록해주면 충돌이 나야할것같은데 잘 이해가 가지 않아서요!!1.혹시 테스트별로 컨테이너가 "독립적으로" 생겨서 다른 테스트와는 별도의 컨테이너로 여겨져서 그런것일까요?이유를 설명해주시면 감사하겠습니다!!^^1.혹시 테스트별로 컨테이너가 "독립적으로" 생겨서 다른 테스트와는 별도의 컨테이너로 여겨져서 그런것일까요?의존 관계 주입으로 @Autowired 를 쓰면 자동으로 이미 등록된 appconfig.class 의 discountPolicy 타입의 빈들을 불러올 수 있지 않을까요? 현재 지금까지 강의 들었을때 저번에 @Test basic scan() 으로 만들었던 컨테이너입니다. 여기다가 빈으로 자동 등록이 됐는데 또 다른테스트에서 만들어도 상관없는것인지위의 2개 이유를 들어 여쭤봅니다!!//-----------------------------------------------------제가 알기론 스프링 컨테이는 하나만 생성되는것으로 알고있는데 위배되는것이 아닌가 해서요!=>만약에 2개 이상 생성이 가능하다고 한다면 각 컨테이너에 동일한 빈들이 똑같이 들어가게 돼도 "컨테이너참조값이 다르기 때문에" 빈 중복 등록이 아닌것이 되나요?
-
미해결스프링 핵심 원리 - 기본편
강의 내용 질문입니다.
여기서 Map에다가 member 정보를 넣은 이유랑, private static으로 선언한 이유가 뭔지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
빈으로 등록하지 않았는데 @Autowired를 통해 의존성 주입할 때 충돌이 납니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 @Autowired를 사용해 의존성 주입을 하다 충돌이 나서 질문드립니다.MemberRepository인터페이스 -> MemoryMemberRepository 구현체후자에만 @Component를 붙인 상황입니다.그런데Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/minsung/Desktop/study/core/out/production/classes/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository이런식으로 memberRepository 또한 빈으로 등록되어 있었습니다.@Autowired가 클래스 타입으로 조회한다는 것은 알고 있지만 빈으로 등록되어있는 애들 중에서 조회하는 것 아닌가요...?왜 memberRepository를 빈으로 등록하지 않았는데 빈으로 등록되어있는지@Autowired는 왜 빈으로 등록되지도 않은 memberRepository를 찾을 수 있었는지@Autowired 보다는 @RequiredArgsConstructor 사용을 권장하던데 이제 @Autowired는 잘 쓰이지 않는 것인지궁금합니다!
-
해결됨진짜! 자바스크립트(Javascript) - 기초부터 고급까지
코드샌드박스 화면구성이 달라졌네요.
오늘부터 공부시작하려고 환경설정을 열었다가 바로 막혔습니다.바닐라 자바스크립트 템플릿이 안보여요 ㅠㅠ 해결부탁드립니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 DIP 위반 관련하여 질문합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서 싱글톤 패턴 문제점 중에 의존관계상 클라이언트가 구체 클래스에 의존한다(DIP 위반)라고 하셨는데 제가 제대로 이해하고 있는지 알고 싶습니다.제가 생각하기에는 AppConfig.class파일을 다음과 같이 구성하고, public class AppConfig { public MemberService memberservice(){ return MemberServiceImpl.getInstance(); } public MemberRepository memberRepository(){ return MemoryMemberRepository.getInstance(); } }MemberSeriveImpl은 MemberRepository를 참조하고 있기 때문에 생성자를 통하여 DI를 하기 때문에, 다음과 같이 코드를 작성하였습니다.public class MemberServiceImpl { private final MemberRepository memberRepository; private final static MemberService memberService = new MemberServiceImpl(); public MemberService getInstance(){ return memberService; } private MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = MemoryMemberRepository.getInstance(); } } 그 결과 Client인 MemberServiceImpl 입장에서는 MemoryMemberRepository를 주입하기 위하여 어쩔수 없이 구체 클래스(MemoryMemberRepository.class)를 의존할 수 밖에 없는것 같습니다.(싱글톤 패턴을 유지하기 위해 미리 의존관계등을 미리 세팅해야됨)제가 제대로 이해한건지 맞는지 알고싶습니다
-
해결됨스프링 핵심 원리 - 기본편
CoreApplicationTests 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]CoreApplicationTests 부분에서 오류가 나는데 강사님과는 다른 오류가 나서 질문 드립니다. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [D:\core\core\out\production\classes\hello\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository memoryMemberRepo를 매칭해야 하는데 2개가 존재해서 그런 것 같은데(맞는지는 잘 모르겠습니다)MemberService에는 아무런 Annotation도 붙이지 않았는데 왜 그런 걸까요? (작성한 코드 이미지 첨부합니다) 추가Appconfig 의 @Bean 이 붙은 메소드에 모두 @Primary를 붙여서 어찌저찌 해결은 했는데무슨 이유로 저 오류가 나는건지 궁금합니다
-
해결됨스프링 핵심 원리 - 기본편
혹시 오타인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]의존관계 자동 주입.pdf의 14페이지에서@Qualifier 수정자 자동 주입 예시 코드 부분에서리턴 타입이 DiscountPolicy로 써져 있는데,setter이니깐 리턴 타입이 void여야 맞지 않나요?혹시 오타인가 싶어서 말씀드립니다. +)15페이지 @Primary 수정자 코드,17페이지 애노테이션 만들기 수정자 코드에서도 똑같이 void가 아니라 DiscountPolicy로 되어 있습니다.
-
미해결김영한의 실전 자바 - 기본편
상속 질문
public class ExtendsAccessMain{ public static void main(String[] args) { Child child = new Child(); int value1 = child.publicValue; int value2 = child.protectedValue; child.call(); }안녕하세요 상속 관련하여 질문이 있습니다.parent를 상속 받은 child 인스턴스 생성 시parent에 있는 protected 접근 제어자 필드 값은 접근이안되더라구요 자식 클래스 레벨에서는 접근이 되지만 자식 인스턴스 생성 시에는 접근이 안되는 이유가 있을까요?(부모 클래스와 같은 패키지에 메인이 있으면 접근 가능했습니다.)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
main 메서드
main 역시 메서드인데, 앞전 메서드에서 받는 변수는 매개변수인데 main 메서드 안에는 인자를 뜻하는 args가 존재하는 건가요?? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
함수형 인터페이스를 사용하면 KRWconverter 클래스 필요성
package chap_10; import chap_10.converter.Convertible; import chap_10.converter.KRWConverter; public class _04_FunctionalInterface { /* 함수형 인터페이스 : 함수형 인터페이스는 하나의 추상메소드가 존재해야 한다는 조건이 있습니다. convertUSD 에 전달하는 람다식을 메소드 내에서는 다음과 같이 Convertible 인터페이스로 받으며 Convertible 인터페이스 내에서 하나만 존재하는 convert() 라는 추상 메소드에 동작이 정의 */ public static void main(String[] args) { //객체를 만들어서 인자를 사용하는 방법 말고 !! // KRWConverter converter = new KRWConverter(); // krwConverter.convert(1); //convertUSD(krwConverter,2); //람다식을 이용해서 해당 Interface의 추상 메소드를 람다식으로 구현 /* public void convert(int USD) { System.out.println(USD +"달러 = " + (USD * 1400)+ "원"); } 이걸 람다식으로 */ Convertible convertible = (USD) -> System.out.println(USD + "달러 = " + (USD * 1400) + "원"); // 인터페이스의 동작을 변수처럼 전달 // 이러한 인터페이스를 함수형 인터페이스라고 부릅니다. convertUSD(convertible,1); } public static void convertUSD(Convertible converter, int USD) { converter.convert(USD); } }선생님! 람다식이 Convertible 인터페이스의 객체역할을 하니까KRWConverter 클래스의 역할도 그러면 필요없어지나요..?? 이해한게 맞는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
기본 configuration 선택에 대해 질문이 있습니다!
안녕하세요..!현재 섹션7 - 생서자 주입을 선택해라! 듣고있습니다.1.4분 52초 쯤에 OrderServiceImple 테스트 할때 Config 파일을 지정하는 코드가 없는데 자동으로 AppConfig 가 선택된 이유가 무엇인가요? AutoAppConfig도 만들어놨고 OrderServiceImple에 @Component 애노테이션도 붙여줬는데요..! 2.그리고 같은 시점에서,java: constructor OrderServiceImpl in class hello.springbasic.order.OrderServiceImpl cannot be applied to given types; required: no arguments found: hello.springbasic.member.MemoryMemberRepository,hello.springbasic.discount.DiscountPolicy reason: actual and formal argument lists differ in length이 오류가 나는 이유가 무엇인지 궁금합니다! OrderServiceImpl 에는 제가 만들어놨던 생성자를 주석처리해서 기본 생성자(파라미터 없는 생성자) 밖에 없는데, AppConfig에는 (OrderServiceImpl에서 이미 주석처리해버린) 파라미터 2개를 받는 생성자를 호출하고 있어서 에러가 난 게 맞나용?감사합니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
primitive && reference 질문입니다!
혹시 call of value가 primitive 타입의 저장 방식을 말하는 거고 call of reference가 reference 타입의 저장 방식을 말하는 걸까요??(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
나의 인생에 첫번째 선물
강사님께 자바를 통해 프로그래밍의 첫발을 내딛었습니다. 저의 인생에 있어서 보물(이 강의) 제공 해주셔서 감사합니다.작성자 올림
-
미해결타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍
린터 설치문의
파이참의 플러그인 같은 기능인건가요?파이참에서는 어떻게 해야할까요?
-
해결됨김영한의 실전 자바 - 기본편
기본형 참조형 관련 질문
기본형과 참조형에 대하여 궁금증이 생겨서 질문을 남깁니다.public class question { public static void main(String[] args) { int a = 10; doubleNumber(a); System.out.println("a = " + a); } public static void doubleNumber(int x){ int result = x*2; System.out.println("doubleResult = " + result); } }doubleNumber라는 메서드를 만나게 되면 int x에 a의 값인 10이 복사되어 들어간 다음 2배 증가된 이후 result에 대입이 된 이후 print를 한 뒤에 메서드가 종료되면 result가 사라지는 것으로 알고있습니다.public class Method2 { public static void main(String[] args) { Student student1 = createStudent("학생1", 15, 90); Student student2 = createStudent("학생2", 17, 80); printStudent(student1); printStudent(student2); } static Student createStudent(String name,int age, int grade){ Student student = new Student(); student.name = name; student.age=age; student.grade = grade; return student; } static void printStudent(Student student){ System.out.println("이름:" +student.name+"나이:"+student.age+"성적:"+student.grade); } }createStudent라는 메서드에서는 student의 참조값을 리턴을 하기 때문에 Student student1=createStudent()를 하게 되면 new Student를 실행한 그 객체의 참조값이 넘어오는 것 까지는 이해를 했습니다. createStudent메서드가 끝나면 메서드 안에 있는 student는 계속 살아있는 것인지 아니면 다른 어떤 것들이 있는지 궁금합니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
2차원 배열을 통한 학생 수 & 성적 입력받기
안녕하세요 강사님... 제가 눈을 씻고 찾아봐도 어느 부분에서 잘 못 된지 모르겠습니다.......ㅜㅜ왜 국어 영어 수학이 안나오고1번 학생국어 점수:국어 점수:국어 점수:2번 학생영어 점수:영어 점수:영어 점수: 이런 형식으로 나올까욥,,,,
-
해결됨김영한의 실전 자바 - 기본편
12. 다형성과 설계 NewCar에서 pressBrake() 기능을 추가한다면..
안녕하세요 영한님!궁금한 점은 OCP 원칙까지 보고나서 생겨난 질문입니다.Car 인터페이스를 구현하는 K3Car, Model3Car, NewCar의 클래스, Driver는 Car인터페이스를 의존하고 있는데요.,,.강의 내용과 같이 Car 인터페이스에 있는 추상메소드들만 구현한 클래스끼리 있을 때는 크게 어려운 점이 없는 것 같지만.,.,위와 같이 NewCar에서 이 때까지 없었던 pressBrake()라는 기능을 새로 추가하여 Driver에게 해당 메소드를 사용하게 하고싶다면! 어떻게 코드를 짜야하는지가 저의 궁금증입니다!먼저 코드를 짜보면서 혼자 해결해보려고 했으나,.., 자바와 아직 완벽히 친해지지 못했는지 더 좋은 방법이 있지 않을까 하며 만족스러운 해법을 찾지 못 하고 있습니다..1. Driver 클래스의 drive() 메서드 블록 안에서 instanceof를 사용하여 car변수가 NewCar 클래스일 때 pressBrake()를 사용한다면?강의에서 배웠던 OCP원칙 중 Closed for modification에 모순이 생겨버리고.. 2. Car 인터페이스에 pressBrake() 메서드를 넣는다면?OCP 원칙에 모순이 생길 뿐더러 오히려 대대적인 코드 수정도 생겨버립니다..해당 사항에 대해서는 어떻게 대처를 해야 잘했다고 소문이 날지 궁금하여 질문을 올리게 되었습니다!
-
미해결김영한의 실전 자바 - 기본편
스프링 질문
자바 기본편 강의까지 수강한 이후 바로 스프링으로 넘어가도 괜찮을까요??
-
미해결김영한의 실전 자바 - 기본편
복합단어 패키지명 관례문의
패키지명은 소문자가 관례인데만약주문이력 이라는 패키지를 만들거면 아래 1번이 관례인가요?1) orderhistory2) order-history3) order.history (order 패키지 하위에 history 패키지 ) order 패키지 밑에 여러 하위 패키지가 있다면 3번이 제일 좋긴 한데, 만약 history 패키지 밖에 없더라도 3번처럼 하는게 적절한지 궁금합니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
입력 받을 숫자의 개수를 입력하세요 관한 문제
강사님 안녕하세요. 배열 문제와 풀이1 마지막 부분 입력 받을 숫자의 개수를 입력하세요에 관한 질문을 드립니다.입력 값을 받고 그 입력 변수를 in[] numbers = new int[count]; 한 뒤for(int i = 0; i<count;i++){...}라고 작성하셨는데 numbers.length를 써도 상관이 없나요??