묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 영한님. 질문이 있습니다.
안녕하세요좋은강의 항상 감사드립니다. 질문이 있습니다.저는 현재 작은회사에서 Java Spring Boot로 Back-End개발일을 하고있습니다.저같은 경우는 규모가 작아서인지 설계를 제대로하지 않은채 빠르게 개발하는것에만 집중한다는 느낌을 많이 받습니다.강의중에 도메인 협력관계, 클래스 다이어그램, 객체 다이어그램등을 설계하시고 구현하시는데, 영한님의 회사에서는 어느정도 선까지 설계를 해놓고 구현하는지 궁금합니다.또, 영한님께서 설계하실때 사용하시는 툴도 어떤것을 사용하는지 궁금합니다.항상 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
접근 제어자 관련 질문입니다.
제가 아직 자바 기본 개념이 많이 미숙한가봅니다... 접근제어자에 관한 질문이 좀 있는데요. 1. OrderServiceImpl 등에서 MemberRepository와 DiscountPolicy가 private final로 선언되는 이유가 궁금하고, 2. AppConfig 리팩토링에서 왜 memberRepository()는 접근 제어자가 private인 반면, discountPolicy()는 public으로 하셨는지 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
ObjectProvider의 장점이 이해가 안됩니다
안녕하세요 선생님 이해가 안되는 부분이 있어 질문드립니다! "ApplicationContext에 비해 ObjectProvider는 기능이 단순하므로 단위테스트를 만들거나 mock 코드를 만들기는 훨씬 쉬워진다." 라는 말이 이해가 안됩니다.. 스프링 없이 순수 자바 코드만으로 단위 테스트할 경우, 테스트할 코드가 ApplicationContext에 의존하던, ObjectProvider에 의존하던 DL 기능을 사용할 수 없는 건 마찬가지 아닌가요? DL 기능을 구현한다고 하더라도 ApplicationContext이던 ObjectProvider이던 상관없지 않나요? 그래서 ApplicationContext이 아닌 ObjectProvider를 써야하는 이유를 잘 모르겠습니다!
-
해결됨스프링 핵심 원리 - 기본편
생성자 주입의 경우엔 @Autowired(required=false)를 쓸 수 없는건가요?
안녕하세요 최고의 강의 항상 잘 듣고 있습니다 : ) 궁금한게 있어 질문드립니다 @Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨 라고 강의에서 언급하셨는데, 생성자 같은 경우엔 @Autowired(required=false)가 붙어도 호출이 되고 (required=false)가 적용되지 않는 것 같습니다 실제로 빈으로 등록되지 않은 것을 필드로 두고 @Autowired(required=false)를 적용해보니 UnsatisfiedDependencyException이 터졌습니다. 빈 컨테이너의 의존성 주입 단계에, setter가 없더라도 컨테이너가 setter를 만들어서 setter를 통해 주입하는건가요? 다만 생성자 주입같은 경우엔 빈을 생성하는 과정에서 생성자가 호출되어 싱글톤 패턴으로 빈을 주입하게 되고, setter를 통한 빈 주입 단계에는 주입이 되지 않는건가요? 언제나 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
같은 빈이 2개이상 조회될 경우 궁금한점이 생겼습니다 .!
다시한번 복습하면서 궁금한점이 하나 생겼습니다 .. ! 의존관계 같은 빈이 2개 이상 조회될 경우 우선순위를 정해주는 부분에서 위 코드 대신 롬복을 같이 쓸 경우에 이런 문법은 적용되지 않는건가요 ???
-
해결됨스프링 핵심 원리 - 기본편
@SpringBootTest에서 어떻게 @Autowired가 작동하는지 궁금합니다
안녕하세요~ 유익한 강의 잘 듣고 있습니다! 이해가 안가는 부분이 있어 질문드립니다. 24분 40초 쯤에 보면 @SpringBootTest 클래스에서 @Autowired를 사용하고 있습니다. 이게 어떻게 동작하는지 모르겠습니다. 1. 일전에, ComponetScan의 범위는 AutoAppConfig가 포함된 패키지 이하라고 하셨습니다. 이에 따르면 test, resources는 컴포넌트 스캔의 대상이 아닙니다 2. 의존관계 주입 대상은 컨테이너에 빈이라고 하셨습니다. 그렇다면 @SpringBootTest 클래스(CoreApplicationTest)는 빈 등록 대상이 아니므로 Autowired가 불가능한 것 아닌가요?? 어떤 과정을 거쳐 @SpringBootTest 클래스에 빈이 주입되는지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
강의와 별개로 궁금한 점이 있어 질문드립니다.
안녕하세요. 궁금한 점이 있어 질문을 드리는데 강의의 내용이 아니라 답변을 안달아주셔서 됩니다. Controller에서 rest api 호출 시 함수 인자 값으로 HttpServletRequest를 받고 있습니다. 공통적으로 AOP or Interceptor에서 HttpServletRequest의 parameter 값을 변경 및 추가를 하고 싶은데 방법이 있을지 궁금합니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
이전 강의부터 궁금했던것 질문입니다.
뒤로가면 나오겠지 하고 계속넘어갔는데 나오지 않아서 추가 질문합니다. 설계와 구현에 나뉘어 인터페이스 / 구현체인 클래스로 나누고 실제 클라이언트 코드에서 코드 수정 없이 AppConfig파일만 바꾸면 코드의 교체를 할 수 있도록 예제가 구성이 되었는데요. 예를들어서 자동차 라는 인터페이스가 있고 전기차 , 석유차 라는 클래스가 있다고 했을 경우 스프링 코드를 사용하지 않고 자바로 했을때 자동차 car = new 석유차(); -> 자동차 car = new 전기차(); 이렇게 하면 코드가 바뀌게 되잖아요? 근데 타입이 자식클래스가 아닌 부모 인터페이스 일 경우 자동차 (부모) 인터페이스에 공통으로 있는 기능을 사용 할 수 있지만 전기차(자식) 클래스에만 있는 기능은 "car"를 통해 사용하지 못하는 것 아닌가요? 그럼에도 불구하고 자료형을 부모타입으로 하는 이유가 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
NoSuchBeanDefinitionException 질문드립니다.
안녕하세요 강사님! MemberService memberService = ac.getBean(MemberService.class); 에서 다음과 같은 오류가 발생합니다. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.service.MemberService' available 그래서 @Component와 @Autowired 를 잘못 넣었나 해서 찾아봤는데요. 다음과 같이 작성하였고, 어떻게 해결해야 할지 조언 부탁드려도 될까요?
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
forEach() 문 내부에서 delete로 특정 인덱스를 삭제했을 경우
안녕하세요 선생님. 질문이 있어 이렇게 올리게 됐습니다. var list = [1,2,3]; var fn = function(el, index, all){ if(index === 0){ delete list[2]; }; console.log(el); }; list.forEach(fn); 위 코드에서 delete list[2]를 사용하고 있습니다. 제가 기억하는바론 splice로 배열에서 엘리먼트 삭제시 완전히 삭제되는반면, delete로 엘리먼트 삭제시 값만 지우고 undefined가 그 자리를 채우는 것으로 기억합니다. 따라서 delete list[2]가 시행되면 value = [1, 2, undefined]가 되고, forEach 구문으로 해당 배열을 나열시 1 2 undefined 가 결과로 출력돼야하는 것 아닌가요??! console.log(value[2]); 를 해보면 undefined가 출력되는데 forEach 문으로 돌렸을 땐 왜 undefined가 출력되지 않는지 궁금합니다! 훌륭한 강의 너무 잘 듣고 있습니다. 감사합니다 :)
-
미해결스프링 핵심 원리 - 기본편
취준생의 고민입니다..
우선 강의 정말 정말 잘 들었어요 ! 개발자로 지내는 동안 계속 뵙고싶어요!! 제가 드릴 질문은 강의 자체에 대한 질문이 아니여서 죄송합니다 ㅠㅠ 제가 취준생으로써 고민이 있는데, 영한쌤의 조언이 듣고 싶습니다.. 제가 국비수료1달 남은 시점에서 취직을 하려하는데, 학원수업이 힘들진 않았으나, 코딩테스트 1단계도 어렵더군요.. 하여 SI 회사가서 실무경력을 먼저 쌓으려고 합니다. 그런데 주위에서 지금 SI를 가면 안좋을 회사일 확률이 높고, 처음 일을 잘못배운다면 노답이라고.. 저에게 겁을 줍니다.. 처음 일을 잘못배우면 정말 답이 없는 수준이 되는 건가요..? (노답이라는 단어에 전 너무 충격을 받았습니다..ㅠㅠ) 긴 글 읽어주셔서 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
@Configuration 질문 드립니다!
안녕하세요 좋은강의 내주셔서 항상 감사드리고 있습니다. 이번강의에서 ComponentFilterAppConfig 클래스에서 @Configuration 어노테이션이 선언되어 있는데요 @ComponentScan을 사용시에도 해당클래스에 @Configuration을 꼭 사용해야 하는건가요 ? 이런의문이 생긴이유는 저번강의들에서 @Configuration을 사용하면 기대되는 효과는 Bean에 생성된 클래스내에서 사용된 객체들의 싱글톤을 보장해주는 것이라고 이해했는데 테스트 해보니 @ComponentScan사용시에는 Bean내에서 사용된 객체들을 Autowired를 사용하여 주입해줌으로써 싱글톤이 보장되는것 같아서 입니다. 질문은 여기까지 입니다. 바쁘신 와중에 좋은강의 내주셔서 항상 감사드립니다! 좋은하루 보내세요
-
미해결스프링 핵심 원리 - 기본편
AppConfig뒤에 .class붙이는 의미는 먼가요?ㅇ
검색해도 잘 안나오네요
-
미해결스프링 핵심 원리 - 기본편
사용자 정의 Qualifer 작성시 질문입니다!
안녕하세요, 강의를 듣다가 궁굼한 점이 생겨서 질문 드려요. 이 강의 1분 40초 쯤에서, MainDiscountPolicy를 만든 뒤 어노테이션들을 추가하는 부분에서 궁굼증이 생겼습니다. @Qualifier("mainDiscountPolicy")를 써주면 @Qualifier파일 안에 있는 @Target부터 @Documented 가 포함되어 있을 거 같다고 생각했습니다. 강의 1분 40초의 7줄부터 10줄까지를 쓰는 이유가 있나요?
-
미해결스프링 핵심 원리 - 기본편
외부 라이브러리 개념에 대한 질문 드립니다.
안녕하세요 김영한님 항상 강의 잘듣고 있습니다! 다름이 아니라 강의 중에 코드를 고칠 수 없는 외부 라이브러리라는 개념이 자주 등장하는데요. 해당 개념에 대해서 잘 알지 못해서 이해가 힘든 부분이 있는데 혹시 외부 라이브러리라는 개념을 예시를 통해서 설명해 주실 수 있을까요?? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
실제 프로젝트를 어떻게 만들어가야할지 고민입니다
훌륭한 강의 정말 잘들었습니다! 에어비엔비랑 비슷한 프로젝트를 진행하려는데, 현재 배운 강의만으로는 스프링으로 웹앱 배포하기에는 많이 부족할거같다는 생각이 듭니다ㅠㅠ 아직 프론트엔드는 html css 바닐라js로 페이지 만들어본것밖에 없고, 이런 프론트엔드(!)와 DB를 스프링과 어떻게 잘 연동해서 사용할지를 모르겠는데.. 혹시 앞으로 공부할 방향을 어떻게 잡아야 할지 알려주실수 있으신가요..? 당장 만들어보고 싶지만 이후에 나올 강의들을 다 들어보고 시작하는것이 나을까요?
-
해결됨스프링 핵심 원리 - 기본편
AppConfig가 왜 실행되는지 궁금합니다.
안녕하세요 선생님 AppConfig.class관련하여 질문드리려고 합니다. 해당 영상에서 7:12부분에 call AppConfig.memberRepository call AppConfig.memberService callAppConfig.orderService 이 세라인이 호출되는 것을 볼 수 있습니다. 허나, 7:12까지의 상황은 AutoAppConfig.class에서 다른 클래스의 @Configuration이 선언된 모든 @Bean객체를 만들지 않는 것으로 알고 있습니다. @Configuration@ComponentScan( excludeFilters = @ComponentScan.Filter (type = FilterType.ANNOTATION, classes = Configuration.class))public class AutoAppConfig {} 따라서, AppConfig.class도 @Configuration이 정의 되어 있으므로 Bean객체를 만들지 않는 것으로 이해했습니다. 그런데 보시는 바와 같이 call AppConfig.memberRepository call AppConfig.memberService callAppConfig.orderService 이 세라인이 호출되는데... 왜 호출되는건지... 궁금합니다... 답변주시면 정말 감사드리겠습니다. 추가로, 선생님 강의 정말 감사드립니다. 요즘 정말 개발에 흥미를 느끼고 하루하루 알아가는 즐거움에 살고 있습니다. 선생님 덕에 개발에 흥미를 붙일 수 있어서, 정말 감사한 마음 뿐입니다. 이렇게 좋은 강의를 널리 알려주셔서 정말 감사드립니다. 앞으로도 좋은 강의 많이 부탁드리겠습니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
ApplicationContext관련 질문드립니다.
MemberApp에서는 ApplicationContext타입에 AnnotationConfigApplicationContext(AppConfig.class)를 할당해주었는데 왜 테스트 할 때는 AnnotationConfigApplicationContext타입에 할당해주는것인가요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
myLogger Provider 질문
안녕하세요 강의 듣다가 이해가 확실히 안가는 부분이 있어서 질문 드립니다. 7분 10초 부분인데요 ObjectProvider가 원래는 프로토타입으로 생성해서 주니 요청할 때마다 다른 객체를 받아야하지만 Scope("request")로 설정해준 MyLogger의 경우에는 특이하게 같은 request내에서는 같은 객체가 반환 된다는 말씀이신가요?
-
미해결스프링 핵심 원리 - 기본편
질문 드립니다.
안녕하세요. 강의를 잘 듣고 있는 학생입니다. 아래 코드에서 getBeanDefinition 부분이 계속 에러로 표시되는데요. 함수자동완성에도 getBeanDefinitionNames는 나오는데 getBeanDefinition 은 안나오더라고요. 스프링 프로젝트 생성할 때도 강의 따라 했는데...버전에 문제가 있을 수 있나요? @Test@DisplayName("애플리케이션 빈 출력하기")void findApplicationBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); //Role ROLE_APPLICATION: 직접 등록한 애플리케이션 빈 //Role ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈 if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name=" + beanDefinitionName + " object=" + bean); } }}