inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

반복문 강의 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

13분 10초대 코드 질문입니다! 이 코드에서 2단 출력 결과는 i=10일 때 2 * 10 = 20까지 출력하는게 맞을까요?

  • python
  • java
  • c
  • 정보처리기사
김강식 댓글 1 좋아요 0 조회수 178

상속받지 않은 클래스 객체 생성

해결됨

김영한의 실전 자바 - 중급 1편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 예외 처리가 필요한 이유1 - 시작 강의 7분대에 NetworkServiceV0 클래스에서 sendMessage 메서드 안에 NetworkClinetV0 클래스 객체를 생성하는데 지금까지 배운 내용으로는 상속을 받지 않고서 저렇게 타 클래스의 객체를 생성하는 건 처음 봐서요! 그래서 찾아봤더니 이게 의존성 주입(DI)이라는데 제가 알맞게 이해한 것인지, 또한 이 기법에 대해서 추가적인 설명을 여쭤보고 싶습니다! 이전에 배운 내용인데 제가 모르고 있는 것은 아닌 거죠?

  • java
  • 객체지향
클레어몬트 댓글 2 좋아요 0 조회수 123

abstract 상속

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

3분 50초 출력값을 봤을 때, 부모가 먼저 안태어나도 되는건가요?

  • python
  • java
  • c
  • 정보처리기사
꿈나무 댓글 1 좋아요 0 조회수 146

진도 문의

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

104개 강의 다들은거 같은데, 103개 완료라고만 뜹니다. 확인 방법이 있을까요?

  • java
  • 코딩-테스트
kyujong.roh 댓글 1 좋아요 0 조회수 95

orderList() 관련 질문입니다

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

orderController - orderList()에서 파라미터로 @ModelAttribute("orderSearch") OrderSearch orderSearch를 바인딩하여 전달하는데, 이 orderSearch 객체가 어디서 객체를 가져와서 바인딩되는지 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
서현진 댓글 2 좋아요 0 조회수 179

컨테이너 환경에서 MSA 테스트 (실습) 강의에서..

미해결

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

실습 따라해보려는데 기본적으로 앱 빌드에 필요한 파일들은 어떻게 로컬환경에 받아야 하나요? 수업 자체는 잘 이해가 되는데 실습이 안돼서.. 강의에서 놓친게 있나 싶어서 질문드립니다

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
유효석 댓글 1 좋아요 0 조회수 216

Virtual Private Cloud 요금 질문입니다!

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

현재 EC2인스턴스와 탄력적IP만 연결했다가 지금은 탄력적IP는 연결하지않고 삭제한후에 인스턴스만으로 작업중입니다. 저는 RDS나 S3를 아직 사용하지않았는데 Virtual Private Cloud 라는 부분에서 금액이 발생되어 질문드립니다! 비용이 발생한 이유와 비용 발생을 막을 방법이 궁금합니다. 또한 S3 프론트엔드 서버를 올릴 예정이였는데 이상황에서도 비용이 추가로 발생하는지 궁금합니다.

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
김지섭 댓글 1 좋아요 0 조회수 1242

for반복문을 임의로 바꿔 봤는데 오류가 나는 이유를 모르겠어요

미해결

김영한의 실전 자바 - 기본편

안녕하세요 실전 자바 기본편 섹션3 기본형과 참조형 문제와 풀이부분에서 for (int i = 0; i < orders.length; i++) { System.out.println((i + 1) + "번째 주문 정보를 입력하세요."); System.out.println("상품명: "); String productName = scanner.nextLine(); System.out.println("가격: "); int price = scanner.nextInt(); System.out.println("수량: "); int quantity = scanner.nextInt(); scanner.nextLine(); orders[i] = createOrder(productName, price, quantity); } for 반복문을 for(ProductOrder order : orders) { System.out.println("상품명을 입력하세요: "); String productName = scanner.nextLine(); System.out.println("가격을 입력하세요: "); int price = scanner.nextInt(); System.out.println("갯수를 입력하세요: "); int quantity = scanner.nextInt(); scanner.nextLine(); order = createOrder(productName, price, quantity); } 이렇게 고쳤봤더니 createOrder 메소드에서 order변수값이 null이라면서 오류가 나는데요.. 혹시 order변수에 null값이 들어가면서 오류가 나는 이유가 뭔지 알수있을까요?

  • java
  • 객체지향
