묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
오버라이딩이 우선권을 갖는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 오버라이딩 된 메서드가 항상 우선권을 가지게 설계한 이유가 무엇인가요?
-
미해결김영한의 실전 자바 - 기본편
abstract클래스의 인스턴스 생성
[질문 내용]안녕하세요! 궁금한게 있어서 질문을 남깁니다. 자식클래스로부터 인스턴스가 생성되면 부모클래스의 인스턴스도 함께 생성되는 것으로 공부하였습니다. 추상 클래스는 실체인 인스턴스가 존재하지 않는다고 하였는데,추상 클래스를 상속 받은 자식 클래스로부터 인스턴스를 생성하면 왜 추상클래스 인스턴스도 함께 생성되는 것인가요?
-
해결됨김영한의 실전 자바 - 기본편
매개변수도 메서드 호출시 인스턴스가 만들어지는게 맞다면
안녕하세요? 자바를 복습하면서 강의를 듣고 있는 학생입니다. 지난 강에서 dataA의 필드 변경을 위해 changeReference라는 메서드를 사용하셨을 때, Data dataX를 파라미터로 사용했었는데 강의에선 dataA와 동일한 참조값을 갖는 dataX라는 인스턴스도 메모리 상에 생성되었습니다. 아직 진도가 나가진 않았지만 기존에 알고 있었던 제 지식으로는 changeReference 메서드 호출시 스택 메모리 상에서 dataX가 생성되고 메소드 종료시 dataX는 소멸되고 힙 메모리 상 변경된 값은 갱신되는 것으로 알고 있는데 이게 맞나요? 이게 맞다면 이번 강의의 createStudent 메서드 파라미터들도 메서드 호출시 스택 메모리 상에 각각 인스턴스(name이나 age 등)가 생성될텐데 그림에는 이 부분이 없어서요. 너무 그림이 산만해질까봐 넣지 않으신 것으로 예상하긴 하는데 제가 아는 바가 틀린 것이 아니라면 이 부분을 넣는 것이 처음 배우는 분들을 위해 도움이 되지 않을까해서 여쭤봅니다.
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔의 싱글톤 관리 방식
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 에3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 김영한님 스프링 강의를 듣다가 궁금한점이 생겼습니다. 컴포넌트 스캔 방식이 아닌 직접(수동) 스프링 빈을 등록하는 방식은 설정 정보 클래스에 @Configuration 어노테이션이 붙어있지 않으면 싱글톤으로 관리가 안 되는 걸로 알고 있습니다. 그래서 @Configuration를 붙이면 그 설정 클래스를 CGLIB 라이브러리가 확장시켜서 싱글톤으로 관리하는 건데 이렇게 하면 설정 클래스 이름에 CGLIB가 붙죠 컴포넌트 스캔 방식을 활용하면 @Configuration을 안 붙여도 컴포넌트 붙은 클래스들을 자동으로 스캔해서 싱글톤으로 관리 해주는걸 확인했습니다. 그래서 @ComponentScan 이 붙은 클래스 또한 Test에서 실제 사용하는 클래스 이름을 꺼내보면 CGLIB 이름이 붙은 클래스일 거라고 예상을 했는데 예상과 다르게 보통 클래스들과 이름이 동일했습니다.제 추측은 @Component 어노테이션이 CGLIB라이브러리와 같은 역할을 하는 걸까? 라는 생각을 했는데 실제 컴포넌트 스캔 방식의 싱글톤 유지 방식은 어떤 걸까요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Person을 입력하니 오류가 뜨는 이유가 무엇인가요?
화면처럼 Person에 오류가 뜹니다
-
미해결김영한의 실전 자바 - 중급 1편
중첩 클래스의 접근에 관하여
안녕하세요 질문이 있어서 글을 남깁니다.중첩 클래스를 외부에서 사용한다면 중첩 클래스에 대한 용도가 맞지 않아 밖으로 빼는 것이 더 적절하다고 하셨는데 A(중첩 클래스를 외부에서 사용되는 클래스)에 Outer클래스를 넣어서 사용해도 되는거 아닐까 라는 생각이 들었는데 어떤 차이가 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
super2main에서 classB()생성자 안에 this(a, 0)말고 super()도 생략되어 있는거 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 상속 강의 마지막 부분에 public class ClassB extends ClassA{ public ClassB(int a){ this(a, 0); // 기본 생성자 생략 가능 System.out.println("ClassB 생성자 a = " + a); } public ClassB(int a, int b){ super(); // 기본 생성자 생략 가능 System.out.println("ClassB 생성자 a = " + a +" b = " + b); } } 여기서 ClassB(int a) 생성자에 super()가 생략되어 있는거 아닌가요? public class Super2Main{ public static void main(String[] args){ ClassB classB = new ClassB(100); } }제가 이해한 바로는new ClassB(100) 호출시 ClassB(int a) 안에 생략된 super()가 호출되고 this(a, 0)이 실행되고 ClassB(int a, int b)안에 super()가 실행되고 나머지 실행되고 ClassB(int a)에 나머지 코드가 실행돼서 "ClassA 생성자"가 두번 호출되어야하는게 아닌가 해서요.
-
해결됨C개발자를 위한 최소한의 C++
new/ delete 질문
포인터 new 시, 주소값과 가리키는 Data 메모리도 동시 할당되나요?포인터 delete 시, 주소값과 가리키는 Data 도 메모리도 해제? 혹은 주소값만 해제되나요?
-
해결됨스프링 핵심 원리 - 기본편
컨테이너 생성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 AllBeanTest 클래스에서 스프링 컨테이너 생성할 때, 구성 정보로 AutoAppConfig.class 외에도 DiscountService.class를 넣어주셨습니다.이렇게 넣어준 이유는 AllBeanTest 클래스는 Test 코드로 AutoAppConfig의 하위폴더에 속하지 않아, 따로 DiscountSerVice.class를 구성 정보로 넣어주신건가요?의존관계 자동 주입 범위를 알고 싶습니다. 구성 정보로 넣은 클래스가 속한 폴더를 포함해 하위 폴더에서 Annotation을 알맞게 기입한 클래스를 빈으로 등록하고 의존관계를 주입시켜주는게 맞을까요? DiscountService 클래스는 자동등록을 통해 빈으로 등록된건가요? 아니면 수동 등록을 통해 빈으로 등록된건가요? 전자라면 왜 @Component가 없는지 후자라면 왜 @Bean이 없는지 알고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
의존관계 주입은 어떤 형식으로도 가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. DiscountService 생성자 주입을 통해 자동 의존관계 주입을 받을 때, Map과 List 형태로 의존관계를 주입 받았는데 이 형태에는 제한이 없나요?어떠한 형태로도 제가 의존관계를 주입받겠다는 annotation만 잘 적어주면, 스프링이 알아서 형식에 맞게 넣어주는건가요? Map<String, DiscountPolicy> 으로 의존관계를 주입받을 때, String은 입력받은 DiscountPolicy의 이름이 되는 것 같은데, 이렇게 입력받은 클래스의 이름을 따로 받을 수 있는 것처럼 클래스의 부가적인 정보를 알 수 있는 형식이 더 있나요?Map<int, DiscountPolicy> 이렇게 하면, 어떤 식으로 채워지나요?
-
미해결스프링 핵심 원리 - 기본편
DI에 관해 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 글의 서포터즈 님의 답변에서, DI는 인터페이스 뿐 아니라 구체클래스를 주입받을 수도 있다라고 하셨는데,만약 구체클래스로 생성자 주입을 한다면 DIP는 어긴 DI가 되는건가요? 그리고 DI가 맞다면 영상에서 설명해주신 의존관계 주입(DI)의 특징인 클라이언트 코드 변경을 하지않아도 된다는 것을 위반하게 되는데도 DI인 것인지 헷갈려서 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
DI에 대해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemoryMemberRepository memoryMemberRepository public MemberServiceImpl(MemoryMemberRepository memoryMemberRepository) { this.memoryMemberRepository = memoryMemberRepository; } public void join(Member member) { memoryMemberRepository.save(member); } public Member findMember(Long memberId) { return memoryMemberRepository.findById(memberId); } }인터페이스가 아닌, 구체적인 클래스를 생성자를 통해 주입한다면 이것은 추상적인 인터페이스가 아니므로 DIP를 위반했지만 의존성을 외부에서 주입했으니 DI라고 할 수 있는 건가요? 아니면 DI가 애초에 인터페이스 같은 추상클래스를 외부 주입하는 건가요? 헷갈려서 질문드립니다!
-
미해결김영한의 실전 자바 - 기본편
한글 깨짐 현상
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.메인클래스 실행 시 사진과 같이 한글이 깨져서 나옵니다.구글링 해서 나온 방법대로 해봐도 안돼서 질문 드립니다.수정할 때마다 인텔리제이 재접속도 해봤습니다.혹시 몰라 수업자료 받은 파일도 실행해봤는데 똑같이 깨져서 나왔습니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 13 질문입니다.
public class _Quiz_13 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("속담 퀴즈입니다. 빈 칸에 알맞은 말을 입력하세요. (주관식)"); System.out.println("-----------------------------------------------------"); try (BufferedReader br = new BufferedReader(new FileReader("saying.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); System.out.print("정답 입력 ==> "); String answer = br.readLine(); String input = sc.next(); if (input.equals(answer)) { System.out.println("정답입니다!!"); } else { System.out.println("틀렸습니다. 정답은 " + answer + "입니다."); } } } catch (IOException e) { throw new RuntimeException(e); } System.out.println("-----------------------------------------------------"); System.out.println("모든 퀴즈가 완료되었습니다."); System.out.println("수고하셨습니다."); } }퀴즈 13 질문입니다.해당 문제 풀어본 결과입니다. 강의에서 알려주신 부분이랑 다른 부분이 있는데혹시 제가 만든 코드가 올바른 코드인지 알려 주실 수 있을까요?그리고 알려주신 정답이랑 비교했을 때 어떤 코드가 보다 차후 실제 업무에서 적합한 코드인지도 알려주셨으면 좋겠습니다.감사합니다 !추가적으로 강의 내에서는 try-catch 구문 안에 모든 문장 ( 속담 퀴즈입니다 ~ 수고하셨습니다) 을 넣어주셨는데 혹시 안에 있는 거랑 밖에 있는 게 어떤 차이가 있나요?
-
미해결김영한의 실전 자바 - 중급 1편
자바 중급2 강의
영한님..자바 중급2강의 조금만 더빠르게 출시좀 안되실까요ㅠㅠ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈13 질문입니다.
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("속담 퀴즈입니다. 빈 칸에 알맞은 말을 입력하시오. (주관식)"); System.out.println("-----------------------------------------------------"); try (BufferedReader br = new BufferedReader(new FileReader("saying.txt"))) { String line; while ((line = br.readLine()) != null) { String answer = br.readLine(); String input = sc.next(); System.out.println(line); System.out.print("정답 입력 ==> "); if (input.equals(answer)) { System.out.println("정답입니다!!!"); } else { System.out.println("틀렸습니다. 정답은 " + answer); } } } catch (IOException e) { throw new RuntimeException(e); } System.out.println("-----------------------------------------------------"); System.out.println("모든 퀴즈가 완료되었습니다."); System.out.println("수고하셨습니다."); } }퀴즈 13 질문입니다. 해당 문제 풀어본 결과입니다. 강의에서 알려주신 부분이랑 다른 부분이 있는데혹시 제가 만든 코드가 올바른 코드인지 알려 주실 수 있을까요?그리고 알려주신 정답이랑 비교했을 때 어떤 코드가 보다 차후 실제 업무에서 적합한 코드인지도 알려주셨으면 좋겠습니다.감사합니다 !
-
미해결김영한의 실전 자바 - 기본편
this()에 관하여 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이 부분에서 this()는 생성자 내부에서 자신의 생성자를 호출할 수 있다. this는 인스턴스 자신의 참조값을 가르킨다고 했는데 위의 생성자가 메인메소드에서 호출될때랑 밑에 생성자가 호출될때는 생성되는 객체가 다르고 결국 참조값도 다르잖아요? 그러면 여기서 궁금한게생성자 내부에서 자신의 생성자를 호출하는게 밑에 매개변수로 3개를 받는 생성자를 말하는건가요?자신의 참조값이라는게 밑에 생성자가 호출되면서 생성되는 객체의 참조값을 말하는건가요?
-
미해결김영한의 실전 자바 - 중급 1편
동일성과 동등성
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세안녕하세요 영한님 이 강의만 기다렸습니다. ^^ 다름이 아니라 동일성과 동등성 강의를 듣고 있는데기본적으로 equals는public boolean equals(Object obj) { return (this == obj); }따로 오버라이딩 하지 않는 한기본적으로 == 로 비교를 합니다.그렇다면 기본적으로 객체간에 비교를 할때equals 로 비교로 하는 습관을 기르는게 좋은걸까요 ? 왜 이렇게 생각하냐면 == 로 비교할지 equals 로 비교할지생각하면 따로 오버라이딩을 하지 않는한 어차피 equals 로 비교해도 == 로 비교로 해주고만약에 오버라이딩을 했다면 그에 맞는 객체간에 equals로 비교를 하기 때문에 이렇게 생각이드는데제가 놓치고 있는 부분이 있는걸까요 ?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
수업질문입니다
제가 자바를 공부하던 중 챕터7 Class강의 부분에서 자바의 특징으로 높은 '재사용성'이라고 배웠습니다. 제가 이해를 잘못하고 있는 것인지는 잘 모르겠지만, 다른 언어에서도 재사용성이 높지 않나요?
-
해결됨김영한의 실전 자바 - 기본편
다형성 문제풀이 2번 다른 풀이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하십니까! 두번째 정주행을 통해서 다형성에 대해서 이해하고 문제풀이까지 완료했습니다. 처음 봤을땐 아무것도 손댈수 없었지만 다시 보니 막힌 혈이 뚫리는 기분이였습니다.김영한 강사님께서 설명해주신 풀이로 푸는것은 이해했지만 다른 문제 풀이 방법을 보고 참고할까합니다! 직접 해보고 검색해보며 찾아보려했으나 나오지않아 질문 올립니다!