묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 기본편
private 멤버 변수 할당
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]main에서 K3Car 인스턴스를 생성하고 그걸 driver의 멤버변수에 할당하는 식으로 하면 Driver에서 K3car를 private으로 선언한 의미가 없어지는 거 아닌가요? main에서도 k3Car에 바로 접근이 가능하니까요
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인자로 전달한 변수 변경되도록 하는 방법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인자로 전달한 참조형이 아닌 기본형 변수의 값이 변경되도록 하는 방법은 값을 반환받는 방법밖에 없나요?예를들어 int형 1개짜리 변수를 참조형으로 인수로 넘겨서 메서드 내에서 값을 바뀌게 할 순 없나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
메서드 호출 질문입니다,
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]'자바는 변수의 값을 복사해서 대입한다' 라는 대원칙은 이해했고 강의에 나오는 코드나 설명은 이해가 되었습니다.근데 만약에 배열변수를 인자로 넘기게 되면 그 변수 안에는 자신이 카리키는 배열이 저장된 메모리의 주소가 전달될텐데.. 그럼 매개변수인 배열변수가 그걸 받아서 만약에 메서드 내에서 그 배열 요소의 값을 바꾸면 메모리 안의 값 자체가 바뀌니까 메서드가 종료되면 인자로 넘겨준 배열변수가 가리키는 배열은 뭔가 수정이 된 상태가 되는건가요?아니면 함수 내에서의 작업은 나오면 의미가 없어지는 건가요?
-
해결됨고도 엔진(Godot Engine)을 통한 게임 개발 박치기!! - 기본 개념부터 실전 게임 제작까지 한방에!
3. 미니 슈터게임 > 레이저씬 에서 global_position 과 position 차이??
미니 슈터게임 > 레이저씬 에서 global_position 대신 position으로 변경해서 작성해도. 결과는 똑같습니다. 굳이 global_position를 사용한 이유를 알고 싶네요..^^
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
원자적 연산의 의미
원자적 연산의 의미가, i = 1;과 같이 한번의 수행으로 끝나는 동작이지만 넓은 의미에서는 일종의 트랜잭션처럼,여러 코드뭉치지만 하나의 연산으로 취급할 때에도 사용되나요? (강의 2:14참고)
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
join() 위치
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 아직 끝까지 듣지 않았는데 궁금해서 질문 드립니다. volatile을 사용한 뒤에 메인에서 t1.start() 바로 뒤에 t1.join()이 오게 위치를 변경해주면 t1.start() 가 끝난뒤에 t2.start()가 시작이 되서 balance 값이 변경된 상태로 t2 스레드가 검증에서 false값이 걸리는줄 알았는데.. 이렇게 해도 문제가 발생하는데 그 이유가 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
컨테이너 호출 방법 질문
지금까지ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);테스트 코드 만들때 수동으로 빈을 등록하도록 만든 설정(AppConfig)을, 컨테이너를 만들어 빈 들을 등록하고, 의존관계를 주입한 환경에서 테스트 진행.ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class);컴포턴트 스캔 애노테이션을 포함하고 필터로 범위를 제한한 설정으로 컨테이너를 만들어서 빈들을 등록하고 의존관계를 주입한 환경에서 테스트 진행 그래서 테스트에서 만든 컨테이너는AppConfig ,AutoAppConfig 로 만들어진 빈들로만 구성된 컨테이너가 만들어지는 거죠. 이렇게 설정 클래스를 통한 빈들로만 구성된 컨테이너를 테스트에서 사용 하는 이유는 ,내가 설정한 (복잡한 로직의 수동 빈 등록이 필요한) 설정클래스들만 테스트에서 확인하기 위함이죠? 그렇다면 실무에서는@SpringBootApplication 애노테이션이 있는 메인클래스가 있어서 @Comopenet로 자동 등록된 빈들과 AppConfig 처럼 설정 클래스로 수동 등록된 빈들은 모두 같은 컨테이너에 보관될거잖아요. 테스트에서는 이렇게 compnent로 자동 구성된 빈들로만 이루어진 컨테이너를 호출하거나, 지금까지 진행한 설정클래스들을 통한 빈들로만 이루어진 컨테이너를 호출하거나, 전체적인 빈들이 있는 컨테이너를 호출하는 등 다양하게 테스트를 진행하겠죠? 각각의 테스트에서 컨테이너를 호출하는 방법이 무엇인가요? 뒤에 강의들에서 이러한 질문들을 해결하는 개념들이 나오나요?
-
해결됨스프링 핵심 원리 - 기본편
@Configuration 를 왜 사용할까요?
@SpringBootApplication 이 루트 위치에 있고 이 애노테이션 설정안에@ComponentScan이 있고 따라서@Component 애노테이션이 붙은 클래스들을스프링 컨테이너에 싱글톤 으로 빈 등록을 하고 @AutoWired로 의존관계를 주입해준다 라고 이해했습니다 @ComponentScan을 배우기 전에는AppConfig에서 @Configuration 과 @Bean으로 클래스들을 수동으로 빈 등록을 하고 의존관계도 주입해줬죠. 그리고 이 과정에서 여러 객체가 발생하는 하여 싱글톤이 깨지는 것을@Configuration 을 통해 CGLIB 라이브러리로 싱글톤을 보장해준다 라고 이해했습니다. @SpringBootApplication -> @ComponentScan 으로 @Component 클래스들을스프링이 싱글톤을 보장하면서 컨테이너에 빈으로 등록하는것의 대한 과정에 대한 구체적인 과정이 있나요?(@Configuration 에선 CGLIB 라이브러리로 new가 여러개 있어도 싱글톤을 보장하는데.. 이런 구체적인 과정이 있는지?)아니면 그냥 간단하게 저렇게 하면 싱글톤을 보장한다. 라고 이해하면 될까요? 그리고 @ComponentScan과 @Component로 클래스들을 사용함으로 AutoAppConfig는 아무런 코드 가 없었죠,Configuration 과 Bean으로 수동 등록하고, 싱글톤이 깨져서, CGLIB 라이브러리를 사용했던것이 대체되었다는건데, @Configuration 과 CGLIB 라이브러리를 왜 사용했던건지요? 그냥 @ComponentScan과 @Component로 클래스들을 사용하면 되잖아요.
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
손절에 대한 전략?
안녕하세요 손절 전략에 대해서는 어떻게 생각하고 계시는지 궁금하여 여쭤봅니다. signal_calculation()함수를 보면 zscore가 zscore_threshold(=2) 초과, 5 미만일 때는 signal을 -1로 채워서 stock1/stock2를 각각 매도/매수 하는 전략으로 진행되는데요,그 밑에 ffill() 코드로 인해 한번 signal이 -1로 채워지면 zscore가 1미만으로 내려가지 않는 한, signal이 계속 -1로 유지되게 됩니다. 이 경우에 만약 zscore가 한 번 2~5 영역에 들어간 이후에 갑자기 zscore가 6, 10, 20, 100까지 혹은 그 이상 벌어지는 현상도 현실세계에서 가끔 발생할 수 있다고 생각합니다.(해당 기업에 예상치 못한 이슈가 발생 한다던가, 재해가 발생할 수 도 있겠죠) 물론 이런 경우가 자주 발생하지는 않겠지만, 한 번 발생했을 때 큰 손실이 발생할 것으로 예상되어, 그 이전 수익을 모두 잃을 수 있다고 생각합니다. 때문에 zscore가 일정 값 이상으로 벌어진다면 (예를 들면 20 이상?) 손절하는 전략을 취하는 코드도 추가하면 어떨까요? 이 부분에 대한 생각을 여쭤보고 싶네요.
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
signal_calculation후에 zscore가 2가 넘지 않았음에도 signal이 1인 이유?
안녕하세요, 14분 47경에 df_pair에 대해서 signal_calculation()을 진행하고 난 후의 df_pair를 보면 마지막 5행의 데이터가 zscore가 2를 넘지 않음에도 불구하고 signal이 계속 -1이네요. 강의에서는 그 사이에 signal을 변경하는 신호를 못 받아서 그렇다고 넘어가셨는데, 저는 이해가 잘 안돼서요. mother class의 signal_calculation()메서드를 확인해도 ffill()함수가 1번만 적용되고, 그 다음줄에 fillna(0)함수로 signal을 0으로 채우기 때문에 signal이 계속 -1로 유지되는 현상이 왜 발생하는지 이해가 안됩니다.(시그널이 2이하로 떨어진다면, 1번만 -1로 유지되고 그 이후에는 0으로 채워져야 하는 것 아닌가요? 더 자세히 설명해주실 수 있나요?(AI봇의 설명은 부정확한 부분이 많네요...ㅠ)
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
volatile
안녕하세요 영한쌤!질문드립니다! 쓰레드별로 공유 자원에 대해 효율적인 연산 처리를 위해 캐시 메모리를 사용한다고 하셨습니다! 이러한 문제가 메모리 가시성 문제를 일으킬 수 있어 volatile 키워드로 캐시가 아닌 메인 메모리에 직접 접근할 수 있었습니다. 이번 예제의 경우,volatile이 없었던 가장 기본 BasicInteger는 volatile을 사용하지 않았어도 어느정도 값 수정이 되었는데 이는 캐시 메모리를 사용하지만 컨텍스트 스위칭이 발생하면서 캐시메모리가 메인메모리로 반영하고 다시 이를 읽어오니 반영이 된건가요?(이전에 interrupt를 boolean flag + volatile로 해결하던 예제에서는 컨텍스트 스위칭이 발생할 시기가 확정적이지 않다고 하셨는데 그거에 비해 꽤 많이 연산이 이뤄진것같습니다...)
-
해결됨스프링 핵심 원리 - 기본편
갑자기 @Test 시 junit 이 import 가 안돼요
plugins { id 'java' id 'org.springframework.boot' version '3.5.3' id 'io.spring.dependency-management' version '1.1.7' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() }지금 Gradle.build 코드이고 이전까지 test 폴더 하위에서 test 시에는 import 가 잘 됐는데27강의 ApplicationContestInfoTest.java클래스에서는 안되네요
-
미해결스프링 핵심 원리 - 기본편
콘솔창에 빈 등록 상태 로그가 안떠요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 25강 6분 41초에 나타나는 AppConfig 클래스에서 등록한 빈이 콘솔 창에 나오던데제가 따로 실습하는 인텔리제이에서는 나오지 않습니다.혹시 인텔리제이 설정을 따로 바꿔야 하나요?참고로 저는 인텔리제이 커뮤니티 버전을 쓰고 있습니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 실행 위치 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]섹션 5의 <프린터 예제3 - 인터럽트 코드 개선 관련> 질문입니다.printer.addJob(input) 관련하여, 어떤 스레드에서 어디서부터 어디까지 책임지고 실행하는지 헷갈려서 정리해봤는데 검토해주시면 감사하겠습니다. === printer.addJob(input) 은 main 스레드(호출 스택)에서 실행된다.공유하는 Heap 메모리 영역에 Printer 객체 주소가 있다.main 스레드는 Printer 객체의 jobQueue 변수에도 접근이 가능하고 addJob() 메서드를 호출할 수 있다.따라서, addJob() 메서드에 대한 스택 프레임도 main 스레드(호출 스택)에 쌓여서 처리된다. === JPA 이후 오랜 만에 영한님 강의를 다시 듣기 시작했는데 재밌네요. 늘 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
테스트 코드 실행 시 콘솔창에 나타나는 경고문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Section4 에 19강 관심사의 분리 강의를 듣다가 테스트를 해보니 콘솔창에 이런 경고문이 나타나요혹시 그 이유와 해결 방법 알려주실 수 있나요?Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3WARNING: A Java agent has been loaded dynamically (/Users/parkboseung/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.17.6/17b32fd9f57deef02842f7f05abc4ad8127fe34e/byte-buddy-agent-1.17.6.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseJava HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
2:33초의 강의 내용
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2:33초의 강의 내용 중 비효율이 있을 뿐 로직은 모두 정상 작동한다. 이 부분 말씀이 그냥 소비자가 소비자를 깨우는 상황에도 예를 들어 put(), take() 안의 로직이 작동한다는 거죠? 만약 생성자나 소비자가 같이 대기 하고 있을 때 같은 종류의 스레드만 계속해서 깨울 시에 starvation이 발생할 수 있는 것과는 이야기와는 별개인거 맞을까요?
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
Select Kernel에서 Python Interpretor 안 뜨는 오류 해결
저는 python extension 버전을 2024.2.1로 낮춰서 해결했습니다.1년전 버전을 사용하는게 좋지 않게 느껴지는데, 다른방법들 다 해봤는데 저는 이것만 돼서 할수없이 합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
PayOption
package poly.ex.pay2; public class PayOption { Pay findPay(String option) { //결제 수단 추가시 변경되는 부분. if (option.equals("kakao")) { return new KakaoPay(); } else if (option.equals("naver")) { return new NaverPay(); } else if (option.equals("newPay")) { return new NewPay(); } else { return new DefaultPay(); } } }마지막 강의 실전 문제 중에서 결제 수단 관련 문제입니다.위와 같이 코드를 작성하게 되면 결제 수단이 추가될 때마다 클래스 내부 코드가 변경이 되는데, OCP를 위반한 것 같은데, 왜 이렇게 작성한 것인지 궁금해서 여쭤봅니다.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 기본편
상속 메모리 예시에서 메소드, 힙 영역 중 실제 저장되는 영역은 어디인가요?
[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요! 강의 잘 보고 있습니다.자바 메모리 강의에서 인스턴스의 메소드는 힙 영역이 아닌 메소드 영역에서 공통으로 관리된다고 학습하였습니다.이후 상속, 다형성 강의에서 상속관계의 인스턴스 메모리 구조가 그림으로 많이 설명되는데해당 영역은 실제로 메소드 영역인지, 힙 영역인지 궁금합니다.1) 메소드 영역이라면 클래스당 전역으로 1개가 생성되어 관리되는 구조이기 때문에 자식 인스턴스 생성시 해당 메모리에 부모 인스턴스가 함께 생성되어 메소드를 참조하는 구조가 잘 이해가 되지 않습니다.2) 그렇다면 힙 영역에서 각자 생성된다는 것인데, 앞서 말씀드렸듯이 인스턴스의 메소드는 메소드 영역에서 전역으로 관리된다고 하여 혼란이 있습니다.답변 부탁드립니다.!
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
VSstudio에서 kernel 못찾음
강의 관련 내용은 아닙니다만, VSstudio상에서 kernel을 찾지 못하는 문제가 있어서 문의드립니다. myenv-finance-analysis 이름의 가상 환경을 구축해서 강의를 잘 듣고 있었는데요, 어느 날 다시 강의 수강을 진행하려고 보니까 아래와 같이 kernel을 찾기만 하고 kernel을 찾지 못하네요. 해당 부위를 클릭해서 가상환경을 선택하려고 해도 myenv-finance-analysis 가상환경을 찾지를 못합니다. 가상환경 내에서 pip install ipykernel로 패키지도 설치해놓았는데... 이런 문제가 발생하는 이유가 뭘까요?