묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 8。map1
Map<String, Integer> studentMap = new HashMap<>(); . . . Collection<Integer> values = studentMap.values();studentMap.values()를 하면 Collection타입으로 반환해준다고 하셨는데 의문이 하나 들었습니다.Collection은 인터페이스, map은 Collection을 상속받지 않음으로 Collection은 studentMap.values()를 담을 수 없지어야 한다고 생각했는데... 모르겠습니다ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔시 빈이름 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컴포넌트 스캔시 빈 이름이 자동으로 구현된 클래스의 이름으로 설정되게 되는데요. 이 경우 DIP 위반과는 상관없는 건가요?? 예를 들어 memoryMemberRepository 처럼요.물론 타입으로 조회 시에는 MemberRepositoy.class로 조회가능하지만, 이름으로 조회시에는 클래스명(앞에 소문자)로 조회해야 되서요. 공부중 궁금해져서 질문 드립니다.
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 7 . 문제와 퓨리1
Set<Integer> set = new TreeSet<>(List.of(30, 20, 20, 10, 10));set에 값을 넣을 때, List는 전달 할 수 있다고 하셨는데,List.of();를 사용하면 ()안에 값을 List에 넣는 거고,List의 타입은 Set<Integer>를 보고 Integer로 타입추론을 하게되고,List<Integer>이기 때문에 ()안에 들어간 int형 (30, 20, 20, 10, 10)은 오토박싱이 돼서int -> Integer 타입으로 변경되서 List에 들어간다.제가 이해한 게 맞나요??ㅠㅠ
-
해결됨김영한의 실전 자바 - 중급 2편
타입 이레이저 질문
제가 실습했던 컴파일된 AnimalHospitalV3.class 파일을 인텔리제이에서 복호화해서 보면타입 매개변수인 T와 같은 표현이 살아있는데 왜 그런 것일까요? 컴파일 후라면 클래스명이 AnimalHospitalV3<T extends Animal>이 아니라AnimalHospitalV3 로 바뀌어 있어야할 것 같아서요. 글구 T들은 Object로 변해있어야 할 것 같은데...궁금합니다
-
해결됨자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
질문드려요
객체의 생성과 상관없이 프로그램이 로드 될 때 이미 static 변수는 생성이 되어있다고 하셨는데.프로그램이 로드 될 때가 어떤 때 인가요?이클립스를 실행했을 때 인가요?아니면보여주신 자료에는 프로그램이 처음 시작할 때라는데main 함수에서 static 멤버변수를 처음 호출 했을 때 인가요?프로그램 로드, 프로그램 시작이 어떤걸 기준인지 모르겠습니다
-
미해결스프링 핵심 원리 - 기본편
싱글톤 @Configuration
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]class StatefulServiceTest { @Test void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean(StatefulService.class); StatefulService statefulService2 = ac.getBean(StatefulService.class); // Thread A : A 사용자 10000원 주문 // statefulService1.order("userA", 10000); int userAPrice = statefulService1.order("userA", 10000); // Thread B : B 사용자 10000원 주문 // statefulService2 .order("userB", 20000); int userBPrice = statefulService2.order("userB", 20000); // Thread A : A 사용자 주문 금액 조회 // int price = statefulService1.getPrice(); // System.out.println("price = " + price); System.out.println("userAPrice = " + userAPrice); System.out.println("userBPrice = " + userBPrice); } static class TestConfig { @Bean public StatefulService statefulService() { return new StatefulService(); } } }이 코드에서 TestConfig는 @Configuration 어노테이션을 붙이지 않았는데 어떻게 싱글톤이 보장된건가요?
-
미해결김영한의 실전 자바 - 기본편
객체지향 프로그래밍 - 코드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.다음 코드에서 멤버 변수 amount 의 선언이 메서드의 매개변수 자리에서 이뤄져도 충분한 건가요? 왜 그런지 이유를 알고 싶습니다!
-
해결됨김영한의 실전 자바 - 중급 2편
Generate로 hash 생성시, hash()와 hashCode()
Generate를 이용해서Hash 생성시@Override public int hashCode() { return Objects.hashCode(id); }와 같이 영상과는 달리 hash()가 아닌 hashCode()가 생성되어 결과물이 미묘하다 다릅니다.검색해보니, hash가 hashCode 배열 처리된 걸로 알고 있어서 차이가 있다는 건 알겠는데@Override public int hashCode() { return Objects.hash(id); }일부러 Code를 삭제해서 영상처럼 위와 같이 실무에서도 hash를 기반으로 사용할지, 아니면 IDE에서 기본으로 제공하는 대로 hashCode를 사용해도 딱히 상관이 없나요?
-
미해결김영한의 실전 자바 - 중급 1편
안녕하세요 작은 질문 하나 드립니다!
혹시 영한님께서 강의 진행하실 때 아래에 단축키 어떤 걸 사용했는지 나타내주는? 플러그인 이름을 좀 알 수 있을까요..?
-
미해결김영한의 실전 자바 - 중급 2편
섹션 7. onlyHash
hashCode만 오버라이딩으로 재정의하면 해시코드는 같아지지만, 결국 equals비교 Object의 것을 사용해서 실패하게 된다고 하셨습니다.그런데 MemberOnlyHash 클래스에서 equals를 재정의를 했다고 가정했을 때, 어떻게 MemberOnlyHash로 갈 수 있는 건가요?오버라이딩 되어서 우선권을 갖고있는 건 알고있습니다.이해가 안 가는 부분을 어떻게 말을 해야 할 지 조금 복잡하지만... 1번 코드MyHashSetV2 set = new MyHashSetV2(10); NoEqualsOnlyHash m1 = new NoEqualsOnlyHash("A"); set.add(m1);1번 코드에서 set에서 add를 호출합니다. 2 코드public boolean add(Object value) { LinkedList<Object> bucket = buckets[hashIndex(value)]; if (bucket.contains(value)) { return false; }그리고 2번 코드에 들어가게 되고 3번 코드 public boolean add(MemberOnlyHash m1) { LinkedList<Object> bucket = buckets[0]; if (bucket.contains(m1)) { return false; }그러면 2번 코드가 실행되면 3번 코드처럼 되는 거라고 이해하고 있습니다. (hashIndex는 편의상 0이라고 하겠습니다.) 0번 인덱스에 있는 LinkedList <Object> 타입의 연결리스트가 나옵니다. 다음으로 if문으로 들어갑니다. 그리고 LinkedList <Object> 타입의 연결리스트(bucket)가(이) m1을 포함하는지 contains 메서드를 통해서 확인합니다. 여기서 질문입니다.질문 1 : MemberOnlyHash 타입의 m1과 비교를 하는데 bucket은 여전히 Object타입입니다. (Object)bucket이 contains를 사용하는데 bucket은 MemberOnlyHash 클래스가 오버라이딩 한 것을 어떻게 알고 찾아가는지 이해가 되지 않습니다.
-
미해결김영한의 실전 자바 - 중급 1편
자바 중급2편까지 듣고 스프링강의으로 넘어가도 될까요??
예전에 기본편까지 듣고 스프링강의 들으러갔다가 쓴맛을 본 사람입니다아직 고급편이 나오지않았는데중급2편까지 듣고 스프링강의로 넘어가도 무방할까요?!
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 7. 직접 구현하는 Set3
여기에서 hashCode의 값이 선생님과 다르게 출력되는데 잘못된 게 맞나요?문자 고유의 값이니까 같은 문자라면 어느 컴퓨터나 같은 hashCode가 출력되야 하는 게 맞는거죠??public class MyHashSetV2Main2 { public static void main(String[] args) { Member hi = new Member("hi"); Member jpa = new Member("JPA"); // 대문자 주의! Member java = new Member("java"); Member spring = new Member("spring"); System.out.println("hi.hashCode() = " + hi.hashCode()); System.out.println("jpa.hashCode() = " + jpa.hashCode()); System.out.println("java.hashCode() = " + java.hashCode()); System.out.println("spring.hashCode() = " + spring.hashCode()); MyHashSetV2 set = new MyHashSetV2(10); set.add(hi); // Member 타입의 인스턴스를 myHashSetV2에 넣음. set.add(jpa); set.add(java); set.add(spring); System.out.println("set = " + set); //검색 Member searchValue = new Member("JPA"); boolean result = set.contains(searchValue); System.out.println("hi.contains(" + searchValue + ") = " + result); } //출력 결과 hi.hashCode() = 3329 jpa.hashCode() = 73659 java.hashCode() = 3254818 spring.hashCode() = -895679987
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 연습문제 2번
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.기본생성자를 생성안하니까 오류가 뜨는데 강사님 강의에는 기본생성자를 생성안해도 오류가 안뜨더라구요 toString이 역할을 대신한건가요? 1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨파이썬 알고리즘 트레이딩 파트2: Interactive Brokers API를 활용한 실시간 알고리즘 트레이딩
IBKR Desktop Global Configuration 설정
안녕하세요 강사님 IBKR Desktop 다운로드 이후 api 설정을 해주려고 했는데요 뭔가 버전이 다른 건지 화면이 달라서 어디서 설정을 할 수 있는지가 잘 안보여서 문의드립니다!감사합니다!
-
미해결스프링 핵심 원리 - 기본편
등록된 bean 2개 이상일때 타입의 명칭 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. basicScan Test시 아래처럼 조회된 bean 2개 이상실때 명칭을 달리하면 해결된다고 하셨는데요.OrderServiceImpl에서 아래처럼 DiscountPolicy 명칭을 rateDisCountPolicy로 수정 하면 위와 같은 동일한 이슈가 발생되는걸 확인 했습니다. 그래서 명칭의 대소문자를 @Component 통해 등록된 rateDiscountPolicy로 변경했더니 정상적으로 테스트가 진행 됬는데요. 이유가 뭔가요?타입 명칭을 등록된 bean 명칭과 동일하게 해야하는건가요?혼란이 와서요 오류난 코드정상 작동 코드
-
미해결스프링 핵심 원리 - 기본편
테스트실행시 에러 "No matching tests found in any candidate test task."
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테스트실행시 이런오류가 뜨네요.
-
미해결김영한의 실전 자바 - 기본편
NullMain4 메서드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]NullMain4 메서드에서 참조값은 있지만 그 값을 정하지 않은 멤버변수 (count나 value) 들은 0으로 출력되는 것이 기본인가요?? 저는 값을 정하지 않았으니 쓰레기값이 나올 것으로 예상했었는데 0이 출력해서 궁금해서 질문드립니다!
-
미해결김영한의 실전 자바 - 중급 2편
linkedList는 deque 구현체입니까? 아니면 list 구현체입니까?
1. linkedList는 deque 구현체입니까? 아니면 list 구현체입니까?만일 LIst 구현체인것도 있고 Deque구현체인것도 있으면new LinkedList<>(); 했을때 부모로 덱과 리스트중 누구를 앞에 내세워야합니까?강의에서 linkedList보다 ArrayList가 더 빠르다 하셨는데 그럼 LinkedList 를 쓰는 자리에는 ArrayDeque를 쓰는게 일반적입니까?
-
미해결김영한의 실전 자바 - 중급 1편
Seed 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]비워두면 내부에서 복잡한 알고리즘을 섞어서 씨드값을 생성한다고 하셨고, seed값을 전달하면 값이 고정되어있다고 설명하셨습니다. 즉 그 말씀은 서버를 종료하고 다시 기동 시켜도 동일하고, 제 로컬에서 돌리는 값이나 다른 로컬에서 돌려도 seed값을 동일하게 쓰면 모두가 그 seed에 대한 동일한 값을 반환받는 것일까요?
-
미해결스프링 핵심 원리 - 기본편
Execution failed for task ':CoreApplication.main()' 오류질문
Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1이런 오류가 뜹니다. 처음에 gradel 이 IntelliJ 로 되어 있을 때 빨간 오류는 아니었지만 Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\SpringStudy\core\out\production\classes\hello\core\member\MemoryMemberRepository.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class] 이런 에러가 나서 gradel을 Gradle(Default) 로 변경하였더Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1 이런 오류가 납니다. 어떤 부분을 수정해야 하는 걸까요??