묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ex1번
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. void로 풀었는데 큰 상관없는건가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
매개변수가 int double 섞일경우는
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. void로 밖에 쓸 수 없나요?
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요 질문있습니다.
섹션8번에있는 문제들에대해서 사전에 문제를 풀어보고싶은데 혹시 통합해서 정답이안나오거나 맨뒤에 한번에나오게해서 통합버전을 올려주실순없는지 궁금합니다.강의듣기전 먼저 풀어보고 틀린문제위주로 해설을 듣고 싶습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
MSA -> 모놀리식 패턴으로 수정
안녕하세요 선생님현재 애플리케이션을 MSA에서 모놀리식으로 바꾸고 있습니다.MSA 에서는 hot-article 애플리케이션에서는각각의 서비스들과 통신하지 않고 데이터를 저장하기 위해ArticleCommentCountRepository, ArticleViewCountRepository,ArticleLikeCountRepository 를 따로 만든 것으로 이해했습니다 .모놀리식에서는 이 3개의 Count Repository를 따로 만들지 않고 각각의 서비스에 있는 Count Repository 에서 가져오는 것이 더 좋을까요, 아니면아니면 MSA hot-article 패키지에 따로 count repository를 만드는 것이 좋을까요 ..선생님의 의견이 궁금합니다 .
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
updateMemberResponse 반환 값
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. @PutMapping("/api/v2/members/{id}") public updateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid updateMemberRequest request) { memberService.update(id, request.getName(), request.getAddress()); // Member findMember = memberService.findOne(id); return new updateMemberResponse(id, request.getName(), request.getAddress()); }return에 requst의 값을 넣어서 반환 받는 건 안 좋은 방법일까요?findMember로 꺼내서 return 하면 request로 바로 하는 것 보다 어떤 이점이 있는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.계속 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라고 뜹니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
DB에 데이터 persist 안됨
insert 쿼리는 나가는데 왜 DB에 저장되지 않는지 잘 모르겠습니다. try { Member member = new Member(); member.setAge(10); member.setUsername("USER"); em.persist(member); em.flush(); em.clear(); Member singleResult = em.createQuery("Member.findByUsername", Member.class) .setParameter("username", "USER") .getSingleResult(); System.out.println("singleResult = " + singleResult); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); emf.close(); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복회원예외()에서 오류 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]중복 회원 예외()에서 오류가 자꾸 발생합니다. @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); //Then assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appendedjava.lang.IllegalStateException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:39) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:38) at hello.hello_spring.service.MemberService.join(MemberService.java:31) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728) at hello.hello_spring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at hello.hello_spring.service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:45) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
케이스 6, 7 자료 오류
선생님! 안녕하세요.항상 잘 듣고 있습니다!다름이 아니고, 6분 대부터 나오는 케이스 6, 7에 대해 오류가 있는 거 같아 질문 드립니다.강의 자료는 class Parent { ~라고 잘 되어있는데 다운 받는 자료에는 class Person [ ~ 이라고 되어있어 Parent 클래스가 없는 거 같습니다. 별개로 이런 상황에서는 person을 parent로 고치던지 class Child extends Person이라고 고치면 될까요??---하나 더 질문을 드리자면11:12 즈음에'3. 생성자와 멤버변수를 부를 때 같은 키워드를 쓰니 주의' 라는 부분은this = 자기자신 객체super = 부모 객체. = 멤버의 변수나 메서드 접근() = 생성자나 메서드 호출이렇게 생각하면 될까요??항상 감사합니다!
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
subscription signal 에 upstream 으로 이동하는 순서
안녕하세요, 좋은 강의 감사합니다.쉬운 예제코드와 그림설명 덕분에 Java 8 stream API, Spring Batch ItemStream 과 대조해가며 쑥쑥 이해하고 있습니다. ContextAPIExmaple02 에서 궁금한 점이 있습니다.contextWrite() 호출 순서에 의문이 생겨 순서를 변경해보니, 무조건 아래에서 위로 진행되는 걸로 확인되었습니다. 이 규칙이 적용되는 원리가 궁금합니다. 현재 추측하기로는 "subscription signal 에 따라 upstream 으로 이동하는 operator 들은 모두 아래에서 위 순서대로 이동(반전)된다." 인 것 같은데, 확신이 생기지 않습니다.참고 할 수 있는 자료나 내부 클래스가 있을까요?
-
미해결김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍
변수 합치기에 대해서 질문드립니다!
안녕하세요!실습문제 풀다가 질문이 있어서 올려봅니다제가 코드를 작성할때는 흐름대로 쭉 작성하고마지막에는 간결하게 줄일 수 있는 부분은 줄여서 표현하고 있는데, 이게 저는 흐름대로 쭉 작성을 하고나서 변수를 합치거나 하니깐 괜찮은데 동료들이 이 코드를 보게 되면 변수를 선언하지 않고 합쳐서 표현해놓는 경우 이해가 바로 안되는 경우가 있을 수 있을거 같은데, 이런 경우에는 합치지 않고 두는게 좋을까요? 영한님이 생각하시는 운영관점에서 인라인 활용에 대해 궁금합니다!
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
강의자료
안녕하세요 혹시 해당 강의에 GitHub 주소나 자료가 따로 없을까요..?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
RedisTemplate<String, String>
RedisTemplate<String, String> 빈으로 등록하지 않고 생성자 주입으로 사용하던데 빈으로 등록하지 않아도 스프링 내에서 자동으로 빈 등록해주나요?
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
리엑트 페이지 랜더링
안녕하세요,강사님 리엑트 코드와 똑같이 만들었지만페이지가 이상하게 나옵니다. 요런 식으로 나오는데 추가적으로 만져야 할 게 있을까요?제 패키지 파일 공유드립니다.{ "name": "login_react", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@mui/icons-material": "^7.1.1", "@mui/material": "^7.1.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router-dom": "^7.6.2" }, "devDependencies": { "@eslint/js": "^9.25.0", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.2", "@vitejs/plugin-react": "^4.4.1", "eslint": "^9.25.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "vite": "^6.3.5" } }
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
질문있습니다.
안녕하세요, 강의 너무 잘 수강하고 있습니다.강의 수강 중 질문이 생겨서요refresh Token을 사용하지 않는 이유가 있을까요?access 토큰 하나를 하루의 유효기간을 부여해서 사용하는 이유가 궁금합니다.jwt 버전이 0.11.5로 진행해주셨는데0.12.x 버전도 있는 걸로 알고 있어요버전의 올라감과 동시에 로직의 변화도 있는 거로 알고 있습니다.요것도 0.11.x로 진행하신 이유가 궁금합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
컴퓨터공학과를 다니면서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 배우는 언어들 자바,c언어,파이썬 기본 문법을 먼저 다 수강하는게 좋을까요 아니면 자바를 주력 언어로 공부하면서 틈날때 다른 언어들을 공부해야할까요? 학점 챙기려면 기본언어들만 수강하는게 좋아보이는데 문법 공부만 하루종일 하면 좀 헷갈리기도하고 지루할거같아서 질문드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트 flush에 들어가는 쿼리 기준이 궁금합니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한님 안녕하세요Spring Data JPA를 사용해서 벌크 연산 관련해서 공부하던 중에 이상한 점을 발견했습니다. (Spring Data JPA 지만 영속성 컨텍스트 flush는 이 강의와 관련이 깊다 생각해 이 강의에 질문 드립니다) ..... 우선 실제 제가 겪었던 상황의 코드가 아닌 다른 같은 상황의 예제 코드이기 때문에 완전하지 않은 점 양해 부탁드립니다.. 3개의 엔티티 (User, UserRole, Comment) 가 존재하고 연관관계 매핑 및 외래키 제약조건은 존재하지 않습니다. // 코드 ~~ List<User> userList = new ArrayList<>(); // 코드 ~~~~ userRepository.saveAll(userList); // 저장 userRoleRepository.save(user_role_map); // 저장 Comment c = new Comment("1", "코멘트"); commentRepository.save(c); // 저장 // 코멘트는 제가 직접 객체를 생성해서 테스트 해보려고 추가하였습니다. 로직과는 관련없습니다. // 위의 userList와 다른 리스트 updateName(userListToUpdate); public interface UserRepository extends JPARepository<User,Long> { @Modifying(clearAutomatically = true) @Query(UPDATE User u SET u.name ="AA" WHERE u IN :users) int updateName(@Param("users") List<User> users); }User에 대해 벌크연산을 진행했습니다.여기서, userList가 비어있고,userRole와 Comment c에 대해 insert 쿼리가 나가지않고 벌크 연산 업데이트만 진행됩니다..! 이 부분은 당연히 영속성 컨텍스트가 clear 됐기 때문에 그런거라고 이해했습니다. 하지만, userList가 비어있지 않은 경우에는 saveAll로 인해 insert 쿼리가 나가면서 userRole, c 까지 모두 insert 쿼리가 실행되는데 이 부분이 잘 이해가 가질 않습니다...요약하면, user에 대해 insert 쿼리가 실질적으로 나갈 때에만 다른 엔티티들도 @Modifying(clearAutomatically = true) 되면서 같이 insert 쿼리가 나가고, 비어있지않은 경우에는 insert 쿼리가 나가질 않습니다.이 벌크 연산이 User에 대한 것이기 떄문에 user에 대한 동기화쿼리는 나가고, 그게 나가면서 다른 엔티티까지 같이 나가는 원리일까요? userRole과 comment는 모두 연관관계매핑도 되어있지않은데 왜 insert 쿼리가 같이 나가는지 궁금합니다
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
join fetch를 사용하지 않아도 쿼리가 한번 조회
6:46초에서 설명하시는대로 패치 조인을 사용하지 않고, 기본 조회만 했을 때 프록시로 인해 지연 로딩이 발생할 것으로 기대했으나, 마치 패치 조인처럼 한번만 조회되고 모든 데이터가 출력됩니다.원인을 잘 모르겠는데 알려주세요.Team은 LAZY 조인으로 설정되어 있음Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("USER1"); member1.changeTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("USER2"); member2.changeTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("USER3"); member3.changeTeam(teamB); em.persist(member3); List<Member> noFetchJoin = em.createQuery("SELECT m FROM Member m", Member.class).getResultList(); for (Member member : noFetchJoin) { System.out.println("member: " + member.getUsername() + " | Team: " + member.getTeam().getName()); } 결과:
-
해결됨옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
수업 자료는 어디에 있나요?
안녕하세요,수업자료 pdf는 어디에 있나요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
영한님 ReentrantLock 대기상태 다시 질문드려요!
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 멀티스레드와 동시성 관련해서 제대로 깊게 알아야할거같아서 다시복습으로 듣고있는데 예전에 질문했던 내용과 동일한거같아서 다시 질문드려요 ㅠ 그전에 처음 들어서 헷갈린부분이있었는데 다시들으면서도 설명한 부분이 맞나 싶어서요. 그전에 질문할때도 강의내용이 맞는지에 대한 질문이라 조심스러운부분이고 제가 잘못안다고 생각했는데 짚고넘어가면 좋을거같아서 다시 질문드립니다!이전 질문 링크: https://inf.run/t3Bbm71. 스레드의 대기 강의핵심 질문: 부분(13:30)강의에서 ReentrantLock 락 획득 실패시 대기큐에 WAITING상태라고 설명했는데 BLOCKED 상태가 가맞는지 검토필요.이부분에 대한 검토가 필요할거같고 제가 잘못알고있다면 참고해야할 링크를 주시면 감사하겠습니다. 아니라면 저처럼 이해하는데 오해의 소지가있는부분이 발생할것같습니다. 질문내용:부분(13:30)에서 대기1 락을 획득하기위한 대기큐에 대해서 설명해주셨고 lock()호출시에 이미 다른 스레드가 락을 획득시에는 WAITING상태로 대기하고 synchronized인 경우에만BLOCKED인거고 ReentrantLock은 WAITING 상태로 락획득을 대기큐에서 대기한다 라고 설명해주셧는데 이부분이 락이아닌 큐가 꽉차거나 완전히 비어있을때(특정 조건)는 RUNNABLE에서 await()사용해서 WAITING상태로 만들고 이걸 스레드대기공간(집합)에 넣고 추후 명시적으로 깨울수있게하는데, 락획득 실패시에는 BLOCKED상태로 락대기집합에 있는거고, 얻고나서 RUNNABLE상태에서 특정조건에 부합되지않을때(큐가 꽉차거나, 없을때) await를 써서 다시 WAITING상태로 스레드 대기집합에 넣는게 맞는거같아서 검토부탁드립니다.!그래서 이전강의 notify설명(synchronized 부분이긴하지만)에서도 WAIT -> BLOCKED 설명해주실때 WAIT이던애를 깨우면 바로 RUNNABLE이 되는게아니라 BLOCKED되는 설명부분이랑 ReentrantLock 역시 같은 원리가 맞는거같은데 이부분 다시 검토해주실수있나해서요ㅜ ReentrantLock 이라고해서 lock얻는걸 실패해도 WAITING이라는건 아닌거같아 검토해주시면 감사하겠습니다..!그리고 (17:40) synchronized의 경우 blocked일때는 interrupt로 깨우지못한다고했고(이부분설명은 맞는데)reentrantlock은 lockInterruptibly() 를 사용하면 가능하다고 했는데 이게 WAITING상태여서 가능하다기보단 lockInterruptibly이 BLOCKED상태인 스레드를 InterruptedException가 발생해서 blocked상태에서 빠져나오는게하는 기능인거 같은데 이부분도..reentrantlock역시 lock()만 사용으로는 못깨우고 이게 WAITING인거랑 좀 별게인거같아서 검토해주실수있을까해서요! 아래 참고 링크를 걸긴했는데 강의들 들으면서 사이클을 생각하다가 락을 획득할려다가 실패시 WAITING으로 대기한다라는게 원리상 아닐거같아서 찾아본게 oracle에서는 명시적으로 나타내진않았고 chat gpt에게 물어보면 제가 계속 waiting이 맞지않냐 blocked은 아니지않냐 공식문서 있냐 물어보면 명시적이진 않지만 유추할수있다 라고도 하고 그래서 결국 찾은 링크가 아래인데 공식은 아니고 블로그 내용이긴해서,, 한번더 영한님이 체크해주실수있을까해서요아래 chat gpt 답변과 블로그 링크에서 해당 내용부분 스샷도 일부 남길게요! https://blog.ycrash.io/java-suspended-thread-states-blocked-waiting-timed_waiting/?utm_source=chatgpt.com------질문을 남기니 그때처럼 인프런ai가 답변했는데 저 내용이 맞는거같아서요!