묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
Future cancel기능을 사용했지만 interrupt가 발생하지 않을 때 어떻게 처리해야하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.Future의 cancel기능에 대해 실험하면서 해결하기 어려운 부분을 만나 질문드립니다.📋실험 내용Callable의 call메서드 내부에서 I/O와 같은 블로킹 작업 진행(or Interrupt가 되지 않는 작업)Future의 cancel 진행스레드 호출 대상은 CancellationException 예외 발생 후 진행※ 스레드 풀의 스레드는 계속 실행 중임을 확인 💥문제 사항이런 방식으로 로직이 지속 실행되면 스레드 풀의 스레드는 종료되지 않으면서 고갈되어 가고 결국엔 작업이 쌓이다가 에러를 뱉어내고 오작동 하게 될 것이라 추측됩니다. ❓질문 내용Q. cancel기능은 Interrupt 를 발생해주면서 작업을 중단합니다. 만약 I/O 작업 처럼 Interrupt가 먹히지 않는 로직에서는 어떻게 스레드의 실행을 종료하고 스레드 풀로 반납할 수 있을까요?💻 코드public class FutureCancelMain { private static boolean mayInterrupIfRunning = true; public static void main(String[] args) { ExecutorService es = Executors.newFixedThreadPool(1); Future<String> future = es.submit(new MyTask()); log("Future.state: " + future.state()); sleep(3000); log("future.cancel(" + mayInterrupIfRunning + ") 호출"); boolean cancelResult = future.cancel(mayInterrupIfRunning); log("cancel(" + mayInterrupIfRunning + ") result: " + cancelResult); try { log("Future result: " + future.get()); } catch (CancellationException e) { log("Future는 이미 취소되었습니다."); } catch (ExecutionException | InterruptedException e) { e.printStackTrace(); } es.close(); } static class MyTask implements Callable<String> { @Override public String call(){ boolean flag = true; // Scanner scanner = new Scanner(System.in); while(flag) { log("무한 작업 중..."); } return "Completed"; } }
-
해결됨알면 칼퇴하는 Spring Boot 백엔드 바이브 코딩 맛보기
클로드 대답 설정 관련 질문
안녕하세요 분명 강사님 클로드는 굉장히 친절하게 현 상황도 보고를 하고 다 만들면 어떤 기능이 있고 이런이런거에 기반해서 만들었다고 뜨는데 제건 그렇지 않네요 기존에 설정을 해두신 건지 궁금합니다.
-
해결됨윤재성의 자바 기반 안드로이드 앱개발 Part 4 - 실전프로젝트
78강 소스코드 및 미디어 파일 미디어 파일 이미지 파일 누락
소프코드 및 미디어 파일\미디어파일\logo_icon\mipmap-hdpi 디렉토리에 있는 logo_icon.png가 없습니다. 파일 수정 부탁드립니다.
-
미해결스프링 부트와 리액트로 구현하는 보안 JWT 로그인
JJWT 0.12버전 이상 Jwts.parserBuilder deprecated
안녕하세요. 20강 클레임 미검증 주의 강의를 듣다가JJWT 0.12 버전에서Claims claims = Jwts.parserBuilder() .setSigningKey(key) .build() .parseClaimsJws(token) .getBody();위의 예제 코드에서 parserBuilder, setSigningKey는더 이상 0.12 이상 버전에서는 지원하지 않는 메소드라고 나와서요Claims claims = Jwts.parser() .verifyWith(key) .build() .parseSignedClaims(token) .getPayload();위의 코드로 대체하면 될지 문의 드립니다...!
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
db sql vs java stream 비교 궁금증 알려주세요!
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 스트림 강의를 보다가 질문 드립니다 웹 어플리케이션 기준으로 스트림은 보통 데이터를 처리하는데 쓰일 것 같은데요 많은양의 데이터라면 보통 디비단에서 최대한 필터링하고 걸러서 가져오는게 네트워크호출랴도 그렇고 이점이 많을것 같은데 그럼 스트림은 보통 언제쓰이나요? 데이터를 필터링하고 정렬하고 가공하는건 디비단에서 해서 가져오는게 더 효율이 좋다 했을 때 스트림으로 가공하는 데이터 수준은 디비단에서 다 할 수 있을 것 같아서요 같은 데이터를 가공하단 는게 필요하다고 해도 기존 sql 재사용 하고 스트림으로 재가공 하는것보다는 새로 sql문 날려서 가져오는게 더 낫지 않나요? 보통 웹 어플리케이션에서 어떤 상황에 쓰이는지 궁금합니다!
-
미해결2026 코딩테스트 올인원 [JAVA]
점진적과부하 문제 - 시간 초과 오류
public int[] solution1(int[] weights) { int[] answer = new int[weights.length]; ArrayDeque<int[]> stack = new ArrayDeque<>(); for (int i = 0; i < weights.length; i++) { int weight = weights[i]; while (!stack.isEmpty() && stack.peek()[1] < weight) { var popped = stack.pop(); int poppedIndex = popped[0]; answer[poppedIndex] = i - poppedIndex; } stack.push(new int[] {i, weight}); } return answer; }위와 같이 답변을 작성하였고, 강의에서 나오는 답과 변수명 정도 외에는 차이가 없어 보이는데, 시간 초과 오류가 발생합니다.
-
미해결2026 코딩테스트 올인원 [JAVA]
예제 2번 오류
예시 2:입력: ‘((())())’출력: -1코딩 테스트 사이트에 올라와있는 예제 2번의 입력값과 강의에서 설명해주시는 입력값이 다르고, 출력값도 잘못 기입되어 있는 것 같습니다.
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
진도율 초기화?
공부를 다시 해보려고 합니다. 진도율 초기화 후 다시 하는 방법이 있을까요?
-
해결됨[CS 기술면접 6] 말이 트이는 자바와 객체지향
JVM - 자바 가상머신의 구조와 실행 매커니즘 2. 자바개요 부분에서 질문 있습니다.
"JVM 설명 부분에서 자바 코드를 바이트 코드로 변환하여 실행하는 역할"이라고 설명 하셨는데,그건 자바 컴파일러가 하는 역할 아닌가요 ?바이트 코드를 기계어로 바꿔주는 것이 JVM이라고 알고 있는데, 헷갈려서 질문 남깁니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
project JDK is misconfigured
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.뭐가 문제일까요,,
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
봉우리 문제 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 봉우리 문제에서 쌤과 동일하게 작성하였는데 채점해보니 오답으로 나옵니다.인텔리제이에서도 정답 올바르게 나오는것 확인하였는데 왜 오답일까요?? import java.util.Scanner; public class Main { int[] dx = {-1, 0, 1, 0}; int[] dy = {0, 1, 0, -1}; public int solution(int n, int[][] arr) { int answer = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++){ boolean flag = true; for(int k = 0; k < 4; k++) { int nx = i + dx[k]; int ny = j + dy[k]; if(nx >= 0 && nx < n && ny >= 0 && ny < n && arr[nx][ny] > arr[i][j]) { flag = false; break; } } if(flag) answer++; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[][] arr = new int[n][n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { arr[i][j] = kb.nextInt(); } } System.out.println(T.solution(n, arr)); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 실행오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)MemberRepositoryTest가 실행이 안됩니다.실행 시 Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/%EC%9D%B8%ED%94%84%EB%9F%B0_%EC%8A%A4%ED%94%84%EB%A7%81JPA_%EC%8B%A4%EC%A0%841/jpashop/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 2s4 actionable tasks: 1 executed, 3 up-to-date라는 오류가 계속 뜹니다.https://drive.google.com/file/d/1LNpdY4Fqk9nXDHT11tj0hEyGf_zKRgVr/view?usp=sharing
-
미해결[4주 과정] 『부트캠프 백엔드 개발자 편 with 스프링 부트』 완독 챌린지
ProductController 생성 위치
책 99페이지에서 만든 ProductController는 src/test/java 하위에 만들어져있는데, 이곳에 파일을 그대로 둔 채로 책 107페이지 스프링 빈 실습을 진행하면 제대로 진행이 되지 않았습니다.혹시나 하여 test가 아닌 src/main/java 하위로 옮기고 진행하니 책의 결과와 같은 결과가 나왔습니다. 책 어디에도 ProductController의 파일 위치를 옮긴다는 말이 작성되어있지 않은데 옮기고 진행하는 것이 맞는지 궁금합니다!
-
미해결입문 알고리즘 코딩테스트 40일 완성 (by 하루코딩)
Day8 A+B-7 문제
같은 방식으로 작성 후 백준에 직접 제출했으나, 계속 틀렸습니다로 나옵니다.. 이유가 뭘까요?제출한 소스 입니다.import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int T = sc.nextInt(); for(int i=1;i<=T;i++){ int A=sc.nextInt(); int B=sc.nextInt(); int sum = A+B; System.out.print("Case #"+i+": "+sum); } }}
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
상속에 대해 오버라이딩에 대해
상속과 오버라이딩 차이가 햇깔리네요 영상 어디에 오버라이딩에 대한 영상이 있을까요문제집도 풀고있는데 이해좀 할려는데.....차이라기보다 문제 푸는 방식이 햇깔려요상속은 영상제목에 있구요
-
미해결김영한의 실전 자바 - 중급 1편
안녕하세요 코딩테스트와 병행하고 싶어서 질문드립니다.
질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 선생님 수업 감사히 잘 듣고 있습니다. 선생님께서 정리해주신 커리큘럼 모두 읽어봤고, 늦더라도 모두 따라갈 생각입니다.다름이 아니라 시간관계상 그 전에 제가 코딩테스트를 준비해야돼서 역량을 키울 겸 자바 진도와 병행하고 싶은데 자바 로드맵 기준으로 최소한 어디까지 수강하고 코딩 테스트를 준비해보는게 좋을까요??
-
미해결김영한의 실전 자바 - 기본편
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
[질문 내용]상속관계에서 자식클래스의 멤버 변수에 부모 클래스와 같은 이름으로 정의를 하게 되면 자식 클래스의 멤버 변수를 먼저 찾는것으로 보여지는데 @Override 어노테이션은 붙히는게 불가능한것 처럼 보입니다 상속관계에서 멤버 변수에는 오버라이딩의 개념이 없는건가요?
-
미해결포트폴리오 어나더레벨 | 합격하는 이력서 작성법
실제로 운영하고 있는 서비스면
제가 참여하고 이력서에 작성한 프로젝트가 실제로 500명 정도가 사용하는 사이트여서 깃허브 코드 공개가 꺼려지는데 이럴 경우엔 어떻게 해야하나요? 링크 첨부 안해도 괜찮을까요?
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
수업자료 pdf 질문
아직 강의를 하나도 듣지는 않았습니다. 커리큘럼을 쭉 보는데 수업자료를 pdf로 다운받을 수 있는 버튼이 있는 강의가 있고, 그냥 '수업자료'라고만 나와 있어서 다운은 받지 못하고 웹에서 읽기만 할 수 있는 것 같습니다. 혹시 제가 잘 본 것이 맞나요?? 아니면 모두 pdf에 제공이 되는 것인가요??
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
9분 35초 질문
선생님. #10부터 1까지 2씩 감소하는 숫자를 출력 이라고 하셨는데, 당연 시험에는 나오지 않겠죠 저런 말이..그럼 10부터 -6까지지 2씩 감소하는 숫자를 출력 이라는게 성립 되려면 for i in range(10 : -7 : -2):print(i) 이렇게 되면 1086420-2-4-6결과값이 이렇게 나오는걸까요?