라이브러리 개발 예제 강의를 찾습니다 !!!
미해결
스프링 부트 개념과 활용
기선님 강의를 여러개 들었는데 이전에 라이브러리를 직접 만들고 시연해줬던 강의를 찾고 있는데 어디있는지 모르겠습니다. ㅠㅠ 혹시 어떤 강의인지 알려주실 수 있으실까요?
- java
- spring
- spring-boot
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
스프링 부트 개념과 활용
기선님 강의를 여러개 들었는데 이전에 라이브러리를 직접 만들고 시연해줬던 강의를 찾고 있는데 어디있는지 모르겠습니다. ㅠㅠ 혹시 어떤 강의인지 알려주실 수 있으실까요?
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { // List<Order> allByString = orderRepository.findAllByString(new OrderSearch()); //order를 전부 끌고옴 => 2개 for (Order order : allByString) { order.getMember().getName(); order.getDelivery().getAddress(); } return allByString; } 제가 생각하는 건 List<Order> allByString = orderRepository.findAllByString(new OrderSearch()); 이 코드로 쿼리 1개가 발생하고 결과 값이 2개니깐 for문으로 order.getMember().getName(); 이 쿼리가 2번 발생 order.getDelivery().getAddress(); 이 쿼리가 2번 발생해서 총 5번 쿼리가 발생해야 된다고 생각이 들었습니다. 하지만 로그를 보니깐 쿼리는 총 6번 발생하고 제가 생각했던 거와는 다르게 member와 delivery에 대한 쿼리가 1번씩만 발생하고 select o1_0.order_id, o1 _0.deliver y_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1 _0.deliver y_id=? 이 쿼리만 2번 발생이 되더라고요 그리고 order_item도 조회가 되는 걸 확인을 했습니다. 로그 쿼리 수는 총 6개였습니다. 전체 쿼리 로그입니다. 전체 쿼리입니다. 2024-08-15T18:49:21.937+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only 2024-08-15T18:49:21.940+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361940 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first ? rows only select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id fetch first 1000 rows only; 2024-08-15T18:49:21.942+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2024-08-15T18:49:21.943+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361943 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) select m1_0.member_id,m1_0.city,m1_0.street,m1_0.zipcode,m1_0.name from member m1_0 where m1_0.member_id in (1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 2024-08-15T18:49:21.945+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2024-08-15T18:49:21.947+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361947 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) select d1_0.delivery_id,d1_0.city,d1_0.street,d1_0.zipcode,d1_0.status from delivery d1_0 where d1_0.delivery_id in (1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 2024-08-15T18:49:21.948+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-08-15T18:49:21.949+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361949 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=? select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=1; 2024-08-15T18:49:21.950+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-08-15T18:49:21.951+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361951 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=? select o1_0.order_id,o1_0.delivery_id,o1_0.member_id,o1_0.order_date,o1_0.status from orders o1_0 where o1_0.delivery_id=2; 2024-08-15T18:49:21.954+09:00 DEBUG 20740 --- [nio-8080-exec-5] org.hibernate.SQL : select oi1_0.order_id, oi1_0.order_item_id, oi1_0.count, oi1_0.item_id, oi1_0.order_price from order_item oi1_0 where oi1_0.order_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 2024-08-15T18:49:21.956+09:00 INFO 20740 --- [nio-8080-exec-5] p6spy : #1723715361956 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop select oi1_0.order_id,oi1_0.order_item_id,oi1_0.count,oi1_0.item_id,oi1_0.order_price from order_item oi1_0 where oi1_0.order_id in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) select oi1_0.order_id,oi1_0.order_item_id,oi1_0.count,oi1_0.item_id,oi1_0.order_price from order_item oi1_0 where oi1_0.order_id in (1,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 왜 orders o1_0 가 2번 조회가 되고 왜 order_item이 조회가 되는지 이해가 잘 안갑니다. 제가 생각했던 거와는 너무 달라서 질문드립니다ㅠㅠ
미해결
재고시스템으로 알아보는 동시성이슈 해결방법
안녕하세요! 강의를 보면서 많은 도움 얻고있습니다. 항상 감사합니다! 궁금한점이 아래 시간에 해당하는 부분인데요. boolean available = lock.tryLock(15, 1, TimeUnit.SECONDS); 강사님과 저의 테스트코드에선 thread를 100개를 만들어 놓고 테스트를 진행했습니다. 그리고 락을 한번 획득하면 1초동안 점유하고 있고, 락 획득을 위해 대기할 수 있는 시간은 총 15초 입니다. 그래서 락을 획득할 수 있는 스레드는 1초에 한개씩으로, 테스트코드가 성공하려면 총 100초가 걸려야 하고, 지금 상황으로는 성공하지 않아야 정상이라고 생각하는데 강사님의 코드에서 성공한 이유가 뭔지 궁금합니다! 제가 아직 이해를 제대로 못해서 뭔가를 놓친 것 같은데 감이 잘 안잡히네요 ㅠㅠ
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
여기까지가 코드 입력 캡쳐본입니다. localhost:8080 창은 잘 뜨는데 localhost:8080/hello 창은 위와 같은 오류가 발생합니다. 좀 수월하게 하려고 인텔리제이 유료결제했더니 빨간 네모 표시한 아이콘이 떠서 클릭했더니 전혀 다른 주소로 위와 같은 창이 생성되었고, F12 눌렀더니 아래와 같이 표시됩니다. 뭐가 문제였던 걸까요ㅠㅠㅠ
미해결
백엔드 개발을 위한 필수 강의 - 스프링 부트3
STS를 설치하고 sbb 프로젝트를 만들고 나면 아래와 같은 오류가 발생합니다. ToolchainDownloadFailedException: No locally installed toolchains match and toolchain download repositories have not been configured. java.lang.reflect.InvocationTargetException file - Properties에 들어가서 해결하려고 했는데 Java Build Path 항목이 없어서 해결하지 못했고, 구글링으로도 해결이 안되는 상황입니다... 어떻게 해결할 수 있을까요?
미해결
Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
안녕하세요 강사님 덕분에 잘 수강하고 있는 수강생입니다. 수업자료 관련하여 간혹가다 zip파일이 존재하던데, 해당 파일들은 어떻게 열어야 할까요? zip파일을 해제하면 구성 요소들만 존재하는 것 같아요 예시 첨부드립니다. 감사합니다! .
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
13:05부터 약간 문제풀이가 이해가 안 되어가지구요. 1 2 3 4 5 6 7 8 9 10 int=i sum=0 첫번째 if문 sum+=i*i; i%2 == 1 -> 2로 나누어서 나머지가 1값이 나오면 곱셈하라는 이야기이죠? 그러면 홀수인 1 3 5 7 9는 (1*1, 3*3, 5*5, 7*7, 9*9) 하라는 이야기이네요? 두번재 else 에서는 sum-= i; -> 음수값 붙이라는 이야기인가요? 그러면 짝수는 (-2, -4, -6, -8, -10) 이라는 이야기이네요? 거기서 1 2 3 4 5 6 7 8 9 10 처음 sum 값은 0이니 홀수는 1*1해서 1값이 나온거고 다음 짝수는 첫번째 sum 값인 1*1 에서 -2를 더해서 -1값이 나온거고 그래서 1 2 3 4 5 6 7 8 9 10 1 -1 8 4 29 23 72 64 145 135 (1*1) = 1 {(1*1) = 1} -2 = -1 (3*3)-1 = 8 {(3*3)-1 = 8} -4 = 4 이렇게 순서대로 이해하면 되나요? 이게 맞는건가요? 비전공자라 이해가 잘 안되서 여쭙니다. 감사합니다.
미해결
김영한의 실전 자바 - 중급 2편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 순회 2 -향상된 for문 1;18초에서 implememt를 주석 처리 하고 향상된 for문을 돌렸을 때 배열이거나 iterable이여야한다고 에러가 떴습니다 .근데 MyAraayMain에서 이미 myarray 는 new int [] {1.2.3.4}로 배열로 선언한거 아닌가요?
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 엔티티 클래스 작성 후 프로젝트 실행 시 아래와 같은 에러 메세지가 출력됩니다. lombok 설정은 아래와 같이 설정된 것을 확인했고, 엔티티 클래스 작성 전에 테스트에서 잘 실행되었습니다. 세팅 관련 설정도 아래와 같이 확인했습니다. @Getter, @Setter도 잘 인식하는데, lombok 클래스를 발견할 수 없다는 에러가 계속 발생하는데, 뭐가 문제일까요?
해결됨
쉽게 시작하는 쿠버네티스(v1.35)
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다! [질문 전 답변] 1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요] 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요] 3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요] ( https://www.inflearn.com/blogs/1719 ) 4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up 으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. ( https://www.inflearn.com/questions/992407/comment/281901 ) [질문 하기] 7.2 강의 앤써블 설치하는데 앤써블이 뭐고 왜 사용하는건가요?
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
29분 포인트 강의를 보다보니 24년2회 swap 낚시문제가 떠올라서 질문드립니다. void swap(){ int temp; temp =a; a = b; b = temp; } int main(){ int a = 11; int b = 19; swap(); 기출2회 일부 추출인데요.. 해당 스왑부분을 보면 포인터변수를 준 것 외엔 차이가 없어 보입니다. 위 기출의 경우엔 왜 스왑이 될 수 없는지 부연설명이 있으면 이해가 빠를 것 같아요! (스왑 함수에서 temp값에 a넣어주고 a에 b를 대입하고.. 포인터변수 외엔 차이를 못느끼겠습니다.)
해결됨
DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
안녕하세요. syslog 관련해서 질문드립니다. Container Logging System 사용 ② 섹션에서 syslog-nm 컨테이너(서버)에 logback 설정에 appender name="SYSLOG" 는 백엔드의 logback 을 이용해 다른 서버에서 로그를 관리하는 의미이고, 이전 섹션에서 컨테이너 실행시 --log-driver=syslog 는 로그를 컨테이너 로그뿐만 아니라 전반적인 로그를 통합해서 본다는 의미로써 syslog 명칭만 동일하게 부여했을뿐 목적이 다른게 맞는거죠? 저는 syslog 라는거 자체가 컨테이너 로그 뿐만 아니라 광범위하게 통합해서 관리한다.라고 이해했었는데 해당 강의에서는 단순히 syslog 명칭만 같고 다른 의미로 쓰인거 같아 약간 혼동이 있네요.
미해결
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
안녕하세요. 항상 강의 잘 듣고 있습니다 🙂 public static void main(String[] args) throws InterruptedException { Printer printer = new Printer(); Thread printerThread = new Thread(printer, "printer"); printerThread.start(); Scanner sc = new Scanner(System.in); while (true) { log("프린터할 문서를 입력하세요. 종료 (q): "); String str = sc.nextLine(); if (str.equals("q")) { printerThread.interrupt(); break; } printer.addJob(str); } } static class Printer implements Runnable { Queue<String> jobQueue = new ConcurrentLinkedQueue<>(); @Override public void run() { log("outer 상태 : " + Thread.currentThread().isInterrupted()); while(!Thread.interrupted()) { try { if (jobQueue.isEmpty()) { continue; } String job = jobQueue.poll(); log("출력 시작: " + job + ", 대기 문서: " + jobQueue); log("inner 상태 : " + Thread.currentThread().isInterrupted()); Thread.sleep(3000); log("출력 완료"); } catch (InterruptedException e) { e.printStackTrace(); log("인터럽트!"); System.out.println(e.getMessage()); break; } } log("프린터 종료"); } public void addJob(String str) { jobQueue.offer(str); } } 저는 q를 입력하면 인터럽트 상태가 false로 바뀌게 되고, 프린터 종료 로그가 남을 거라고 생각했습니다. 실행하고 바로 q를 입력하면 제가 예상한 대로 동작하지만, 값을 입력 후 q를 입력하면 Thread.sleep(3000); 이 부분에서 InterruptedException 예외가 발생했습니다. 저는 이 부분에서 의문점이 들었습니다. while(!Thread.interrupted() 1. 인터럽트 상태가 바뀌었을 텐데 왜 예외가 발생하지? 2. 상태가 안 바뀌었나? 라는 생각을 하고 로그를 확인해봤는데 07:21:21.366 [ printer] outer 상태 : false 07:21:21.366 [ main] 프린터할 문서를 입력하세요. 종료 (q): 123 07:21:22.790 [ main] 프린터할 문서를 입력하세요. 종료 (q): 07:21:22.796 [ printer] 출력 시작: 123, 대기 문서: [] 07:21:22.796 [ printer] inner 상태 : false q java.lang.InterruptedException: sleep interrupted at java.base/java.lang.Thread.sleepNanos0(Native Method) at java.base/java.lang.Thread.sleepNanos(Thread.java:491) at java.base/java.lang.Thread.sleep(Thread.java:522) at thread.control.printer.MyPrinterV3$Printer.run(MyPrinterV3.java:46) at java.base/java.lang.Thread.run(Thread.java:1570) 07:21:22.980 [ printer] 인터럽트! sleep interrupted 07:21:22.980 [ printer] 프린터 종료 q를 입력하면 바로 예외가 발생해서 상태가 바뀌었는지는 잘 모르겠습니다. 만약 상태가 안 변했다고 해도 결국 sleep 부분에서 예외가 발생할 텐데, 로그가 안 찍힌 이유도 모르겠습니다. 그래서 여러 번 실행해본 결과 값 입력하고 3초 후 q를 입력하면 예외가 발생하지 않는다는 걸 알게 되었습니다. 잠자고 있는 스레드를 깨워서 문제가 발생하는 것 같은데 제 지식으로는 여기까지인 것 같습니다. 질문 1. while(!Thread.interrupted()) 이 부분에서 인터럽트 상태가 false로 변경되었을 것 같은데 예외가 발생한 이유를 모르겠습니다. 제가 다시 생각해보니 프린터 스레드는 sleep() 때문에 3초 기다리고 있는 상태에서 깨우니 sleep() 부분에서 예외가 발생하고 로그도 안 찍혔을 것 같다는 생각이 들었습니다.
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
https://drive.google.com/file/d/1xtWyIr26d2Xj-Z8WYxTQDvjoAQkEOqc_/view?usp=drive_link
해결됨
[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요, 프론트(리액트)에서 프론트에서 credentials: include로 설정한경우 cors 문제가 발생하고있습니다. 이런 에러가 발생하고있는데요, 프론트측에서 해줘야하는 설정과 서버에서 해줘야하는 설정은 맞게해준것 같습니다. 먼저 프론트에서 해줘야하는 쿠키설정은 const httpLink = createHttpLink({ uri: 'http://localhost:3001/graphql', credentials: 'include', }); 이렇게 해줬습니다. 그리고 서버쪽에서는 onst app = await NestFactory.create(AppModule, { cors: true }); app.enableCors({ origin: 'http://localhost:3000', credentials: true, exposedHeaders: ['Authorization'], // * 사용할 헤더 추가. }); 이렇게 해주었는데요.. 이렇게해주고나서 로그인하면 맨위의 사진처럼 에러가납니다.. 버전은"@apollo/server": "^4.10.4", "@nestjs/apollo": "^12.2.0", 이렇게되어있는데.. https://www.inflearn.com/community/questions/896182/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%90%EC%84%9C-credentials-include%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%9C%EA%B2%BD%EC%9A%B0-cors-%EB%AC%B8%EC%A0%9C 이분이 해결하신거를 참고해봤는데, 저분이 app.module설정을 통해 해결하셨지만, 저는 버전이달라서그런가 거기에 cors설정을하면 에러가나더라구요.. 혹시 어떻게 하면 이 이슈를 헤쳐나갈수있을까요?..
해결됨
[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
@UseGuards(GqlAuthGuard('refresh')) @Mutation(() => String) restoreAccessToken( @Context() context: IContext, // ): string { const user = context.req.user; return this.authService.restoreAccessToken({ user }); } 대충 이렇게 헤더에담긴 리프레시토큰을 그래프큐엘 가드에서 인가후 accessToken재발급이 이루어지고 있는데.. 실무에서 그래프큐엘을 사용할 경우 저렇게 그래프큐엘 가드를 사용해서 헤더에 담긴 리프레시토큰을 인가하여 accesstoken이 재발급되게 하는 코드를 사용하는지 아니면 선생님이 저희의 실습을위해 작성하신 코드인것인지 궁금합니다. jwt와 리프레시토큰 부분은 Rest API식으로 하는게 나을까요?
해결됨
개발자를 위한 쉬운 도커
"COPY 빌드컨텍스트경로 레이어경로" 여기서 레이어 경로는 어떻게 구성되어 있는지 알 수 있나요? 강의 내용중에 "커밋 방식을 사용하면 기존 레이어에 새로운 레이어를 한 장 더 추가할 수 있다." 라고 했는데 추가된 새로운 레이어는 읽기 전용 레이어 인가요?
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
선생님이 해주신것과 똑같이 코드를 작성했는데 도서관리에서 사용자 이름을 수정하려고 하니 updateUser에서 optional 관련 에러가 발생합니다. Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.name as name3_0_0_ from user user0_ where user0_.id=? 2024-08-14 18:42:17.084 ERROR 37216 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root cause java.lang.IllegalArgumentException: null at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.group.libraryapp.service.user.UserServiceV2.updateUser(UserServiceV2.java:34) ~[main/:na] at com.group.libraryapp.controller.user.UserController.updateUser(UserController.java:32) ~[main/:na] db도 한번 삭제 후 다시 실행했는데 같은 에러가 발생하네요.. 이유와 해결방법이 궁금합니다..!
해결됨
개발자를 위한 쉬운 도커
안녕하세요 전에 copy-on-write 전략에 대해 질문을 했는데 추가 질문이 있어 질문글을 작성합니다. https://www.inflearn.com/community/questions/1307477/copy-on-write-%EC%A0%84%EB%9E%B5%EC%97%90-%EB%8C%80%ED%95%B4-%EC%A7%88%EB%AC%B8-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 위 질문 글에서 2번 부분에 대해 추가 질문이 있습니다. 읽기/쓰기 레이어에서 index.html 파일을 여러번 수정하는 경우에 대해서 궁금한 부분이 있습니다. 완전 처음에는 얘기 해주신대로 읽기/쓰기는 텅 비어 있는 상태라 읽기 레이어의 index.html 파일을 그대로 복사해 와서 바뀐 부분만 있으면 수정한 후 사용합니다. 여기서 읽기/쓰기 index.html 파일이 한번 더 수정이 되면 읽기 레이어의 index.html 파일을 복사해 와서 기존에 있는 읽기/쓰기 레이어에서의 index.html 파일에서 바뀐 부분만 복사해온 index.html 파일에서 변경한 후 사용하는건가요? 정리하면 읽기/쓰기 index.html 파일을 여러번 수정해도 복사해서 가져오는 부분은 항상 읽기 index.html 파일이고 기존 읽기/쓰기 index.html 파일에서 바뀐 부분을 읽기 레이어에서 가져온 index.html 파일에 넣어서 만드는 건지 궁금합니다.
미해결
AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
인스턴스 만들때 라우팅 테이블 어떻게 설정 되어 있나요 nat랑 연결되어있나요?