묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
1:18에서 되는 기능 저도 얼티메이트인데 왜 안 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1분 18초 부분을 봐주세요안녕하세요. 저도 학생용 라이센스로 얼티메이트(엔터프라이즈) 버전으로 인텔리제이 사용하고 있습니다. 그런데 " "부분에서는 절대 자동완성이 안 나오더라구요.그래서 혹시 영한님이 착각하시고 플러그인을 얼티메이트 버전이라고 하신 건지 여쭤보고 싶습니다.혹시 플러그인이라면 그 플러그인이 어떤 것인지 알려주시면 정말 감사드리겠습니다 💪🏻
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
return의 의미에 대하여
안녕하세요 공부하다가 이해안되는 부분이 있어서 이렇게 질문합니다.44번 문장에서는 return을 사용하는데47번 문장에서는 왜 return을 사용하지 않나요?그리고 this. 이 부분은 어떻게 사용하고 왜 사용하나요? 그냥 this 빼고 사용하면 안되나요?
-
해결됨스프링 핵심 원리 - 기본편
프록시 객체는 싱글톤인가요?
다른 분들의 질문을 읽어보던중에, 같은 질문에 다른 답변이 달려있는게 있어서 여쭤봅니다."프록시 객체는 각 HTTP 요청마다 생성되는가?" 라는 질문에https://www.inflearn.com/questions/618437 는'각 요청마다 생성된다' 라고 답해져있고https://www.inflearn.com/questions/348888 는'프록시 객체는 한번만 생성된다'(맨밑에 있습니다) 라고 답해져있는데, 뭐가 맞는건가요?그리고, 강의 교안 <9.빈 스코프>의 마지막 페이지(32페이지)에 보면 '마치 싱글톤을 사용하는 것 같지만 다르게 동작하기 때문에 결국에 주의해서 사용해야한다.' 라는 말이 있는데요. 이 말에 대해서 좀 더 설명을 해주셨으면 좋겠습니다. 만약 프록시 객체가 한번만 생성된다면, 그게 싱글톤으로 등록된 것이나 마찬가지인데, 왜 "싱글톤을 사용하는 것 같지만 다르게 동작"하는지 잘 모르겠습니다.
-
미해결스프링 핵심 원리 - 기본편
@Configuration과 @ComponentScan의 충돌
안녕하세요. @ComponentScan을 공부하다가 궁금한게 생겨서 질문드립니다.@ComponentScan에 의해서 @Configuration 이 붙은 클래스를 스캔했을 때, 이 때 만들어진 스프링 빈도 팩토리 빈의 역할을 하게 되나요?예를 들어,AppConfig 라는 클래스에 @Configuration을 붙이고 내부에 @Bean을 이용해 등록할 빈들을 만들어놓는다.AutoAppConfig 라는 클래스에 @ComponentScan을 붙이고 스프링 컨테이너(ApplicationContext)에 AutoAppConfig.class 로 설정정보를 넘겨준다.위와 같이 했을 때, AutoConfig가 스프링 빈으로 등록되고 @ComponentScan에 의해 스캔이 시작되어, AutoAppConfig가 위치한 패키지부터 하위 패키지까지 스캔되어 스프링 빈이 등록 될 것입니다. (AppConfig는 패키지 내부에 속해있어 스캔된다고 가정하겠습니다.)그럼 이 경우에 exclude 필터로 @Configuration에 해당하는 클래스를 제외하지 않는다면, AppConfig도 스프링 빈으로 등록될텐데,스프링 컨테이너(ApplicationContext)에 직접적으로 AppConfig.class와 같은 설정 정보를 전달하지 않았는데, 이때도 AppConfig가 팩토리 빈이 되어, 위의 1번에서 @Bean으로 만들어놓은 빈들을 스프링 컨테이너가 등록하게 되는지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
맥 인텔리제이가 실행이 되지않습니다
이화면에서 계속 멈춥니다,,지우고 깔고 계속 기다려보는데도 여기서멈춰요...
-
미해결스프링 핵심 원리 - 기본편
ObjectProvider를 Singleton으로 사용하지 않는가?
ObjectProvider 를 이용해 request scope 빈과 관련된 문제를 해결하는 과정에서 궁금한 것이 생겨 질문드립니다.교안에서 LogDemoController 와 LogDemoService 는 각각 필드로 ObjectProvider<MyLogger> 를 갖고 있는데요.실제로 애플리케이션을 동작시켜 출력해보니, LogDemoController 와 LogDemoService가 서로 다른 ObjectProvider 객체를 사용하고 있었습니다.ObjectProvider<MyLogger> 를 싱글톤으로 사용하지 않는 이유가 있을까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
public, class, static, void 언제 어떻게 조합해서 쓰는건지
현재 챕터07 접근제어자(후반전) 까지 강의를 들었고 퀴즈도 다 풀어냈습니다.그런데 public, class, static, void 등을 조합해서 코드 앞부분에 쓰는데 언제 어떻게 왜 조합해서 저것들을 붙이는 건지 정확한 개념을 잘 모르겠습니다. 이럴때는 강의를 다시 돌려보며 개념을 알고 가야하나요? 아니면 그냥 강의 쭉 들으면서 서서히 익히면 되는건가요유튜브 영상으로 9시간 다 보고 인프런 결제했는데 갑자기 진행속도가 너무 빨라진 듯한 느낌이 듭니다. 유튜브 기초 9시간때는 이해하면서 잘 들었는데 지금은 코드 따라적기 바쁘네요ㅠㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
강사님, 아무래도 제 개념의 혼동 때문에 그러는 것 같은데요..!
if (factoryCam instanceof FactoryCam) { (FactoryCam)factoryCam; }이 구문에 혼동이 생겨서 질문드립니다! if 안에 조건문의 내용이 " factoryCam 이 FactoryCam 클래스의 인스턴스가 맞다면 " 이라고 설명을 해주셨는데요 (8분 27초경) 만약에 factoryCam 이 FactoryCam 클래스의 인스턴스가 맞다면 형변환이 필요 없는거 아닌가요? 또 헷갈린거 하나 더 문의드립니다. 다형성에 대한 예시를 위해 작성해주셨던 코드 내용인데요.Camera factorycCam = new FactoryCam();만약에 위 코드로 작성한게 부모클래스인 " Camera" 로 객체를 생성한 거라면, factoryCam 의 참조 클래스는 Camera 인 것 같은데요. (그러니까 FatoryCam 의 인스턴스 메서드를 불러왔을 때 에러가 나는 것으로 보이구요.) 근데 이 설명과 "factoryCam instanceof FactoryCam" 이 구문이 " factoryCam 이 FactoryCam 클래스의 인스턴스가 맞다면 " 이라고 설명을 해주시니 상충되는 내용이 아닌가 싶어 혼동이 옵니다. 내용 요약factoryCam 은 부모 클래스로 만들어진 객체라서 FactoryCam 의 인스턴스 메서드를 사용할 수가 없다고 설명을 해주셨습니다!헌데 if 조건문은 "factoryCam 이 FactoryCam 클래스에 포함되어 있다면 " 이라고 설명해주신 부분이 상충되지 않나 하여 헷갈립니다.그리고 2번에 내용처럼 만약 factoryCam 이 FactoryCam 클래스에 이미 포함되어 있다면, 굳이 형변환을 하지 않고도 detectFire 메서드를 호출할 수 있어야 하지 않는지..?제가 개념을 잘못 이해하고 있을 것 같은데, 혹시 설명을 좀 부탁드려도 될까요?이 부분에 자꾸 혼동이 생겨서 다음으로 넘어가기가 어렵네요 🤣ps. 이전에 강사님 파이썬 강의로 난생 처음 태어나 클래스란 개념을 이해했던 수강생으로써, 이번 자바편도 개인적으로 큰 도움되고 있습니다. 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
프로젝트 생성 관련 질문있습니다.
안녕하세요. 혹시 스프링 프로젝트를 새로 만들 때마다 initializer로 매번 generate을 해서 라이브러리를 매번 다운 받아야 하는 걸까요???
-
미해결스프링 핵심 원리 - 기본편
memberRepository가 다른 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]memberRepository가 다르게 나와서 다른 분들의 질문 답변을 보고 해결했습니다.Appconfig의 memberRepository가 static으로 선언되어 있기 때문이더라구요. 그래서 궁금한점이, 왜 static으로 선언되면 singleton이 되지 않나요?항상 친절한 답변 감사드립니다^^!ㅎㅎ
-
해결됨스프링 핵심 원리 - 기본편
스코프와 프록시 scope request 관련 질문입니다.
안녕하세요.MyLogger와 같은 기능을 현업에 적용 해보려고 합니다.각 서비스는 물론 클라이언트의 요청을 구분하기 위해 MyLogger가 필요하지만, 모든 서비스에서 MyLogger 라는 서비스를 선언을 해주는게 맞을까? 의문이 들었습니다.혹시 다른분들의 질문이 있나 찾아보던 중 https://www.inflearn.com/questions/288770/%EC%8B%A4%EB%AC%B4%EC%97%90%EC%84%9C-scope-request-%EB%A5%BC-%EB%A7%8E%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%82%98%EC%9A%94더 나은 방법이 있다는걸 알게 되었습니다.해당 방법이 AOP 와 프록시를 이용한 기술인지 궁금하여, 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
NoSuchBeanDefinitionException 오류
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.order.OrderServiceImpl' available오류가 나온다면 AutoAppConfig에서 @ComponentScan( basePackages = "hello.core.member", <- 이 부분을 지우면 된다!! // memeber를 포함한 하위 패키지를 기준으로 찾기 때문에 // order에 대한 것 NoSuchDefiniton이 나오게된다. excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )
-
해결됨스프링 핵심 원리 - 기본편
3분 경 필드 명을 빈 이름으로 변경하였을 경우에 대한 설명
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]3분 10초 경 강의 중에 생성자의 파라미터를 rateDiscountPolicy로 변경하고 필드 명을 빈 이름으로 변경하는 예시를 설명 중 필드명을 생성자의 파라미터 이름과 다르면 오류가 나온다고 하였는데 실제로 보니 fix로 바꾸어서 확인해보았는데 따로 오류는 나지 않더라구요.그래서 생각해보았는데 일단 순서상 생성자 주입이 먼저 일어나니 이 때 파라미터명을 보고 rateDiscountPolicy가 주입이 일어나고 이후 3번째 필드 주입된 곳은 앞서 주입했던 rateDiscountPolicy가 다시 들어간 것인가요?콘솔을 보니 fixDiscountPolicy는 의존 주입이 일어나지 않아서 이렇게 생각해보았습니다.
-
해결됨스프링 핵심 원리 - 기본편
스프링빈을 만드는 방법
수업중에 스프링 빈을 만드는방법에 대하여 설명해 주셨는데 스프링빈을 만드는 방법직접 등록하는 방법 (Xml) factoryBean을 통해서 등록하는 방법 (일반적으로 자바 config를 사용하는 것)이렇게 이해하면 될까요??
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코루틴의 대한 질문이 있습니다.
강사님, 강의 내용에는 코루틴이 없어 학습중에 궁금한 점이 있어서 문의드립니다.아래 코드의 실행 순서를 제가 정리 해봤습니다.제가 코루틴의 suspend, resume을 잘 이해한게 맞나 궁금해서요.물어볼 곳이 없어서, 죄송스럽게도 강사님께 문의를 하게 되었습니다.강의 내용과는 관련이 없어 답변을 해주시면 감사하겠지만, 답변이 안달리다도 괜찮습니다.감사합니다. println("Coroutine Outer") 이 실행된다.A 코루틴에서 delay를 만나, B 코루틴으로 실행권을 넘겨간다.B 코루틴도 delay를 만나, A 코루틴으로 실행권을 넘겨준다.1초가 지나고 A코루틴의 println("Coroutine A, Si")을 실행한다.반복문에 의하여 A코루틴의 2번째 delay를 만나, 다시 B 코루틴으로 실행권을 넘겨준다.B 코루틴도 1초가 지난 상태여서, 바로 println("Coroutine B, Si")을 실행한다.반복문에 의하여 B코루틴의 2번째 delay를 만나, 다시 A 코루틴으로 실행권을 넘겨준다.그 다음 4~7을 반복문이 끝날 때 까지 반복 후 코루틴이 종료된다.fun main() = runBlocking { // A 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine A") } } // B 코루틴 launch { repeat(5) { i -> delay(1000L) println("Coroutine B") } } println("Coroutine Outer") } fun <T> println(msg: T) { kotlin.io.println("$msg [${Thread.currentThread().name}]") }
-
해결됨스프링 핵심 원리 - 기본편
람다식 질문입니다.
@Test @DisplayName("빈 이름으로 조회X") void findBeanByNameX(){ //MemberService xxxx = ac.getBean("xxxx", MemberService.class); assertThrows(NoSuchBeanDefinitionException.class, () -> ac.getBean("xxxxx", MemberService.class)); }위에 코드 () -> ac.getBean("xxxxx", MemberService.class)의 ()는 어떤 인터페이스의 추상메서드를 오버라이딩하는건지 궁금합니다.MemberService인터페이스에는 인자없는 추상메서드가 없어서 거기로 가진않았다고 생각이 드는데...public interface MemberService { void join(Member member); Member findMember(Long memberId); } () -> ac.getBean("xxxxx", MemberService.class) 람다식을 해석해주시면 정말 감사하겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
getBean 함수 질문
getBean() 함수와 관련하여 궁금점이 생겨 질문합니다.applicationContext.getBean("memberService", MemberService.class);위의 코드에서 스프링 컨테이너에 bean이 등록될 때,key = 메서드명, value = 메서드에 의해 반환되는 객체(인스턴스) 라고 설명해주셨었는데요.위의 함수에서 MemberService.class 가 하는 역할이 어떤 것인지 궁금합니다. + MemberService는 interface 인데, 인터페이스.class 가 문법적으로 하는 기능이 궁금합니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
void의 정확한 의미를 모르겠어요
안녕하세요 챕터 6 부분을 공부하고 있는데 void를 쓰는 경우와 안쓰는 경우의 차이가 잘 와닫지 않습니다. 리턴값이 없으면 void를 쓰고, 리턴값이 있으면 void를 안쓴다고 알고 있는데 리턴값부터 이해가 잘 가지 않네요!예를 들어서// 호텔 주소 public static String getAdress() { return "서울시 어딘가"; }과셋째 줄에 sout "서울시 어딘가" 를 쓰는 것은 무엇이 다른건지요?감사합니다 :)
-
미해결스프링 핵심 원리 - 기본편
@Configuration 유무 질문
안녕하세요, @Bean이 있더라도,@Configuration이 있어야만, 싱글톤이 보장된다(프록시,,,)고 알고 있습니다... 그러나 강의 중에 보면 Class TestConfig에 @Configuration이 없어도 싱글톤 처럼 작동을 하네요,,(statefulService1 = hello.core.singleton.StatefulService@d78795statefulService2 = hello.core.singleton.StatefulService@d78795) 해당 부분은 왜 그런지 자세한 설명 요청드립니다... public class StatefulServiceTest { @Test void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean("statefulService", StatefulService.class); StatefulService statefulService2 = ac.getBean("statefulService", StatefulService.class); System.out.println("statefulService1 = " + statefulService1); System.out.println("statefulService2 = " + statefulService2); //ThreadA: A사용자 10000원 주문 statefulService1.order("userA", 10000); //ThreadB: B사용자 20000원 주문 statefulService2.order("userB", 20000); //ThreadA: 사용자A 주문 금액 조회 int price = statefulService1.getPrice(); //ThreadA: 사용자A는 10000원을 기대했지만, 기대와 다르게 20000원 출력 System.out.println("price = " + price); Assertions.assertThat(statefulService1.getPrice()).isEqualTo(20000); } // @Configuration static class TestConfig { @Bean public StatefulService statefulService() { return new StatefulService(); } } }
-
미해결스프링 핵심 원리 - 기본편
@beforeEach 사용하는 이유가 궁금합니다.
@beforeEach 를 사용하면 모든 테스트는 자신이 실행되기 전에 이 작업을 수행한다 라고 되어있는데 MemberServiceTest 부분에서 @beforeEach를 안쓰고MemberService memberService; AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService();위와같이 쓰니 오류(Unknown class: 'memberService')가 났습니다.MemberService memberService; @BeforeEach public void beforeEach(){ AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService(); }위의 코드처럼 @BeforeEach 사용해야 appConfig와 memberService를 정의 할 수 있는 이유가 궁금하며 @BeforeEach가 없으면 왜 오류가 나는지 궁금합니다.답변주시면 정말 감사하겠습니다.