nimbus 댓글 1 좋아요 0 조회수 116

영상 속 문제 파일 요청드립니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

선생님 안녕하세요. 오늘 재접수 했습니다. 열기가 대단한 지 두시간 반만에 집근처는 모두 마감이라 한시간 내외의 거리로 접수했어요 지난번에 요청드렸었던 내용으로 재 요청 드립니다. 영상에서 사용하신 문제를 다시 풀어볼 수가 없어서요(종이로 써가면서..) 영상 캡쳐도 안되더라고요 문제 모음집 파일 요청 드립니다.

  • python
  • java
  • c
  • 정보처리기사
이성미 댓글 1 좋아요 0 조회수 233

Scanner 문자열 (한글)

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

Scanner 함수 예제풀이중 문자열로 입력을 받게해야하는데 한글은 입력이 안됩니다 뭐가 문제일까요????

  • java
  • 객체지향
유동곤 댓글 2 좋아요 0 조회수 208

부모쓰레드 개념 질문입니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요, 강의 중, 모든 쓰레드는 직접적으로 만들 수 없고 메인쓰레드에 의해서 생성이 된다고 하셨던 부분에 대해서 궁금한 점이 있어서 질문을 남깁니다. 자바 말고 스프링의 경우에도 1개의 메인쓰레드가 N개의 요청에 따른 스레드를 생성해주는 구조일까요? 요청당 1개의 스레드를 차지하는데 이 경우에는 어떻게 되는지 궁금합니다 ~

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
황보협 댓글 1 좋아요 0 조회수 210

자바 예외처리 할때 쓴 주석질문이요

해결됨

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 자바 예외 처리 하면서 본 주석이 궁금해 져서 질문을 남깁니다. 영한님이 throws을 보여주려고, 마우스에 callThrow() 된 것을 보고 (사진 참조) 다른것은 어떻게 될까 해서 그래서 다른 것도 마우스에 되보니, 사진처럼 되엇습니다. 보니까 초록색 주석이 이런 역할을 하더라고요. 그래서 궁금해진 점이 초록색 주석 처럼, 이런 식의 주석이 또 있나요? 그리고 영상을 보니까 단축키를 안쓰고, 타이핑을 하던데, 혹 단축키 같은 게 있을까요? 추가1 : 너무 유용해 보여서요. 추가2 : 글이 좀 너무 이상해서(도둑놈 심보..여서) 수정 하였 습니다. 답변 부탁 드립니다.

  • java
  • 객체지향
생각하는자 댓글 2 좋아요 1 조회수 343

SSM VPC Endpoint 관련 질문 드립니다

미해결

중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼

