학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 질문 1 int result = (int) 10.0 + 1; 에서 (int)10.0 이 먼저 형변환 된채로 연산을 하는건 ()소괄호의 연산자 우선순위가 1순위인것과 관련 있는건가요? 질문 2 double intValue = 2 / 1 ; double doubleValue = 2.0 / 1 ; intValue 의 2가 int형인 이유가 이전 강의에서 숫자 리터럴은 int형으로 판단한다고 말씀해주셔서 2가 int형으로 연산되었다고 예상했는데 doubleValue 의 2.0은 같은 리터럴인데 왜 double로 판단 후 연산이 진행되는지 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 접근제어자 문제까지 풀었습니다. 잘 풀리는 문제들도 있고 부분부분 막히는 문제들도 있는데, 혹시 이런 비슷한 예제들을 풀어볼 수 있는 사이트나 문제모음은 없을까요? 요구사항을 보고 어떻게 코드를 구성하면 좋을지 더 고민해보고 싶습니다.
처음 예제 작성했을 때 출력 결과가 이렇게 나왔었는데, (강의 5분 10초, 10분 50초 참고) work] 작업 중 work] 작업 중 main] 작업 중단 지시 thread.interrupt() work] work 스레드 인터럽트 상태2 = false main] work 스레드 인터럽트 상태1 = true work] interrupt message=sleep interrupted work] state=RUNNABLE work] 자원 정리 work] 작업 종료 이 상황에서는 main스레드에서 interrupt() 후 바로 work 스레드가 예외 처리해서 work 스레드의 인터럽트 플래그가 false 로 됐다는 걸 확인할 수 있습니다. 하지만 그 이후 main스레드에서 work 스레드의 인터럽트 플래그가 true가 출력되었는데 어떻게 false가 아닌 true가 출력될 수 있는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 혹시 다운받은 소스코드 삭제는 어떻게 해야하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 9:12초 정도에 블록 내부에서 외부는 접근 가능하다고 했는데 블록 외부에서 생성된 변수가 블록 내부에 접근 가능한 게 아닌가요?
NetworkClientException 클래스의 하위 클래스인 Send,Connect 예외클래스들을 별도 파일로 각각 만들지 않고, NetworkClientException 클래스 내부에 정적 중첩 클래스로 선언하는건 안좋나요? 상황에따라 다양한 종류의 예외들을 만들텐데, 그런것들 마다 별로의 파일로 만드는게 저는 디렉토리가 복잡해 보이기도 하고, 논리적으로 어떤게 부모클래스이고 어떤게 자식클래스인지 한눈에 들어오지 않을거같다는 생각이 문득 들어 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 질문을 드립니다. 정리에서 에노테이션으로 서블릿을 만들라고 해서 만들었습니다. 근데 복사 붙여 넣기 한 코드들이라서 이렇게 해도 되는지 알고 싶어서 올립니다. 이용한 코드는 영한님의 심플맵핑, 리플렉션 서블릿을 복사 붙여놓기 한다음 수정해서 하였습니다. 이렇게 해도 되나요? 답변 부탁 드립니다.
해당 내용 중 Parent parent = new Child(3); // 6 이 실행되면 이후 3 -> 1 순서로 진행된다고 설명해주셨는데, 만일 아래코드와 같이 super를 명시적으로 호출하지 않고, 파라미터도 동일하다면 순서가 1 -> 3의 순서로 진행되는 것일까요?? class Parent { int x; Parent(int x) { // 1 this.x = x; } ... } class Child extends Parent { int x; Child(int x) { // 3 this.x = x; } ... } ... 만일 위 내용이 맞다면, 아래와 같이, 같은 파라미터의 생성자이면서 super를 명시적으로 작성했을 경우에는 순서가 어떻게 되는지도 궁금합니다. (child의 생성자 내부 코드라인에 super가 존재해서 child의 생성자 호출이 우선인 것인지, 혹은 super가 명시적으로 없어도 child의 생성자 호출이 우선인것인지가 헷깔립니다ㅜ) class Parent { int x; Parent(int x) { // 1 this.x = x; } ... } class Child extends Parent { int x; Child(int x) { // 3 super(x + 1); this.x = x; } ... } ...
"It is 8"; 여기서 8도 결국 문자인데 아스키코드로 변환하면 몇 번인지 알아야 하지 않나요 ??? 계산식에서 isdigit 매서드로 숫자로 변경이 되어도 (p[i] - '0' + 3)%10 + '0' 이렇게 문자가 섞여서 계산을 해야 답을 구할 수 있지 않나요 ?
해당 문제의 해설을 보기 전에 i==4 ? n[0] : n[i+1] 과 같은 형태로 답을 작성했는데, 실제 시험에서 이렇게 작성한 경우 답으로 인정될까요?? 혹시 알려주신 답처럼 n[(i+1)%5] 과 같은, 시험에서 답으로 인정되는 형태가 있는지 아니면 출력값만 맞으면 답으로 인정되는지 궁금합니다!
선생님 강의 잘 보고있습니다. 감사합니다. 기출문제 강의는 2022년 3회~2024 3회 까지 있던데 , 2022년 3회 이전에는 기출 유형이 바뀌었다던가하는.. 특별한 이유가 있을까요? 기출문제를 다 풀고난뒤 이론공부를 할까 2022년 3회 이전의 기출문제 더 풀어볼까 고민입니다..
평소 같으면 그냥 업무할 때의 개발 환경과 동일하게 설정해서 할텐데... 무슨 바람인지.. 이번엔 그냥 영한쌤 강의 보면서 그대로 따라해야지 하고 별생각 없이 강의를 듣던 중... ddl-auto create, create-drop까지 무난했음.. ddl update로 하고 id , name 컬럼 생성 create문 정상 여기까지도 무난...ㅎ 그러나 대망의 age 컬럼 추가하려고 하니 ?? alter문 왜 안 날라감? 했습니다... 이것 저것하다가 해결되서 공유합니다..ㅎ 영한 쌤이 실제 사용중인 H2 버전이랑 의존성 추가할 때 버전 맞추라고 하셨는데 Hibernate 버전은 말씀이 없으셨습니다.. 그래서 H2 버전이 2.3.232 사용중이기 때문에 pom.xml 설정 중 hibernate 버전 6.4.4.Final 로 변경하고 모든 import jakarta로 변경하니 잘되네요 (JDK21 사용) ``` <!-- pom.xml --> <!-- hibernate --> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version> 6.4.4.Final </version> </dependency> <!-- Jakarta Persistence API --> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>3.1.0</version> </dependency> ``` 이후 모든 import문 jakarta로 변경 Maven Refresh
안녕하세요. 궁금한 게 있어서 질문 남깁니다. 구조체를 선언하는 방식에서 변수명을 함께 선언할 때는 구조체 명이 필요가 없는건가요? 강의 설명에는 struct 구조체명 { 내용 } 변수명; 이라고 나와있지만 예시에서는 sturct 만 작성했습니다. 구조체명을 써도 상관이 없는 선택사항인건지, 아니면 아예 필요가 없는건지가 궁금합니다. 만약에 사용해도 된다면, person1.age에 접근할 때 어떤식으로 접근해야 하는지가 궁금합니다. 답변 기다리겠습니다. 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] ExecutorService 우아한 종료 - 구현 01:07 close() 메소드 설명 부분에 " shutdown() 을 호출하고, 하루를 기다려도 작업이 완료되지 않으면 shutdownNow() 를 호출한다." 에 오류가 있어 보입니다. [내용 정정] " shutdown() 을 호출하고, 작업이 완료될 때까지 무한정 반복대기 한다. 인터럽트가 발생하면 shutdownNow() 를 호출한다." 로 변경해야 하지 않나요? [근거] Eclipse Temurin-21.0.4+7 (JDK 21) 버전 코드 원문 public interface ExecutorService implements Executor, AutoClosable { // .. @Override default void close() { boolean terminated = isTerminated(); if (!terminated) { shutdown(); boolean interrupted = false; // 작업 미완료시 재시도 while (!terminated) { try { // 하루간 작업 종료 대기, 작업 미완료시 `false` 반환 terminated = awaitTermination(1L, TimeUnit.DAYS); } catch (InterruptedException e) { if (!interrupted) { shutdownNow(); interrupted = true; } } } if (interrupted) { Thread.currentThread().interrupt(); } } } } 1일이 지났다고 해서 interrupt() 를 호출하지 않고 재시도 하는 것으로 보입니다. [증명 코드] MyExecutor 로 close() 메소드 대기 시간을 1일 -> 1초로 조정하여 오버라이드합니다. 10초간 대기하는 Task 를 실행시킵니다. class ShutdownTest { record CallableSleepTask( String name, long sleepMs ) implements Callable<Long> { @Override public Long call() throws Exception { sleep(this.sleepMs); return this.sleepMs; } } static class MyExecutor extends ThreadPoolExecutor { public MyExecutor() { super(1, 1, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); } @Override public void close() { boolean terminated = isTerminated(); if (!terminated) { shutdown(); boolean interrupted = false; while (!terminated) { try { // 종료 대기 시간 1초로 조정 terminated = awaitTermination(1L, TimeUnit.SECONDS); } catch (InterruptedException e) { if (!interrupted) { shutdownNow(); interrupted = true; } } } if (interrupted) { Thread.currentThread().interrupt(); } } } } @DisplayName("Should wait infinitely when .close()") @Test void executorServiceCloseTest() { // given try (ExecutorService myExecutor = new MyExecutor()) { log("작업 시작"); CallableSleepTask sleepTask = new CallableSleepTask("test", 10_000L); myExecutor.submit(sleepTask); // 10 초간 테스크 실행 log("작업 진행중.. close 대기"); // 기다리지 않고 .close() 자동 호출 } } } 실행 결과 18:38:39.524 [ main] 작업 시작 18:38:39.527 [ main] 작업 진행중.. close 대기 (약 10초 대기 후 종료) Process finished with exit code 0 테스크 종료를 위해 10초 대기가 이뤄졌습니다. close 가 조정된 대기시간인 1초 뒤에 인터럽트를 발생시켰다면 인터럽트 로그가 남았을 것이고, shutdownNow()가 호출됐다면 10초 대기없이 즉시 종료되었을 것입니다. 따라서 정정이 필요해보여요. close 메소드는 " shutdown() 을 호출하고, 작업 완료시까지 무한정 반복대기 한다. 인터럽트가 발생하면 shutdownNow() 를 호출한다."