묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP파일 문제
jsp 파일이 강의 처럼 뭔가 안뜨고 자바 클래스 import도 안했는데 빨간색이 안뜨네요. 단순히 입력만되는 창이 됐는데 어떻게 해결할 수 있을까요?
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
확장함수 스타일 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 9:54쯤에 질문이 있습니다val 또는 fun으로 확장함수를 만들 수 있는데..두가지 방식의 차이점이 있나요?또는 이펙티브 코틀린 등등에서 더 선호하는 방식이 있는지, 안티패턴이나 best practice가 있다면 알고 싶습니다.차이점이 있다면 확장함수에 val을 사용한 경우 custom getter방식으로 구현되고 호출부에 ()가 없는 반면, fun키워드를 사용한 경우에는 get()이 사용되지 않고 호출부에 ()를 해줘야 되는 것 같습니다 1번방식: 강의에서 나온대로 val_ 정의부:val List<Fruit>.samePriceFilter: List<Fruit> get() = this.filter(Fruit::isSamePrice)_ 호출부:val samePriceFruits2 = fruitsInList.flatMap { it.samePriceFilter }2번방식: fun으로 사용_ 정의부:fun List<Fruit>.samePriceFilter(): List<Fruit> { return this.filter(Fruit::isSamePrice) }_ 호출부:val samePriceFruits2 = fruitsInList.flatMap { it.samePriceFilter() }
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
전환율 관련 문의
구매 관련 세션 키 이벤트 비율과 사용자 세션 키 이벤트 비율 수동으로 확인할 수 있는 방법 문의 드립니다. 탐색 보고서에서 만들어 보려고 하니 전체 이벤트가 모두 반영 되어, 기본 보고서에서 처럼 이벤트를 선택하여 전환율을 확인할 수 없었습니다. 기본 보고서에서 바로 확인할 수 있는 수치가 아니어, 수동으로 측정 항목 기입하여 계산해야 할 것 같은데요. 분모는 측정항목으로 세션수와 총사용자로 두면 될 것 같은데 분자인 구매 완료 세션수와 구매한 사용자를 어떻게 적용하면 될가요? 별도의 이벤트 세그먼트를 만들어서 보는게 맞을지.. 하여 문의 드립니다.
-
미해결스프링 핵심 원리 - 기본편
수동 빈과 자동 빈이 충돌될 때 로그에 overriding is disabled라고 남습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 섹션 7. 컴포넌트 스캔 - 중복 등록과 충돌 강의를 실습하던 중 @Component public class MemoryMemberRepository implements MemberRepository{} @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { @Bean(name = "memoryMemberRepository") public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } } 이러한 경우 자료에서는 "수동 빈 등록이 우선권을 가져서 수동빈이 자동빈을 오버라이딩 해버린다." 라고 나와 있습니다. 근데 제 콘솔 로그에는 09:37:26.010 [main] WARN o.s.c.a.AnnotationConfigApplicationContext --Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'memoryMemberRepository' defined in class path resource [hello/core/AutoAppConfig.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=autoAppConfig; factoryMethodName=memberRepository; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [hello/core/AutoAppConfig.class]] for bean 'memoryMemberRepository' since there is already [Generic bean: class [hello.core.member.MemoryMemberRepository]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [/Users/g.u/logInDev/T.I.L/spring/basic/codebase/core/build/classes/java/main/hello/core/member/MemoryMemberRepository.class]] bound. (...생략....) The bean 'memoryMemberRepository', defined in class path resource [hello/core/AutoAppConfig.class], could not be registered. A bean with that name has already been defined in file [/Users/g.u/logInDev/T.I.L/spring/basic/codebase/core/build/classes/java/main/hello/core/member/MemoryMemberRepository.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true오버라이딩을 원하면 추가 옵션을 세팅하라고 나와있습니다. 이 경우에는 오버라이딩이 된게 아니고 스프링이 중단되었다고 판단됩니다. 혹시 강의에서는 추가로 옵션을 세팅한건 지 아니면 제가 잘못 코드를 작성한건 지 궁금합니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
CSR, SSR 렌더링 방식 문의
안녕하세요~설명해주신 CSR, SSR 렌더링 강의보고 CSR, SSR 렌더링 방식에 대해 궁금한점 두가지 남겨봅니다!(유사한 질문이 있는지 찾아봤는데 글이 많아서 찾질 못해서 중복 감안하고 올려봅니다🙏🏻) 질문1CSR은 bundle js 다운로드 레이턴시 만큼 FCP가 느리고 반대로 SSR은 bundle js 다운로드 레이턴시만큼 CSR보다 FCP가 빠르다고 이해했는데요. TTI 기준으로 보면 결국 CSR, SSR모두 차이가 없는게 맞을까요? (gzip압축 해제, js parse, hydration등의 처리에서 드는 비용의 차이가 있겠지만 이런 부분들은 크게 영향을 주진 않을거라고 생각하여 문의드립니다. 혹시 두 방식에 영향을 미치는 큰 요소가 있다면 그 부분도 고려해서 알려주시면 감사하겠습니다.) 질문2CSR의 장점으로 초기 렌더링이 느리고 이후에 페이지 이동시 빠르게 화면을 그릴 수 있다고 하셨는데요, CSR에서 초기 렌더링의 속도를 높이기 위해 코드 스플리팅 전략을 취할 수 있을거 같습니다. 이렇게 CSR에서 코드 스플리팅 방식을 취한 경우 페이지 이동시 결국 bundle js 다운르드 레이턴시가 또 발생할거 같은데요. prefetch, preload같은 전략을 취하지 않고 코드스플리팅만 적용한 CSR방식은 단점만 남는 렌더링 전략이 맞을까요? 유일한 장점은 CSR이지만 코드 스플리팅을 했기 때문에 초기 FCP가 조금 빠르다정도일거 같은데 이해한게 맞는지 문의드려봅니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
강의스크립트
강의 자막(스크립트) 다운로드 받을 수 있을까요?
-
해결됨AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
로드밸런서 HTTP/HTTPS 리스너 규칙 설정 질문
안녕하세요 강사님! 항상 강의로 재미있게 공부하고 있습니다! 다름이 아니라 ACM으로 SSL 인증서를 적용하면 로드밸런서의 리스너 규칙을 HTTPS 만 허용하고 HTTP 리스너는 404 응답을 보내게 설정해도 되는 걸까요?로드밸런서 리스너 규칙HTTPSHTTP 이렇게 하려는 이유는 기존 HTTP 리스너만 있는 상태에서 웹소켓으로 통신을 하려고 하는데, 프론트에서 HTTPS로 웹소켓 연결 요청을 보내게 되면, "Handshake failed due to invalid Upgrade header: null" 이런 에러가 뜨더라고요!그래서 찾아본 결과 ALB가 리버스 프록시로서 HTTP 요청을 HTTPS로 리다이렉션 하는 과정에서 WebSocket upgrade 헤더 손실이 발생한다고 하더라고요!(이게 맞는 내용일까요..?) 아직 에러를 해결하는 중이라 이게 정답인지 아닌지는 아직 잘 모르겠지만.. 이런 문제로 HTTPS 리스너를 추가해 보려고 합니다! 그리고 하는 김에 보안강화를 위해 HTTP는 404응답, HTTPS 요청만 허용해 보려고 하는데 이렇게 해도 되는 걸까요? + 추가로 이렇게 되면 ALB 보안그룹의 인바운드를 HTTPS를 허용하면 되는 거겠죠?!
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
오브젝트 소멸 관련해서 질문있습니다
안녕하십니까 교수님 다름이 아니고 발행-구독 패턴의 주체인 MyGameInstance의 Student 오브젝트 선언 부분에서 궁금한 점이 생겨서 질문 드립니다.25:47초 쯤에서 구문 실행시 아래의 오브젝트는 자동 소멸된다고 하셨습니다. 따라서 Outer가 필요 없다고 하셨고, outer가 필요없는 이유는 Student 객체가 주체에서 관리될 이유가 없기 때문이라고 이해했습니다. UStudent* Student1 = NewObject<UStudent>(); UStudent* Student2 = NewObject<UStudent>(); UStudent* Student3 = NewObject<UStudent>();근데 '구문 실행'시 자동 소멸이 된다는게 이해가 되지 않습니다. 구문 실행시가 아닌 해당 함수에서의 작업을 모두 마친 후 소멸하는게 아닌가요?아니면 student객체들이 엔진에 레퍼런스되지 않기 때문에 선언 후 소멸된다는 의미에서 저렇게 말씀하신걸까요? 혹시 제가 오브젝트 관련해서 잘못 이해했거나 부족한 지식이 있는거라면 지적해주신다면 정말 감사합니다.
-
미해결Next + React Query로 SNS 서비스 만들기
Next-Auth 관련해서 질문이 있습니다.
백엔드 취준생인데 프론트를 좀 할 일이 있어서 강의 듣고 있는데 Next-Auth 부분이 이해가 쉽지 않네요... 몇 가지 질문 드리고자 합니다.1. session 객체에 어떤게 담기는건지 잘 모르겠습니다.export default async function Home() { const session = await auth() if (session?.user) { redirect('/home') return null } return ( <Main/> ); }export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ // 개발자가 직접 만든 화면에서 로그인 하도록 진행 pages: { signIn: '/i/flow/login', // 로그인 newUser: '/i/flow/signup' // 회원가입 }, providers: [ CredentialsProvider({ async authorize(credentials) { const authResponse = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/login`, { method: 'POST', headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.usename, password: credentials.password, }) }) if (!authResponse.ok) { return null } const user = await authResponse.json() return { email: user.id, name: user.nickname, image: user.image, ...user } } }) ], })Home 에서 auth() 를 통해 불러온 session 객체에 CredentialsProvider 가 리턴한 객체가 담기는건가요?그런데 그렇다고 하기엔 객체에 user 라는 속성이 없어서 아닌 것 같기도 해서 아닌 거 같다는 생각도 듭니다. export default function Login() { const router = useRouter() const { data: session } = useSession(); if (session?.user) { router.replace('/home') return null } router.replace("/i/flow/login") return ( <Main /> ) }마찬가지로 여기서도 session 에 어떤게 담기는지 잘 모르겠습니다 ㅠㅠ auth() 로 리턴한 세션과 같은 객체가 담기는 것 같긴 한데 도대체 session 에 뭐가 담기는지 파악이 쉽지 않네요 ㅋㅋㅋ그래서 session 객체의 user 를 클릭해서 들어가보니 다음과 같은 interface 가 나오네요.export interface DefaultSession { user?: User expires: ISODateString }auth/core 에 있는 인터페이스인 것 같은데 이 인터페이스가 어느 시점에 등장(?) 하는 건지 잘 모르겠습니다.2. 지금 진행하는 로그인 방식은 백엔드에 로그인 관련 API 가 있다고 가정하고 진행하는 것으로 저는 이해를 했는데요export const handlers = [ http.post(`${baseUrl}/api/login`, () => { console.log('로그인'); return HttpResponse.json(User[1], { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }) }), http.post(`${baseUrl}/api/logout`, () => { console.log('로그아웃'); return new HttpResponse(null, { headers: { 'Set-Cookie': 'connect.sid=;HttpOnly;Path=/;Max-Age=0' } }) }), http.post(`${baseUrl}/api/users`, async ({ request }) => { console.log('회원가입'); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403 // }) return HttpResponse.text(JSON.stringify('ok'), { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }); }) ];이게 지금 api 를 mocking 한 건데 여기에 요청을 보내고 있으니까요.그러면 이 API 에서 리턴한 유저(User[1]) 가 세션에 담기는 것인지 궁금하네요. (이것도 1번 질문하고 좀 연관이 되네요) 그러면 만약에 백엔드 API 가 로그인 성공했을 때 http body 에 별도의 객체를 리턴하지 않으면 어떻게 되나? 이런 궁금증도 생깁니다.3. 그리고 로그아웃을 할 때는 왜 로그아웃 API 에 따로 요청을 보내지 않고 signOut 함수만 사용하는지 궁금합니다. 이것만 사용해도 쿠키가 삭제가 돼서 그런 것인가요? 그러면 백엔드 서버에 별도의 로그아웃 API 를 만들지 않아도 되는 것인지 궁금합니다. 장문의 질문글이 된 거 같은데, 뭔가 Next-Auth 를 처음 접하다보니 사용법이 좀 익숙치가 않네요. AI 에 물어보거나 구글링을 해 봐도 좀 파악이 쉽지 않아 여기에 질문 남겨봅니다.감사합니다.
-
미해결CSS Flex와 Grid 제대로 익히기
menu 아이템 반응형 변경
@media (max-width: 310px) { .menu { flex-wrap: wrap; } .menu-item { width: 100%; flex: 1 auto; } } 크기가 좁아질때 일자로 배치를 해봤는데 메뉴 아이템에 호버가 걸려있어서 사이즈가 작아지는 경우가 생겨서 flex 로 사이즈 변경이 안되게 해줬는데 저런 경우에 똑같이 menu-item:hover 이런식으로 접근하는게 맞을까요?
-
해결됨딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
self-attention에서 Wq, Wk, Wv weight matrix 학습과정 질문드립니다.
self-attention에 등장하는 Wq, Wk, Wv weight matrix들에 대한 학습과정 질문입니다. attention score계산 시 query vector에 대해(예를들어 강의에서 설명하신 student vector) key vector들(am, a, student 벡터)의 attention score가 낮게 나온다면, 그게 loss가 되는건가요? 예를들어, Wq, Wk, Wv weight들이 충분히 학습되지 않았을 때를 생각해보면, "I" vector가 Query vector일 때, "student" key vector의 attention score가 가장 높게 나오지 않고 "am" key vector와 attention score가 가장 높게 나올 경우엔 loss가 발생하고 "student" key vector와의 score가 높게 나오도록 Wq, Wk, Wv가 업데이트 된다고 이해하면 될까요?(I와 student는 word embedding에 의해 유사성이 있다고 판단하고)
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
연관관계 관련 질문 있습니다.
public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream() .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalArgumentException::new); targetHistory.doReturn();리팩토링 강의에서 repository 사용없이 this.userLoanHistories.stream()로 바로 데이터를 불러오던데 mappedBy로 연관관계가 존재하면 가능한건가요?
-
미해결김영한의 실전 자바 - 기본편
객체 지향 프로그래밍
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결
리액트 axios 쿠키 전송 문제
api 전송시 withCredentials 옵션을 분명 true로 했습니다.쿠키도 설정했고요. 브라우저에서도 쿠키 설정된것 확인했습니다.setCookie("Authorization", data, {path: "/", maxAge: 2592000}); 그런데 왜 요청헤더에 쿠키가 안 들어갈까요? CORS 에러도 없고 요청헤더 자체에 쿠키가 없으니까 백보다는 프론트 문제인가요? 백엔드에도 config.setAllowCredentials(true)로 설정돼있습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - O 맞왜틀 질문있습니다.
테스트 케이스는 다 맞는데 나름 작은단위로 디버깅도 돌려보고 했는데도 어디서 문제가 틀렸는지 전혀 감을 못잡겠네요... 부탁드립니다. http://boj.kr/66123546c1c34e09a8d17f5fbf38cec8 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 자료 위치
[질문 내용]선생님께서 html코드를 복사하고 강의 중간중간 설명해주시는 강의 자료는 어디에서 찾을수있나요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
typedef 설명하신 강의를 못찾겠어요
모르면 강의 다시보라그래서 찾아보려했는데어떤 강의의 시간대에 설명 해주셨는지 알 수 있을까요?!
-
미해결Tailwind CSS 실전 포트폴리오 퍼블리싱
테일윈드 @layer utilities를 활용하는 경우
선생님께서, 테일윈드 @layer utilities를 언제 활용하시는지 궁금합니다! 영상을 보며 조금은 짐작이 가는 듯 하지만, 명확하지 않아 선생님의 답변을 구하고 싶습니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
체크 예외 -> 런타임 예외 변환 시 생성자
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]서비스 계층의 순수성을 위해 체크 예외를 런타임 예외로 변환해서 던지고, 런타임 예외로 변환 시 반드시 기존 체크 예외를 포함하여 던져야 한다.왜냐하면 예외 발생 시 어떤 예외 때문에 해당 예외가 발생했는지 스택 트레이스를 참고하기 위해서이다. 그러면 차라리 런타임 예외 클래스의 생성자에서 예외를 포함하도록 강제하면 예외를 포함하여 던져야 한다. 는 부분이 해결 될 것 같은데요강의에서는 다음과 같이 파라미터가 없는 기본 생성자를 만드는 특별한 이유가 있는 것인지 아니면 중요한 주제가 아니라 남기셨는지 궁금합니다. public class MyDbException extends RuntimeException { public class MyDbException() { // 이 부분을 없애고 다음의 생성자만 남김 } public class MyDbException(Throwable cause) { // 이 생성자만 강제하면 반드시 예외를 포함하여 던져야 하므로 문제가 해결됨 } }
-
미해결[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
08-06
docker-compose build가 안되요!ㅠㅠㅠㅠㅠ도커라 도커컴포즈 삭제하고 다시 까는거는 5시간동안 했는데...챗gpt가 하라는데로 5시간동안 했는데 해결이 안되네요!Traceback (most recent call last):File "urllib3/connectionpool.py", line 677, in urlopenFile "urllib3/connectionpool.py", line 426, in makerequestFile "<string>", line 3, in raise_fromFile "urllib3/connectionpool.py", line 421, in makerequestFile "http/client.py", line 1369, in getresponseFile "http/client.py", line 310, in beginFile "http/client.py", line 271, in readstatusFile "socket.py", line 589, in readintoConnectionResetError: [Errno 104] Connection reset by peerDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "requests/adapters.py", line 449, in sendFile "urllib3/connectionpool.py", line 727, in urlopenFile "urllib3/util/retry.py", line 410, in incrementFile "urllib3/packages/six.py", line 734, in reraiseFile "urllib3/connectionpool.py", line 677, in urlopenFile "urllib3/connectionpool.py", line 426, in makerequestFile "<string>", line 3, in raise_fromFile "urllib3/connectionpool.py", line 421, in makerequestFile "http/client.py", line 1369, in getresponseFile "http/client.py", line 310, in beginFile "http/client.py", line 271, in readstatusFile "socket.py", line 589, in readintourllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))During handling of the above exception, another exception occurred:Traceback (most recent call last):File "docker/api/client.py", line 214, in retrieveserver_versionFile "docker/api/daemon.py", line 181, in versionFile "docker/utils/decorators.py", line 46, in innerFile "docker/api/client.py", line 237, in _getFile "requests/sessions.py", line 543, in getFile "requests/sessions.py", line 530, in requestFile "requests/sessions.py", line 643, in sendFile "requests/adapters.py", line 498, in sendrequests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))During handling of the above exception, another exception occurred:Traceback (most recent call last):File "docker-compose", line 3, in <module>File "compose/cli/main.py", line 81, in mainFile "compose/cli/main.py", line 200, in perform_commandFile "compose/cli/command.py", line 70, in project_from_optionsFile "compose/cli/command.py", line 153, in get_projectFile "compose/cli/docker_client.py", line 43, in get_clientFile "compose/cli/docker_client.py", line 170, in docker_clientFile "docker/api/client.py", line 197, in initFile "docker/api/client.py", line 222, in retrieveserver_versiondocker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))[119730] Failed to execute script docker-compose 챗 gpt에 물어보고 똑같이 해봐도 해결이 안됩니다. ㅜㅜㅜㅜㅜ