묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[PyTorch] 쉽고 빠르게 배우는 GAN
(Pdata + Pg) / 2 가 왜 Q인가요?
8:33 부근에서, 왜 (Pdata + Pg) / 2 가 왜 Q인지 궁금합니다. 그냥 해당 값을 조작해서 C(G) 값을 KL Divergence 식으로 변환하기 위한 기반 식이라고 생각하면 될까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다.
강의자료가 반디집으로 다운을 받아도 자꾸 깨지네요 ㅠ manma0517@naver.com 으로 부탁드립니다! 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
프로토타입 빈의 실제 활용처
기본타입인 싱글톤 타입이 아닌프로토타입 빈을 지정하여 프로토타입 빈의 실제 활용 사례가궁금합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
s3 관련 질문이 있습니다.
s3와 lambda를 통해 이미지 업로드 및 리사이징을 했었는데 며칠 전에는 잘 되다가 오늘 보니까 이미지 업로드를 할 때 pending이 계속 되고, 백엔드 로그 상에서는 POST /post/uploadimages가 한참 안 뜨다가 위와 아래와 같은 메세지만을 남기고프론트 엔드 콘솔창에는 다음과 같이 나왔습니다.아무리 고민을 해봐도 이건 s3문제다 싶어서 s3 연결을 하기 전인 코드로 바꿔 보았습니다.(코드는 https://github.com/ZeroCho/react-nodebird/blob/master/ch5/back/routes/post.js 를 그대로 사용했습니다.) 그랬더니 이미지를 선택하자마다 post/uploadImage/fullfilled 가 콘솔에 바로 나타났습니다. 그래서 결론은 s3에 문제가 생긴 것 같고, 얼마 전까지는 잘 안되다가 며칠 후에 다시 업로드 기능을 사용해보니 정상적으로 작동이 안 하는 것 같습니다. 어떻게 하면 될지 알 수 있을까요?(왜 이런 일이 발생하는지 모르겠습니다.)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
&의 차이
Iterator& operator++() { node = node->_next; return *this; } Iterator operator++(int) { Iterator<T> temp = *this; node = node->_next; return temp; } Iterator& operator--() { node = node->_prev; return *this; } Iterator operator--(int) { Iterator<T> temp = *this; node = node->_prev; return temp; } 이렇게 iterator 안의 연산자 구현할 때 &가 붙는것도 있고 안 붙는거 차이가 무엇인가요?
-
미해결[PyTorch] 쉽고 빠르게 배우는 GAN
z의 x 변환
1 : 56 가량에 어떻게 g(z)가 x로 변화되는것이지요?g(z) = x라고 가정하고, 같은 적분 안으로 넣어주는 것인가요?
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
텔레메트리 모듈 개인적으로 구매하고 싶습니다.
안녕하세요 크리스피님학과 졸업작품으로 드론을 만들고 있는 학생입니다. 텔레메트리 주파수 대역이 불법이라는 말을 듣고 이것을 배제(구매x)한 채로 강의를 진행하고 있었는데pid 제어 파트에서 필수적으로 사용하는 것 같더군요 졸업작품 제출 기간까지 얼마남지 않은 시점에서해외사이트에서 구매하는 것은 배송까지 너무 긴 시간이 소요되어급한대로 이렇게 글 올리게 되었습니다 혹시 개인적으로 크리스피님께 구매하고 싶은데가능한지 알 수 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
@Qualifier와 OCP에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 잘 보고 있습니다. 최근에 @Autowired 필드 명,@Qualifier, @Primary라는 제목의 강의를 보았는데 궁금한 점이 생겼습니다. 질문 내용이 길어질 거 같아서 죄송스럽지만 여태 배운 내용을 정리해보는 계기가 되고 강사님께서 제가 모르는 부분을 알 수 있는 매개체 역할이 될 거 같아서 강의의 흐름을 정리해보겠습니다.(정리된 부분에서 잘못된 부분이 있을 수 도 있습니다. 글이 정말 길다면 맨 아래의 제가 드리고 싶은 질문을 볼드체로 구분하였습니다.)처음부터 강의의 흐름을 따라 살펴보면 A클래스가 있고 데이터베이스의 기능을 하는 B클래스와 C클래스가 있다고 가정해보겠습니다. A클래스가 B클래스의 인스턴스가 필요하게 될 때, new 연산자를 통해 B클래스의 인스턴스를 만들어 냅니다. 그렇게 되면 A와 B의 의존 관계가 형성되는데 A내부에서 의존 관계가 형성되어 결합도가 높아지고 이로 인해서 객체지향 설계원칙 중 OCP에 영향을 끼치게 됩니다. 영향을 끼치게 되는 이유가 만약 B클래스가 아닌 C클래스로 기능을 변경하려면 C클래스의 인스턴스를 따로 만들어야 하기 때문입니다.그래서 이러한 문제를 해결하기 위해서 서비스로직과 구성로직을 따로 구분하게 됩니다. 서비스로직 클래스에서 생성자를 만들어 놓은 후 구성로직 클래스에서 서비스로직 클래스에 만들어 놓은 생성자를 호출하게 됨으로서 각각의 클래스의 역할을 분리해 두었고(SRP 단일 책임 원칙) 서비스로직 클래스에서는 코드의 변경이 필요 없게 되었고 만약 B클래스 대신 C클래스를 서비스로직 클래스에서 사용한다고 하면 서비스로직 클래스에서 코드를 변경하는것이 아닌 구성로직 클래스에서 C클래스를 생성자의 인자로 넘겨줌으로서 적어도 서비스로직 클래스는 기능에 추가에는 열려있고 변경에는 닫혀있는(OCP 개방 폐쇄 원칙)을 따르게 되었습니다. 여기에 추가로 스프링 프레임워크의 @Configuration어노테이션을 구성로직 클래스에 붙이고 각각의 서비스로직의 생성자를 호출하는 메서드의 @Bean어노테이션을 붙임으로서 이를 스프링 컨테이너에 등록할 수 있게 되었고 스프링 컨테이너에 등록된 빈(POJO)객체는 객체를 생성할 때 여러 번 생성할 때 여러 개 생성되는것이 아닌 한개의 메모리만 갖게 되는 싱글톤 패턴이 적용된 클래스를 복잡한 코드의 구현 없이 어노테이션을 붙인것 만으로도 기능을 사용할 수 있게 됩니다. 여기까지가 수동 주입이었습니다.그리고 자동 주입에 대해서 설명해 주실 때, 수동 주입 처럼 서비스로직의 생성자를 호출해 주는 구성로직을 개발자가 직접 만들어 사용하는것이 아닌 @Component어노테이션을 서비스로직 클래스에 붙이게 되면 @ComponentScan어노테이션이 실행될 때 @Component가 붙은 클래스의 이름(맨 앞글자의 대문자를 소문자로 변경함)을 스프링 컨테이너의 키로 인스턴스가 사용되는 힙메모리 주소가 값인 형태로 저장되게 됩니다. 의존성 주입이 필요하게 될 때 스프링 컨테이너안에 들어있는 빈객체가 존재해야지 (@ComponentScan을 통해 @Component가 붙은 클래스를 스프링 컨테이너안에 넣어야지) @Autowired가 붙은 생성자, 프로퍼티, 세터 혹은 메서드등으로 의존성 주입이 가능하였습니다.여기서 제가 궁금했던 점이 만약 자동 주입을 사용하는 A클래스가 있을 때 데이터베이스의 기능을 하며 @Component가 붙은 B클래스와 C클래스가 있다고 가정하면 자동 주입을 사용하지 않았을 때 처럼 서비스로직과 구성로직으로 구분하고 의존성 주입을 하는 방식이 아닌 위해 정리한 방식대로 의존성 주입을 하게 되다 보니 만약 타입은 같은데 구현 방법이 다른 B클래스가 아니라 C클래스를 의존성 주입을 하고 싶을 때, 저는 데이터베이스의 기능(인터페이스라고 가정하겠습니다.)으로 의존성 주입을 하는것이 아니라 직접구현된 C클래스의 Impl로 주입을 해야되나 싶었습니다. 결국 아무리 OCP를 지킨다 하더라도 이렇게 무엇인가(인터페이스를 구현한 클래스)를 명시를 해줘야 그 구현된 클래스의 메서드를 사용할 수 있을테니 말이죠. 이 궁금증을 품고 강의를 보던 도중에 조회 빈이 2개 이상 -문제 라는 강의를 보고 @Autowired가 의존성 주입될 매개변수의 타입을 이용해서 @Component가 붙은 같은 타입의 클래스를 매칭 한다는것에 대해 알게 되었고 @Autowired 필드 명,@Qualifier, @Primary 강의를 통해서 궁금증이 풀리는 듯 싶었습니다. 근데 여기서 타입이 같은 두개의 @Component가 붙은 클래스(이전에 언급된 B, C 클래스)의 우선순위를 @Qualifier를 의존성 주입이 될 클래스에 붙여주고(@Qualifier("이름")을 통해서 이름을 설정해줌) 의존성 주입을 하는 생성자의 매개변수에 똑같이 @Qualifier어노테이션을 붙이게 되어 타입이 같은 클래스더라도 두 개를 동시에 사용할 수 없어서 발생되는 예외인 "NoUniqueBeanDefinitionException"이 발생되는 것이 아닌 하나의 빈만 사용하게 되어서 문제가 해결되는 듯 싶었으나 질문 초반에 언급되었던 서비스로직 클래스와 구성로직 클래스 를 다시 언급해보면 SRP와 OCP를 동시에 지키기 위해서 이런 방법이 사용되었는데 자동 주입을 사용하게 될 때, 구성 로직 클래스는 사용하지 않는다고 가정하면 서비스 로직 클래스만 사용하게 되는데 여기서 제 생각은 @Qualifier어노테이션을 붙이게 되는 것이 서비스 로직 클래스에서 OCP가 위반 된것이 아닌가 이런 생각이 듭니다. 결국 코드의 로직을 확장하기 위해서 서비스 로직 클래스 안에 있는 생성자의 매개변수를 변경하게 되었으니까요. 아니면 저의 이러한 생각이 잘못되었는지도 궁금합니다. 단순히 어노테이션 하나만 붙였다고 해서 OCP가 위반이 되는것은 아닌지, 이러한 내용이 OCP와 관련이 없다던지, 강사님의 의견을 듣고 싶습니다.글이 정말 긴데 저의 궁금증을 정확히 묘사하기 위한 역할로만 봐주시면 감사하겠습니다. 시간 나실 때 천천히 답변 달아주시면 좋겠습니다. 긴 글 읽어주셔서 감사드립니다.
-
해결됨스프링부트 시큐리티 & JWT 강의
12:17 초 쯤 질문있습니다 !
안녕하세요 데어님! 세션 로그인 요청 부분 관련 질문이 있습니다. 클라이언트가 최초 서버로 Request 한다는 뜻이 정확하게 잘 이해가 안됩니다 ㅠㅠ 로그인 요청을 최초로 했다는 말인가요 ?4 번째로 Header 에 세션 ID 를 담아서 클라이언트가 저장한다까지는 알겠고 5 번째로 로그인 요청을 서버로 Request 한다고 하셨는데 그럼 총 2번의 로그인 요청이 일어나는건가요 ?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
중급과정을 끝내고 난후 질문
중급 과정을 끝내고 고급 과정을 듣자니 완전히 내것이 된 것같지가 않아서 일단 다른 분들이 코딩 해놓은 소스들을 보고 똑같이 코딩하면서 궁금한거는 검색해보고 결과물들을 보고 싶은데 그런 코딩 해놓은 것들을 어디서 볼 수 있을까요? 그리고 이렇게 하는게 도움이 될까요? 혼자 독학으로 하다보니 어떻게 해야할지 방황을 하게 되는데 말씀해 주실 수 있으시면 답변해주시면 감사하겠습니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
GET http://localhost:3065/undefined 404 (Not Found) 에러질문입니다.
홈페이지를 접속할때만 다음과 같은 클라이언트 에러가 발생해서 질문드립니다.이미지를 참조하는 부분에서 에러가 발생하는 것 같아서 이미지를 참조하는 다른 페이지를 확인해봤는데 홈페이지에서만 해당 에러가 발생하고 있습니다.모든 action은 정상적으로 동작하며 서버쪽의 이미지도 정상적으로 저장되어 있습니다.혹시 어떤 부분에서 문제가 발생한건지 힌트를 조금 주시면 감사하겠습니다. postcard cover={ <CardImageWrapper> <ImageWrapper alt="post image" src={`http://localhost:3065/${post.Images[0]?.src}`} onClick={showPostModal} /> </CardImageWrapper> } reducer case LOAD_POSTS_REQUEST: draft.loadPostsLoading = true; draft.loadPostsDone = false; draft.loadPostsError = null; break; case LOAD_POSTS_SUCCESS: draft.loadPostsLoading = false; draft.loadPostsDone = true; draft.firstPageLoad = false; draft.mainPosts = draft.mainPosts.concat(action.data); draft.hasMorePosts = action.data.length === 10; break; case LOAD_POSTS_FAILURE: draft.loadPostsLoading = false; draft.loadPostsError = action.error; break; sagafunction loadPostsAPI(lastId) { return axios.get(`/posts?lastId=${lastId || 0}`); } function* loadPosts(action) { try { const result = yield call(loadPostsAPI, action.lastId); yield put({ type: LOAD_POSTS_SUCCESS, data: result.data, }) } catch(err) { yield put({ type: LOAD_POSTS_FAILURE, error: err.response.data }) } } routerrouter.get('/', async (req, res, next) => { // loadPostsAPI / GET /posts try { const where = {}; if (parseInt(req.query.lastId, 10)) { where.id = { [Op.lt]: parseInt(req.query.lastId, 10) }; } const posts = await Post.findAll({ where, limit: 10, order: [ ['createdAt', 'DESC'], [Comment, 'createdAt', 'DESC'], ], include: [{ model: User, attributes: ['id', 'nickname'], }, { model: Image, }, { model: Comment, include: [{ model: User, attributes: ['id', 'nickname'], }], }, { model: User, as: 'Likers', attributes: ['id'], }], }); console.log(posts); res.status(200).json(posts); } catch (error) { console.error(error); next(error); } });
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
오류 질문
Traceback (most recent call last): File "c:\Users\khyun\python\middle\chapter07_01.py", line 57, in <module> loop.run_until_complete(main()) File "C:\ProgramData\Anaconda3\lib\asyncio\base_events.py", line 647, in run_until_complete return future.result() File "c:\Users\khyun\python\middle\chapter07_01.py", line 48, in main rst = await asyncio.gather(*futures) File "c:\Users\khyun\python\middle\chapter07_01.py", line 30, in fetch res = await loop.run_in_executor(executor, urlopen, url) File "C:\ProgramData\Anaconda3\lib\concurrent\futures\thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 214, in urlopen return opener.open(url, data, timeout) File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 523, in open response = meth(req, response) File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 632, in http_response response = self.parent.error( File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 561, in error return self._call_chain(*args) File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 494, in callchain result = func(*args) File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 641, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)urllib.error.HTTPError: HTTP Error 403: Forbidden똑같이 작성하고 결과 값이 나오다가 이런 식의 오류가 발생하는데 왜 그런걸까요? 네이버 쿠팡 티스토리만 하였습니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
#fields.hasGlobalErrors() 와 th:object의 관계
안녕하세요#fields.hasGlobalErrors() 는 글로벌 에러에 접근한다고 이해했습니다.그런데 th:object를 빼니까 글로벌 오류에 접근하기 위한 상수 global에 접근을 못하더라구요??아래처럼 오류가 발생합니다.Could not bind form errors using expression "global". Please check this expression is being executed inside the adequate context (e.g. a <form> with a th:object attribute)공식문서를 읽어봐도 딱히 이유를 못찾아서 질문드립니다!
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
10014 에러 관련 질문
위 스크린샷과 같이, 10014 에러 코드가 뜨면서 딱 한 번 데이터를 주고받은 다음에 진행이 되지 않았습니다.그리고 디버깅 및 코드 비교를 통해 RecvBuffer.cpp 부분에서 아래와 같은 실수가 있었기에 위와 같은 오류가 발생하게 된 것임을 알게 되었습니다.그런데 강의에서 저는 이 버퍼의 크기를 크게 잡아주는 것이 일종의 성능향상과 편의를 위함으로 이해했었습니다. 그리고 처음에는 10014 오류가 주소와 관련한 오류라는 것을 보고, NetAddress, Session, Listener를 집중하여 분석하느라 원인을 찾는 데에 오래 걸렸었습니다. 위 상황에서 저 버퍼의 크기를 resize 해주는 과정이 잘못된 것이 왜 10014 오류를 발생시키게 되었는지 의문점이 들었습니다. 혹시 10014 오류가 발생했던 정확한 원인이 무엇이었을지 알려주실 수 있을까요? (코드 : https://drive.google.com/file/d/1Yjn7lKGXzTKfNuBmRBw66t7AkZgbmGIO/view?usp=sharing )
-
미해결Django REST Framework 핵심사항
깃헙 페이지를 보고싶어요
안녕하세요, 강의를 잘 듣고 있는데 drf 강의 관련한 코드를 보고싶습니다! 깃허브 링크 공유가능한가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품주문에 submit 오류, 주문내역 페이지 오류
이건 상품주문에 submit버튼을 클릭하면 저렇게 페이지가 뜨구,주문내역 버튼을 누르면 이렇게 뜨는데 왜그런건가요??똑같이 따라했는데,,
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I 문제가 바뀐 것 같아요
1165번 나는야 포켓몬 마스터 문제가 없고 단어퍼즐 문제가 있네요 수정부탁드립니다!
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
똑같이 따라했는데 결과가 이상하네요 ;;
로또 번호 생성기를 똑같이 따라했는데 이상하게 제 결과에서는 그냥 초기에 설정했던 1 2 3 4 5 6이 나오네요;; 초기값 관련해서 제가 무언갈 놓쳤는지 모르겠습니다.
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
a:hover {color }
질문글을 작성하다가 원인을 찾아서 문제해결했습니다만, 추후 다른 분께 도움이 될까 봐 간략하게 올립니다.문제#intro .intro-first-card .overlay a:hover { color: #fafa6f; }위 코드가 동작하지 않았습니다.원인bootstrap.min.css 버전에 따른 .link-light 차이강의&수업자료 버전은bootstrap@5.0.2/dist/css/bootstrap.min.css을 사용 .link-light {color: #f8f9fa;}제 버전은 bootstrap@5.2.1/dist/css/bootstrap.min.css .link-light {color: #f8f9fa!important;}해결#intro .intro-first-card .overlay a:hover { color: #fafa6f !important; }
-
미해결jQuery로 구현하는 NFT 마켓플레이스 (이더리움, 폴리곤)
infura 대신에 pinata api 를 사용시 ipfs 접속코드 변경문의
안녕하세요pinata api 사용시 아래 ipfs 접속 코드를 어떻게 변경해야 할까요 //ipfsvar IPFS_URL = "https://ipfs.io/ipfs/";var IPFS_API_URL = "ipfs.infura.io";//var ipfs = window.IpfsApi(IPFS_API_URL, "5001", { protocol: "https" }); // Connect to IPFSconst projectId = '{인퓨라 프로젝트아이디}';const projectSecret = '{인퓨라 시크릿키}';const auth = "Basic " + btoa(projectId + ":" + projectSecret);console.log("-> "+auth);var ipfs = window.IpfsApi(IPFS_API_URL, "5001", { protocol: "https" , headers: { authorization: auth } } ); // Connect to IPFS