안녕하세요. Bastion Host 대신 SSM을 사용하여 private subnet, isolated private subnet(no nat)에 있는 EC2 instance에 SSH 대신 연결하기 위해 다음과 같이 코드를 작성했습니다. 그런데 다음과 같은 오류가 발생하였습니다. 동일 AWS Service에 대한 VPC Endpoint가 AZ 당 반드시 하나만 존재하도록 강제하고 있는 것 같습니다. 그래서 현재 vpc 디렉토리 내에 강사님이 구조를 모방하여 module, dev_apnortheast2, stag_apnortheast2, prod_apnortheast2 총 4개의 모듈이 존재하도록 작성했는데, 어떻게 해결할 지 간단하게 생각해봤습니다. shared_apnortheast2라는 새로운 디렉토리를 만들어서 SSM을 위한 리소스들을 전부 여기에 저장하고, data나 remote_state 같은 블록을 통해 각 모듈에서 가져다 쓰는 것 -> 관리 포인트가 늘어나는 단점 + 다른 환경 끼리 같은 리소스를 써서 헷갈리는 단점, 여기다 전부 만들면 되서 env 마다 충돌 안 나게 할 필요 없는 장점 dev, stag, prod에서 각각 하나의 az에만 SSM을 위한 리소스, VPC Endpoint를 만드는 것 -> 각 모듈 내의 SSM, VPC Endpoint 만들 때 실수로 겹치지 않도록 az를 신경 써줘야 함 + 운 나쁘게 하나의 az가 다운되었는데 그것이 prod 환경의 SSM, VPC Endpoint면 수동 조치 필요 + 환경 별 불일치 발생 3. ssm 자체를 VPC Endpoint가 아닌 다른 방법, 강사님이 언급하신 Transit Gateway 등을 사용하는 것 대략 이 정도로 생각을 해보았습니다. 아직 SSM, VPC Endpoint에 대한 개념이 완전히 정립되지 않아서 제가 생각한 방법 중 절대 사용해서는 안 되는 치명적인 함정이 있는지, 위 방법들 중 실제로 쓰이는 방법이 있는지, 강사님은 어떤 방법을 선호 하시는지가 궁금합니다. --- 앞 부분을 여러 번 돌려보고 직접 작성하면서 진행하느라 굉장히 느리게 진행하고 있는데 확실히 직접 몇 번 만들어 보고 다시 돌려보니 이해도가 늘어나는 것이 느껴집니다. 테라폼을 처음 접했을 때 하위 디렉토리 무시하고 현재 디렉토리 단위로만 모듈이 되는 것과 책 등에서는 어떻게 구조화 하는지를 알려주지 않았는데, 강사님 강의를 통해 조금씩 어떻게 사용하는지 느낌을 잡아갈 수 있었습니다. (리뷰에 써야하는 내용인데 아직도 앞부분 돌려보고 있어서 다 듣고 다시 쓰겠습니다.ㅋㅋ) 강의 반복해서 듣고 혼자 구조 짜고 실습을 해보니 이 사용자를 어떻게 관리하는지 부분이 상당히 방법이 많고 난해하더라구요. IAM User, Group, Role, Policy 여기까지는 그래도 엄청 어려운 개념은 없고 테라폼으로 리소스 생성도 가능한데 이거를 수백명 단위라고 생각하면 어떻게 자동으로 생성하고 관리하고 권한을 조절하는지가 상상이 잘 안 되더라구요. 그리고 요즘은 SSH->SSM으로 넘어갔듯 Organization과 SSO(이름이 Identity Center?로 바뀐 것 같습니다.)를 조합해서 사용하는 최신 방식도 많이 사용하고 있다는 것으로 알고 있는데, 테라폼을 처음 접했을 때처럼 이 중에서 어떤 것을 골라서 쓰고, 어떤 것을 안 써야하는지, 어떻게 자동화, 권한 조절을 하는지... 함정은 무엇인지 등이 감이 잘 안오는 상태입니다. 이런 부분을 실전 느낌으로 체계적으로 다루는 강의는 찾기 어려울 것 같아서 후속 강의를 계속 내시게 되면 IAM, Organization, SSO 등의 사용자 리소스 관리 및 자동화, 베스트 프랙티스도 꼭 보고 싶네요. 아 그리고 지금까지 테라폼 구조화 방식을 workspace, module + softlink, terragrunt 3가지 정도를 접했는데 workspace는 강사님과 Terraform 모듈 만드시는 분이 이미 겪어보고 module + softlink 방식이 낫다고 말씀해주셔서 깊게 보지 않았는데, terragrunt는 어떻게 생각하시는지, 어떤 단점이 있는지도 궁금합니다. 아래 예제 레포가 있는데 좀 방대해서 제대로 이해하고 해석하려면 시간이 걸리겠더라구요. https://github.com/cogini/multi-env-deploy 언제나 강의 잘 듣고 있습니다. 다음 강의들도 기대하겠습니다. 감사합니다.

  • aws
  • Terraform
  • devops
.. 댓글 2 좋아요 0 조회수 316

MemberRepositoryTest 부분에서 오류가 나요

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 커뮤니티 보면서 같은오류들 따라해봤는데 잘 안되네요 오류코드: No matching tests found in any candidate test task. Requested tests: Test pattern jpabook.jpashop.MemberRepositoryTest.testMember in task :test * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.10/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 12s 4 actionable tasks: 1 executed, 3 up-to-date

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
나상민 댓글 3 좋아요 0 조회수 540

