묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
타입과 참조값
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님 다형성 참조를 보다가 질문합니다Parent poly = new Child();부모 타입의 변수는 부모의 데이터를 사용 할 수 있으므로 자식 타입을 대입 할 수 있고 Child poly = new Parent();자식 타입의 변수는 자식 데이터를 사용 할 수 있지만 부모 타입이 범위가 더 커 자식이 담을 수 없는게 맞을까요?
-
미해결스프링 핵심 원리 - 기본편
connect()에 url이 null이 안나오는이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 이 강의와 이전강의를 돌려가면서보는중인데도 햇갈리는게있어서 제가 생각하는게 맞는지 궁금해서 질문드립니다.1. 바로이전강의내용에서는 connect() 와 call()를 afterPropertiesSet()에 넣지않은상태에서 코드를 실행하면 url이 null이 뜨는상태였습니다. 그 이유가 그러면 connect() 와 call()함수가 빈 라이프사이클인 "스프링 빈 생성" 중 NetworkClient 생성자안에 있어서 url을 set하기 전 단계에 실행되서 null이 뜨는거고, null이 안뜨고 url이 제대로 나오는 상황은 빈이 완벽하게 생성이 된 이후에 connect() call()이 실행되서 인가요? 제 질문이 잘 전달이된건지 잘 모르겠네요. 빈생성이 되기 전에 connect한거랑 빈생성이완벽하게된후(url도 set된상황) 그 차이인가요?2. 그리고 바로전강의에서 상태출력을 빈생성과정에 출력하신거라 null이 나오는거지 결국 setUrl은 결국 실행되서 url의 최후 상태는 null이 아니지않나요? 그냥 라이프사이클에 중점을두시는 강의인거맞나요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
오타 확인 부탁드립니다.
while문 -> for문 MoveRateEx -> MovieRateEx 항상 좋은 강의 감사드립니다.건강 유의하시고 행복한 하루 보내셨으면 좋겠습니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션 7. 조회한 Bean 모두 필요 Map, List
public class AllBeanTest { @Test void findAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(DiscountPolicy.class); } static class DiscountPolicy { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired public DiscountPolicy(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } }테스트를 실행하면policyMap = {}policies = []출력이 됩니다.실행되면서new AnnotationConfigApplicationContext(DiscountPolicy.class);의 스프링 컨테이너가 DiscountPolicy를 빈으로 등록하는데,DiscountPolicy는 @Autowired로 생성자 주입을 받습니다. 그런데 스프링 컨테이너의 스프링 빈에는Map<String, DiscountPolicy> policyMapList<DiscountPolicy> policiespolicyMap와 policies는 생성된 적이 없어서 등록된 빈이 없을테고, final이 붙은 필드에는 초기화가 되지않아서 오류가 나야하지 않나요?어떻게policyMap = {}policies = []처럼 객체가 들어가 있을 수가 있나요??
-
미해결김영한의 실전 자바 - 중급 2편
참조형 return 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) y3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) y[질문 내용] MyLinkedListV2 클래스의 remove 함수에서Object removedItem = removeNode.item; ... removeNode.item = null; return removedItem;위와 같은 방식으로 item을 반환하기 전에 null로 초기화를 해주고 있습니다. removedItem에 참조형인 removeNode.item을 할당하면 참조값이 복사되어 값이 null인 참조값을 반환할 것이라고 생각했는데, 실제 코드를 실행시켜보니 삭제된 노드의 item 값이 정상적으로 반환되는 것을 확인했습니다. Object removedItem = removeNode.item을 실행하면 참조값이 아니라 데이터가 들어가게 되는 건가요?
-
미해결김영한의 실전 자바 - 기본편
오버라이딩 질문
안녕하세요.아래 작성해주신 메서드 오버라이딩 관련한 설명 확인했습니다. 한 가지 궁금한 건 답변에서처럼 실제 런타임시에는 변수의 타입이 아닌 인스턴스의 타입을 우선적으로 본다고 한다면, method 오버라이딩은 자식 타입의 method(오버라이딩된)을 보는 게 맞는데 필드값은요 ? 위에 작성해주신 내용이 필드에는 해당이 안 되고 메서드에만 해당이 되는 내용인가요 ?
-
해결됨김영한의 실전 자바 - 기본편
섹션 12. 다형성과 설계 예제 관련 질문
안녕하세요.<다형성과 설계-문제와 풀이> 강의를 듣는 중에 의문이 생겨 문의드립니다.수업 내용에 따라 Sender 클래스는 인터페이스로 작성된 상태입니다.사진과 같이 "Sender[] senders = "로 배열을 생성하여도, 배열 안의 값들은 Sender형이 아닌 각각 EmailSender, SmsSender, FaceBookSender형으로 생성이 되는 건가요?만약 Sender형으로 인스턴스가 생성이 된다면, 인터페이스는 인스턴스를 생성할 수 없기 때문에 NullPointerException이 발생해야 할 것 같아서요.답변 부탁드립니다. 감사합니다.
-
미해결김영한의 실전 자바 - 기본편
인터페이스-다중 구현 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인터페이스-다중구현 강의 자료 마지막 부분에b.methodCommon() 호출하면 먼저 x001 Child 인스턴스를 찾는다. 라는 부분이 있습니다. x001이 아니라 혹시 x002가 아닌지요? 위에 있는 그림하고 맞지 않는 것 같아서요.
-
해결됨스프링 핵심 원리 - 기본편
섹션 6. 컴포넌트 스캔
1,예제를 유지하기 위해서 AutoAppConfig 클래스에 @ComponentScan을 입력하시고,excludeFilters를 이용해서 @Configuration이 붙은 클래스들은 컴포넌트 스캔대상에서 제외하셨습니다!그런데 AutoAppConfig에도 @Configuration이 붙어있는데 ApplicationConfig에 구성 정보로 AutoAppConfig를 넘기면 AutoAppConfig에도 @Configuration이 붙어있는데 @ComponentScan이 동작을 어떻게 하는지 조금 헷갈립니다ㅠㅠ 2,컴포넌트 스캔을 사용하려면 먼저 @ComponentScan 을 설정 정보에 붙여주면 된다.excludeFilters 를 이용해서 설정정보는 컴포넌트 스캔 대상에서 제외했다.여기서 설정정보라는게 뭘 의미하는 건가요??
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 메서드 사용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제네릭을 사용할 때 궁금한 점이 생겨서 질문드립니다.Integer i = 10;Object object = GenericMethod.objMethod(i);// 타입 인자(Type Argument) 명시적 전달System.out.println("명시적 타입 인자 전달");Integer result = GenericMethod.<Integer>genericMethod(i); 현재는 Integer i = 10;으로 래퍼클래스를 사용하고 있는데,만약 int i = 10;과 같이 기본형을 전달하면 '오토 박싱'이 되어서 Integer객체로 변환되어서 메서드에 전달되는 걸로 이해하면 될까요?
-
해결됨김영한의 실전 자바 - 중급 2편
자바가 제공하는 Set 질문
안녕하세요 항상 최고의 강의를 제공해주셔서 감사드립니다.강의를 듣던 도중 질문이 생겨 글을 남깁니다. 섹션 8번 컬렉션 프레임워크 강의의 자바가 제공하는 Set은 출력 하였을 경우영한님과 함께 만들었던 MyHashSet과 달리 비어있는 인덱스는 출력이 되지 않던데 이 또한 최적화로인해 출력이 안되는 것인지 궁금합니다. 만약 그렇다고 하면 initialCapacity의 값을 입력하거나, 데이터의 양을 배열의 크기의 75% 이상으로 늘렸을 경우 rehashing 되는지 육안으로 확인할 방법이 없는지 또한 궁금합니다.(rehashing 후 커진 배열에 다시 맞추어 데이터의 순서가 변경되는 것은 확인하였는데 단순히 배열의 크기가 커진 것을 확인할 방법이 궁금합니다.)
-
미해결Python 입문자를 위한 강의
jupyer notebook 실행하고 new를 클릭하였으나 pyhon3이 안보입니다
jupyer notebook 실행하고 new를 클릭하였으나 pyhon3이 안보입니다
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
이진 탐색 문제 질문드립니다
이진 탐색 문제에서, 자바의 TreeSet이 레드-블랙 트리 알고리즘으로 구현된걸로 알고있는데, 그냥 TreeSet을 생성해서 값을 넣고 contains로 검색하면 되는거랑 선생님이 직접 코드로 푼거랑 뭐가 다른걸까요??
-
미해결김영한의 실전 자바 - 기본편
메서드 위치 관련 질문
안녕하세요.메서드는 공통된 기능이기 때문에 인스턴스 변수처럼 내부에 가지고 있지는 않고 메서드 영역에 있는 걸 필요할 때(호출할 때) 가져와서 쓴다라고 하셨는데, 그럼 호출이 될 때 해당 메서드가 그대로 객체 내부로 복사가 되는건가요 ? 작성한 코드들을 보면 메서드 내부에서 해당 객체의 인스턴스 변수들을 활용하는 경우가 대부분일텐데 이럴 떄 메서드가 메서드 영역의 클래스 영역에만 위치한다면 메서드 내부의 코드에서 작성된 인스턴스 변수들은 어떻게 알지 ? 라는 의문이 들어서요.답변 부탁드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
5. 반복문 마지막 문제 진짜 피라미드 해봤는데 맞을까요!!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.5장 반복문 마지막 문제에서 반쪽 피라미드를 보고 완성된 것도 해보고싶어서 도전해봤습니다. 일단 피라미드가 나오긴 했는데 이게 정답일지 궁금합니다!!!
-
미해결김영한의 실전 자바 - 중급 1편
내부 클래스 관련 질문이있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.강사님 내부 클래스 관련해서 질문이있습니다.내부 클래스가 외부 클래스에 대한 숨은 외부 참조를 갖기 때문에 가비지 컬렉션이 제대로 이루어 지지 않아 메모리 누수가 발생할 수 있다.제가 구글링을 해보니 내부 클래스의 단점으로 위와같은 내용이있던데 내부 클래스는 메모리 누수를 발생할 수 있어서내부 클래스에서 외부 필드를 참조하지않는다면 클래스앞에 static을 붙여 정적 중첩 클래스를 사용하는걸 권장한다던데 이 내용이 사실인지 궁금합니다..!
-
미해결스프링 핵심 원리 - 기본편
XML작성 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.XML 이런 오류가 나옵니다 제가 오타가있는거같아서 자료를 복사 붙여넣기 했는데도 이런 오류가 나옵니다
-
해결됨스프링 핵심 원리 - 기본편
섹션 4. BeanDefinition
(1)스프링 컨테이너는 BeanDefinition만 알면 된다.(2)BeanDefinition을 빈 설정 메타정보라 한다.(3)@Bean, <Bean> 당 하나씩 메타정보가 생성된다.(4)이 메타정보를 기반으로 스프링 빈을 생성한다. 교재에 써있는 내용입니다!헷갈리는 부분이 있어서 질문드립니다ㅠㅠ 첫 번째 질문: 우선 (2)에서 BeanDefinition을 빈 설정 메타정보라고 되어있는데, 빈 설정 메타정보가 모든 메타정보를 담는 하나의 바구니고 @Bean 으로 생성된 메타정보들이 이곳에 담기는 건가요?아니면, (3)에서 나온 메타정보가 (2)에서 나와있는 빈 설정 메타정보랑 동치인 건가요? 두 번째 질문: 스프링 컨테이너는 BeanDefinition(추상화)을(를) 알고있다고 하셨는데, reader로 구성 설정 정보를 읽고 BeanDefinition을 생성하는 게 BeanDefinition을 상속받은 각각의 객체가 생성되는 건가요? 세 번째 질문: @Bean의 갯수만큼 BeanDefinition이 생성되는 건지 궁금합니다...!
-
해결됨김영한의 실전 자바 - 중급 2편
다운캐스팅은 런타임오류??
Object를 활용시에 다운캐스팅 과정이 필요했는데요. (String) Object 10 이것은 컴파일오류로 인식하지 않는 이유가 약간 이해가 가지 않습니다. 어떤 객체든지 Object가 최상위 부모니까 String으로 갈 수 있는데 가보니까 10이어서 예외가 터지는 시나리오 같은데, 컴파일러는 이를 미리 판단할 정도는 되지 않나요?? 컴파일러는 "Object에서 String? -> ok 가능" 이정도만 판단해주는건가요?
-
해결됨스프링 핵심 원리 - 기본편
static factory method로 빈 생성
스프링으로 전환하기 1:07 부터의 강의 내용에 추가로 공부하다가 생긴 의문점에 관한 내용입니다.스프링공식문서위의 공식문서에서는 빈을 생성하는 또다른 방법으로 정적 팩터리 메서드가 있다고 했습니다.public class StaticFactoryMethodBean { private String value; private StaticFactoryMethodBean(String value) { this.value = value; } public static StaticFactoryMethodBean createInstance(String value) { return new StaticFactoryMethodBean(value); } }이런 클래스가 있다고 가정하면, 두가지 종류의 빈을 만들 수 있습니다.@Configuration public class AppConfig { @Bean public StaticFactoryMethodBean factoryMethodBean() { return StaticFactoryMethodBean.createInstance("value"); } @Bean public static StaticFactoryMethodBean staticFactoryMethodBean() { return StaticFactoryMethodBean.createInstance("value"); } }여기서 생기는 궁금점이 있어서 질문드립니다.이 static 빈은 @Configuration 에 영향을 받지 않고, 프록시를 생성하지 않아 여러 기능들을 쓸 수 없다고 생각이 들었습니다.그럼에도 이걸 쓰는 경우가 있을까 해서 질문드립니다. 제 생각엔 외부 라이브러리나 이런거를 쓸 때, 쓸 거 같기도 하단 생각이 들었습니다. 혹시 실무에서도 쓰는 경우가 종종 있었는지 여쭈어봅니다.p.s 실제 두개 다 생성이 되는지에 대한 검증 테스트 완료(간단하게 main테스트로 진행)public class StaticFactoryMethodBeanMain { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); StaticFactoryMethodBean factoryMethodBean = context.getBean("factoryMethodBean", StaticFactoryMethodBean.class); System.out.println(factoryMethodBean); StaticFactoryMethodBean staticFactoryMethodBean = context.getBean("staticFactoryMethodBean", StaticFactoryMethodBean.class); System.out.println(staticFactoryMethodBean); } }