묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringDataJpaMemberRepository를 직접 사용하는건 아닌가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용]JPARepository 를 상속받는 SpringDataJpaMemeberRepository 의 오버라이딩 함수를 사용하려면 Repository 를 주입하는 Config 에서 부터 시작해서 주입된 서비스 에서 까지 소스를 전부 SpringDataJpaMemeberRepository 를 주입받도록 수정해주어야 사용이 가능하지 않은가요?기존 소스 변경없이 모두 MemberRepository 만 사용하던데, 그러면 JpaRepository 를 확장하는 인터페이스의 이점을 살리지 못하는게 아닌가 궁금합니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
p6spy 1.9.0 -> 1.8.1 버전 관련 내용 공유
p6spy releases를 확인해보면 1.9.0부터 Spring boot 3을 지원한다고 되어있고 테스트시 로그가 안뜹니다. 다른 질문에서보니 해당 버전이 메이븐에서만 지원되어서 그런 듯 합니다.그래서 바로 아래 버전인 1.8.1을 사용해서 정상적으로 로그가 뜨는 것을 확인했습니다.그래서 앞으로 최신 버전으로 했을때 안뜬다면 버전을 내려보시면 좋을 것 같습니다.
-
해결됨스프링 핵심 원리 - 기본편
필드에 빨간색 오류가 뜨는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 내용]위의 코드에서 생성자를 설정해 주지 않으면 빨간색 오류가 뜨는데, memberRepository가 초기화되지 않아서라고 합니다. 여기서 궁금한 점이 필드만 있으면 생성자를 따로 코드로 쳐주지 않아도 자동으로 기본 생성자 설정을 해주지 않나요? 아래 사진에서는 example클래스에서 필드만 넣어줘도 빨간색 줄이 뜨지 않는데 ... 둘의 차이를 모르겠습니다.
-
해결됨AWS 클라우드 서비스 인프라 구축 이해와 해킹, 보안
웹서버 위치
안녕하세요, 좋은 강의 감사합니다.강사님 강의보면서, 인프라를 구축을 공부하고 있습니다. 구축하면서 궁금한 점이 웹서버를 어디로 둬야하는지 알고 싶어 질문을 남기게 되었습니다. 현재 vpc를 생성하고 내부에 퍼블릭 서브넷(2개)과 프라이빗 서브넷(2개)를 두고 퍼블릭 서브넷에 도커를 설치하고 웹서버로는 nginx와 스프링을 설치하여 공부를 진행하려고 하는데여기서 궁금한 게, 퍼블릭 서브넷에 설치해야 하는 것인지 아니면 프라이빗 서브넷에 설치하는 것인 지 궁금합니다. 퍼블릭 서브넷에 위치하면 보안 상 좋지 않다 프라이빗 서브넷에 위치하면 개발할 때, 접근성이 떨어진다. 어느 것이 좋은 지 궁금하여 질문을 남기게 되었습니다. 읽어주셔서 감사합니다.
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
왜 src폴더 위치에서 images가 불러와 지는 지 모르겠습니다
<img src="images/icons/logo.png" /> 만으로 사진이 불러와 지는데요 엄밀히 따지면 images 파일은 public 폴더 아래 있으니<img src="../public/images/icons/logo.png" /> 처럼 상위 폴더로 이동 후 public에서 images에 접근할 수 있는 것 아닌가요?
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 파워쿼리 Advanced
기초강의는 어디서 수강할 수 있나요?
OT시간에 말씀하신 기초강의는 검색되지 않는데 어디서 수강해야 할까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
코드 질문합니다
private static void modelToRequestAttribute(Map<String, Object> model, HttpServletRequest request) { //request에 member저장 model.forEach((String, Object) -> request.setAttribute(String,Object)); System.out.println("modelToRequestAttribute model = " + model.get("model")); }이 코드에서요model.forEach((String, Object) -> request.setAttribute(String,Object));여기서 MemberSaveControllerV3 클래스가 실행된다면String에는 "member" Object에는 member객체가 들어가게 될텐데요 member객체가 루프를 돈다고하면String username = paramMap.get("username"); int age = Integer.parseInt(paramMap.get("age"));member객체에 저장된 이 2개의 변수가 루프를 도는게 맞을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
Direct Messages에 값이 없어요
안녕하세요.import React from 'react'; import { Container, Header } from './styles'; import useSWR from 'swr'; import fetcher from '@utils/fetcher'; import { useParams } from 'react-router'; import gravatar from 'gravatar'; const DirectMessage = () => { const { workspace, id } = useParams<{ workspace: string; id: string }>(); const { data: userData } = useSWR(`api/workspaces/${workspace}/members/${id}`, fetcher); const { data: myData } = useSWR('api/users', fetcher); if (!userData || !myData) { return null; } return ( <Container> <Header> <img src={gravatar.url(userData.email, { s: '24px', d: 'retor' })} alt={userData.nickname} /> <span>{userData.nickname}</span> </Header> {/* <ChatList /> <ChatBox /> */} </Container> ); }; export default DirectMessage; 이건 DirectMessage입니다.// import EachDM from '@components/EachDM'; // import useSocket from '@hooks/useSocket'; import { CollapseButton } from '@components/DMList/styles'; import { IDM, IUser, IUserWithOnline } from '@typings/db'; import fetcher from '@utils/fetcher'; import React, { FC, useCallback, useEffect, useState } from 'react'; import { useParams } from 'react-router'; import { NavLink } from 'react-router-dom'; import useSWR from 'swr'; const DMList: FC = () => { const { workspace } = useParams<{ workspace?: string }>(); const { data: userData } = useSWR<IUser>('/api/users', fetcher, { dedupingInterval: 2000, // 2초 }); const { data: memberData } = useSWR<IUserWithOnline[]>( userData ? `/api/workspaces/${workspace}/members` : null, fetcher, ); // const [socket] = useSocket(workspace); const [channelCollapse, setChannelCollapse] = useState(false); const [countList, setCountList] = useState<{ [key: string]: number }>({}); const [onlineList, setOnlineList] = useState<number[]>([]); const toggleChannelCollapse = useCallback(() => { setChannelCollapse((prev) => !prev); }, []); const resetCount = useCallback( (id) => () => { setCountList((list) => { return { ...list, [id]: 0, }; }); }, [], ); const onMessage = (data: IDM) => { console.log('dm왔다', data); setCountList((list) => { return { ...list, [data.SenderId]: list[data.SenderId] ? list[data.SenderId] + 1 : 1, }; }); }; useEffect(() => { console.log('DMList: workspace 바꼈다', workspace); setOnlineList([]); setCountList({}); }, [workspace]); // useEffect(() => { // socket?.on('onlineList', (data: number[]) => { // setOnlineList(data); // }); // console.log('socket on dm', socket?.hasListeners('dm'), socket); // return () => { // console.log('socket off dm', socket?.hasListeners('dm')); // socket?.off('onlineList'); // }; // }, [socket]); return ( <> <h2> <CollapseButton collapse={channelCollapse} onClick={toggleChannelCollapse}> <i className="c-icon p-channel_sidebar__section_heading_expand p-channel_sidebar__section_heading_expand--show_more_feature c-icon--caret-right c-icon--inherit c-icon--inline" data-qa="channel-section-collapse" aria-hidden="true" /> </CollapseButton> <span>Direct Messages</span> </h2> <div> {!channelCollapse && memberData?.map((member) => { const isOnline = onlineList.includes(member.id); const count = countList[member.id] || 0; <NavLink key={member.id} activeClassName="selected" to={`/workapce/${workspace}/dm/${member.id}`} onClick={resetCount(member.id)} > ; <i className={`c-icon p-channel_sidebar__presence_icon p-channel_sidebar__presence_icon--dim_enabled c-presence ${ isOnline ? 'c-presence--active c-icon--presence-online' : 'c-icon--presence-offline' }`} aria-hidden="true" data-qa="presence_indicator" data-qa-presence-self="false" data-qa-presence-active="false" data-qa-presence-dnd="false" /> ;<span className={count > 0 ? 'bold' : undefined}>{member.nickname}</span> {member.id === userData?.id && <span> (나)</span>} {count > 0 && <span className="count">{count}</span>} </NavLink>; // return <EachDM key={member.id} member={member} isOnline={isOnline} />; })} </div> </> ); }; export default DMList; 이건 DMList입니다. 현재 DM페이지 만들기 강의를 듣고 있는데, DM리스트에 사용자가 하나도 표시가 되지 않는데 원래 지금 강의까지는 표시가 되지 않는게 맞나요? 워크스페이스 초대, 채널 멤버 초대해도 에러는 발생하지 않는데 DM리스트에 추가는 다음 강의에서 진행하나요? 아니면 지금도 되야하는게 정상인가요..?
-
미해결처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
섹션9 동영상 중복
[섹션9. 플러터 개발에 chatGPT 활용 팁] 강의의 팁1, 팁2 강의가 동일합니다. 내용으로 볼 때 팁1 강의에 대한 동영상 업로드에 오류가 있는 것 같습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 문제
안녕하세요, 수강생입니다. 혹시 시간초과가 나서 혹시 제가 실수한게 있을까요..?https://www.acmicpc.net/submit/1940/62536370ㅜㅜ,,,
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
안녕하세요. 끝말잇기 order가 안넘어가고 [object HTMLSpanElement]1번째 참가자 이렇게 나옵니다.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>끝말잇기</title> <style></style> </head> <body> <div><span id="order">1</span>번째 참가자</div> <div>제시어: <span id="word"></span></div> <input type="text" /> <button>입력</button> <script> const number = Number(prompt("몇 명이 참가하나요?")); const $button = document.querySelector("button"); const $input = document.querySelector("input"); const $word = document.querySelector("#word"); // word는 id니까 const $order = document.querySelector("#order"); let word; // 제시어 let newWord; // 새로 입력한 단어 const onClickButton = () => { if (!word) { // 제시어가 비어 있는가? // 비어 있다 word = newWord; // 입력한 단어가 제시어가 된다. 데이터를 바꾸고 // 화면도 바꿔줘야 함 $word.textContent = word; const order = Number($order.textContent); // order 숫자로 변환, 현재 순서 if (order + 1 > number) { // 현재 순서에서 1을 더한 값이 number보다 크다면 $order.textContent = 1; // 다음 순서를 1로 } else { // 그렇지 않다면 $order.textContent = order + 1; // 다음 순서를 현재 순서 + 1로 } $input.value = ""; // 입력칸 다시 공백으로 } else { // 비어 있지 않다 if (word[word.length - 1] == newWord[0]) { // 올바른가? -- 제시어의 마지막 글자와 새로 입력한 단어의 첫 번째 글자가 일치 word = newWord; $word.textContent = word; if (order + 1 > number) { $order.textContent = 1; } else { $order.textContent = order + 1; } $input.value = ""; } else { // 올바르지 않은가 alert("올바르지 않은 단어입니다!"); } } }; const onInput = (event) => { newWord = event.target.value; }; $button.addEventListener("click", onClickButton); $input.addEventListener("input", onInput); </script> </body> </html> 2번째 참가자 라고 떠야하는데 [object HTMLSpanElement]1번째 참가자가 대신 뜹니다ㅠㅠ
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
PUT메소드 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의 잘 듣고있습니다다른게아니고 강의에서 PUT메소드를 사용하면아예 리소스가 대체된다고 하셨는데그러면 그전에있던 리소스는 되살릴방법이 아예 없는걸까요?그 전에있던 리소스를 다시 사용하고싶으면 애초에 PATCH로 하는게 맞는건가요?
-
해결됨
제 C++ 공부순서 계획을 한번 봐주셨으면 좋겠습니다!
게임 프로그래밍을 목표로 공부를 시작한 지 일주일도 채 되지 않은 뉴 비입니다.제가 대학교 3학년이고 벌써 절반이 지났기 때문에 졸업까지 1년 반 정도 밖에 남지 않아선택과 집중을 해야 하는 관계로 C언어로 기초를 더 쌓고 싶지만 C++로 바로 시작하게 되었습니다. C++과 언리얼을 우선 공부하고 나중에 취직을 한 이후에 C#과 유니티를 배워볼 생각입니다.그래서 공부 순서에 대해 계획을 세우다가 궁금한 것이 생겨서 2가지 질문을 하려고 합니다.일단 제 공부 계획입니다.[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문위 강의로 현재 공부 중이며 C++에서 사용되는 기본적인 부분을 공부하고 있습니다.이제 이 이후가 고민인데요. 위 강의 이후로 [게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버위 강의가 C++도 포함해서 제게 필요한 부분을 전부 포괄적으로 배울 수 있어서 좋다고 생각하고 있습니다. 이 이후로는 편의상 1번 강의라고 칭하겠습니다.그러나 아직 C++에 대해 하나도 모르고 있는 제 생각에 필요한 C++의 지식들을 잘 녹여내셨을 것이라 생각되지만 위 강의만으로 C++의 공부는 일단락 짓고 넘어갈 수 있을까라는 의문과 걱정이 생겼습니다.그래서 생각한 것이 홍정모의 따라하며 배우는 C++위 강의가 C++에 대해서는 더 많은 것을 담고 있지 않을까라는 것입니다.이 이후로는 편의상 2번 강의라고 칭하겠습니다.그래서 일단 C++에 한해서 1번 강의보다는 2번 강의가 더 디테일할 것 같으니2번 강의로 일단 C++을 공부하고 이후 1번 강의로 복습도 하고 게임과 관련된 것도 배우는 것이 어떠한가라는 생각을 했습니다. 그래서 첫 번째 질문은 1번 강의로 바로 공부하는 것이 좋은가 or 2번 강의로 우선 공부를 한 이후 1번 강의로 공부하는 것이 좋은가에 대한 답변을 듣고 싶습니다.(무엇이 더 좋은가라는 부분이 너무 사람마다 다를 것 같다고 생각되신다면 시간이 1년 반 정도밖에 없지만 기초부터 탄탄하게 쌓아가야 하는 제 현 상황에서 어떻게 하는 것이 좋을지에 대해서 추천 부탁드립니다.) 마지막 두 번째 질문은 그 이후에 제 공부 계획을 보시고 "이런 부분은 중복되는 내용이 많으니 빼는 편이 좋다"거나 "이런 부분이 부족해 보이므로 이런 부분을 추가적으로 공부하는 것이 좋을 것 같다"와 같은 조언이나 "이 강의를 추가로 공부하면 이런 부분에서 더 좋을 것이다" 와 같은 강의 추천을 부탁드립니다. C++ 이후(물론 위의 공부만으로 C++을 마스터할 것이라는 생각은 하지 않지만 일단 계속 C++만 잡고 있을 수는 없기 때문에) 자료구조와 알고리즘을 공부해야 하기에그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)그림으로 쉽게 배우는 운영체제이렇게 3가지 강의로 공부를 하고 (운영체제는 사실 꼭 필요하다는 이야기는 못 들었지만 일단 알아두는 편이 좋다고 생각해서 넣었습니다.) 언리얼 엔진 공부로 넘어가서언리얼 엔진4 입문 (C++ 기반)위 강의로 언리얼엔진의 기본을 다지고[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버위 시리즈 강의를 쭉 따라서 공부할 예정입니다.일단 여기까지가 제 공부 계획입니다. 아마 이 이후에는 포트폴리오를 만들고 하지 않을까 싶습니다.
-
미해결실전! 스프링 데이터 JPA
JpaRepository 오버라이드 메소드에 QueryHints 적용시 에러발생
@QueryHints(value = @QueryHint(name = "org.hibernate.readOnly", value = "true")) @Override Optional<Member> findById(Long aLong);위와 같이 SimpleJpaRepository의 findById를 오버라이딩 할 경우 오류가 발생합니다.JpaRepository의 메소드를 오버라이드 하여서 적용할 수 없는건지 궁금합니다.다음은 오류의 내용입니다.org.springframework.dao.InvalidDataAccessApiUsageException: class java.lang.String cannot be cast to class java.lang.Boolean (java.lang.String and java.lang.Boolean are in module java.base of loader 'bootstrap'); nested exception is java.lang.IllegalArgumentException: class java.lang.String cannot be cast to class java.lang.Boolean (java.lang.String and java.lang.Boolean are in module java.base of loader 'bootstrap') at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) at com.sun.proxy.$Proxy132.findById(Unknown Source) at study.datajpa.MemberRepositoryTest.queryHint(MemberRepositoryTest.java:318) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Suppressed: org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:131) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:255) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:445) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:206) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAfterEachCallbacks$12(TestMethodTestDescriptor.java:257) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$13(TestMethodTestDescriptor.java:273) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeAllAfterMethodsOrCallbacks$14(TestMethodTestDescriptor.java:273) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAllAfterMethodsOrCallbacks(TestMethodTestDescriptor.java:272) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeAfterEachCallbacks(TestMethodTestDescriptor.java:256) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:141) ... 47 moreCaused by: java.lang.IllegalArgumentException: class java.lang.String cannot be cast to class java.lang.Boolean (java.lang.String and java.lang.Boolean are in module java.base of loader 'bootstrap') at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3434) at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3380) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:315) at com.sun.proxy.$Proxy112.find(Unknown Source) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findById(SimpleJpaRepository.java:335) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289) at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:530) at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:286) at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:640) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:76) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 77 moreCaused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Boolean (java.lang.String and java.lang.Boolean are in module java.base of loader 'bootstrap') at org.hibernate.internal.SessionImpl.find(SessionImpl.java:3396) ... 106 more
-
미해결FreeRTOS 프로그래밍
Task 별 cpu 사용량
Task를 여러 개 생성 후, 우선 순위의 변화에 따라 cpu 사용량이 어떻게 변하는지 보고 싶어 "osGetCPUUsage" 함수를 통해 CPU 사용량을 측정하였습니다. 그런데 위의 함수는 전체 CPU 사용량을 측정하는 것으로 알고 있습니다. 저는 우선순위를 랜덤으로 준 후, 각 Task별 cpu 사용량을 알아 보고 싶은데, 혹시 각 Task의 cpu 사용량을 볼 수 있는 방법은 없을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
window에선 ios에뮬레이터를 돌릴 방법이 없나요?
window에선 ios에뮬레이터를 돌릴 방법이 없나요?
-
미해결실전! 스프링 데이터 JPA
fetch하지 않은 left join은 member만 조회하는데 어떻게 객체탐색이 가능한지 이유
우선 저의 코드부터 올려보겠습니다.@Query("select m from Member m left join m.team t") List<Member> findmemberByLeftJoin();저의 코드는 JPQL에서 left join fetch를 하지 않고 left join만 걸었습니다.강의 내용에 의하면 단순 joinAll()을 하였을 때 영속성 컨텍스트로부터 proxy객체를 일단은 주입한다고 하셨습니다.저의 경우는 @Query를 활용하여 다음과 같은 JPQL을 선언하였을 때, Console에 출력되는 내용은 아래와 같습니다.left join은 걸리지만 Select절에는 Member에 대한 데이터만 불러올 뿐, Team에 대한 데이터는 불러오지 않고 있습니다.그렇다면 이때 Team을 getClass로 출력할때 proxy객체일거라 생각했습니다.하지만 직접 출력해보니 class study.datajpa.entity.Team 이렇게 출력이 됩니다.이것은 조회는 하지 않았으나, 프록시객체를 반환하지는 않고 진짜 객체로 반환한다는 뜻인데...여기서부터 햇갈리기 시작합니다.어떻게 이해하고 받아들여야 할까요?1. 쿼리상에서는 Team을 불러오지 않는데, 어떻게 객체탐색을 통해 Team 객체가 조회가 되나요?2. 쿼리상에서는 Team을 불러오지 않는데, 어째서 Proxy객체가 아닌 진짜 엔티티인가요?3. 결국 이런 현상은 패치조인과 다른 것 이라고 이해해야 할까요? (이 현상은 inner Join에서도 발생합니다) * left조인은 걸리고, select절에 team은 없지만 * n+1이 발생하지 않고도 team이 조회되는 이유 * 프록시 객체가 아닌 진짜 team객체를 반환해주는 이유
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
인덱스드 시그너치와 함수속성
interface userType<T> { readonly [key: number]: T; join(separator?: string): string; } 위 코드처럼 인덱스드 타입의 키 타입을 Number로 하면 오류가 발생하지 않지만 아래와 같이 string으로 바꾸면 join 속성에서 "Property 'join' of type '(separator?: string | undefined) => string' is not assignable to 'string' index type 'T'.(2411)View Problem (⌥F8)" 오류가 발생합니다.join은 함수의 매개변수와 반환타입을 가지고 있는데 왜 이런 오류가 발생하는걸까요?interface userType<T> { readonly [key: string]: T; join(separator?: string): string; }
-
미해결
작업형2형에서 target을 인코딩 않했습니다.
안녕하세요 강사님6회 시험 작업형2를 풀때dfX로 x_train, x_test를 concat해서 EDA를 진행하다y_train의 깜박하고 첵크 안했는데요. 아마도 object였던것 같습니다.accuracy, precision, recall등은 나오는데 f1_score가 에러가 뜨더라고요 시간이 부족해서 모델링은 2가지정도 해보았는데요LogisticRegression은 기억에 점수가 낮았었고요RandomForestClassifier는 max_depth와 n_estimator를 조정해서 accuracy가 잘나와서 답안제출을 했습니다. 답안제출 파일명은 수험번호가 아닌 수험번호로 하려다 result.csv로 제출했고요(문제에 그러라고 한 것으로 보여서요)target 인코딩이 안되었을 경우 모델의 차이가 어떤 것인지 궁금합니다.감점이 많이 될까요?짧은시간 공부하면서 많은 도움이 되었습니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
xxxxxxxxImpl 네이밍 룰
[질문 내용]인터페이스를 구현한 구체 클래스가 하나인경우 xxxxxImpl이라는 네이밍을 관례적으로 사용한다고 하셨는데제가 생각했을때는 구현클래스가 하나일경우(기능확장이 필요없다고 판단될경우) 굳이 인터페이스를 만들 필요가 없을것같은데,1.인터페이스를 구현한 구체클래스가 하나인경우가 많은편인지? 혹은 어떤경우인지?2. 이 네이밍룰을 따른후 혹시 구현클래스가 하나더 생긴다면 네이밍을 수정하는지..?