묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨오브젝트 - 기초편
2-4 강에서 제공된 수업 노트 관련 질문 드려요
담당자님 안녕하세요!혹시 수업 노트에서 제공되는 예제 코드로 개선된 코드가 아닌 개선이 필요한 코드를 올려주실 수 있을까요?강의 7:30 부근에서 "여러분이 직접 결차적인 방식으로 작성된 코드 전체를 도메인의 구조에 맞춰서 변경..." 하면서 수업 노트로 제공된 예제 코드를 개선하는 과제를 암시하고 있습니다.단, 예제 코드는 이미 개선된 코드를 제공하고 있습니다.그래서, 의도된 바와는 다르게 개선된 코드를 더 개선하려고 노력하였습니다.읽어주셔서 감사드립니다!
-
해결됨김영한의 실전 자바 - 중급 1편
try - catch 에서 catch() 안에 객체 이름 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.궁금증이 생겨서 질문을 남깁니다.예외를 잡아서 처리하는 코드를 보던 중, 영한님이 try 한다음 catch 부분 에서 MycheckedEception e 이렇게 하는것을 볼수 있는데요.다른 catch의 객체 변수 이름을 보면 "e"라고 한 것을 확인할 수 있었습니다.catch에서 Exception예외 처리 로직의 이름을 지을때 'e' 라는 변수가 통용 되는 것인가요? 아니면 다른 변수 이름이 더 있나요?답변 부탁 드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
temurin 21버전 project JDK misconfigured 뜨면 사용 못하나요?
새 프로젝트를 만들고 setup jdk버튼을 눌러 테뮤린21을 다운받았습니다. 프로젝트 스트럭쳐에서 테뮤린이 적용되었는데 빨간색이고, 홈화면엔 misconfigured가 떠있다면 못쓴다는 의미일까요?그렇담 대신에 오라클오픈22 jdk를 사용하면되나요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
강의 이미지에 대해 질문 있습니다.
그림에서 main 스레드 안에 CPU 코어 1이 있는데 이 상황을 CPU 코어 1에 main 스레드가 할당 됐고 CPU 코어 1은 main 스레드의 스택 영역과 main 스레드가 속해 있는 프로세스의 코드, 데이터, 힙 영역에 접근해서 값을 가져다가 연산한다 라고 이해를 하면 될까요? CPU 내부에 존재하는 레지스터와 위 이미지의 캐시 메모리는 역할이 다르다고 보면 될까요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
자바 스레드와 커널 스레드에 대해 질문 있습니다.
기존 Java의 스레드 모델은 Native Thread로, Java의 유저 스레드를 만들면 Java Native Interface(JNI)를 통해 커널 영역을 호출하여 OS가 커널 스레드를 생성하고 매핑하여 작업을 수행하는 형태로 알고 있습니다.앞서 얘기 해주신 Thread를 상속해서 만든 스레드와 Runnalbe을 사용해서 만든 스레드가 Java의 유저 스레드인지 궁금합니다.Thread thread1 = new Thread(runnable) 이런식으로 스레드를 생성 했을때 메모리의 힙 영역에 thread1이 저장되고 thread1을 위한 스택 영역이 생성된다고 보면 될까요?OS가 생성한 커널 스레드는 메모리 어디에 저장 되는지 궁금합니다.JVM은 JNI라는 기술을 사용해 자바의 유저 스레드와 커널 스레드를 매핑 해주는 작업만 해주고 이후에 스레드 관리는 OS가 하는건지 궁금합니다. 스레드를 생성할때마다 해당 스레드를 위한 스택 영역이 생성된다고 하셨는데 이때 커널 스레드를 위한 스택도 만들어지는 건지 아니면 커널 스레드가 유저 스레드의 스택 영역을 가져다 쓰는건지 궁금합니다.
-
해결됨김영한의 실전 자바 - 중급 1편
네트워크 ex0 코드를 이렇게 개선하는게 옳은 방법인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.켈리어몬트님 꺼 답변을 해주고 나서, 저의 글을 보면서,어? 라는 의문이 들었고, address을 불변 으로 변경해 보자라는 생각이 들어서, 변경해 보았습니다근데 만들다 보니 Data 불변으로 바꾸고 싶다는 생각이 들고, 하다 보니 , 네트워크 서비스 클래스를 수정 하게 되던 데요.네트워크 서비스에 클래스에 객체를 생성 하는게, 옳은 방법인가요?수정withMessage가 setter로 되있어서, new Data(@@)으로 변경수정2이름 이상해서 사진 변경(어제 바꾼건데, 귀찮아서 지금 올림.)추가1MainV0은 똑같습니다. 추가2불변에 반환 값 꼭 넣으시길 바랍니다.. 변하는지 확인 할려고, 확인 했다가 고생함..Data , AddressNetworkClientV0 , NetworkServiceV0 답변 부탁 드립니다.
-
해결됨(2024년) 파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
ibkr 실적용에 관한 질문입니다.
선생님 강의를 파트1,2 모두 수강하며 부족하지만 틈틈히 공부하고 있습니다.바쁜일정을 핑계로 집중적으로 학습하지 못하는 점은 부끄럽습니다.하지만 학습을 하면서 궁금한 점이 있습니다.ibkr이라는 우량한 브로커를 이용하시는데 들리는 말로는 실계좌 오픈이 까다롭다는 말을 들었습니다.그리고 페어전략을 구성하려면 매수와 매도가 이루어져야 하는데 실계좌 오픈 후 한국 사용자가 매수매도모두 이용할수 있나요? 그리고 주식뿐 아니라 외환이나 파생상품도 가능한지 궁금합니다.그리고 실전적용시 시스템적으로 어떠한 부분을 주의해야하는지도 궁금합니다.부족한 질문이지만 답변부탁드립니다.
-
미해결김영한의 실전 자바 - 중급 1편
참조값을 확인하려면 hashCode() 메서드를 사용하면 될까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]String d = new String("TEST"); String e = new String("TEST");각각의 참조값이 다르게 생성되어야 함에도 System.out.println(d.hashCode()); System.out.println(e.hashCode());해보면 결과값은 동일한 해쉬값이 나옵니다. 동일성 비교는 false, 동등성 비교는 true가 되고요.문자열 리터럴일 경우 문자열 풀을 사용하는 것은 이해가 되었는데 객체생성도 문자열에서는 동일한 문자열 풀을 사용하는지 궁금해서 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
interface가 왜 빈에 등록이 되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝트 압축파일 :https://drive.google.com/file/d/1JuIfXWrbMbE0SuppC6Pnd36vSqKkp2aX/view?usp=drive_link강의를 보면서 allTest를 하니 강의에 없는 오류가 나와서 질문드립니다. CoreApplicationTest -> contextLoads 부분 오류 내용은 다음과 같습니다expected single matching bean but found 2: memoryMemberRepository,memberRepository즉, 하나의 빈을 찾아야하는데 2개의 빈을 찾았다는 뜻입니다.그래서 "MemberServiceImpl"의 생성자에 @Qualifer 어노테이션을 사용하니 오류가 사라졌습니다.@Autowired public MemberServiceImpl(@Qualifier("memoryMemberRepository") MemberRepository memberRepository) { this.memberRepository = memberRepository; }하지만 궁금증이 남았습니다. @Component 어노테이션을 사용하지도 않은 interface가 빈으로 등록이 되는걸까? 궁금해서 contextLoads 함수에서 MemberRepository.class의 빈을 찍어봤습니다.다음과 같이 interface도 빈으로 등록이 되어 있음을 확인했습니다. 추상 클래스라 생성도 하지 못 하는데 왜 빈에 올라가 있는 것인지 의아하여 gpt에게 질문을 해보니"인터페이스를 구현한 클래스가 빈으로 등록될 때, 해당 인터페이스의 이름도 빈의 별칭(alias)으로 자동 등록됩니다. 이 빈 객체는 두 개의 이름("memoryMemberRepository"와 "memberRepository")으로 참조될 수 있습니다."라는 답변을 받았습니다. 만약 해당 답변이 옳다면1. 굳이 왜 alias가 필요했던 것인가?2. alias이면 같은 것을 참조하는데 컴파일러는 왜 고민을하고 에러를 띄운것인가?3. @Qualifier의 사용이 필연적인가? 강의에서는 왜 그렇지 않았는데 해당 오류가 없었나?이렇게 3가지 질문을 드리고 싶습니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
jdk 버전 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]21버전을 선택하면 오라클 오픈 jdk 가 없어서 자료에서 알려주신 것처럼 해당 버전을 선택했는데 jdk 가 맞지 않다고 나오는거 같아요.오라클 오픈 jdk 22 버전을 사용하면 아무 문제가 없이 잘 되고 있습니다. 다운받은 코드 파일도 잘열리고 위에 사진 처럼 jdk 가 맞지 않다는 에러도 없습니다.오라클 오픈 jdk 22 버전을 사용해도 무방할까요?
-
미해결스프링 핵심 원리 - 기본편
빈 생명주기 콜백
안녕하세요 2회차 복습 중인데 빈 생명주기 콜백에서 궁금한 점이 있어서 질문을 드립니다.강의에서 영한님께서 데이터베이스 서버가 뜨기전에 미리 연결하는 작업을 한다고 하셨습니다.아직 데이터베이스에 관한 사전지식이 부족해서 그런지 모르겠습니다만,,,애초에 그냥 객체를 생성할 때 생성자에 url을 넣으면 안되는 건가요..? public class NetworkClient{ private String url; public NetworkClient() { System.out.println("생성자 호출, url = " + url); connect(); call("초기화 연결 메시지"); } public void setUrl(String url) { this.url = url; }
-
미해결김영한의 실전 자바 - 중급 1편
정적 중첩클래스내 private 필드변수를 외부 클래스에서 접근가능한 이유가있나요?
package nested.nested.ex2; public class Network { private int age; public void sendMessage(String text) { NetworkMessage netWorMessage = new NetworkMessage(text); netWorMessage.print(); netWorMessage.content = "abc"; } private static class NetworkMessage { private String content; public NetworkMessage(String content) { this.content = content; } public void print() { System.out.println(content); } } }위 로직에서netWorMessage.content = "abc"; 부분이 제 예상으론 컴파일 에러가 나야하는데 신기하게도 정상 수행됐습니다.정적중첩클래스 NetworkMessage 내부에 private으로 선언한 content를 바깥클래스인 Network의 sendMessage() 메서드 에서 어떻게 직접 접근 할수있는지 모르겠습니다 ㅎㅎ
-
미해결스프링 핵심 원리 - 기본편
오류가 계속 납니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저 오류가 해결이 안됩니다. 멤버 서비스에 어노테이션을 한시간 넘게 계속 확인했고 패키지 위치도 잘 정리 되어있습니다.
-
미해결김영한의 실전 자바 - 중급 1편
강의자료 안열림
중급 강의자료만 이렇게 열리는 이유가 뭘까요??
-
미해결김영한의 실전 자바 - 중급 1편
강의자료 안열림
왜 강의 소스코드가 인텔리제이에서 안열리죠??? 중급만 안열리네요
-
미해결스프링 핵심 원리 - 기본편
request scope 예제 - Core Application
//web 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-web'Build.gradle에 web 라이브러리를 추가하고 빌드를 해서External library에 web관련 라이브러리가 위의 사진과 같이 생성된것을 확인 할 수 있었어요. 그런데 아래 core application을 실행 했을 때 컴파일(?) 되지 않고 아래에 첨부한 사진처럼 로딩 표시만 뜨고있어요. 몇 분에서 몇 시간 까지 기다려 보았지만 컴파일 되지 않았습니다. 디버그 로그의 일부도 제일 아래에 첨부했습니다. 어떤것이 문제 일까요..?package hello.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class CoreApplication { public static void main(String[] args) { SpringApplication.run(CoreApplication.class, args); } }
-
미해결김영한의 실전 자바 - 중급 1편
상속받지 않은 클래스 객체 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예외 처리가 필요한 이유1 - 시작 강의 7분대에NetworkServiceV0 클래스에서 sendMessage 메서드 안에 NetworkClinetV0 클래스 객체를 생성하는데 지금까지 배운 내용으로는 상속을 받지 않고서 저렇게 타 클래스의 객체를 생성하는 건 처음 봐서요! 그래서 찾아봤더니 이게 의존성 주입(DI)이라는데 제가 알맞게 이해한 것인지, 또한 이 기법에 대해서 추가적인 설명을 여쭤보고 싶습니다! 이전에 배운 내용인데 제가 모르고 있는 것은 아닌 거죠?
-
미해결김영한의 실전 자바 - 기본편
for반복문을 임의로 바꿔 봤는데 오류가 나는 이유를 모르겠어요
안녕하세요실전 자바 기본편 섹션3 기본형과 참조형 문제와 풀이부분에서for (int i = 0; i < orders.length; i++) { System.out.println((i + 1) + "번째 주문 정보를 입력하세요."); System.out.println("상품명: "); String productName = scanner.nextLine(); System.out.println("가격: "); int price = scanner.nextInt(); System.out.println("수량: "); int quantity = scanner.nextInt(); scanner.nextLine(); orders[i] = createOrder(productName, price, quantity); }for 반복문을for(ProductOrder order : orders) { System.out.println("상품명을 입력하세요: "); String productName = scanner.nextLine(); System.out.println("가격을 입력하세요: "); int price = scanner.nextInt(); System.out.println("갯수를 입력하세요: "); int quantity = scanner.nextInt(); scanner.nextLine(); order = createOrder(productName, price, quantity); }이렇게 고쳤봤더니 createOrder 메소드에서 order변수값이 null이라면서 오류가 나는데요..혹시 order변수에 null값이 들어가면서 오류가 나는 이유가 뭔지 알수있을까요?
-
해결됨스프링 핵심 원리 - 기본편
스프링컨테이너에 두개의 클래스를 등록한 이유?
스프링 컨테이너에 여러개의 클래스를 빈으로 등록할려고 할때다음 아래 처럼 AutoAppConfig.class,DiscountService.class 1. 갯수 2개 명시안해도 여러개 씩 쉼표로 이어붙이면 되는건가요? 아니면 map이라서 두개 주입해준건가요?그리고 왜 두개의 클래스를 등록한건가요? AutoAppConfig에는 DiscountService가 없어서 그런건가요? ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class,DiscountService.class);//왜 autoAppConfig를 땡겨오는지 모르겟음/ 컴포넌트 스캔을 하면서
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanner 문자열 (한글)
Scanner 함수 예제풀이중 문자열로 입력을 받게해야하는데한글은 입력이 안됩니다 뭐가 문제일까요????