묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 대기 집합과 스케쥴링 큐
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]synchronized를 사용하면 사용되는 스레드 대기 집합과 기존 멀티스레드 환경에서 사용되는 스케쥴링큐는 다른건가요?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 강의 질문이 있습니다.
1) main,Thread-A,Thread-B 3개의 스레드를 만들고 실행시킨 후main 스레드에서 의도적으로 exception을 발생시켜도main 스레드만 종료되고 Thread-A, Thread-B는 돌아가는데이 때 자바 자체를 중지하려면 Thread-A와 B를 Daemon으로 생성하는 방법 밖에 없을까요? 2)궁금증이 발생했는데 main 스레드를 Daemon으로 선언할 수 있나요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
IntelliJ 에서 클래스 생성시 Exception 생성 기능
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 영한님처럼 클래스 생성시 Exception이 따로 안떠서 어떻게 하면 Exception도 클래스나 인터페이스처럼 바로 생성하는 기능을 추가할 수 있는지, 단순 버전 차이인지 궁금합니다.(2번째 사진은 제가 클래스 생성할 시 뜨는 창입니다.)
-
미해결김영한의 실전 자바 - 중급 2편
타입 이레이저 동작방식 질문입니다!
안녕하세요! 이번에 정처기 문제에서 타입 이레이저 관련 문제가 나왔는데, 궁금한 점이 생겨서 질문 올려봅니다.class Printer { void print(Integer a) { System.out.print("A" + a); } void print(Object a) { System.out.print("B" + a); } void print(Number a) { System.out.print("C" + a); } } public class Gisafirst { public static void main(String[] args) { new Container<>(0).print(); } public static class Container<T> { T value; public Container(T t) { value = t; } public void print() { new Printer().print(value); } } }제가 이해한 바로는, 강의에서 설명해주신대로 new Container<>(0)에서 public static class Container<Integer> { Integer value; public Container(Integer t) { value = t; } public void print() { new Printer().print(value); } }컴파일러가 컴파일 시점에 이렇게 이해하고 나서 컴파일 종료 후, 타입 소거가 일어나서, Object로 변환한다고 이해했습니다.그래서 print 메서드를 호출할 때 value는 Object 타입이므로 B0가 출력되는 것이죠.여기서 궁금한 점은 바로 print의 오버로딩 메서드 선택 시점입니다. 제가 찾아본 바로는 오버로딩 메서드 선택시점은 컴파일 단계에서 이루어진다로 알고있습니다. 그렇다면 동작방식이 컴파일 종료 후 타입 소거가 일어나는게 아니라, 정확히는"컴파일 시작 - 타입 소거 - 오버로딩 메서드 선택 - 컴파일 종료 - 런타임" 이런식으로 일어나는건가용?아니면 어디서 오해하고 있는지 궁금합니다!
-
미해결김영한의 실전 자바 - 기본편
영상 실행이 안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]패키지 정리 영상부터 다음 영상 모두가 재생이 안됩니다
-
해결됨김영한의 실전 자바 - 중급 2편
해시 충돌에 대해서 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 올립니다.해시 리스트? 를 만들고, 데이터를 넣다 보면 어쩔 수 없이 해시 충돌이 일어날 수 밖에 없을것 같은데요.여기서 질문이 생깁니다.영한님이 쓰신 대로 링크드 리스트를 이용해서, 해시 리스트를 만들었다고 치고데이터를 넣다 보니, 해시 충돌이 여러 번 일어나는 경우가 생겼습니다. 여기서 해시 충돌이 몇번 일어 나는게, 최악의 상황인가요?캐파시티를 40개 로 해 놓고, for문으로 8만개의 숫자를 넣어보니사진처럼 나오던데요. (제컴 기준 i3, 렘16기가)즉 질문은해시 충돌을 계속 일으켜야 하는 상황 이라면, 해시 충돌을 몇 번 일으 키는게 메모리 상? 안전한가요?답변 부탁 드립니다.
-
해결됨스프링 핵심 원리 - 기본편
유연하지 못하다의 뜻이 궁금합니다.
[질문 내용] @Test @DisplayName("{빈이름+구체타입}으로 조회")//유연하지 못함 void findBeanByName2() { MemberService memberService = context.getBean("memberService", MemberServiceImpl.class); assertThat(memberService).isInstanceOf(MemberServiceImpl.class); }강사님께서 유연하지 못하다 언급만하시고 빠르게 넘어가셔서 질문남깁니다.위 소스와같이 getBean의 두번째 인자로 구체타입을 명시하는 것이 어떤 상황에서 유연하지 못한지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
static2.ex 문제1번 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 첫번째 사진과 정답 코드를 비교했을때============[정답코드] ============public Car(String name) { System.out.println("차량 구입, 이름: " + name); this.name = name; totalCars++; }=============================== this.name = name; 없이도 코드가 실행이 잘되는 이유를 알고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
OrderServiceImpl클래스 오류질문입니다
안녕하세요 강의를 듣고 OrderServiceImpl클래스를 작성했는데 오류가 3가지 뜹니다package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import hello.core.member.MemoryMembereRepository; public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository = new MemoryMembereRepository(); private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); @Override public Order createOrder(Long memberId, String itemName, int itemPrice){ Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } }위 코드의 9번째 줄에서는 Class 'OrderServiceImpl' must either be declared abstract or implement abstract method 'creatOrder(Long, String, int)' in 'OrderService' 에러가14번째 줄에서는 Method does not override method from its superclass,16번째 줄에서는 Cannot resolve method 'findById' in 'MemberRepository'에러가 납니다 어떻게 고치면 해결될지 질문글 올립니다
-
미해결스프링 핵심 원리 - 기본편
MemberApp 클래스와 테스트코드 MemberServiceTest코드 질문
안녕하세요 강의를 보며 코드를 따라 치고있는데 MemberApp클래스에 MemberService memberService = new MemberServiceImpl();코드에서는 Cannot resolve symbol 'MemberServiceImpl' 에러가test코드의 MemberServiceTest코드에서도 위와 같은 에러와 함께Assertions.assertThat(member).isEqualTo(findMember);Cannot resolve method 'assertThat' in 'Assertions'에러가 납니다 어떻게 해결하면 좋을까요? 빌드 파일도 함께 올립니다plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } 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() }
-
미해결스프링 핵심 원리 - 기본편
MemoryMemberRepository에서 오류가 납니다
package hello.core.member; import java.util.HashMap; import java.util.Map; public class MemoryMembereRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } }강의를 보며 위 코드를 작성하였는데 Class 'MemoryMembereRepository' must either be declared abstract or implement abstract method 'findBy(Long)' in 'MemberRepository'Method does not override method from its superclass두개 오류가 뜹니다 어떻게 해야할까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 11분17초경에 나오는 while2_3 코드변경문제 질문입니다while문 맨 끝에 i++;를 작성하지 않으면 i <= endNum을 정의해도 무한루프?로 실행이 되던데 왜 그런지 알 수 있을까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
교안으로만 공부해도 충분할까요?
팬심 또는 언젠간을 위해 강의를 전부 구매했습니다.구매 후 기본편 까지는 강의를 다봤거든요.그런데 교안을 너무 잘만드셔서 교안만 봐도 될꺼같다 라는 생각이 들더라구요.물론, 강의를 진득하게 듣고 이해하여, 그것을 체화하면 자바에 대해 더 깊게 이해할 수 있겠지만,문제는 역시 트레이드오프... 시간이 너무 많이 걸리네요. 자바 고급 2편까지 1달 반에서 2달 내로 끝내고 싶은데 강의를 들으면 도저히 그 시간을 맞출 수 없을꺼같아서 질문해봅니다.제목 그대로 교안만으로도 충분할까요?
-
미해결김영한의 실전 자바 - 중급 2편
Tree
혹시 스택,큐,set, hash등의 강의는 있는데, tree 에 대한 강의는 없는 것 같은데 다른 편에서 Tree 에 대해서 어느정도라도 다루어주시나요 ?
-
미해결스프링 핵심 원리 - 기본편
실행 로그에 스프링로고가 없이 실행되는 이유
안녕하세요. '스프링으로 전환하기' 강의에서 @Configuration 설정파일과ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class); 를 이용했을 때 실행되는 실행로그에 스프링로고가 보이지 않는 이유가 궁금합니다.보통 스프링웹MVC 를 구동할 때 스프링로고그림이 항상 보였거든요.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
Fade 구현 파트에서 childcount 부분이 헷갈려서요
로비씬 마지막에 Fade 구현 파트에서 UIManager에 CloseUI 함수에서 lastchild 가져오는 부분을 var lastChild = UICanvasTrs.GetChild(UICanvasTrs.childCount - 3); 빼기 숫자를 FadeImg 추가했으니 3으로 수정하는 부분이요. 강의에서도 유니티 창에서 추가 설명해주시긴 했는데 약간 헷갈려서요이 코드 이후에 설명해 주실때 lastChild가 true면 겟 컴포넌트로 BaseUI 컴포넌트 가져오는데 이게 위 코드에서 -3으로 하면 null이 되니까 ... 대략 이런 방식으로 설명 주셨는데 이 부분도 잘 이해가 안돼서요 추가로 더 설명해 주실 수 있을까요
-
해결됨스프링 핵심 원리 - 기본편
컴파일시점, 런타임시점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]조영호님의 '오브젝트'를 먼저 읽고 강의를 수강하고 있습니다. 책과 매우 유사한 상황에 또 놓여졌는데 책에서 이해하기 어려웠던 개념(컴파일시점, 런타임시점)을 강의에서도 다루고 있어질문드립니다.컴파일시점에 결정되는 클래스다이어그램이 있고런타임시점에 결정되는 객체다이어그램이 있습니다. 컴파일시점에는 인터페이스에 의존하고런타임시점에는 구현클래스에 의존하는 양상을 보이는데요. 질문입니다. AppConfig에서 생성자호출코드가 있는데파라미터로 의존성이 자리를 차지합니다.예를들면) new MemberServiceImpl(new MemoryMemberRepository()); 위 예시 소스코드로 인해서 컴파일시점에 벌써부터MemberServiceImpl객체가 MemeoryMemberRespository객체에 의존적이라는 것이 결정되는거 아닌가?라는 의문이 생겼습니다. 개발자가 작성한 MemberServiceImpl클래스는 컴파일시점이고public static void main(String[] args) 내에서 작성된 실행코드들은 런타임시점이라고 생각할 수 있는건가요?그래서 AppConfig내에서 MemberServiceImpl구현객체를 new하는 코드 및 의존성주입하는 코드들 전부 런타임에 결정되는 것이라고 정리를 해도 좋은지 궁금합니다. {MemberServiceImpl } 와{main메소드 ,AppConfig} 이 둘은 결이 달라보입니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
강의랑 교안이랑 다른 부분이 있습니다.
File, Files의 4페이지밑에서 세 번째 줄Path newFile = Paths.get("temp/newExample.txt");교안에는 위와 같이 나와있는데, 강의 영상에서는 아래와 같이 코드를 작성해주셨습니다.Path newFile = Path.of("temp/newExample.txt"); 두 코드는 같은 역할을 하는 것인가요??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
버퍼 질문입니다.
1. 1byte 씩 전송하면 당연히 시스템콜이 많이 작동하므로 속도가 느리다2. 8바이트씩 전송하면 시스템 콜에서 어차피 8바이트씩 전송하므로 시스템 콜을 적게 호출 할 수 있다 [질문]한번에 전송해도 시스템콜에서 8kb바이트씩 보낼텐데시스템콜 요청하는 횟수가 2번과 비슷할텐데 왜 버퍼를 쓰는게 더 빠르게 나오는 걸까요?혹시 이게 한번 전송하면 한꺼번에 시스템콜 직전까지 전달하므로 병목현상 뭐 그런걸까요?++강의에서 한번에 써도 os상에서 8kb씩 보내신다고 했던것 같은데 맞나요?메모리에 한번에 올려서 시스템콜에 가져다 주는 것이 부하가 걸려서 8kb씩 버퍼로 하는 것보다 더 느린걸까요?
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
버퍼 질문입니다!
한번에 쓰는 것과 8kb씩 버퍼를 이용해서 쓰는 것에 대해서어차피 시스템 콜에서 8kb씩 전송하는데한번에 가져다 주는 게 더 빨라야 하는 것이라고 인식되는데어떻게 8kb씩 버퍼로 주는게 더 빠른걸까요?한번에 주든 8kb씩 버퍼로 주든시스템 콜에서 8kb씩 전송하는 거면한번에 주는 게 나은 거 아닌가요!?