묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz08 도대체 뭐가 문젠지..
위와 같이 영상 풀이랑 똑같이 따라 해보았는데 main메소드에서 setDetector,setReporter를 호출할때 static으로 선언하라며 에러가 나네요.. 아무리봐도 똑같은 코드인데 뭐가 문제인지 질문드립니다!
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 스프링 컨테이너를 들으면서 정적인 의존관계와 동적인 의존관계가 어떻게 연결되는지 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]추상적인 내용을 코드로 먼저 보여드리고 질문하겠습니다. 먼저 정적인 클래스 의존관계는 다음과 같은데요import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; }제가 이해한 바로는, DIP 원칙을 지키기 위해 생성자를 통한 인터페이스 주입을 해야 한다고 들었습니다. 다음은 동적인 인스턴스 의존관계 관련 코드입니다.public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } public DiscountPolicy discountPolicy() { return new RateDiscountPolicy(); } }먼저 앱을 실행하기 전인 정적인 클래스 의존관계 단계에서 생성자를 통한 인터페이스 의존성 주입으로 OrderService 객체가 MemberRepository와 DiscountPolicy 인터페이스를 사용할 것이라고 알린 후, 실제로 앱을 구동하면 런타임 환경에서 사용할 인스턴스를 생성하고 이전의 정적인 클래스 단계에서 주입한 것을 구현 객체로 반환하면서 의존성이 물리적으로 연결되었다고 볼 수 있나요? 그래서 정적인 단계와 동적인 단계로 구분한 것인가요?
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 7번 클래스 선언
안녕하세요 퀴즈 7번을 하다가 궁금한 점이 생겨서 질문 남깁니다.Hamburger에 대한 class를 만들 때class Hamburger{}로 만들면 오류가 생기지 않지만public class Hamburger{}로 만들면 오류가 생기는 이유가 뭔가요 ? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
프로세스 흐름도를 한번에 이해하지 못한다면
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 비전공자로서, Spring을 공부하고 있는 취준생입니다. 프로세스 흐름도를 보면, 클래스 이름이 비슷하고, 각 클래스가 어떤 역할을 하는지 한번에 감이 안옵니다. 이 경우에는 제가 도메인 지식이 부족한 건지, 아니면 정상인지 궁금합니다...!나중에 회사 들어가서, 이걸 왜 이해못하냐는 식의 핀잔을 들을까봐 걱정됩니다
-
미해결스프링 핵심 원리 - 기본편
도메인설계에서 '도메인'의 의미
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 강사님, 강의에서 '도메인'이라는 용어가 자주 등장하는데, 정확한 의미에 대해 알고 싶어서 질문드립니다.
-
해결됨스프링 핵심 원리 - 기본편
No qualifying bean of type 'basic.core.member.MemberService' available 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 컴포넌트 스캔과 의존관계 자동 주입 시작하기 강의를 잘 보고 있었는데 AutoAppConfigTest 부분에서 막혀서 질문드립니다. No qualifying bean of type 'basic.core.member.MemberService' available 에러가 발생하는데요, AutoAppConfig 위치가 패키지 최상단임에도 불구하고 해당 에러가 발생하고 있습니다. ㅠㅠ 어노테이션도 강의 페이지를 보고 제대로 달았는데 어떤 점이 문제인지 파악이 어려워 해당 코드 구글 드라이브 업로드합니다. 감사합니다. https://drive.google.com/file/d/1hwrIzJPo6PIdTQ5ACj4PBrIOzOXhDbdK/view?usp=sharing
-
미해결스프링 핵심 원리 - 기본편
자동 의존관계 주입 시 꼭 @Configuration 이 붙은 설정 클래스가 필요한가요 ?
안녕하세요 영한님! 면접을 위해 다시 복습하다 궁금해진게 있어 질문드립니다. 질문 내용은 제목과 같은데요, 평소에 웹 애플리케이션을 개발하면서 수동 주입보단 자동 주입을 자주 활용해왔고 강의의 AutoAppCofing 와 같은 Bean 설정 클래스를 전혀 사용하지 않고 개발했음에도 별 문제가 없었습니다.다른 질문들도 많이 확인해봤는데 main() 안에 @SpringBootApplication -> @SpringBootConfiguration -> @Configuration 이 이미 적용되어있기 때문에 굳이 설정 클래스를 만들지 않고도 Bean 객체의 싱글톤을 보장받을 수 있다고 짐작하고 있는데요, 제가 생각한게 맞을까요 ? 제 생각이 맞다면 수동 주입 시에도 @Configuration 이 없어도 @Configuration 이 적용되어 싱글톤으로의 반환이 보장될 것 같은데.. 잘 모르겠습니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz_07 static
햄버거 클래스들 앞에 static을 안썼더니 자꾸this cannot be referenced from a static context가 떠서public static class HamBurger {}public static class CheeseBurger extends Hamburger{}public static class ShrimpBurger extends Hamburger{}로 작성하였습니다.그런데 선생님은 class만 쓰셔도 에러가 안나길래 해봤는데 또 같은 에러가 나왔습니다. 찾아봤더니 main함수는 static 메서드이므로 그렇지 않은 클래스는 참조할 수 없다는 뜻이라 같은 곳에서 내부클래스를 선언하게 될 경우 같이 static을 붙여줘야한다라고 하던대...왜 선생님은 없어도 되고 저는 안될까요?ㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인텔리 제이 소괄호 색상 설정 문의
안녕하세요?강의 진행시 인텔리 제이에서 편집 할 때 커서가 위치하는 괄호에 노란색(pair)으로 표시되는데... 기본 설정에서 setting 할 수있는지...Rainbow Brackets 을 설치해야 가능한지 궁금합니다.Rainbow Brackets은 커서 위치가 아니라 전체 내용에 적용되는 것으로 알고 있습니다.편집시 커서가 위치하는 괄호( pair)의 기본은 회색으로 표시되어 인식이 조금 불편하여 문의 드립니다.
-
미해결스프링 핵심 원리 - 기본편
appconfig에 들어가는 memberService는 memberService의 생성자인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]public class AppConfig { public MemberService memberService(){ return new MemberServiceImp(new MemoryMemberRepository()); 이 코드가 생성자라면 public MemberServiceImp memberServiceImp(){ return new MemberServiceImp(new MemoryMemberRepository()); 이런식으로 되야하는게 아닌가 싶습니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
8번퀴즈 speedCam 객체의 Setter가 궁금합니다
안녕하세요 매번 강의 잘 듣고 있습니다.8번 퀴즈를 풀면서 궁금한게 생겨 글써봅니다.앞선 Interface 강의에서는 FactoryCam의 객체를 만들었을때FactoryCam factoryCam = new FactoryCam(); factoryCam.setDetector(advancedFireDetector); factoryCam.setReporter(videoReporter); factoryCam.detect(); factoryCam.report();setDetector()와 setReporter()의 인수로 위에서 정의한Reportable videoReporter = new VideoReporter(); Detectable advancedFireDetector = new AdvancedFireDetector();두 객체를 지정하셨는데 퀴즈 8번에서는 이렇게 인스턴스 객체를 만들고 인수에 집어넣는게 아닌SpeedCam speedCam = new SpeedCam(); speedCam.setDetector(new AccidentDetector()); speedCam.setReporter(new VideoReporter());new AccidentDetector(), new VideoReporter() 인스턴스를바로 인수로 집어넣는것이 import만 쓰면 가능하다는걸 보여주시려고 작성한건지 궁금해서 여쭤봅니다.1회차로 강의를 보는중이라 기본적인 용어의 혼동이나 이전 강의들의 개념도 아직 제대로 정립되지않아 질문하기를 망설였지만 답변받으면서 얻는 정보도 있을거라 생각하여 질문드려봅니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
강사님 안녕하세요! 7번 퀴즈 질문있습니다!
안녕하세요 나도 코딩님!퀴즈를 풀다가, for 문 안쪽에 hamBurger 이게 자꾸 에러가 뜨는데 주어진 코드로 아무리 변경하고 해도 에러때문에 실행이 안되네요 ㅜㅜ 어떻게 하면 좋을까요?? 부탁드립니다!
-
미해결스프링 핵심 원리 - 기본편
스프링 빈은 항상 stateless로 설계해야 한다는 말에 대해 궁금증이 있습니다.
만약 스프링 특정 빈에 아래와 같이 캐시를 저장하고 있다면 Map<String,Article> articleCache캐시로 동작하는 Map 객체는 stateful이라고 생각됩니다. 근데 이게 싱글톤으로 동작하지 않고, 매번 객체를 새로 생성한다면 캐시의 의미가 사라지지 않나요?그래서 '스프링 빈은 항상 stateless'로 설계해야 한다가 과연 늘 옳은 말인지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
사지방에서 자바를 공부하고 있는 군인입니다
저는 매번 자바 프로그램을 설치할 수 없어서 "구름 IDE"라는 클라우드 개발 환경을 사용하여 개발하고 있습니다. 그러나 첫 장인 "HelloWorld"부터 실행이 되지 않고 오류가 떠서 온라인 컴파일러를 이용해서 결과값을 보고 있었습니다. 그러나 이번 강의부터는 "BlackBox"라는 클래스로부터 불러오는 값을 적용시켜야 하는데 일반적인 온라인 컴파일러에서는 이 기능까지는 지원하지 않는 것 같습니다. 이러한 경우에는 어떻게 컴파일 하는게 좋을까요? 참고로 컴파일할 때 ChatGPT와 온라인 컴파일러를 둘 다 사용해왔습니다. 다시 한 번 말씀드리지만 어떠한 이유에서인지 자바가 컴파일되지 않고 있습니다.아니면 다른 클라우드 개발 환경을 추천해주셔도 좋습니다!(개발 환경은 윈도우10 이며 재부팅마다 컴퓨터는 초기화됩니다)
-
미해결스프링 핵심 원리 - 기본편
Long과 long의 차이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보다 보면 어떤 경우엔 Long을 쓰고 또 어떤 경우엔 long을 쓰던데 둘의 차이가 있나요?
-
미해결스프링 핵심 원리 - 기본편
빈으로 등록된 NetworkClient 객체에 관하여 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.빈으로 등록된 NetworkClient 객체에 관하여 질문드립니다.코드를 참조하면 LifeCycleConfig.class만 파라미터로 받고 있기 때문에 빈에 등록된 것은 NetWorkClient객체라고 생각됩니다. 그러면 NetWorkClient 객체 내에 있는 필드 url은 빈으로 등록되지 않는건가요?만약 그렇다면 의존관계 주입은 이루어지지 않는건가요?
-
미해결스프링 핵심 원리 - 기본편
타입이 겹치는 컴포넌트를 스캔
"컴포넌트 스캔과 의존관계 자동 주입 시작하기" 강의를 듣고 질문 남깁니다. 실습 코드를 따라 RateDiscountPolicy에 Component를 붙여주었는데, FixDiscountPolicy에도 Component를 붙여주면 어떻게 될지 궁금하여 붙였습니다.그랬더니 에러가 발생하더라구요타입이 겹치는 컴포넌트가 있으면 스캔이 안되나요? 이런 경우도 컴포넌트 이름을 지정해주어야 하나요?혹시 뒤에 나오는 내용을 제가 먼저 궁금증을 가져버린 건가요ㅠㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
다형성 파트부터 재생이 안됩니다.
그전 강의는 정상적으로 스트리밍 되지만다형성<< 부터는 윈도우노트북 맥북 아이패드 전부재생이 안되네요 빠른해결부탁드립니다.
-
미해결스프링 핵심 원리 - 기본편
스프링 빈 등록과 의존관계 설정
안녕하세요. 스프링 컨테이너에 스프링 빈이 등록되는 과정이 두 단계로 이루어진다고 설명해주셨는데요. 어떤 방식으로 이루어 지는지 궁금합니다. memberService : 덤프객체1orderService : 덤프객체2memberRepository : 덤프객체3discountPolicy : 덤프객체 4스프링 빈 등록 단계 -> 스프링 빈 이름 : 의미없는 객체 스프링 빈 의존관계 주입 단계 -> 객체 생성 시 주입 받을 필요가 없는 기본 생성자 객체부터 생성한다. 그 이후 생성자 주입이 필요한 객체들을 생성한다. memberService : new MemberServiceImpl( ??? )orderService : new OrderServiceImpl( ???, ??? )memberRepository : new MemoryMemberRepository()discountPolicy : RateDiscountPolicy()스프링 빈 등록 단계 -> 스프링 빈 이름 : 객체 생성. 하지만 생성자 주입을 받아야하는 객체들은 스프링의 어떠한 조치로 인해 ???인자로 채워 넣음으로 의존관계 설정 유보스프링 빈 의존관계 주입 단계 -> 생성자 주입이 필요한 객체들에 맞게 의존관계 주입 memberService : new MemberServiceImpl (MemberRepsotory)orderService : new OrderServiceImpl(MemberRepository, DiscountPolicy)memberRepository : new MemoryMemberRepository();discountPolicy : new RateDiscountPolicy();스프링 빈 등록 단계 -> 스프링 빈 이름 : 순서대로 메소드 호출하며, 생성자 주입이 필요하다면 해당 객체부터 생성 후 주입 받아서 객체 생성 전 이 세가지가 떠오르는데 어떤 방법으로 나뉘어 실행되는지 도움 부탁드립니다. 감사합니다.
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?
의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요?아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?