묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
@Configuration이 빈을 등록하는 것은 아닌게 맞나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아마 4. 스프링으로 전환하기 강의에서 설명하신 바에 따르면 스프링 빈을 생성하려 할 때new AnnotationConfigApplicationContext(AppConfig.class) 해서 @Configuration을 기반으로 한 클래스를 인자로 전달하면, 이 클래스 내에 @Bean이 붙은 것들은 스프링 컨테이너에 빈으로 등록한다 라고 설명하셨는데요, 여태 @Configuration이 달린 AppConfig를 전달 해주었다면 이번 강의에서는 @Configuration을 삭제한 AppConfig를 전달 해주셨고 붙이지 않아도 @Bean이 붙은 객체들은 스프링 빈으로 다 등록된다고 하셨는데요. 그렇다면 @Configuration의 역할은 4. 스프링으로 전환하기에서 설명하셨던 것과 달리 @Configuration이 붙은 클래스내의 @Bean 붙은 것들을 스프링 빈으로 등록하도록 해주는 것이 아니라 @Bean은 @Configuration이 없어도 빈으로 등록되는 것이고 @Configuration의 역할은 그저 스프링 빈이 싱글톤임을 보장해주는 역할인 것인가요? 제가 기억한 앞선 강의와 살짝 달라진것 같아 헷갈리네요
-
미해결스프링 핵심 원리 - 기본편
CoreApplication 테스트 코드 오류 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 CoreApplication 클래스에 @ComponentScan이 있기에 스프링부트 실행시 이 CoreApplication 클래스가 속해있는 패키지부터 이하의 패키지까지해서 @Component을 찾아 스프링 빈을 자동으로 등록된다고 하셨습니다.그래서 스프링부트(CoreApplication)를 사용하면 여기에 @ComponentScan이 있기에 딱히 @ComponentScan을 사용하지 않는다고 하셨습니다. 그렇다면! 이전 AutoConfigTest에서public class AutoAppConfigTest { @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(CoreApplication.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); } }이렇게 AutoAppConfig.class -> CoreApplication.class 로 변경해도 똑같이 동작하지 않을까? 하는 생각해 그대로 테스트 코드를 진행했으나,위 와 같은 에러가 나네요.저는 CoreApplication 클래스에 컴포넌트 스캔이 있으니 이것을 테스트 코드에 대신 넣어도 다른 @Component를 찾아 스프링 빈으로 등록할것이다 라고 생각했는데 에러가 나니 어떻게 된건지 모르겠네요.제가 어디 잘못이해하거나 빠뜨린 것 있을까요?
-
미해결코틀린 고급편
[23강] SuperTypeToken의 equals 관련 질문
안녕하세요 강사님 23강 강의를 보다가 한가지 여쭤보고 싶은 사항이 있어서 질문을 남기게 됐습니다. 11분 46초 부분을 보면 equals 가 제대로 동작하지 않아서 if (javaClass != other?.javaClass) return false 해당 부분을 삭제하는 부분이 나오는데요. 해당 코드를 해석해보면 2개의 javaClass가 다르기 때문에 equals가 false가 나왔다는 의미 같은데, 혹시 2개의 javaClass가 다른 이유가 무엇인지 알려주실 수 있으실까요? 똑같은 타입의 클래스를 인스턴스화 했기 때문에 동일한 javaClass라고 생각을 했는데 2개가 다르다고 나오니 이해가 잘 되지 않습니다! 감사합니다.
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
우아한 종료 방식은 왜 라이브러리에 공식적으로 추가하지 않았을까요? ㅎㅎ
학습적으로 필요한 질문은 아니긴 하지만.. 100% 궁금해서 질문 드리는데요! 필요한 대부분의 기능을 미리 만들어서 제공하는 라이브러리에서학습 중 직접 작성한 shutdownAndAwaitTermination 메서드 같은건 왜 공식적으로 만들어 제공하지 않은걸까요?좀 충격? 적인건 라이브러리에 구현방법을 주석까지 남겨가며 제안했다는 건데요... 저걸 왜 그냥 메서드로 만들어두지않고 제안만 한걸까요?구조적인 문제가 생기는걸까요?너무 궁금하네요...ㅋㅋ
-
미해결스프링 핵심 원리 - 기본편
앞서 스프링컨테이너에서 빈을 싱글톤으로 생성한다고 하지 않았나요>
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 @Configuration과 싱글톤 강의에서 이해가 잘가지 않아 질문드립니다..이번 강의가 AppConfig에 있는 스피링빈을 생성할 때, new MemberServiceImpl , new OrderServiceImpl 를 호출하면서 memberRepository() 가 여러번 호출 되지 않을까 하는게 강의 내용인데요, 앞서 '싱글톤 컨테이너' 강의에서 이미 스프링 컨테이너가 빈을 생성할때 싱글톤으로 생성된다고 설명을 하셨ㅇ니까그럼 이번 강의에서도 AppConfig의 new MemberServiceImpl 와 new OrderServiceImp 을 호출하면서 memberRepository()이 호출 될 때 여러번이 아닌 한번만 호출되는것이 당연한거 아닌가? 라는 생각이 드는데요..싱글톤으로 생성된다고 했으니 당연히 한번만 호출되겠지.. 라는 생각이요..그래서 이번 강의에서 초반부에 여러번 호출되어야하지 않을까 의문점을 가지는 부분 자체가 잘 이해가 안갑니다..그냥 싱글톤으로 생성된다는것을 증명하는 것인가요?제가 빈을 싱글톤으로 생성한다는 결과 자체를 이미 들은상태라 그런걸까요 AI 답변말고 답변해주세요ㅠ 이너
-
미해결코틀린 고급편
23강 타입 안전 이종 컨테이너 예제 관련 문의 드립니다.
저같은 경우, 7:32 부분에서 List<GoldFish> 를 저장했다가 List<Carp> 타입을 꺼내려고 하면 "class generic.GoldFish cannot be cast to class generic.Carp (generic.GoldFish and generic.Carp are in unnamed module of loader 'app')" 와 같은 오류가 발생하는데, 정상적으로 금붕어 리스트가 반환되는게 맞는지요 ? 제가 뭔가 놓친 부분이 있을까 궁금하여 문의 드립니다.샘플코드는 다음과 같습니다.package reflection import generic.Carp import generic.GoldFish import kotlin.reflect.KClass import kotlin.reflect.full.cast class TypeSafeCage { val animals: MutableMap<KClass<*>, Any> = mutableMapOf() inline fun <reified T : Any> getOne(): T { return T::class.cast(animals[T::class]) } inline fun <reified T : Any> putOne(animal: T) { animals[T::class] = T::class.cast(animal) } } fun main() { val cage = TypeSafeCage() cage.putOne(listOf(GoldFish("금붕어1"), GoldFish("금붕어2"))) cage.getOne<List<Carp>>().forEach { println(it::class.simpleName) } } // 다른 패키지 파일 package generic open class Animal( val name: String ) open class Fish(name: String) : Animal(name) class GoldFish(name: String) : Fish(name) class Carp(name: String) : Fish(name) 강의 중 영상 캡쳐 화면
-
미해결스프링 핵심 원리 - 기본편
DIP 원칙 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]DIP 원칙은 클라이언트 입장에서만 바라봐야하는 건가요?OrderService가 DiscountPolicy와 구현체인 FixDiscount와 RateDiscountPolicy 모두에 의존한다는 것은 알겠습니다.DIP원칙에 따르면 이것은 잘못됐죠 인터페이스에만 의존해야하는데 구체적인 클래스에도 의존하고 있으니까 말이죠.그런데 여기서 DIP가 적용되는것은 클라이언트 입장에서만 인가요? 여기서는 OrderService겠네요. OrderServiceImpl 클래스 코드상에서도 보면 DiscountPolicy도 FixDiscount와 RateDiscount라는 구현체에 new하면서 의존?하는 것같은데 아닌가요? 아니면 이 둘은 말그대로 DiscountPolicy의 구현체라서 DIP 원칙 적용 해당사항이 없는것인가요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
자원정리 이후 메인 스레드 종료
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자원 정리 V6까지 완료했을때 클라이언트를 먼저 종료하면 서버 콘솔에 정상 종료됐다고 로그는 찍히는데 while문이 종료가 안되서 그런지 자바 스레드 자체는 종료가 안되던데 그냥 자원정리만 자동으로 하게 만들고 자바 종료 같은경우엔 직접하는건가요?
-
미해결김영한의 실전 자바 - 기본편
김영한 로드맵
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]로드맵 3 가지가 있는데 자바를 다 듣고나서 스프링을 들어야하나요? 스프링부트 + JPA는 스프링과 자바를 다 듣고 봐야하나요?
-
미해결스프링 핵심 원리 - 기본편
logback을 파일을 추가했음에도 로그 출력안되는 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]처음에 강의 내용대로 따라하다가 로그가 출려되지 않았기에 질문 답변 게시판을 먼저 훑어보고 버전차이에 따라 로그가 출력되지 않는 문제임을 알고 강사님이 강의자료에 올려주신대로 logback.xml 파일을 resources 패키지 아래에 추가한후 실행했으나,여전히 로그가 강의내용대로 출력되지 않습니다. 뭐가 문제일까요..
-
미해결스프링 핵심 원리 - 기본편
구현 객체가 의존한다?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]약 9분경에 여태 진행한 강의에서와 달리 살짝 다른 부분이 나와 혼란스러운데요,이제껏 강의에서 의존 관계를 설명할때,구현객체를 new로 생성하고 인터페이스가 그것을 참조하는 코드를 의존한다~ 라고 강의를 진행하셨는데요. 예를들어 DiscountPolicy discountPolicy = new FixDiscountPolicy 처럼요. 이떄 DiscountPolicy 인터페이스가 구현 객체 (FixDiscountPoliycy, RateDiscountPolicy)를 참조하는 코드를 의존한다 라고 강의해서 말씀하셨습니다. 그런데 이번 강의 9분경에 DiscountPolicy를 구현한 FixDiscountPolicy 클래스에서 DiscountPolicy에 의존한다 라고 설명하시니 갑자기 혼란스럽습니다. 꼭 new 해서 객체를 생성한후 참조하는 것만이 아니라 OrderServiceImpl 클래스에서처럼 MemberRepository 나 DiscountPolicy를 사용하는 것만으로도 의존한다라고 표현하는 것 같지만 이번에 제가 질문드린것은 약간 새로운? 의존관계 같아서 질문드립니다. 이렇게 되면 DiscountPolicy와 FixDiscountPolicy는 상호 의존 관계가 되는건가요?
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 7] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 6] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 5] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 4] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 3] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요?💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 2] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결개발을 위한 프로그래밍적 사고 기르기
[세션 1] 내 학습 방법을 돌아보며 공유해보아요
이번 세션은 어떻게 학습하셨나요?강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요?그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요!혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요.여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
-
미해결스프링 핵심 원리 - 기본편
여러 타입으로 조회에 대한 이해를 돕기 위한 레퍼런스 참조합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://velog.io/@rapid97/스프링-빈-타입-조회를-이해하기-위한-리플렉션
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
궁금한게 있는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]V5에서 세션 클래스에서 try-with-resource 로 자원들을 닫아주었는데 V6 코드는 세션 매니저로 따로 관리하는 이유가 이해가 안가서요 ㅠㅠ혹시 각각 클라이언트를 종료하는게 아니라 서버를 종료했을때 남은 클라이언트들을 찾아서 꺼주는 용도로 세션 매니저를 만드는걸까요?