묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열 리펙토링
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]배열 리팩토링에서 9분34초에 자막 오타 있습니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
섹션 8. 배열 - 문제와풀이3
안녕하세요 강사님 productAdminEx 문제에 관련해서 질문이 있습니다.productNames[productCount] = scanner.nextLine(); 이게원래 배우던 형식으로는 두번째 사진처럼 for문 안에서productNames[i] = scanner.nextLine(); 이런식이어서 예를들어 i = 0인경우 productNames 배열의 0번째 인덱스에 scanner.nextLine();으로 사용자가 입력한 값이 들어가는건 이해가 가는데 productNames[productCount] = scanner.nextLine(); 면 productNames배열 안에 있는 productCount에 scanner.nextLine();로 사용자가 입력한 값을 넣는건가요..? 그리고 그 사용자가 입력한 값이 들어가있는 productCount를 productNames배열이 위치를 참조하고 있는걸까요?? 이해가 잘 안가서 질문드립니다. (첫번째 사진) (두번째 사진) productNames[productCount] = scanner.nextLine(); 이게productNames의 배열 자리에 productCount의 값을 넣는다는 의미인가요? 이해가 안갑니다..ㅜ
-
미해결스프링 핵심 원리 - 기본편
타입이 아닌 "prototypeBean" 이름으로 빈 조회시 에러
@Test void prototypeFind() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); PrototypeBean prototypeBean1 = ac.getBean("prototypeBean", PrototypeBean.class); prototypeBean1.addCount(); Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean("prototypeBean", PrototypeBean.class); prototypeBean2.addCount(); Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); } @Scope("prototype") static class PrototypeBean { private int count = 0; ... }강의에서는 PrototypeBean.class만 사용하여 타입으로 조회를 했습니다. PrototypeBean 클래스가 컴포넌트스캔되므로, 해당 클래스의 이름은 PrototypeBean을 이름으로 넣어서 조회했으나 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'prototypeBean' available빈을 찾을수 없다고 합니다. prototypeBean으로 첫 글자를 소문자로 변경하여도 동일합니다.해당 클래스의 객체가 빈으로 등록될 때 빈 이름을 지정하는 방식을 제가 잘못 이해하고 있는건지, 이름으로 조회를 하고싶은데 어떻게 히면 좋을지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
실습2 질문
2번 잔액문제에서void deposit(int amount){}에서 int amount를 int balance아래에 선언하면 각 void()소괄호안에 amount를 선언안하고 대괄호에 쓸수있지않나요??질문2 int balance는 Account클래스안에 멤버변수인가요??amount는 파라미터인가요?? 명칭이 헷갈려서 질문합니다항상 좋은 강의 감사합니다.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 핵심 원리 - 기본편
System.out.println("new member = " + member.getName()); System.out.println("findMember = " + findMember.getName()); 콘솔에 출력안되고 Gradle로만 출력되는 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) 안녕하세요!"회원도메인 실행과 테스트" 부분을 듣고 있습니다. 강사님의 코드를 똑같이 따라 작성하고 MemberApp의 테스트를 위해 Run 을 누르니 강사님께서는 System.out.println의 결과가 콘솔에 찍히는데저는 Gradle에서만 확인되더라구요..저는 콘솔창이 아예 없습니다. ㅠ 강사님의 결과 화면저의 결과 화면일단 다음강의로 넘어가지만 그래도 뭔가 찝찝해서검색도 해보고 Chatgpt한테도 물어봤는데 도저히이유를 모르겠어서 질문하게 되었습니다. 저는 spring 3.2.1 버전, java 17버전을 사용중이며 IntelliJ는 유료버전을 쓰고있습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
강의 설명 관련 자료 문의 입니다.
안녕하세요 강의 잘보고 있습니다. 설명하실때 보여주시는 노션자료는 어디서 봐야할께요 처음에 올려주신거 같았는데 찾아봐도 없어서요~ 자바 중급 고급 기다리고 있습니다.감사합니다.^^
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
설치가 안됩니다. ㅠ
Mac에서 JDK 설치하기 중# 신규 방법 (입력 및 실행하세요)brew tap homebrew/cask_versions입력하면 자꾸 github 얘기만 나옵니다 ㅠ어떻게하면 좋을지 문의드립니다.
-
해결됨스프링 핵심 원리 - 기본편
Component 타입 조회
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]17:10 쯤 생성자안에 Autowired로 통해 타입이 맞게 들어간다라고 강사님이 설명해주셨는데, 이해가 잘 가지 않아 문의합니다.현 시점에 MemberServiceImpl 메서드의 생성자 타입은 MemberRepository 의 타입으로 되어있고 DI 되는 객체( MemoryMemberRepository )도 상속으로 MemberRepository를 상속하고 있다고 하여 타입이 같다고 설명을 하는건가요?
-
미해결스프링 핵심 원리 - 기본편
코드가 완전히 같은데 한쪽은 오류가 발생하고 다른쪽은 오류가 발생하지 않습니다.(git push하고 git clone한 코드결과가 다릅니다)
왼쪽과 오른쪽은 완전히 동일한 코드입니다. 오른쪽 컴파일러 코드를 깃 push해서 올리고 다른폴더에 git clone해서 실행한게 왼쪽 컴파일러 입니다. (추가적으로 인텔리제이로도 프로젝트를 비교해 봤는데 소스코드에 관해선 동일합니다) 그런데 도대체 왜 오른쪽은 오류가 뜨고 왼쪽은 오류가 뜨지 않는지 궁금합니다. 오류 내용은 맨 아래에 있고 test core에 contextLoads에서 발생한 내용입니다. 오류 내용으로 보건데 memberImple에서 memberRepository의 의존성을 주입하는데 memberRepository랑 MemoryMemberRepository두개의 빈이 존재해서 둘 중 어떤걸 써야 할 지 모르겠다 라는 것 같습니다. 코드는 아래랑 같은데 이게 원래 저 오류가 뜨는게 맞는건지 아닌지도 잘 모르겠습니다. 혹시 이게 롬복관련 강의진행하고 컴퓨터를 다른 컴퓨터로 다시 옮겨서 진행해서 롬복때문인가 싶어서 셋팅도 하고 컴파일러도 껐다가 켜봤습니다. appconfig에서 MemberRepository가 등록이 되고 AutoAppConfig에서 MemoryMemberRepository가 등록이 되는것 같은데 이름이 다르니까 싱글톤이 적용이 안되는것 같고 이게 MemberServiceImpl 에서 @Autowired로 DI되면 둘 중 어떤걸 해야하는지 모르니까 오류를 내뱉는것 같은데 제가 생각한게 맞는지 궁금합니다.제가 생각한게 맞다면 왜 왼쪽은 성공했는지틀렸다면 어디가 어떻게 틀렸는지 중간에 싱글톤 개념같이 언급한 부분은 맞는 생각인지왜 왼쪽은 성공하고 오른쪽은 틀렸는지이렇게가 궁금합니다.추가로 오른쪽 컴파일러에서 원래 실습에서 진행한 테스트 코드에서는 오류가 안뜨고 core에서만 오류가 떴는데 오류가 왜 뜨는지 시험해 보다가 test()테스트케이스를 만들어서 한개의 스프링 컨테이너에 appconfig랑 autoappconfig랑 둘 다 불러오니 거기서 core랑 똑같은 오류가 나서 위에 말한대로 생각한것 입니다. package hello.core; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; @Configuration @ComponentScan( // basePackages = "hello.core.member", default는 1번째 줄에 있는 패키지 경로 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { // @Bean(name ="memoryMemberRepository") // MemberRepository memberRepository(){ // return new MemoryMemberRepository(); // } }package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfig { @Bean public MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { //return new FixDiscountPolicy(); return new RateDiscountPolicy(); } @Bean public MemberService memberService(){ System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService(){ System.out.println("call AppConfig.orderService"); return new OrderServiceImpl(memberRepository(), discountPolicy()); } }package hello.core.member; import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Getter @Component public class MemberServiceImpl implements MemberService{ //Test용도 private final MemberRepository memberRepository; @Autowired public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } }package hello.core.member; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.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); } }
-
미해결김영한의 실전 자바 - 기본편
9.상속.pdf 26페이지에 주석 질문이요
저 주석은 잘못된거죠?
-
미해결스프링 핵심 원리 - 기본편
OrderServiceTest 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. OrderServiceTest 클래스 질문이 있습니다.MemberServiceImpl 객체와 OrderServiceImpl 객체는 서로 의존성이 없어보이는데, 각각의 객체 내부에 존재하는 MemberRepository를 어떻게 공유하는지 궁금합니다. 정확히는 createOrder() 테스트 함수 내부에서 memberService.join(member)을 했을 때, 이후 orderService.createOrder() 메서드 내부에서 memberRepository.findByID()를 통해 멤버를 어떻게 찾아내는 것인가요?
-
미해결스프링 핵심 원리 - 기본편
build.gradle에 롬복 추가할 때 dependencies 관련 질문드립니다
롬복 기능 추가할 때 build.gradle의 dependencies에 implementation 'org.projectlombok:lombok' 이 한 줄만 넣어줘도 롬복이 기능하는데 문제가 없는데 강의에서는 아래와 같이 여러 줄의 코드를 추가해줬습니다. 단순히 implementation만 추가해주는것과 강의에서 제시한 아래의 코드가 서로 어떻게 다른 건지 알 수 있을까요?//lombok 라이브러리 추가 시작 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //lombok 라이브러리 추가 끝참고로 스프링부트 버전은 3.2.1 입니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션7. 조회한 빈이 모두 필요할 때, List, Map
AllBeanTest에서@Autowired 어노테이션을 붙일 경우에, 빨간 밑줄이 생기면서, Autowired members must be defined in valid Spring bean (@Component|@Service|...) 이런 경고 문구가 뜹니다.실제로 해당 어노테이션을 붙이던 안붙이던 동일한 결과가 출력이 되는데 이유를 알 수 있을까요? public class AllBeanTest { @Test void findAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } } }
-
해결됨스프링 핵심 원리 - 기본편
@Autowired 필드명으로 빈 조회하기
섹션 7에서 "@Autowired 필드명" 강의를 듣고 있습니다.AutoAppConfigTest에서 아래와 같은 에러가 발생합니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [/Users/a/Desktop/study/spring-study/core/out/production/classes/hello/core/order/OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy 질문 게시판에 있는 글들도 읽어봤는데 따로 해결방법을 못찾겠습니다.아래는 관련 코드들 캡쳐해서 첨부합니다.
-
해결됨김영한의 실전 자바 - 기본편
진짜 사소한 교재 오류 관련 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]정말 사소하긴 합니다만, 교재에도 강의 화면에도 출력 예시에 큰따옴표가 포함되어있는데, 강의 화면과 제공된 소스 코드에는 큰따옴표와 이스케이프 시퀀스가 포함되어있지 않아 아래 강의 화면처럼 큰따옴표가 출력되지 않을 것 같습니다. 별로 중요한 건 아니니 교재 파일을 수정하는 것이 어떨까요...? 사소해서 죄송합니다...
-
해결됨스프링 핵심 원리 - 기본편
조회빈이 2개 이상있을때 @Autowired를 사용시에 생성자에서 발생하는 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]조회빈이 2개 이상일때 @Autowired 어노테이션이 붙은 생성자가 의존성을 주입할시에 처음에는 타입으로 주입시도하고 아닐경우에 필드명으로 주입을 시도한다고 하는데요. 필드명을 주입하려는 구현체랑 맞추더라도 같은 에러가 발생하는데요 혹시 해당 이슈에 대해서 업데이트 된 부분이 있을까요 ? 혹시나 필드명을 제가 잘못입력했을까봐 에러 로그에서 복사해서 실행해도 같은 증상이 나타압니다. 다음은 에러 코드입니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [/Users/choehyeonseong/Desktop/project/spring/core/out/production/classes/hello/core/order/service/OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy 다음은 생성자 부분입니다. @Autowired public OrderServiceImpl(MemberRepositroy memberRepositroy, DiscountPolicy rateDiscountPolicy/*autowired등록시에 처음에 타입으로 조회 다음에 필드 변수명으로 매칭한다.*/) { System.out.println("1. OrderServiceImpl.OrderServiceImpl"); this.memberRepositroy = memberRepositroy; this.discountPolicy = rateDiscountPolicy; }
-
미해결스프링 핵심 원리 - 기본편
애플리케이션 실행 시점에 오류발생 부분 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 마지막에 오류가 발생되는 이유를 myLogger 클래스의 @Scope("request")는 request가 존재해야 빈을 생성할 수 있는데 request가 존재하지 않기 때문에 빈을 생성할 수 없기 때문이다 라고 이해하는 것이 맞을까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
변수 명명 규칙 강의 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]변수 명명 규칙강의 3:57에 첫 글자 소문자 시작인데 대문자 시작이라고 말씀 하셨네요!..
-
해결됨C개발자를 위한 최소한의 C++
문자열 필터 실습 코드 중 질문 드립니다.
안녕하세요. 강의 잘 보고 있습니다.실습 중 궁금한 것이 있어서 질문 남깁니다.CMyStringEx::onSetData 함수 내용입니다.void CMyStringEx::onSetData(const char*& param) { CMyString::onSetData(param); // 생략 if (param != nullptr) { if (strcmp(param, "멍멍이아들") == 0) { // delete [] param; param = "우리귀요미"; } } }param이 가리키고 있는 곳의 데이터가 "멍멍이아들" 문자열이면 "우리귀요미"라는 새 문자열이 담긴 주소로 바꿔주기 전에 기존 param이 가리키고 있는 곳을 delete 해줘야 메모리 누수가 발생하지 않을 것 같은데 맞나요? 만약 1번이 맞아서 delete를 한다면 CMyString::~CMyString() 소멸자가 호출될 때 문제가 발생할 것 같은데 이를 어떻게 해결하면 될까요?
-
해결됨김영한의 실전 자바 - 기본편
접근제어자
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]접근제어자를 공부하던 도중 Speaker 클래스 예제를 통해 변수에 privet를써러 외부 호출을 막는 경우를 보았습니다. 근데생성자에서 볼륨이 100보다 크게 만들어도사진과 같이 볼륨이 200이 되었습니다.이러한 경우 생성자 클래스안에이렇게 바꿔도 되는지? 아니면 다른 방법이 있는지 궁금합니다.