묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
프로세스와 스레드 관련해서 질문 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 해당 강의를 듣고 질문이 있는데요,우리가 일반적으로 자바/스프링부트 프로젝트를 맥북으로 인텔리제이로 실행한다면 어떻게 프로세스가 이루어지는지 알 수 있을까요? 제가 생각해본건 아래와 같습니다. 프로세스 1자바(강의 내용중에, 자바를 실행하면 자바도 하나의 프로세스라고 하셔서 추가했습니다) 프로세스 2JVM(그리고 이 JVM이 가상 컴퓨터이니까 그 컴퓨터의 프로세스 내부에서 스프링부트가 실행된다고 생각하고 있습니다!) 프로세스 3인텔리제이 이렇게 생각하고 있는 게 맞는 내용일까요??
-
해결됨김영한의 실전 자바 - 중급 2편
배열의 가장 앞쪽에 요소를 추가할때 의문점
배열의 가장 앞쪽에 요소를 추가할때, 기존의 요소를 전부 한 칸씩 오른쪽으로 옮기고 나서 확보된 빈 공간에 추가해야한다는건 이해했습니다! 그런데 곰곰히 생각해봤는데 그냥 배열자체의 시작 주소값을 한칸 앞으로 당기고 거기다가 새로운 요소를 추가하면 빅오 표기법상 O(1)? O(2)? 가 되는거 아닌가요? 예를들면 int[]의 기존 주소값이 x100이었다면 x96으로 옮기고 새로운 요소를 거기다 추가해주는거죠 주소값 자체를 명시적으로 할당하는 문법이 있는지 없는지는 모르겠지만 어쨋든 내부적으로는 그렇게 작동하도록 언어를 구현할수도 있는거아닌가요?? 그런데 당연히 이렇게는 안되니까 안하는것일텐데, 몇시간동안 생각해봐도 안되는 이유가 안떠올라서 질문드립니다 ㅠㅠ
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
VM 생성 시, Size 관련 문의 (quotas)
강의에서 설명해주신 대로 Spot quotas 리밋을 16으로 올리려고 했으나 계속 거부 메시지가 옵니다. 현재 제가 가진 subscription으로는 Spot VM을 16까지 늘릴 수 없다고 합니다. spot의 다른 지역 Korea, Japan, East US 등 다 해봤는데 똑같습니다. 이 때문에 강의에서 보여주신 Standard_D16as_v5 - 16 vCPUs, 64 GiB memory $0.08480/hour 옵션 대신, 훨씬 비용이 높은 Standard_D16as_v5 - 16 vCPUs, 64 GiB memory US$619.04/month 옵션밖에 선택할 수 없습니다. 어떻게 강의와 동일한 VM 환경으로 실습을 진행할 수 있을까요? 일단 Azure의 서포트에 아래와 같은 메시지로 문의를 남겼으나 답변이 매우 늦는 상태입니다:I wanted to increase my spot limit to 16 and then want to create a VM using the 'Standard_D16as_v5 - 16 vCPUs, 64 GiB memory $0.08480/hour' option. However, since this is my first time using it, I'm only seeing the option labeled 'Standard_D16as_v5 - 16 vCPUs, 64 GiB memory US$619.04/month'. Could you please help me resolve this issue? Azure의 Help + support 섹션에서 아래와 같은 응답이 계속 표시됩니다:QMS Update - Status: ResourceType: crpCores { Quota Bucket: TotalLowPriorityCores Status Description: Due to very high rates of Spot consumption, Microsoft is unable to approve additional quota at this time State: SpotVMNotAllowedForPayGCustomer Current Quota: 3 New Quota: 16 } Properties: [location, koreacentral]이 문제를 해결할 방법이나 대체 방안이 있으면 알려주시면 감사하겠습니다. 스크린샷 첨부하였습니다:
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
계산과 형변환 질문 있습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]질문 1int result = (int) 10.0 + 1;에서 (int)10.0 이 먼저 형변환 된채로 연산을 하는건()소괄호의 연산자 우선순위가 1순위인것과 관련 있는건가요?질문 2double intValue = 2 / 1 ;double doubleValue = 2.0 / 1 ;intValue 의 2가 int형인 이유가 이전 강의에서 숫자 리터럴은 int형으로 판단한다고 말씀해주셔서 2가 int형으로 연산되었다고 예상했는데doubleValue 의 2.0은 같은 리터럴인데 왜 double로 판단 후 연산이 진행되는지 궁금합니다!
-
해결됨김영한의 실전 자바 - 기본편
더 연습해보고 싶습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.접근제어자 문제까지 풀었습니다. 잘 풀리는 문제들도 있고 부분부분 막히는 문제들도 있는데, 혹시 이런 비슷한 예제들을 풀어볼 수 있는 사이트나 문제모음은 없을까요? 요구사항을 보고 어떻게 코드를 구성하면 좋을지 더 고민해보고 싶습니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
interrupt() 호출 후 출력 결과 질문있습니다. 확인 부탁드립니다!!!!
처음 예제 작성했을 때 출력 결과가 이렇게 나왔었는데, (강의 5분 10초, 10분 50초 참고)work] 작업 중 work] 작업 중 main] 작업 중단 지시 thread.interrupt() work] work 스레드 인터럽트 상태2 = false main] work 스레드 인터럽트 상태1 = true work] interrupt message=sleep interrupted work] state=RUNNABLE work] 자원 정리 work] 작업 종료이 상황에서는 main스레드에서 interrupt() 후 바로 work 스레드가 예외 처리해서 work 스레드의 인터럽트 플래그가 false 로 됐다는 걸 확인할 수 있습니다. 하지만 그 이후 main스레드에서 work 스레드의 인터럽트 플래그가 true가 출력되었는데 어떻게 false가 아닌 true가 출력될 수 있는지 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
다운로드 소스코드 삭제 방법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.혹시 다운받은 소스코드 삭제는 어떻게 해야하나요??
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
강의 중 헷갈리는 개념
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.9:12초 정도에 블록 내부에서 외부는 접근 가능하다고 했는데 블록 외부에서 생성된 변수가 블록 내부에 접근 가능한 게 아닌가요?
-
미해결코틀린 함수형 프로그래밍 - 입문편
API 응답 처리 커스터마이징 vs Result 클래스 활용의 차이
안녕하세요! 제네릭 활용 실사례 학습 자료 중 API 응답 처리에 대한 내용이 있어서 질문드립니다.API 응답 처리 시 ApiResponse<out T> 와 같은 sealed class를 만들어 커스터마이징하여 사용하는 것이 이점이 있을지, 아니면 이미 코틀린 내장 클래스로 존재하는 Result 클래스 활용하는 것이 나을지 궁금하여 질문드립니다.sealed class ApiResponse<out T> data class Success<out T> (val data : T, val message : String) : ApiResponse<T>() data class Error(val message : String) : ApiResponse<Nothing>() fun <T> handleResponse(response: ApiResponse<T>) { when (response) { is Success -> println("Success: ${response.message}") is Error -> println("Error: ${response.message}") } }위처럼 커스텀하면 장점은 클라이언트 측과 통신할 때 서로 합의한 방식과 원하는 데이터를 자유롭게 전달할 수 있다는 장점이 있지만 Result에서 제공하는 함수형 메서드(fold,map등)를 활용하지 못하는 단점이 있다고 생각합니다. 반대로 Result를 사용하면 제공되는 함수형 메서드도 활용할 수 있지만, 응답 json을 커스터마이징 할 수 없다는 단점이 있습니다.이처럼 각자의 장단점이 있다보니, 장점을 모두 사용할 수 있도록 서비스 계층에서 Result를 반환하고 이를 컨트롤러에서 ApiResponse로 타입 변경하는 것은 어떤가요? 함수형 프로그래밍에 위반하진 않는지 궁금합니다.둘을 혼합해서 사용하는 것이 최선인지,, 각각 상황에 맞춰 써야하는 것인지 잘 느낌이 오지 않아 질문드립니다!
-
해결됨김영한의 실전 자바 - 중급 1편
예외클래스 파일 선언 질문..
NetworkClientException 클래스의 하위 클래스인 Send,Connect 예외클래스들을 별도 파일로 각각 만들지 않고,NetworkClientException 클래스 내부에 정적 중첩 클래스로 선언하는건 안좋나요? 상황에따라 다양한 종류의 예외들을 만들텐데, 그런것들 마다 별로의 파일로 만드는게 저는 디렉토리가 복잡해 보이기도 하고, 논리적으로 어떤게 부모클래스이고 어떤게 자식클래스인지 한눈에 들어오지 않을거같다는 생각이 문득 들어 질문드립니다!
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
에노테이션 정리에서 - 에노테이션 서블릿 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 질문을 드립니다. 정리에서 에노테이션으로 서블릿을 만들라고 해서 만들었습니다.근데 복사 붙여 넣기 한 코드들이라서 이렇게 해도 되는지 알고 싶어서 올립니다.이용한 코드는 영한님의 심플맵핑, 리플렉션 서블릿을 복사 붙여놓기 한다음 수정해서 하였습니다. 이렇게 해도 되나요?답변 부탁 드립니다.
-
미해결어쩌다보니 스프링부트
혹시 강의 기간은 무제한으로 해주실수 있나요?
가끔 기본이 기억안날때 보러오고 싶은 강의인데 기간이 제한되어있어서 아쉬운거 같아요. 기간을 무제한으로 그게 무리라면 기간을 좀 길게 만들어 주실수 있을까여?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
챕터9 문제와 풀이2 이렇게 메서드 사용해서 이렇게 풀어도 괜찮은건가요..?
package method.ex; import java.util.Scanner; public class MethodEx4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int balance = 0; while (true) { printMenu(); int option = getMenuOption(scanner); balance = processOption(option, balance, scanner); if (option == 4) { break; } } } public static int getMenuOption(Scanner scanner) { System.out.print("선택: "); return scanner.nextInt(); } public static int processOption(int option, int balance, Scanner scanner) { if (option == 1) { return deposit(balance, scanner); } else if (option == 2) { return withdraw(balance, scanner); } else if (option == 3) { showBalance(balance); } else if (option == 4) { printFinish(); } else { printError(); } return balance; } public static void printMenu() { System.out.println("---------------------------------"); System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료"); System.out.println("---------------------------------"); } public static void printFinish() { System.out.println("시스템을 종료합니다."); } public static void printError() { System.out.println("올바른 선택이 아닙니다. 다시 선택해주세요."); } public static int deposit(int balance, Scanner scanner) { System.out.print("입금액을 입력하세요: "); int deposit = scanner.nextInt(); balance += deposit; System.out.println(deposit + "원을 입금하였습니다. 현재 잔액: " + balance); return balance; } public static int withdraw(int balance, Scanner scanner) { System.out.print("출금액을 입력하세요: "); int withdraw = scanner.nextInt(); if (balance >= withdraw) { balance -= withdraw; System.out.println(withdraw + "원을 출금하였습니다. 현재 잔액: " + balance); } else { System.out.println(withdraw + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } public static void showBalance(int balance) { System.out.println("현재 잔액: " + balance + "원"); } }
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
시그널 - 자식에서 부모노드로 접근
훌륭한 강의 잘 보고 있습니다~! 감사합니다. ● 의문점:시그널 강의 결론은,"자식 노드쪽에서 부모 노드 쪽을 접근할 때 시그널을 사용하라" 입니다.헌데 강의의 예시를 살펴보면부모 씬의 스크립트(game .gd) 에서 시그널을 선언하고, 그 시그널을 부모 씬의 스크립트 함수와 연결하고, 부모 씬의 함수가 발동되고 있는데요그럼 그냥 부모 씬에서 모든 것이 이루어지는 것이지 자식 쪽에서 부모를 접근하는 것으로 보기가 어려웠습니다.뭔가 자식 쪽 시그널이 발동되면부모의 함수가 호출되는 상황이어야 할 것 같은데시그널로 이게 가능한지요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
ExecutorService close() 메소드 동작 설명 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]ExecutorService 우아한 종료 - 구현01:07 close() 메소드 설명 부분에"shutdown() 을 호출하고, 하루를 기다려도 작업이 완료되지 않으면 shutdownNow() 를 호출한다." 에 오류가 있어 보입니다. [내용 정정]"shutdown() 을 호출하고, 작업이 완료될 때까지 무한정 반복대기한다. 인터럽트가 발생하면 shutdownNow() 를 호출한다." 로 변경해야 하지 않나요? [근거]Eclipse Temurin-21.0.4+7 (JDK 21) 버전 코드 원문public interface ExecutorService implements Executor, AutoClosable { // .. @Override default void close() { boolean terminated = isTerminated(); if (!terminated) { shutdown(); boolean interrupted = false; // 작업 미완료시 재시도 while (!terminated) { try { // 하루간 작업 종료 대기, 작업 미완료시 `false` 반환 terminated = awaitTermination(1L, TimeUnit.DAYS); } catch (InterruptedException e) { if (!interrupted) { shutdownNow(); interrupted = true; } } } if (interrupted) { Thread.currentThread().interrupt(); } } } }1일이 지났다고 해서 interrupt() 를 호출하지 않고 재시도 하는 것으로 보입니다. [증명 코드]MyExecutor 로 close() 메소드 대기 시간을 1일 -> 1초로 조정하여 오버라이드합니다.10초간 대기하는 Task 를 실행시킵니다.class ShutdownTest { record CallableSleepTask( String name, long sleepMs ) implements Callable<Long> { @Override public Long call() throws Exception { sleep(this.sleepMs); return this.sleepMs; } } static class MyExecutor extends ThreadPoolExecutor { public MyExecutor() { super(1, 1, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); } @Override public void close() { boolean terminated = isTerminated(); if (!terminated) { shutdown(); boolean interrupted = false; while (!terminated) { try { // 종료 대기 시간 1초로 조정 terminated = awaitTermination(1L, TimeUnit.SECONDS); } catch (InterruptedException e) { if (!interrupted) { shutdownNow(); interrupted = true; } } } if (interrupted) { Thread.currentThread().interrupt(); } } } } @DisplayName("Should wait infinitely when .close()") @Test void executorServiceCloseTest() { // given try (ExecutorService myExecutor = new MyExecutor()) { log("작업 시작"); CallableSleepTask sleepTask = new CallableSleepTask("test", 10_000L); myExecutor.submit(sleepTask); // 10 초간 테스크 실행 log("작업 진행중.. close 대기"); // 기다리지 않고 .close() 자동 호출 } } }실행 결과18:38:39.524 [ main] 작업 시작 18:38:39.527 [ main] 작업 진행중.. close 대기 (약 10초 대기 후 종료) Process finished with exit code 0테스크 종료를 위해 10초 대기가 이뤄졌습니다.close 가 조정된 대기시간인 1초 뒤에 인터럽트를 발생시켰다면 인터럽트 로그가 남았을 것이고, shutdownNow()가 호출됐다면 10초 대기없이 즉시 종료되었을 것입니다. 따라서 정정이 필요해보여요.close 메소드는 "shutdown() 을 호출하고, 작업 완료시까지 무한정 반복대기한다. 인터럽트가 발생하면 shutdownNow() 를 호출한다."
-
해결됨김영한의 실전 자바 - 중급 1편
지역변수와 캡처 변수의 값이 달라지는게 문제인 이유?
지역클래스가 접근하는 지역 변수는 사실상 final이어야 하고,그 이유는 '지역 변수의 값과 캡처된 변수의 값이 서로 달라지는 문제가 발생하기 때문' 이라는 것은 이해했습니다! 그런데 지역 변수의 값과 캡처된 변수의 값이 서로 달라지는게 왜 문제인가에 대해서 의문이 남아서 질문 드립니다 ㅠㅠ 제가 의문을 가지는 부분을 말씀드리면캡처된 지역변수를 가지고 있는 지역클래스의 인스턴스를 생성 후 사용하는 시점에서는 어차피 원래 지역변수가 있던 스택은 제거된 상태이고,그래서 값이 서로 같고 다름을 떠나서 아예 없는건데 애초에 동기화 문제 자체를 신경쓸 필요가 없는것 아닌가요??
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
경고성 콘솔창 출력
[질문 내용]혹시 이 부분은 어디서 해결할 수 있을까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
72강 method1Ref 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]아래에 public static int add(int a, int b) 이 부분에서 빨간줄이 그어지며 실행이 안되는 상황입니다. 해결방법이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
초기화 콜백과 생성자 DI
[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 빈 생명주기 콜백에서 질문이 생겨 여쭤봅니다.이전 강의에서는 '생성자 주입'을 사용하는 것이 좋다고 하셨는데, 이번 NetworkClient 클래스에서는 setter로 DI를 하시면서 스프링 빈의 이벤트 라이프사이클을 설명해주고 계십니다.그러면, 생성자 주입으로 의존관계를 주입할 경우 이번 강의 주제인 '초기화 콜백'은 동작하지 않는 것일까요 ?설명해주신 스프링 빈의 이벤트 라이프사이클이 생성자DI 기준에서는컨테이너 생성 -> 빈 생성,의존관계 주입 -> 사용 -> 종료가 되는 것일까요 ? 혹여나 제가 잘못 이해하고 있는 부분이 있다면 지적 부탁드립니다, 좋은 강의 제공해주셔서 항상 감사드립니다 !!
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
instance의 다운캐스팅 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]지금 강의에서 instance를 이런식으로 선언해서 사용하고 있습니다. Object instance = constructor.newInstance("hello"); 이렇게 사용한다는건 instance가 Object타입으로 선언이 된거고 그렇다면 BasicData로 다운캐스팅을 해준 후에 call 메서드를 불러야 맞는게 아닌가요? 이게 Object 타입인데 call 메서드가 문제 없이 작동하는게 조금 괴리감이 들어서 질문드립니다..!