56강에 대한 질문입니다(BoundedMain).

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] package thread.bounded; import static util.MyLogger.log; public class ProducerTask implements Runnable { private BoundedQueue queue; private String request; public ProducerTask(BoundedQueue queue, String request) { this.queue = queue; this.request = request; } @Override public void run() { log("[생산 시도] " + request + " -> " + queue); log("[생산 완료] " + request + " -> " + queue); } } package thread.bounded; import static util.MyLogger.log; public class ConsumerTask implements Runnable { private BoundedQueue queue; public ConsumerTask(BoundedQueue queue) { this.queue = queue; } @Override public void run() { log("[소비 시도] ? <- " + queue); String data = queue.take(); log("[소비 완료] " + data + " <- " + queue); } } package thread.bounded; public interface BoundedQueue { void put(String data); String take(); } package thread.bounded; import java.util.ArrayList; import java.util.List; import static util.MyLogger.log; import static util.ThreadUtils.sleep; public class BoundedMain { public static void main(String[] args) { // 1. BoundedQueue 선택 BoundedQueue queue = new BoundedQueueV1(2); // 2. 생산자, 소비자 실행 순서 선택, 반드시 하나만 선택! producerFirst(queue); // 생산자 먼저 실행 //consumerFirst(queue); // 소비자 먼저 실행 } private static void producerFirst(BoundedQueue queue) { log("== [생산자 먼저 실행] 시작, " + queue.getClass().getSimpleName() + " =="); List<Thread> threads = new ArrayList<>(); startProducer(queue, threads); printAllState(queue, threads); startConsumer(queue, threads); printAllState(queue, threads); log("== [생산자 먼저 실행] 종료, " + queue.getClass().getSimpleName() + " =="); } private static void consumerFirst(BoundedQueue queue) { log("== [소비자 먼저 실행] 시작, " + queue.getClass().getSimpleName() + " =="); List<Thread> threads = new ArrayList<>(); startConsumer(queue, threads); printAllState(queue, threads); startProducer(queue, threads); printAllState(queue, threads); log("== [소비자 먼저 실행] 종료, " + queue.getClass().getSimpleName() + " =="); } private static void startProducer(BoundedQueue queue, List<Thread> threads) { System.out.println(); log("생산자 시작"); for (int i = 1; i <= 3; i++) { Thread producer = new Thread(new ProducerTask(queue, "data" + i), "producer" + i); threads.add(producer); producer.start(); sleep(100); } } private static void startConsumer(BoundedQueue queue, List<Thread> threads) { System.out.println(); log("소비자 시작"); for (int i = 1; i <= 3; i++) { Thread consumer = new Thread(new ConsumerTask(queue), "consumer" + i); threads.add(consumer); consumer.start(); sleep(100); } } private static void printAllState(BoundedQueue queue, List<Thread> threads) { System.out.println(); log("현재 상태 출력, 큐 데이터: " + queue); for (Thread thread : threads) { log(thread.getName() + ": " + thread.getState()); } } } package thread.bounded; import java.util.ArrayDeque; import java.util.Queue; import static util.MyLogger.log; public class BoundedQueueV1 implements BoundedQueue { private final Queue<String> queue = new ArrayDeque<>(); private final int max; public BoundedQueueV1(int max) { this.max = max; } @Override public synchronized void put(String data) { if (queue.size() == max) { log("[put] 큐가 가득 참, 버림: " + data); return; } queue.offer(data); } @Override public synchronized String take() { if (queue.isEmpty()) { return null; } return queue.poll(); } @Override public String toString() { return queue.toString(); } } C:\Users\lgh80\.jdks\temurin-21.0.4\bin\java.exe --enable-preview "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\lib\idea_rt.jar=52674:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\java-adv1\out\production\java-adv1 thread.bounded.BoundedMain 09:38:16.411 [ main] == [생산자 먼저 실행] 시작, BoundedQueueV1 == 09:38:16.413 [ main] 생산자 시작 09:38:16.424 [producer1] [생산 시도] data1 -> [] 09:38:16.425 [producer1] [생산 완료] data1 -> [] 09:38:16.531 [producer2] [생산 시도] data2 -> [] 09:38:16.532 [producer2] [생산 완료] data2 -> [] 09:38:16.642 [producer3] [생산 시도] data3 -> [] 09:38:16.642 [producer3] [생산 완료] data3 -> [] 09:38:16.752 [ main] 현재 상태 출력, 큐 데이터: [] 09:38:16.754 [ main] producer1: TERMINATED 09:38:16.754 [ main] producer2: TERMINATED 09:38:16.754 [ main] producer3: TERMINATED 09:38:16.755 [ main] 소비자 시작 09:38:16.757 [consumer1] [소비 시도] ? <- [] 09:38:16.757 [consumer1] [소비 완료] null <- [] 09:38:16.864 [consumer2] [소비 시도] ? <- [] 09:38:16.865 [consumer2] [소비 완료] null <- [] 09:38:16.974 [consumer3] [소비 시도] ? <- [] 09:38:16.975 [consumer3] [소비 완료] null <- [] 09:38:17.085 [ main] 현재 상태 출력, 큐 데이터: [] 09:38:17.085 [ main] producer1: TERMINATED 09:38:17.086 [ main] producer2: TERMINATED 09:38:17.086 [ main] producer3: TERMINATED 09:38:17.086 [ main] consumer1: TERMINATED 09:38:17.087 [ main] consumer2: TERMINATED 09:38:17.087 [ main] consumer3: TERMINATED 09:38:17.087 [ main] == [생산자 먼저 실행] 종료, BoundedQueueV1 == Process finished with exit code 0 이런 식으로 출력이 뜨는데 강의 내용에 나와있는 로그 창이랑 많이 달라서 강의 코드랑도 비교해봤는데 어디에서 문제가 있는 건지 잘 모르겠습니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
lgh8079 댓글 2 좋아요 0 조회수 224

의존관계 주입에 대해서 질문드립니다!

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요! 영한님 강의를 잘 듣고 있습니다. 의존관계 주입 설명해주실때 문득 궁금점이 생겨서 질문드립니다. 의존관계 주입은 추상적인 것을 의존하게 하고, 나중에 실제 구체적인것을 넣어주는 부분인데 이는 같은 기능을 수행하는 List(Array, Linked)의 경우라고 한다면 처음에는 한가지 기능만 수행하다가, 필요에 의해서 다른 기능을 만들었고 이걸 공통화가 가능하다면 인터페이스로 만들어주는 작업을 진행하면 되는 걸까요? 실무에서 인터페이스는 처음부터 설계를 잡고 들어가는 경우가 많은지, 혹은 필요에 의해 중간에 만드는 경우도 있는지 궁금합니다! 중간에 필요하긴한데 기능이 다 같진 않은 경우에는 어떻게 하는지도 궁금하네요ㅠ

  • java
  • 객체지향
suco 댓글 1 좋아요 1 조회수 181

Catch 안에서 쓰인 throw

해결됨

나도코딩의 자바 기본편 - 풀코스 (20시간)

안녕하세요. try { writer.close(); } catch (Exception e) { throw new RuntimeException (e); } 여기에서 catch 안에 throw로 RuntimeException 을 발생 시켰는데, 이부분은 어디서 catch가 되나요?

  • java
  • 객체지향
dizzydimm 댓글 1 좋아요 0 조회수 112

인터럽트에 대해 질문 있습니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

public class ThreadStopMainV2 { public static void main(String[] args) throws InterruptedException { Job job = new Job(); Thread thread = new Thread(job); thread.start(); Thread.sleep(4000); log("작업 중단 지시 interrupt"); thread.interrupt(); log("main 스레드 끝"); } static class Job implements Runnable { @Override public void run() { while (true) { try { log("스레드 실행"); Thread.sleep(2000); } catch (InterruptedException e) { log("예외 발생"); break; } } log("작업 끝"); } } } 위 코드의 실행 결과는 아래와 같습니다. 궁금한 부분은 로그에서 작업 중단 지시 interrupt 이후에 대해 궁금한점이 있습니다. 작업 중단 지시 interrupt 를 로그로 찍고 thread.interrupt();를 호출 했습니다. 그러면 생선한 스레드에 interrupt 신호를 보내고 Thread.sleep(2000); 부분에서 예외가 발생해 catch 문으로 빠지는것도 이해했습니다. 하지만 catch 문으로 빠지기전 log("스레드 실행"); 가 실행되지 않나 라는 생각이 듭니다. 그래서 최종 결과는 아래와 같이 catch 로 빠지기전에 스레드 실행이 한번 더 찍혀야 하지 않나 라는 생각이 듭니다. 23:08:15.622 [ Thread-0] 스레드 실행 23:08:17.629 [ Thread-0] 스레드 실행 23:08:19.613 [ main] 작업 중단 지시 interrupt 23:08:19.613 [ Thread-0] 스레드 실행 23:08:19.614 [ main] main 스레드 끝 23:08:19.614 [ Thread-0] 예외 발생 23:08:19.616 [ Thread-0] 작업 끝

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
감바스 댓글 1 좋아요 0 조회수 319

인기 태그

인프런 TOP Writers

주간 인기글