묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
Server Action에 대한 질문과 클라이언트 컴포넌트에서 ServerAction을 활용할 때의 장점이 궁금합니다.
선생님의 설명 덕분에 클라이언트 컴포넌트에서도 Server Action을 활용하는 방법을 알게 되었습니다. 하지만 몇가지 의문이 있는 상태입니다. ㅜㅜServer Action이라는 것이 클라이언트 컴포넌트에서 직접 DB에 접근하거나 별도의 브라우저에서 요청하지 않더라도 서버에 요청을 보내서 Prerendering 하는 방식이 맞을까요?그러면 보안 상의 장점도 가질 수 있고, 속도에도 개선이 생기는게 맞을까요?클라이언트 컴포넌트에서 Server Action을 사용하게 된다면 기존의 Server Action의 장점이 없어지는 것 같은데 사용하는 이유가 단순히 강의에서의 설명을 위함이신지 아니면 별도의 장점이 있으셔서 강의에 넣으실 계획을 하신 건지 궁금해서 질문남깁니다!
-
해결됨[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
pyautogui.center(pyautogui.locateOnScreen('wmp.PNG', grayscale=True, confidence=0.7)) 좌표 이상
안녕하세요! 강의를 듣고 필요에 의해 윈도우 미디어 플레이어 자동화를 목표로 프로그래밍 중에 있습니다 근데 제 pc에서는 동작이 잘 되는데 꼭 다른 pc에서 프로그램을 실행시키면 프로그램이 정상 작동되질 않습니다. wmp.png는 윈도우 미디어 플레이어 아이콘 이미지입니다. 구현한 기능은 작업 표시줄에 있는 윈도우 미디어 플레이어 아이콘을 찾아 좌표를 반환하고 클릭해서 창을 활성화시키고 영상을 자동 실행시키는 기능을 목적으로 하고 있는데 제 pc에서는 아이콘을 문제없이 찾아내고 그 외 기능들도 잘 작동합니다. 그런데 다른 pc에서는 계속 작업 표시줄에 있는 윈도우 미디어 플레이어의 좌표가 아닌 다른 값이 반환되는 상황입니다. 진짜 말도 안 되는 이상한 위치에 좌표가 반환됩니다...일단 급한 대로 해당 모니터 사이즈 및 좌표를 구해서 moveTo 함수를 통해 당장 사용할 수 있게 만들어 두기는 했습니다만 왜 이미지 인식이 안되는지 모르겠습니다 진짜 몇 날 며칠을 구글링 하고 혹시나 해서 네이버에서도 검색해 보고 하면서 문제를 해결해 보려고 하는데 해결이 되지 않아서 혹시나 하는 마음에 질문드려 봅니다. 강사님 강의 덕분에 정말 많은 것을 알게 되어서 이렇게 필요한 자동화 프로그램 개발에 도전하고 있습니다. 정말 감사합니다..! 조금 있으면 새해인데 새해 복 많이 받으세요!
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
mlagents-learn 에러 수정 방법을 문의드립니다.
안녕하세요 강의 잘 듣고 있습니다. 제가 Unity에서 3DBall 실행까지는 성공시켰습니다. 그런데 Anaconda 가상 환경에서 mlagents-learn 을 사용하여서 config\ppo\3DBall.yaml 유니티 빌드 경로 --run-id=tutorial_1 을 실행하는 것에서 에러가 떴습니다. 어떻게 수정을 해야 하는자 정말 모르겠습니다. 알려주시면 감사하겠습니다.
-
해결됨실리콘밸리 엔지니어에게 배우는 파이썬 아파치 스파크
데이터 엔지니터의 현 트렌드가 궁금합니다
안녕하세요완강후 카산드라 db 와 stream join한 강의를 다시 보고 카산드라에 대한 개념에 공부를 하던 와중 데이터 엔지니어의 현 트렌드에 대한 내용이 갑자기 궁금한데 물어볼곳이 없어서 질문을 좀 드려봅니다..제가 생각하기에 현 트렌트가데이터 엔진 프레임워크 : spark스케줄링 및 파이프라인 형성등 : airflow웨어하우스 : prestonosql : mongodbrdb : postgresmessage broker : kafka분석툴 : tableau등등 이정도로 요즘 잘나가는 프로그램들인것 같은데 맞을까요?spark stream을 사용하면서 mongodb 보다 cassandra를 사용하는게 좀더 효율이 좋은가요?개발자도 결국 트렌드에 맞게 공부하는게 자신의 커리어를 잘 쌓는게 아닐까 하는 생각이 요즘 계속 머리속에 맴도네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Thymeleaf가 정확히 언제 쓰이는건가요?
타임리프가 server-side 라는건 알겠는데 정확히 언제쓰이는지 구글링해도 정확하게 모르겠어요. ViewResolver가 Thymeleaf를 이용해서 넣을 데이터 다 템플릿에 넣고 완전 더 이상 건들게 없는 view를 DispatcherServlet한테 넘기는건가요?아니면 ViewResolver한테 view template을 받고 DispatcherServlet이 Thymeleaf를 이용해서 데이터를 넣어서 완벽한 view만들고 client한테 전송하는건가요? Server 쪽에서 정확하게 어디서 쓰이는지 궁금하네여
-
미해결Next + React Query로 SNS 서비스 만들기
MSW의 http.ts / browser.ts에 대해서 질문 있습니다!
제가 이해한 것이 맞는지 확인차 질문 남기게 되었습니다!MSW의 경우, service worker가 브라우저의 요청을 뺏어서 browser.ts로 요청을 전달하는 게 맞을까요?그렇다면 http.ts같은 경우는 서버 컴포넌트에서 서버로 요청을 보낼 때는 next 서버에서 요청을 보내고 난뒤의 데이터를 가지고 서버에서 미리 렌더링하기 때문에 이 요청을 mocking하기 위해 만들어두신 개념이 맞을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
해커랭크문제풀이
selectFROM city(여기에서 왜 city가 들어가나요?테이블명이면 station이 들어가야하지 않는건가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
제품을 배열로 다시 재정리 해줄때 split 후에 map을 하는 이유
따라하며-배우는-노드-리액트-쇼핑몰 > 쇼핑 카트 페이지 데이터 가져오기 강의를 수강중에 있습니다.17:30 부근에 제품을 배열로 다시 재정리 해주는 걸 설명해주고 계시는데 split 후에 map을 하는 이유가 궁금합니다.값을 map 처리하기 전후로 찍어보니 값이 동일하게 나오는데 map 처리를 해주는 이유가 따로 있나 싶어서 여쭤봅니다.
-
미해결스프링 핵심 원리 - 기본편
DI 궁금증
@Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } 강의를 여러번봤는데 궁금증이 하나생겼습니다. @Bean으로 설정해주면 스프링컨테이너에서 라이프사이클을 관리해준다고 알고있습니다. 근데 결국은 new MemberServiceImpl에 memberRepository()가 들어간다는게 new MemberServiceImpl(new MemoryMemberRepository)랑 똑같은건데 직접주입하는거와 spring에서 관리하는거의 개념에만 차이가 있고 코드는 방금윗줄에서 설명한거랑 똑같은건가요?
-
해결됨[React 1부] 만들고 비교하며 학습하는 React
import에 관해서 질문드립니다
안녕하세요 강의 정말 잘 듣고 있습니다.해당 강의를 듣는중 궁금한점이 생겨서 질문 드립니다.제가 원래 java/spring을 공부하다가 이번에 프론트 엔드쪽에 관심이 생겨서 React를 학습중인데ide에서는 .js 파일을 Import할때 뒤에 왜 자동으로 .js가 안붙도록 되어있나요?저는 강사님과 다른 ide를 사용중인데도 여기서도 .js가 자동으로 붙지 않습니다.import React from "react"; import Header from "./components/Header.js"; import KeywordList from "./components/KeywordList.js"; import SearchForm from "./components/SearchForm.js"; import SearchResult from "./components/SearchResult.js"; import Tabs, { TabType } from "./components/Tabs.js"; import store from "./Store.js";제가 추측한건데 React를 import 하는 경우에는 react 파일이 typeScript로 되어있고 나머지 경우는 전부 javaScript로 되어있습니다. 따라서 기본이 .ts로 설정 되어 있어서 javascript파일은 별로로 명시해줘야 찾을 수 있게 되어 있다고 생각이 듭니다.별로 의미없는 질문이지만 궁금해서 질문 드립니다.감사합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
자식 클래스에서 __init__ 오버라이딩 하는 이유
start 메서드의 경우 부모 클래스와 다르게 출력하는 것들이 있잖아요. 그런데 '__init__'의 경우 사실 부모 클래스에서 하는 기능과 똑같은데 ElectricCar와 CombustionEngineCar에서 모두 init을 오버라이딩 해주는 건 관례 같은 건가요?replit에서 init 오버라이딩 코드를 지우고 작동해도 똑같길래 궁금해져서 질문 드립니다! 수업 너무 좋아요 잘 듣고 따라 하는 중입니다:)
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
frontControllerServletV5 클래스의 service 함수 호출 횟수와 시점, handler 가 null인 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요! 항상 양질의 강의를 위해 힘써주셔서 감사드립니다! 유연한 컨트롤러 v5를 공부하던 중 궁금한 점이 생겨서 질문 올렸습니다. 아래 제 코드에서는 현제 viewResolver 함수에서 경로가 "/WEB-INF/...." 가 아닌 "WEB-INF/..." 으로 되어 있어서 해당 코드를 수정하지 않으면 404 에러가 발생하는 상황입니다. 처음에는 어느 곳이 틀렸는지 찾을 수가 없어서 틀린 곳을 찾기 위해 디버깅 하던 중, handler가 null인지 검사하는 부분에서 handler가 null인 것을 확인했습니다. 저는 viewResolver가 호출 되기 이전에는 정상적으로 handler를 찾는 작업이 수행되어 handler가 null일 수가 없다고 생각했는데 실제로 확인해보니 제 예상과 달라 잘 이해가 되지 않았습니다. 또한, mapping된 url을 한번만 요청했는데도 service 함수 내의 첫번째 줄에서 println 함수를 호출했을 때 해당 문장이 2번 출력되는 것을 확인했는데 왜 이런 결과가 나왔는지도 궁금합니다.package hello.servlet.web.frontcontroller.v5;import hello.servlet.web.frontcontroller.ModelView;import hello.servlet.web.frontcontroller.MyView;import hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3;import hello.servlet.web.frontcontroller.v3.controller.MemberListControllerV3;import hello.servlet.web.frontcontroller.v3.controller.MemberSaveControllerV3;import hello.servlet.web.frontcontroller.v4.controller.MemberFormControllerV4;import hello.servlet.web.frontcontroller.v4.controller.MemberListControllerV4;import hello.servlet.web.frontcontroller.v4.controller.MemberSaveControllerV4;import hello.servlet.web.frontcontroller.v5.adapter.ControllerV3HandlerAdapter;import hello.servlet.web.frontcontroller.v5.adapter.ControllerV4HandlerAdapter;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;@WebServlet(name = "frontControllerServletV5", urlPatterns = "/front-controller/v5/*")public class FrontControllerServletV5 extends HttpServlet {// private Map<String, ControllerV4> controllerV4Map = new HashMap<>();private final Map<String, Object> handlerMappingMap = new HashMap<>();private final List<MyHandlerAdapter> handlerAdapter = new ArrayList<>();public FrontControllerServletV5() {initHandlerMappingMap();initHandlerAdapters();}private void initHandlerMappingMap() {handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3());handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3());handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3());//v4 추가handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4());handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4());handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4());}private void initHandlerAdapters() {handlerAdapter.add(new ControllerV3HandlerAdapter());handlerAdapter.add(new ControllerV4HandlerAdapter());}@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("here");Object handler = getHandler(request);if (handler == null) {System.out.println("is null");response.setStatus(HttpServletResponse.SC_NOT_FOUND);return;}MyHandlerAdapter adapter = getHandlerAdapter(handler);ModelView mv = adapter.handle(request, response, handler);String viewName = mv.getViewName(); //논리이름 new-formMyView view = viewResolver(viewName);view.render(mv.getModel(), request, response);}private Object getHandler(HttpServletRequest request) {String requestURI = request.getRequestURI();return handlerMappingMap.get(requestURI);}private MyHandlerAdapter getHandlerAdapter(Object handler) {//handlerAdapter.iter -> for문 생성for (MyHandlerAdapter adapter : handlerAdapter) {if (adapter.supports(handler)) {return adapter;}}throw new IllegalArgumentException("handler adapter를 찾을 수 없습니다. handler=" + handler);}private static MyView viewResolver(String viewName) {MyView view = new MyView("WEB-INF/views/" + viewName + ".jsp");return view;}}
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
early stopping 코드 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. if val_loss < early_stopping_loss: torch.save(resnet.state_dict(), PATH) early_stopping_train_loss = train_loss early_stopping_val_loss = val_loss early_stopping_epoch = epoch 강사님 안녕하세요.위 코드에 궁금한 점이 있어서 질문드립니다.위 코드의 4번째 줄에서 아래와 같이 early_stopping_loss 변수를 업데이트 해줘야 하는게 아닌지 궁금합니다.early_stopping_loss = val_loss지금 코드 상으로는 early_stopping_loss가 업데이트 되는 부분이 없어보여서요. 지금 코드로는 모든 epoch에서 if 문에 들어가는것이 아닐지 질문드립니다! 감사합니다.
-
해결됨Windows 시스템 프로그래밍 - 기본
비동기 Callback방식 코드 질문
#include <iostream>#include <windows.h>#include <stdio.h>#include <tchar.h> void CALLBACK FileIoComplete( DWORD dwError, DWORD dwTransferred, LPOVERLAPPED pO1){ printf("FileIoComplete() Callback - [%d 바이트] 쓰기 완료 -%s\n", dwTransferred, (char*)pO1->hEvent); //hEvent 멤버를 포인터로 전용했으므로 가리키는 대상 메모리를 해제한다. //이 메모리는 IoThreadFunction() 함수에서 동적 할당된 것들이다! delete[](char*)pO1->hEvent; delete pO1; puts("FileIoComplete() - return \n");}DWORD WINAPI IoThreadFunction(LPVOID pParam) { //메모리를 할당하고 값을 채운다. //이 메모리는 완료 함수에서 해제한다. char* pszBuffer = new char[16]; memset(pszBuffer, 0, sizeof(char) * 16); strcpy_s(pszBuffer, sizeof(char) * 16, "Hello IOCP"); // Allocate and initialize the OVERLAPPED structure. //OVERLAPPED 구조체의 hEvent 멤버를 포인터 변수로 전용한다! LPOVERLAPPED pOverlapped = NULL; pOverlapped = new OVERLAPPED; memset(pOverlapped, NULL, sizeof(OVERLAPPED)); pOverlapped->Offset = 1024 * 1024; //일부러 사이즈 작게 했습니다. pOverlapped->hEvent = pszBuffer; //pOverlapped->hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // Manual-reset event //비동기 쓰기를 시도한다. //쓰기가 완료되면 완료 함수가 역호출된다. puts("IoThreadFunction() - 중첩된 쓰기 시도"); ::WriteFileEx((HANDLE)pParam, pszBuffer, sizeof(char) * 16, pOverlapped, FileIoComplete); // 함수의 주소를 쓸 수 있다. for (; ::SleepEx(1, TRUE) != WAIT_IO_COMPLETION;); { //SleepEx를 호출한 WorkerThread가 ALERTABLE_WAIT 상태가 된다/ puts("IothreadFunction() - return "); } return 0; }int tmain(int argc, TCHAR* argv[]) { HANDLE hFile = ::CreateFile(_T("TestFile.txt"), GENERIC_READ, //쓰기 모드 0, //공유 하지 않음 NULL, CREATE_ALWAYS, //무조건 생성 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //중첩된 쓰기->비동기 쓰기 NULL); HANDLE hThread = NULL; DWORD dwThreadID = 0; hThread = ::CreateThread( NULL, 0, IoThreadFunction, hFile, 0, &dwThreadID); WaitForSingleObject(hThread, INFINITE);}강사님 위와 같이 코드를 작성해서 비동기 call back 방식으로 시도하려고 하는데, Hello IOCP가 쓰여지지 않고 종료도 되지 않는데, 뭔가 오류가 있는 부분이 있나요? 또, 자동으로 종료도 되었으면 하는데, 가능한가요? 어떻게 수정하면 좋을까요?혹시 예제 코드를 공유할 수 있다면 가능한가요? 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
섹션5 싱글톤 컨테이너 인스턴스가 다릅니다.
강의내용과 똑같이따라했는데 서로다른 인스턴스가 나옵니다... 분명코드가 똑같은지 3번이나 비교했는데 다른거같아서 올려봅니다.
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기
수업자료 제공 여부
안녕하세요? 파트1의 경우 수업자료 슬라이드가 올라와 있던데 파트2는 제공되지 않는지요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
궁금한점이 있어 질문드립니다.
다름아니라 섹션 9를 공부하던중 Provider를 사용하던 프록시 객체를 사용하던 지연로딩이 제일 핵심이라고 하셨는데 그렇다면 해당 예제와같이 웹스코프말고 싱글턴의 스코프를 가진 객체를 지연로딩 생성후 의존성 주입을 해주는경우가 실무에서 사용하는경우가 있나요?
-
미해결PySide6 GUI & EXE 프로그램 개발 강의 (PyQt5)
[QT Designer사용하는 방법]실행파일 관련 문의
안녕하세요. 강사님의 크로링 강의를 아주 즐겁게 수강하였기에 ui구현이 평소 궁금했던 분야라 이어서 수강하게 되었습니다. pyside6> 이하의 designer.exe, uic.exe 파일들과,Scripts>이하의 pyside6-designer.exe, pyside6-uic.exe 파일과의 차이가 뭔가요??테스트를 해보니, Scripts 이하의 파일들은 실제 실행파일이 아니라 pyside6>이하의 실제 실행파일의 경로를 알려주는 것 같은데 ... 맞을까요??
-
해결됨독하게 시작하는 C 프로그래밍
예제파일 불러오기
문자 입출력 강의처럼 클래스 뷰에 예제 파일들을 쭉 뜨게 하는 방법을 모르겠습니다..!!
-
미해결홍정모의 따라하며 배우는 C언어
printf("%s, %p, %c\n","We,"are,*"excellent programmers");
여기 부분에서 %p가 어떻게 작동하는지 정확히 이해가 안되네요..!