묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
bpdu 에 관하여 질문합니다!
bpdu에서 멀티캐스트를 통해 메세지를 교환한다고 하셧는데 L2에서는 멀티캐스트 정보도 브로드캐스트로 인식한다고 하셨는데 어떻게 멀티캐스트로 전송하나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
오류 발생했습니다 ㅠㅠ
nullReferenceExeption 오류가 발생해서 제가 코드를 잘못 입력했는지 어떤 문제지 모르겠습니다 ㅠㅠNullReferenceException: Object reference not set to an instance of an objectManagers.get_Input () (at Assets/Scripts/Managers/Managers.cs:11)PlayerController.Start () (at Assets/Scripts/PlayerController.cs:12)
-
미해결리눅스 쉘 스크립트 마스터
하드 링크, 심볼릭 링크
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.좋은 강의 만들어 주셔서 감사합니다.지금 초반을 보고 있는데하드링크, 심볼릭 링크에 쓰임새는 알겠습니다.혹시 왜 만들어졌고, 어떤 이유에서 쓰이게 되는지 알수 있을까요? 감사합니다.
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
15강 DTO ArticleForm 수정 후 새 데이터 입력 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 데이터 수정 시 수정한 데이터의 id를 받아오기 위해서 ArticleForm에 toEntity 메소드 return을return new Article(null, title, content)에서 return new Article(id, title, content)로 수정하였는데요, 그렇게되면 새로운 데이터를 생성하는 ArticleController의 createArticle메소드에서 에러가 납니다. 처음 데이터 생성 시 id는 자동생성을 하게 해두고 new.mustache에서 id값을 input으로 받아오지 않았어서 그런것이라고 생각되는데, 혹시 해결 방법이 있을까요?
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
nextJS typescript 부분 메인페이지 ui
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이 부분에서 저는 npm 설치 후에 index.tsx파일이 아래와 같은 형식으로 자동생성 되는데 강의영상에는 다르게 나오더라구요.. 혹시 이 부분이 어떤 차이인지 다름으로 인해서 문제가 되는지 알 수 있을까요??강의 영상 부분
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Cause: zip END header not found 에러
캐시도 날려보고 프로젝트 재시작도 해봤는데 안됩니다.. jdk 11인데 왜 안되는 걸까요
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
마지막에 말씀하신 내용이 잘 이해가 안갑니다.
안녕하세요.강의를 듣다가 마지막에 하신 말씀이 잘 이해가 안돼서 질문드립니다.복잡한 상태 관리 로직 분리하기 - useReducer의 22:31 부분에서"dispatch는 함수형 업데이트 그런거 필요 없이 호출하면 알아서 현재의 state를 참조해서 자동으로 해주니 useCallback을 사용하면서 dependency array를 걱정할 필요가 없다."라고 하셨는데 이게 무엇을 의미하는 말씀인지 말 모르겠습니다...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
dispatch에서 const dispatch = useContext(DispatchContext); 가 console.log(dispatch)를 하면 null로 출력이 나옵니다.
안녕하세요 강사님,수업대로 코드를 작성해도 제목과 같이 원하지 않던 오류가 생겨 질문을 드립니다.아래와 같이 작성했을때, dispatch함수가 function이 아니라는 오류를 내뱉어, 원인을 찾았더니, useContext(DispatchContext)가 null인 원인이었습니다. 이를 어떻게 고쳐야 정상적으로 작동을 할지 잘 모르겠습니다.코드는 다음과 같습니다. import axios from "axios"; import { createContext, useContext, useEffect, useReducer } from "react"; import { User } from "../types"; interface State { authenticated: boolean; user: User | undefined; loading: boolean; } export const StateContext = createContext<State>({ authenticated: false, user: undefined, loading: true }); export const DispatchContext = createContext<any>(null); interface Action { type: string; payload: any; } const reducer = (state: State, { type, payload }: Action) => { switch (type) { case "LOGIN": return { ...state, authenticated: true, user: payload } case "LOGOUT": return { ...state, authenticated: false, user: null } case "STOP_LOADING": return { ...state, loading: false } default: throw new Error(`Unknown action type: ${type}`) } } export const AuthProvider = ({ children }: { children: React.ReactNode }) => { const [state, defaultDispatch] = useReducer(reducer, { user: null, authenticated: false, loading: true }) console.log("state", state); const dispatch = (type: string, payload?: any) => { defaultDispatch({ type, payload }); } return ( <DispatchContext.Provider value={dispatch}> <StateContext.Provider value={state}>{children}</StateContext.Provider> </DispatchContext.Provider> ) } export function useAuthState() { const state = useContext(StateContext); //if(!state) throw new Error("Provider is not found"); return state; } export function useAuthDispatch(){ const dispatch = useContext(DispatchContext); //if(!dispatch) throw new Error("Provider is not found"); return dispatch; } /** * * <AuthProvider> * <Component {...} /> => Component가 위의 children에 들어감 * </AuthProvider> * * */위는 context/auth 코드이고, 아래는 pages/api/login 코드입니다.import React, { useState, useContext, FormEvent} from 'react' import Link from "next/link" import axios from "axios" import InputGroup from "../components/InputGroup" import { useRouter } from 'next/router' import { useAuthDispatch, useAuthState, AuthProvider, StateContext, DispatchContext } from "../context/auth"; const Login = () => { let router = useRouter(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [errors, setErrors] = useState<any>({}); const dispatch = useAuthDispatch(); //const dispatch = useContext(DispatchContext); const handleSubmit = async (event: FormEvent) =>{ event.preventDefault(); try{ const res = await axios.post("/auth/login",{password, username}, {withCredentials: true}); console.log("res: ",res); dispatch("LOGIN", res.data?.user) router.push('/'); }catch(error: any){ console.log(error || {}); //setErrors(error.response.data || {}); } } return ( <div className="bg-white"> <div className="flex items-center justify-content h-screen p-6"> <div className="w-10/12 h-2/4 mx-auto md:w-96"> <h1 className="mb-2 text-lg text-yellow-500 font-medium">로그인</h1> <AuthProvider> <form onSubmit={handleSubmit} className="h-1/2"> <InputGroup placeholder="Username" value={username} setValue={setUsername} error={errors.username} /> <InputGroup placeholder="Password" value={password} setValue={setPassword} error={errors.password} /> <button className="w-full py-2 text-xs font-bold text-white uppercase bg-gray-400 border border-gray-400 rounded"> 로그인 </button> </form> </AuthProvider> <small className="text-black"> 아직 아이디가 없나요? <Link href="/login"> <a className="ml-1 text-blue-500 uppercase">회원가입</a> </Link> </small> </div> </div> </div> ) } export default Login
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
몇가지 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
populate 사용시 500에러
populate를 사용하지 않을 때에는 올바르게 동작하나, populate를 사용할 경우에 다음과 같은 에러가 발생합니다.[Nest] 50421 - 2022. 11. 07. 오전 1:04:09 ERROR [ExceptionsHandler] Schema hasn't been registered for model "comments".Use mongoose.model(name, schema)MissingSchemaError: Schema hasn't been registered for model "comments".Use mongoose.model(name, schema) comments를 삽입하는 api는 올바르게 동작하고 mongodb의 cats.comments에 올바르게 데이터가 삽입되는 것을 확인했습니다. 수많은 시간을 시도했으나 해결하지 못했습니다. 저의 github repository를 첨부합니다. 에러 해결에 도움을 주셨으면 좋겠습니다.https://github.com/Jaew00Shin/nest-study감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
get_url - url 및 checksum 404 not found 발생시 해결법
안녕하세요, 질문이라기 보다는 다른 수강생들에게 정보 공유차 글 남깁니다. Tomcat 의 경우 버전 업데이트가 진행되면과거 버전 파일을 올리지 않아서, 예제 그대로 진행하면실제 파일 다운로드시 404 notfound 가 발생하는걸로 보여집니다.2022/11/6 기준 제가 사용한 스크립트는 다음과 같으며문제 발생시 https://dlcdn.apache.org/tomcat/tomcat-9/에서 버전 확인하여 스크립트 변경 진행해주시면 될 것 같습니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
tipp) css 적용 안되시는분들
boot strap 사이트에서 css js 폴더 복붙했는데 안되시면 (버젼 문제일수 있다고 해요) 해결 방법은 다음과 같습니다. 방법:강의 자료에서 코드 다운 받고 아래 폴더에서css jss 폴더 찾으신다음 그대로 static 에 복붙하고reload disk 한번 해주시면 될거에요 ex)jpashop-v20210728\src\main\resources\static
-
미해결
UNET 1회 epoch 만 하고 Evaluation 시에 발생하는 오류
train_isbi_2012.py를 1회 epoch학습 후 evaluation하기 위해 evaluate_isbi_2012.py를 실행하니 아래와 같이 오류가 발생하네요...이유를 알 수 있을까요? 2022-11-06 23:29:46.594995: W tensorflow/core/util/tensor_slice_reader.cc:96] Could not open saved_model_isbi_2012\unet_model: UNKNOWN: NewRandomAccessFile failed to Create/Open: saved_model_isbi_2012\unet_model : 액세스가 거부되었습니다.; Input/output errorTraceback (most recent call last):File "D:\UNET-tf2\evaluate_isbi_2012.py", line 89, in <module>app.run(main)File "C:\Users\chlee\venv39\lib\site-packages\absl\app.py", line 312, in runrunmain(main, args)File "C:\Users\chlee\venv39\lib\site-packages\absl\app.py", line 258, in runmainsys.exit(main(argv))File "D:\UNET-tf2\evaluate_isbi_2012.py", line 66, in mainunet_model.load_weights(FLAGS.checkpoint_path)File "C:\Users\chlee\venv39\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handlerraise e.with_traceback(filtered_tb) from NoneFile "C:\Users\chlee\venv39\lib\site-packages\tensorflow\python\training\py_checkpoint_reader.py", line 45, in error_translatorraise errors_impl.OpError(None, None, error_message, errors_impl.UNKNOWN)tensorflow.python.framework.errors_impl.OpError
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
ospf 관련
eigrp처럼 네트워크 주소로 잘못 라우터를 설정하였는데 에러가 뜹니다... 어떻게 삭제 또는 수정해야하나요... ospf는 네트워크 주소로 넣으면 안되고 ip 주소를 넣어야하나요? 계속 에러가 뜰때는 작업중지를 CLI에서 어떻게 하나요? 다시 그냥 ip주소로도 했는데 에러가 계속 뜨는데 원인이 뭘까요... area id가 미스 매치라는데 ...
-
미해결스프링 시큐리티
로그인 기능 구현 안됨 ㅜㅜ
안녕하세요! 개인 프로젝트에 강의를 보면서 스프링 시큐리티를 입히고 있는 과정에서 문제가 있어서 문의드립니다!저의 SecurityConfig 클래스는 이렇게 되어있는데 로그인 시 스프링 시큐리티가 호출되지 않습니다 ㅜㅜ도대체 어디가 문제인 걸까요! 며칠째 삽질하다 문의 드립니다!package com.zhfvkq.dyshop.security; import com.zhfvkq.dyshop.member.service.CustomUserDetailsService; import com.zhfvkq.dyshop.security.provider.CustomAuthenticationProvider; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.security.servlet.PathRequest; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Slf4j @Configuration @RequiredArgsConstructor public class SecurityConfig { private final AuthenticationSuccess authenticationSuccess; private final AuthenticationFailure authenticationFailure; private final LogoutExecute logoutExecute; private final LogoutSuccess logoutSuccess; private final CustomUserDetailsService customUserDetailsService; private final AuthenticationEntryException authenticationEntryException; private final AccessDeniedHandlerException accessDeniedHandlerException; private String[] ignoredMatcherPattern = {"/", "/img/**", "/lib/**", "/member/**"}; @Bean public static PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } @Bean public CustomAuthenticationProvider customAuthenticationProvider() { return new CustomAuthenticationProvider(); } @Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception { return authConfiguration.getAuthenticationManager(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() ; http.formLogin() // 로그인 .loginPage("/member/login") .usernameParameter("userId") .passwordParameter("password") .loginProcessingUrl("/member/login") .successHandler(authenticationSuccess) .failureHandler(authenticationFailure) .permitAll() ; http.logout() // 로그아웃 .logoutUrl("/member/logout") // default post .logoutSuccessUrl("/") .invalidateHttpSession(true) // 세션 무효화 .deleteCookies("SESSION", "JSESSIONID", "remember-me") .addLogoutHandler(logoutExecute) .logoutSuccessHandler(logoutSuccess) ; http.rememberMe() // 사용자 저장 .rememberMeParameter("idMaintain") // default 파라미터는 remember-me .tokenValiditySeconds(604800) // 7일로 설정(default 14일) .alwaysRemember(false) .userDetailsService(customUserDetailsService) ; http.sessionManagement() .maximumSessions(1) // -1 무제한 .expiredUrl("/member/login") // 세션 만료 ; http.exceptionHandling() // Exception 처리 .authenticationEntryPoint(authenticationEntryException) // 인증 예외 .accessDeniedHandler(accessDeniedHandlerException) // 인가 예외 ; return http.build(); } /** * 정적 자원 및 루트 페이지 ignore */ @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()) .antMatchers(ignoredMatcherPattern); } } 제 깃허브도 같이 전달 드립니다!https://github.com/zhfvkqHub dyshop프로젝트
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
eigrp 설정후 문제
eigrp 설정 후 show ip ro를 했을때 eigrp가 설정된게 뜨지 않는데 어떻게 해야하나요...
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
.sub-back
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>산업대학교</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="header-inner"> <header> <div class="header-logo"> <a href="#none"> <img src="images/logo-header.png" alt="header logo"> </a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">대학소개</a> <div class="sub-menu"> <a href="#none">총장인사말</a> <a href="#none">학교소개</a> <a href="#none">홍보관</a> <a href="#none">캠퍼스안내</a> </div> </li> <li> <a href="#none">입학안내</a> <div class="sub-menu"> <a href="#none">수시모집</a> <a href="#none">정시모집</a> <a href="#none">편입학</a> <a href="#none">재외국민</a> </div> </li> <li> <a href="#none">정보서비스</a> <div class="sub-menu"> <a href="#none">대학정보알림</a> <a href="#none">정보공개</a> <a href="#none">정보서비스안내</a> </div> </li> <li> <a href="#none">커뮤니티</a> <div class="sub-menu"> <a href="#none">공지사항</a> <a href="#none">참여게시판</a> <a href="#none">자료실</a> </div> </li> </ul> <div class="sub-back"></div> </div> </header> </div> <div class="content-inner"> <div class="slide"> <div> <a href="#none"> <img src="images/slide-01.jpg" alt="slide1"> <img src="images/slide-02.jpg" alt="slide2"> <img src="images/slide-03.jpg" alt="slide3"> </a> </div> </div> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span>공지사항</span> </div> <div class="tab1"> <a href="#none">산업대학교 동문회장배 자선골프대회<b>2016-09-12</b></a> <a href="#none">개교 100주년 기념 야외 오페라 초청<b>2016-09-10</b></a> <a href="#none">동문회장 및 운영위원장 후보자 추천<b>2016-09-09</b></a> <a href="#none">진행위원회(정회원) 선발 결과<b>2016-09-07</b></a> <a href="#none">산업대학교 동문회 개최일 변경<b>2016-08-30</b></a> </div> </div> </div> <div class="gallery"> <div class="tab-inner"> <div class="btn"> <span>갤러리</span> </div> <div class="tab2"> <a href="#none"> <img src="images/gallery-01.jpg" alt="gallery1"> <img src="images/gallery-02.jpg" alt="gallery2"> <img src="images/gallery-03.jpg" alt="gallery3"> </a> </div> </div> </div> <div class="banner"> <a href="#none"> <img src="images/banner.jpg" alt="banner"> </a> </div> </div> </div> <div class="footer-inner"> <footer> <div class="Copyright"> <div></div> <div></div> </div> <div class="family-site"></div> </footer> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html> @charset "UTF-8"; body { margin: 0; background-color: #ffffff; color: #333333; font-size: 15px; } a { color: #333333; text-decoration: none; } .container {} .header-inner { border: 1px solid red; } header { height: 100px; width: 1200px; margin: auto; } header > div { /* border: 1px solid blue; */ height: 100px; position: relative; z-index: 10; } .header-logo { width: 200px; float: left; line-height: 130px; } .navi { width: 600px; float: right; margin-right: 20px; } .content-inner {} .slide { width: 1200px; margin: auto; margin-bottom: 20px; } .slide > div { /* border: 1px solid green; */ height: 300px; } .items { width: 1200px; margin: auto; overflow: hidden; } .items > div { /* border: 1px solid blue; */ height: 200px; float: left; box-sizing: border-box; } .news { width: 425px; } .gallery { width: 425px; } .banner { width: 350px; } .footer-inner { border: 1px solid red; } footer { height: 100px; width: 1200px; margin: auto; overflow: hidden; } footer > div { border: 1px solid green; height: 100px; float: left; box-sizing: border-box; } .Copyright { width: 1000px; } .Copyright div { border: 1px solid black; height: 50px; } .family-site { width: 200px; } /* slide */ .slide { position: relative; width: 1200px; height: 300px; overflow: hidden; } .slide > div { position: absolute; width: 3600px; font-size: 0; top: 0; left: 0; animation: slide 10s linear infinite; } @keyframes slide { 0% { left: 0; } 30% { left: 0; } 35% { left: -1200px; } 65% { left: -1200px; } 70% { left: -2400px; } 95% { left: -2400px; } 100% { left: 0; } } /* news & gallery */ .tab-inner { width: 95%; margin: auto; } .btn {} .btn span { border: 1px solid #000000; display: inline-block; width: 100px; text-align: center; padding: 5px; border-radius: 5px 5px 0 0; border-bottom: none; margin-bottom: -1px; background-color: #ffffff; } .tab1, .tab2 { border: 1px solid #000000; padding: 0 15px; height: 160px; } .tab1 a { display: block; padding: 5px; border-bottom: 1px solid #000000; } .tab1 a:last-child { border-bottom: none; } .tab1 a b { float: right; font-weight: normal; } .tab2 { text-align: center; } .tab2 img { width: 120px; padding-top: 25px; } .banner img { width: 96%; } /* navigation */ .menu { list-style: none; padding: 0; padding-top: 52px; border: 1px solid red; } .menu li { border: 1px solid black; float: left; width: 25%; box-sizing: border-box; text-align: center; } .menu li > a { border: 1px solid #000000; display: block; padding: 5px; transition: 0.5s; } .menu li:hover > a { background-color: #000000; color: #ffffff; } .sub-menu { border: 1px solid #000000; } .sub-menu a { display: block; padding: 5px; color: #ffffff; transition: 0.5s; } .sub-menu a:hover { background-color: #ffffff; color: #000000; } .sub-back { background-color: #000000; width: 1200px; height: 140px; position: absolute; left: 0; top: 100%; z-index: -1; }배경색이 왼쪽으로 이동이 안됩니다.- 먼저 유사한 질문이 있었는지 검색해주세요.- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
-
미해결모두의 깃 & 깃허브
더하는 커밋 뿐인데 빨간 줄이 생겨요
제가 E 만 더해서 커밋 해주었는데 커밋이 올라가는 상세 내용을 보면 D를 빼주고 그 다음에 E와 D를 같이 올린게 이 커밋이라고 합니다. 이것 뿐만 아니라 다른 알파벳을 더해줄때도 그렇습니다 .왜 그러는 걸까요?
-
미해결윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
7강 loc컨테이너 질뮨이용..
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("config/beans.xml");// 별도 설정하지 않으면 빈객체를 자동생성한다고 하셧는데왜 자동생성이되면서 생성자가 호출되는건가여? 원래 생성되면서 생성자가 호출되는건가여?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
이미지 업로드 관련 질문
’Multer와 미디어 파일 서비스‘ 강의에서 질문이 있습니다.http://localhost:8000/media/cats/${fileName} 형식으로 나타내는데 여기서 media가 갑자기 어떻게 나온건지 궁금합니다.그리고 저의 경우에는 다음 경로로 이미지를 생성했을 때 이미지가 나타나지 않고{ "success": false, "timestamp": "2022-11-06T12:52:22.427Z", "statusCode": 404, "message": "Cannot GET /media/cats/EDIT%20&%20EXPORT_IG%20Feed%201200x12001667739124052.png", "error": "Not Found"} 이런 형식의 json이 나타납니다. 어떻게 해결해야 할지 몰라서 질문합니다. 감사합니다.