묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
기본 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를 써도 상관이 없나요??
-
해결됨스프링 핵심 원리 - 기본편
오타인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]의존관계 자동 주입.pdf의 6페이지 맨 위에@Autowired(required = false) public void setNoBean3(Optional<Member> member) { System.out.println("setNoBean3 = " + member); }이렇게 되어 있는데 (required = false)는 오타인가 싶어서 말씀드립니다. 그리고 5페이지에@Autowired(required=false): 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안 됨 이 내용이 있는데, 수정자 메서드라고 적혀 있기는 하지만 일반 메서드 주입일 때도 마찬가지라고 생각하면 되는 거죠?수정자 메서드 주입 방식일 때 많이 쓰여서 그냥 수정자 메서드라고 적혀 있는 거라고 생각하긴 하는데 맞나요?
-
미해결김영한의 실전 자바 - 기본편
[변수의 초기화] 멤버 변수 자동 초기화하는 이유가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의를 듣다 궁금점이 생겨 질문드립니다. 멤버 변수는 왜 지역 변수처럼 항상 직접 초기화를 하는게 아니라 왜 자동으로 초기화를 해주는지 이유가 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
어플리케이션 빈 출력하기 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]4:52 부분부터 질문이 있습니다.일단 스프링 빈은 스프링 컨테이너에 등록된 객체를 말합니다. 이 말은 즉, 빈은 객체라고 할 수 있는 것 같습니다. BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName);영한님께서 getBeanDefinition()메소드는 빈의 메타데이터를 가져오는 것이라고 설명해주셨습니다. 그렇기에 beanDefinition 에는 beanDefinitionName을 이름으로 가진 스프링 빈 객체의 메타 데이터가 저장되었다고 볼 수 있습니다. beanDefinition.getRole()==BeanDefinition.ROLE_APPLICATIONgetRole에 대한 설명으로 "스프링이 내부에서 사용하는 빈은 getRole() 로 구분할 수 있다."라고 나와있습니다.ROLE_APPLICATION에 대한 설명으로" ROLE_APPLICATION : 일반적으로 사용자가 정의한 빈" 라고 나와있습니다.그렇다면 BeanDefinition.ROLE_APPLICATION을 통해 사용자가 정의한 빈(=사용자가 정의한 객체)가 반환이 되었을 것이며 타입을 맞춰야 하기에 beanDefintion.getRole()을 통해서 beanDefinition의 객체가 반환 될 것입니다.하지만 둘다 반환값이 int로 설정이 되어있어서 객체반환이라면 OBJECT로 반환되어야 할텐데 뭔가 이상했습니다. getRole과 Role_APPLICATION에 대한 설명이 제가 이해를 잘못한것 같은데 제가 어디서부터 이해가 틀린건지 , getRole과 ROLE_APPLICATION에 대해 좀 더 자세한 설명 부탁드리겠습니다...!
-
미해결김영한의 실전 자바 - 기본편
[static 메서드3] 강의 보고 질문드립니다.
[static 메서드3] 강의 보고 질문드립니다.import static 으로 특정 클래스의 메서드 적용해서 메서드 사용하는 것과 클래스 .(dot) 찍고 메서드 사용하는 것 중실무에서는 어떻게 사용하는 편이 좋은지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
[섹션 7 - 옵션 처리] 전체 테스트 중 CoreApplicationTests 클래스의 contextLoads 테스트 실패 질문입니다.
안녕하세요.게시판을 둘러보니 비슷한 오류가 나시는 분들이 계신 것 같은데 해결되신 분이 없는 것 같아 질문드립니다.개발 환경Spring Boot : 3.2.0운영체제 : Mac OS XIDE : IntelliJ IDEA Ultimate 2023.2.5JDK : JDK 17빌드 툴 : Gradle 8.4문제강의를 따라가던 도중 전체 테스트를 진행하는 과정에서 CoreApplicationTests 클래스의 contextLoads 테스트가 NoUniqueBeanDefinitionException 오류를 발생시키며 실패합니다.org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository특이한점으로 GitHub에 올려놓은 코드를 내려받은 후 실행하면 테스트가 통과하고, 지금까지 했던 프로젝트를 실행하면 테스트가 실패합니다.테스트가 성공한 프로젝트도 아래처럼 컨텍스트를 주입받아 MemberRepository를 getBean으로 받아오는 테스트를 해보면 오류가 납니다.@SpringBootTest class CoreApplicationTests { @Autowired ApplicationContext ac; @Test void contextLoads() { MemberRepository bean = ac.getBean(MemberRepository.class); } }org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository로그를 살펴보면 아래와 같습니다.expected single matching bean but found 2: memoryMemberRepository,memberRepository컴포넌트 스캔으로 등록한 빈과, AppConfig를 통해 등록한 빈이 겹치는 것 같습니다.아래는 유추한 내용입니다.컴포넌트 스캔이름을 변경해서 확인해봤습니다.다시 테스트를 돌려보면 로그가 아래처럼 찍힙니다.expected single matching bean but found 2: 메모리멤버레포지토리,memberRepository@Bean이름을 변경해서 확인해봤습니다.테스트를 돌려보면 로그가 아래처럼 찍힙니다.expected single matching bean but found 2: 메모리멤버레포지토리,앱콘피그에있는메모리레포지토리컴포넌트 스캔을 이용하여 MemberRepository 빈을 등록했는데 AppConfig 에서 @Bean 어노테이션이 붙은 메서드의 반환 객체도 빈으로 중복 등록 되어 발생한 것으로 생각됩니다.의문점AutoAppConfig 에서 Configuration 어노테이션이 붙은 클래스는 스캔의 대상에서 제외를 했는데 왜 중복해서 등록이 된 것일까요?검증을 위해 스프링 부트 통합 테스트를 진행해보았더니 AppConfig 가 빈으로 등록되어 있습니다.@SpringBootTest class CoreApplicationTests { @Autowired ApplicationContext ac; @Test void contextLoads() { AppConfig bean = ac.getBean(AppConfig.class); System.out.println(bean); } }hello.core.AppConfig$$SpringCGLIB$$0@37df14d1AppConfig 클래스의 코드입니다.@Configuration public class AppConfig { @Bean public MemberService memberService() { System.out.println("Call - AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { System.out.println("Call - AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public OrderService orderService() { System.out.println("Call - AppConfig.orderService"); return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } }(+) 컴포넌트 스캔을 CoreApplication 으로 옮겨도 똑같이 오류가 발생합니다.추가 질문만약 위 의문이 해결되어 AppConfig 에서 생성한 객체들이 빈으로 등록되지 않고, 컴포넌트 스캔을 통하여 빈을 등록한다면 MemoryMemberRepository 는 memoryMemberRepository 이름으로 빈으로 등록됩니다. 그렇다면 MemberServiceImpl 에서는 memberRepository 를 주입받아야 하는데, 빈의 이름이 달라 주입이 불가능할 것 같습니다. 이 경우에는 @Component("memberReository") 로 수정해줘야 할까요? 감사합니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
이종간 OS 클래스 문의
안녕하세요. 영한쌤.개발자 PC 윈도우에서 컴파일한 클래스가 유닉스에서 안돌아가는 경험을 한 적이 있는데 java1.5 PC 윈도우, java1.5 서버 유닉스최근 버전 자바에서는 class파일이 이종간 OS도 지원할까요? 아니면, 제환경이 문제가 있었을까요? 오래된 기억이라 동일한 자바 버전이었는지 기억이 안나네요.좋은 강의 정말 감사합니다.저도 해봐야겠네요 ^^
-
미해결스프링 핵심 원리 - 기본편
@autowire에 빨간줄이 뜨는데 원인을 모르겠네요.
프로토타입스코프 공부중인데요. prototypebeanprovicer쪽에 @Autowired시 빨간줄이 뜨고 에러메시지를 살피면 이렇게 나오는데 이유가 뭔지모르겠습니다.그리고 autowire제거해야되나싶어 제거시 테스트시 아예 에러가 나더라구요.(제거안할시는 잘작동해요!) 어떻게 해결해야될까요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 run 실행
안녕하세요Run 실행 시, 현재 작업 중인 클래스가 실행되는게 아니라같은 패키지에 오류가 있는 다른 클래스 파일을 계속 실행하는데 이거 방법이 없을까요? 구글링해서 따라해봤는데도 효과가 없고 다른 에러코드만 뜹니다 ㅠㅠ
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
@param @return 같은 어노테이션을 활용하여 주석을 남기나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]주석 강의를 보다가 좀 앞서간 느낌이 있지만 궁금해서 남깁니다. 우아한 형제들 혹은 큰 회사들의 경우 소스 코드가 길기 때문에 주석은 필수 일거 같습니다. @param @return 같은 어노테이션을 사용하여 주석을 남기는지 아니면 따로 주석을 남기는 규칙? 같은게 존재하는지 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
char 타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 영한님 안녕하세요! 자바강의를 출시해주셔서 감사합니다.다름아니라, 변수 타입 2 강의 5분 쯤에 char타입이 1byte 라고 되어있어서 2byte라고 알고있는데, 자바 버전 올라가면서 char 타의 스펙이 수정된 건가요..?