묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
JoinMainV0에 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이런 식으로 출력이 되는데 코드에 어떤 문제가 있는 건가요?? Start 작업 시작 작업 시작 End 작업 완료 작업 완료 이런 식으로 출력 값이 떠야 하는데 어떤 문제가 있는 건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.while 문 안에 int totalcost = 0;을 넣으면 왜 안되는지 잘 모르겠습니다!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
김영한 선생님이 쓰시는 정리하시는 메모장 같은 프로그램이 어떤건가요?? 강의내용 정리하시는 툴일 궁금합니다.
김영한 선생님이 쓰시는 정리하시는 메모장 같은 프로그램이 어떤건가요?? 강의내용 정리하시는 툴일 궁금합니다.
-
해결됨김영한의 실전 자바 - 중급 1편
익명 클래스 질문(만든 이유가 이것인지요?)
안녕하세요. 궁금중이 생겨서 질문을 남깁니다.전에 y2gcoder님이 저에게 답변 해준 ‘익명 클래스를 어떻게 만드는지, 왜 저렇게 되는지에 대해서는 이해했다는 조건이 필요할 것 같습니다’ 이글을 읽으면서 생각하다가 이런생각이 들었습니다.익명클래스는 인터페이스 및 상속 받은 것만 쓸수 있다고 하였고, 익명클래스는 메서드 안의 내용을 통채로 넣어 버린것을 알수 있었습니다.그러면서 들은 생각이 상속이나 임플리먼츠 를 할때 메서드 고작 하나(1개) 밖에 없으니, 새로운 클래스를 만들기 보다는, 익명클래스를 만들어서 용량도 줄이고 유동성 있게 만들어보자 라는 생각이 들더군요.영한님이 보여주신Run()이라는 메서드를 보면서 말이죠.혹시 저의 생각이 맞는지 알고 싶습니다.틀리다면 틀리다고 말씀해 주시면 감사하겠습니다.답변 부탁드립니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
close()메소드
ExecutorService에서 close()메소드가 없다고 나오는데 close() 대신 shutdown()을 사용하는 건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
개발환경 구축
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]벤더에서 Orcale OpenJDK 21버전이 안뜨는데 어떤걸로 설정해야되나요??
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
한글 커서 한 칸 앞으로 밀려서 쳐짐
인텔리제이 에디터에 영어를 칠 때는 괜찮은데 한글만 커서가 한 칸 앞으로 당겨져서 보이네요 ㅠㅠ진행하는데 큰 문제가 없긴 한데 너무 신경쓰여요😢 구글링이랑 스택오버플로우에 찾아봤는데 해결방법을 모르겠는데 혹시 같은 이슈가 있으신분 있으실까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
로드맵에대한 질문입니다.
안녕하세요 본강의의 로드맵에관해서 질문있습니try catch에 관해서 좀 더 공부해보고싶은데현재 로드맵과 수강내용을 확인해보았는try / catch 구문에 대한 내용을 다루고있는 섹션은 없는것으로 보입니다.강의 과정에 해당부분도 어느정도 다루는지 궁굼합니다.
-
해결됨김영한의 실전 자바 - 중급 2편
Comparator질문입니다
public class SortMain2 { public static void main(String[] args) { Integer[] arr = {3,2,1}; System.out.println(Arrays.toString(arr)); System.out.println("Comparator 비교"); Arrays.sort(arr,new AscComparator()); System.out.println("AscComparator:"+Arrays.toString(arr)); } } public class AscComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { if(o1 > o2){ return 1; } else if (o1 == o2) { return 0; }else return -1; } }SortMain2함수에서 Arrays.sort(arr,new AscComparator()); 부분에서 new AscComapator()로 객체만 생성했는데 어떻게 compare함수까지 호출되서 비교를 할수있는거죠?이해가안갑니다...함수 호출을안해는데..
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메서드 영역에 있는 상수풀이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자바 8이후로는 힙 영역에 있다고 하는데 맞나요?? 자료에는 메서드 영역에 있길래 여쭤봅니다
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
개념이랑 원리는 이해하고
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실사용은 Executor(멀티스레드), Look(동시성)을 위주로 사용하는 거죠?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
unlock()을 호출 했을 때
ReentrantLock에서 lock.unlock()을 호출하면, 대기 중인 스레드들이 락을 획득하려고 서로 경쟁하게 됩니다. 제가 이해한 바로는, unlock이 호출된 후 스레드들중 락을 획득한 한개의 스레드는 RUNNABLE 상태로 전환되고, 나머지 락을 획득하지 못한 스레드들은 다시 WAITING 상태로 돌아가는 것이라고 알고 있습니다. 이 과정에서 스레드들이 경쟁하는 순간의 상태가 정확히 어떻게 되는지 궁금합니다. 경쟁순간에는 락을 획득하려는 스레드들 모두 RUNNABLE 상태인가요?
-
해결됨김영한의 실전 자바 - 기본편
[기본형과 참조형 문제풀이] 코드에 관한 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요!항상 선생님께서 진행하시는 문제 풀이를 수강한 이후에, 혼자 좀 더 나은 방식으로 만들 수는 없을까 고민을 하는데요,Method를 배우고 난 이후로, 코드를 대부분 Method로 넘겨서 작성하다 보니 '기능을 전부 Method로 넘겨서 작성하는 것이 진짜 잘 작성한 코드가 맞을까?' 하는 의문이 들었습니다. 아래는 마지막 문제를 제가 코딩한 내용인데요, 두 가지 질문이 있습니다.실무적인 관점과 비교해서 아래의 코드처럼 작성하는 방식(모든 기능을 Method에 집약한 방식)이 괜찮은 방식인가요?코드의 개선점이 있다면 어떤 점을 개선하면 좋을까요?항상 좋은 강의 해주셔서 감사합니다!package ref.ex; import java.util.Scanner; public class ProductOrderMain2 { public static void main(String[] args) { int num = orderCount(); ProductOrder[] orders = new ProductOrder[num]; createOrder(orders); orderPrint(orders); } static int orderCount() { Scanner scan = new Scanner(System.in); System.out.println("-----------------------------------"); System.out.println(" 상품 등록 시스템 "); System.out.println("-----------------------------------"); System.out.print("입력할 주문의 개수를 입력하세요: "); int num = scan.nextInt(); System.out.println(); return num; } static void createOrder(ProductOrder[] orders) { Scanner scan = new Scanner(System.in); for(int i = 0; i < orders.length; i++) { orders[i] = new ProductOrder(); System.out.println((i+1) + "번째 주문 정보를 입력하세요"); System.out.print("상품명: "); orders[i].productName = scan.nextLine(); System.out.print("가격: "); orders[i].price = scan.nextInt(); System.out.print("수량: "); orders[i].quantity = scan.nextInt(); scan.nextLine(); System.out.println(); } } static void orderPrint(ProductOrder[] orders) { int total = 0; for(ProductOrder P : orders) { System.out.println("상품명: " + P.productName + ", 가격: " + P.price + ", 수량: " + P.quantity); total += (P.price * P.quantity); } System.out.println("총 결제금액: " + total); } }
-
미해결스프링 핵심 원리 - 기본편
static 지운 후 memberRepository 오류
[질문 내용]테스트 케이스 수행 시 다른 주소값이 나오길래, 다른 분들 질문글 참고하여 AppConfig의 MemberRepository 부분에 static을 지워보았으나, 테스트를 돌려보니 아래와 같은 오류가 뜹니다. OrderServiceImpl 과 MemberServiceImple의 memberRepositoy 에서 final을 지워봤으나 해결하지 못고 오류를 찾지 못하여 질문 드립니다.<MemoryMemberRepository> <OrderServiceImpl> <MemberServiceImpl>
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
yield()를 추가해도 무한반복은 계속해서 발생하지 않을까요?
안녕하세요. 강의 수강 중 궁금한 것이 있어 질문드립니다.MyPrinterV4에서 yield()를 추가해도 인터럽트 되지 않은 상태에서 while문에서 무한 반복이 발생(성능저하의 근본 원인)하는 것은 V3와 동일하기 때문에 때문에 성능 향상이 있을까 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
주문과 도메인 개발 8:21부분 오류 해결 도와주세요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] DiscountPolicy 부분에서 자꾸 cannot resolve symbol 'DiscountPolicy' 이라는 오류문구가 뜨는데 뭐가 문제인지 모르겠습니다. 라이브 코딩 계속 따라 쳤는데 이유를 모르겠네요..
-
미해결스프링 핵심 원리 - 기본편
1L이 무슨 뜻인지 확실하게 모르겠습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]구글링으로 알아본 1L 의 의미는 long 자료형이라는 뜻도 있고자바의 직렬화를 쓸 때 쓰인다고 하는데 이건 잘 이해가 안되네요.. 1L를 왜쓰는지 모르겠어요
-
해결됨오브젝트 - 기초편
객체 지향 설계 첫번째 원칙
안녕하세요. 좋은 강의 찍어주셔서 진심으로 감사합니다. 한 마디 한 마디 이해하려고 하며 배우고 있습니다. 3-1 강의 11분 쯤에 '행동을 결정하고 객체를 나중에 선택하라는 원칙'이 객체를 선택하기 전에 요청을 결정하기 때문에 코드를 수정하지 않고도 협력하는 객체를 교체할 수 있게 해준다고 말씀하신 부분을 좀 더 설명해주실 수 있을까요 ??calculateDiscount 행동을 먼저 정하고 이 행동을 하기에 적합한 객체를 선택한다고 말씀해주신 앞부분 내용은 잘 이해했는데, '객체를 선택하기 전에 요청을 결정하기 때문에 코드를 수정하지 않고도 협력하는 객체를 교체할 수 있게 해준다' 이 부분에 대한 이해가 잘 안 갑니다.여담이지만 <객체지향과 사실과 오해> 도 잘 읽었습니다. <오브젝트> 책이 두꺼워서 망설이고 있었는데 강의를 내주셔서 감사합니다.
-
해결됨김영한의 실전 자바 - 중급 1편
중첩 내부 클래스 문제풀이2 - 코드 리뷰 좀 해주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.중첩 내부 클래스 문제풀이2 풀긴 했는데 좀 부분들이 좀 달려서 이것도 괜찮은가? 싶은 게 있습니다.이 코드를 보고 좀 고쳐야 할게 있을까요?참조는 inner클래스 car클래스를 참조했습니다.addBook() 메서드에서 new book(내용) 이게 더 낳은것 같으니 이거 빼고요.추가1.문제풀이1 문제4 AnonymousMain을 인텔리제이 자동완성으로 풀게 되었는데 이것은 괜찮은지 묻고싶습니다.답변 부탁드립니다.
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
trylock(1500)질문입니다
안녕하세요 강의 잘보고 있습니다. 강의 내용중 tryLock메서드 실습 부분에 서 tryLock에 인자로 500 밀리초를 넘겨 0.5초동안 락을 획득하지못하면 포기하는 것을 실습했습니다. 추가로 1500밀리초를 넘겨서 돌려봤는데 이때도 락을 얻지 못했습니다. 출금시간은 1초라서 락해제까지 완료가 된상태인데 왜 다음스레드가 락을 얻지 못할까여,, ㅠㅠ19:00:56.252 [ Thread-1] 거래 시작: BankAccountV519:00:56.252 [ Thread-0] 거래 시작: BankAccountV519:00:56.254 [ Thread-1] [검증 시작] 출금액: 800, 잔액: 100019:00:56.254 [ Thread-1] [검증 완료] 출금액: 800, 잔액: 100019:00:56.752 [ main] t1 state: TIMED_WAITING19:00:56.752 [ main] t2 state: TIMED_WAITING19:00:57.258 [ Thread-1] [출금 완료] 출금액: 800, 잔액: 20019:00:57.258 [ Thread-1] Thread-1 락 해제19:00:57.258 [ Thread-1] 거래 종료19:00:57.758 [ Thread-0] [진입 실패] 이미 처리중인 작업이 있습니다 if (!lock.tryLock(1500, TimeUnit.MILLISECONDS)) { log("[진입 실패] 이미 처리중인 작업이 있습니다") return false } lock.lock() //그냐 트라이랑 세트라 보삼 try { log("[검증 시작] 출금액: $amount, 잔액: $balance") if (amount > balance) { log("[검증 실패] 출금액: $amount, 잔액: $balance") return false } log("[검증 완료] 출금액: $amount, 잔액: $balance") Thread.sleep(1000) balance -= amount log("[출금 완료] 출금액: $amount, 잔액: $balance") } finally { log("${Thread.currentThread().name} 락 해제") lock.unlock() //언락 반드시 해야함 }코드가 코틀린인점 죄송합니다.. 자바랑 같은라이브러리를 사용해서 혹시나해서 여쭤봅니다