묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결JavaScript 비동기 프로그래밍 완벽 가이드 - Promise, await, async
Promise 객체 강의 7분 27초 부분 질문입니다.
const p = add(1,2);console.log(p); //Promise { <pending> }const t = p.then(....).catch(....).finally(...)이 때 총 4개의 각각 다른 프라미스가 생성된 상태라고 이해했습니다.1) p - 프라미스 P1 (add 에서 리턴한 프라미스)2) p.then - 프라미스 P2 (P1.then 에서 리턴한 프라미스)3) p.then().catch() - 프라미스 P3 (P2.catch 에서 리턴한 프라미스)4) p.then().catch.().finally() - 프라미스 P4 (P3.finally 에서 리턴한 프라미스)결과는 아래처럼 되는거라고 생각했구요.P1가 리졸브(3) 이므로 then 실행했고 3 출력, 리턴이 없으므로 리졸브-언디파인드P2는 fulfilled(리졸브-언디파인드) 이므로 catch 실행했고 에러가 아니므로 리졸브-언디파인드P3는 fulfilled(리졸브-언디파인드) / rejected 이므로 finally 실행했고 'finally' 출력, 리턴이 없으므로 리졸브-언디파인드P4는 함수반환과 관계없이 P3와 동일한 상태임. fulfilled(리졸브-언디파인드) 인데 등록된 콜백이 없으므로 이대로 끝.그런데 강의에서 설명하실 때는 P1 프라미스에then, catch, finally 함수로 콜백을 등록한 것처럼 느껴져서요.제가 이해한 내용이 맞는지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC1편 섹션3 질문
서블릿 객체랑 서블릿 내장객체는 다르다는걸 알고있습니다. 서블릿 객체는 싱글톤으로 관리되며 서블릿 내장객체는 reponse, request가 요청이 있을때마다 새롭게 생성되며 독립적으로 관리되어야한다는것까지 이해했습니다. @WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8");위에 있는 코드는 response이고 아래코드는 request입니다@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") public class MemberSaveServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("MemberSaveServlet.service"); String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); // getParameter는 항상 문자로 가저욘다! Member member = new Member(username, age); memberRepository.save(member); 여기서 질문인게 서블릿내장객체인 request와 response가 요청이있을때마다 새롭게 객체를 만드는데 서블릿객체는 단 하나의 인스턴스를 만들어서 재사용한다고 알고있습니다. 위에코드에도 @WebServlet가 있고 아래에도 @WebServlet가 있는데 request와 response를 윕에서 받기위한 url이라고 생각이듭니다만, 어떻게 request에서 넘겨주면 response에서 응답을 줄수있는거죠? 서블릿은 싱글톤이라고 알고있었는데 url은 따로따로 등록이되는건가요?웹에서 실제넘겨주면 username과 age를 받는부분의 url이 /servlet/members/new-form인데 이건 request에 대한거 아닌가요? 저기서요청을하면 이제 응답을 받는부분이 /servlet/members/save로 되어야할거같은데 뭔가 url이 바뀐거같아서요항상 답변남겨주셔서 감사합니다
-
해결됨20년 경력자의 알기쉬운 컴퓨터네트워크
ICMP와 방화벽
ICMP에서 운영체제의 방화벽이 Request를 버려버린다고 하셨는데, 그러면 상대방측에서는 어떻게 통신가능한지 확인할 수 있는지 이해가 잘 가지 않습니당
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 스프링 빌드시 libs폴더가 없습니다
현재 5강을 보면서 윈도우 cmd로 스프링 빌드하고 있는데요 빌드에 성공했다고는 떠서 build폴더에서libs폴더로 이동하려는데 libs폴더가 존재하지 않는건 무슨 이유인가요?
-
해결됨
react native에서 nmap 설치 후 Component 'RCTView' re-registered direct event 'topClick' as a bubbling event 에러가 발생합니다
react native 0.73.1node 20.10.0NMapsMap 3.17.0npm i https://github.com/zerocho/react-native-naver-map를 사용해서 nmap을 설치했습니다android 기기에서는 정상적으로 빌드 되는데, ios 시뮬레이터에서는 빌드는 되지만, 아래의 오류가 발생합니다 Component 'RCTView' re-registered direct event 'topClick' as a bubbling event RCTModuleConstantsForDestructuredComponent RCTUIManager.m:1533 moduleConstantsForComponentData __28-[RCTUIManager getConstants]_block_invoke __NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__ -[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:] -[RCTUIManager getConstants] -[RCTUIManager constantsToExport] -[RCTModuleData gatherConstantsAndSignalJSRequireEnding:] -[RCTModuleData exportedConstants] facebook::react::RCTNativeModule::getConstants() facebook::react::ModuleRegistry::getConfig(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) facebook::react::JSINativeModules::createModule(facebook::jsi::Runtime&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) facebook::react::JSINativeModules::getModule(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&) facebook::react::JSIExecutor::NativeModuleProxy::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&) facebook::jsi::DecoratedHostObject::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&) facebook::hermes::HermesRuntimeImpl::JsiProxy::get(hermes::vm::SymbolID) hermes::vm::JSObject::getComputedWithReceiver_RJS(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>) hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*) hermes::vm::Runtime::runBytecode(std::__1::shared_ptr<hermes::hbc::BCProviderBase>&&, hermes::vm::RuntimeModuleFlags, llvh::StringRef, hermes::vm::Handle<hermes::vm::Environment>, hermes::vm::Handle<hermes::vm::HermesValue>) facebook::hermes::HermesRuntimeImpl::evaluatePreparedJavaScript(std::__1::shared_ptr<facebook::jsi::PreparedJavaScript const> const&) ... 중략 ... std::__1::function<void ()>::operator()() const invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ __CFRunLoopDoBlocks __CFRunLoopRun CFRunLoopRunSpecific +[RCTCxxBridge runRunLoop] __NSThread__start__ _pthread_start thread_start
-
미해결실무자가 알려주는 CANoe - CAPL과 Panel 기본 사용법
에러에 대한 해결 방법에 대해 알고싶습니다.
if((gIGN.BCM_Ign1InSta == 0) && (gIGN.BCM_Ign2InSta == 0)) { GotoMode_BusSleep(); cancelTimer(msTimer_IGN); output(gIGN); } else { gotomode_awake(); setTimerCyclic(msTimer_IGN, Period_200); // bcm_02_200ms 메시지 주기 타이머 시작 }안녕하세요 수업 잘 듣고 있는 학생입니다. 제가 코드를 작성 중에 GotoMode_BusSleep(); 부분에서 unknwon function이라고 뜨는데 뭐가 잘못된건지 모르겠습니다. 예전에도 사용할 땐 잘 됐는데 지금은 갑자기 안됩니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Unreal 애니메이션이 기본적으로 MultiThread 옵션이 켜져있는 점에 대해서.
아마 성능을 위해 애니메이션 블루프린트 로직이 작업자 스레드에서 돌아가도록 옵션 켜는게 있는 것 같은데요. 많은 다른 예제에서 블루프린트 EventGraph 대신 Blueprint Thread Safe Update Animation 이라는 블루프린트 함수를 대신 사용하고 또, C++ 로도 NativeUpdateAnimation() 대신 NativeThreadSafeUpdateAnimation() 가 있더라구요. 그리고 블루프린트 전용 함수에서도 ThreadSafe 옵션을 켜고 끄는게 있는데 이걸 켜면 일반적인 C++ 함수를 호출할 수 없고, C++ 함수에 Meta = (BlueprintThreadSafe) 지정자를 설정하면 보이긴 하는데요. 여기서 NativeThreadSafeUpdateAnimation() 함수나 Meta = (BlueprintThreadSafe) 지정자를 붙인 C++ 함수에는동기화 기법( mutex 같은)을 사용해서 정말 내부적으로도 멀티스레드 프로그래밍 같이 코드를 짜야 하는건가요???
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingREsult.hasErrors() 부분 재사용
if(bindingResult.hasErrors()) { log.info("errors = {}", bindingResult); //model.addAttribute("errors", errors); -> model로 넘겨주지않아도 bindingResult 자체로 자동으로 뷰에넘어간다. return "validation/v2/addForm"; }위 코드를 다시 addItemV4의 첫부분에 재사용하는 이유가 먼저 타입오류가 발생하면 밑의 가격 range 오류를 검증하지 않고 바로 "validation/v2/addForm" 뷰로 리턴하여 타입오류 메시지만(하나만) 출력하고 싶을때 이런식으로 하는거죠?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
바탕화면 python_class 폴더에 저당한 수업자료 실행방법
수업자료를 받아 바탕화면 python_class 폴더에 저장했는데, 주피터 코드셀에 무엇이라고 입력해야지 실행할 수 있는지 가르쳐 주세요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
싱글톤으로 등록됨에 대한 궁금증
[질문 내용]제가 싱글톤 개념을 잘모라서 그럴꺼 같은데,하나만 등록해서 같은 인스턴스를 사용하게 되면order 서비스 같은 건 사용자마다 개별 인스턴스가생성되어야 하는게 아닌가 싶어서요.질문이 정리가 안된거 같기도 하고 헷갈리네요 ㅠ
-
미해결Python Institute 자격증을 통해 배우는 Python 기초 (Mini project: Chat GPT를 활용한 실시간 한글/영문 번역기 만들기)
강의 자료 다운로드 관련 문의
위의 사진과 같이 348p 분량의 PDF 파일을 제공해주신다고 하셨는데 혹시 어디서 다운로드 받을 수 있는 지 여쭤봐도 될까요?
-
미해결GA4 필수 코스 (by 현직 실리콘밸리 마케팅 디렉터)
Google Tag 설정 방법
질문 날짜: 2024년 1월 4일질문 내용: Google Tag 설정 방법안녕하세요. '콘텐츠 그룹 설정' 강의 관련하여 질문 드립니다.강의에서는 'GA4 - 콘텐츠 그룹' 태그 구성의 태그 유형이 'Google 애널리틱스: GA4 구성'으로 설정되는데요, 해당 유형을 GTM에서 찾을 수 없어 검색해보니 2023년 하반기에 Google Tag로 변경되어 '설정할 필드' 설정 부분이 사라진 것 같습니다.아마 찾아가며 설정해보면 오늘 해결 가능할 것 같긴 하지만 강사님께서 권장하는 설정 방법이 있으실지 질문드립니다 😄
-
해결됨GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
git bash 환경에서도 meteor run이 안됩니다.
먼저번에 질문 남겼었는데요nvm으로 node.js 14로 설치하고vscode에서 git bash 환경에서도 meteor run이 안됩니다. DISABLE_WEBSOCKETS=true meteor run이랑DISABLE_WEBSOCKETS=true meteor.bat run 모두 안됩니다. 아래는 vscode에서 git bash에서 실행한 사진이고아래는 윈도우 파워셀에서 실행한 사진입니다.어디를 고쳐야 할까요 ...
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v2 회원가입 페이지에 들어갔는데 member.jsp가 보입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 이게 formV2이고, package hello.servlet.web.frontcontroller.V2; import hello.servlet.web.frontcontroller.MyView; import hello.servlet.web.frontcontroller.V2.controller.MemberListControllerV2; 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.HashMap; import java.util.Map; @WebServlet(name = "frontControllerServletV2", urlPatterns = "/front-controller/v2/*") public class FrontControllerServletV2 extends HttpServlet { private Map<String, ControllerV2> controllerMap = new HashMap<>(); public FrontControllerServletV2() { controllerMap.put("/front-controller/v2/members/new-form", new MemberListControllerV2()); controllerMap.put("/front-controller/v2/members/save", new MemberListControllerV2()); controllerMap.put("/front-controller/v2/members", new MemberListControllerV2()); } @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String requestURI = request.getRequestURI(); ControllerV2 controller = controllerMap.get(requestURI); if (controller == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } MyView view = controller.process(request, response); view.render(request, response); } }강의에서 수정한 그대로입니다.. 3~4번 확인을 했는데도 다른부분이 없어요... 근데 회원가입 페이지를 들어가면이렇게 나옵니다.. new-form인데두요.. 중요한건회원목록도 같은 양식으로 나옵니다.. 뭐가 잘못된걸까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
k번째 수 질문드립니다
여기서 n을 input으로 받아서 활용을 안 하고 있는 거 같은데그러면 사용자의 입력에 따라 n이랑 리스트 a의 개수가 다를 수도 있는 거 아닌가요?
-
미해결
문자찾기01 문제 없는것 같은데, 오답이나 Runtime에러가 나와요
큰 문제 없는것 같은데, 왜 오류가 나올까요?
-
미해결AI 댓글 자동화 프로그램 개발 강의 (네이버 블로그)
프로그램 동작 영상 미리보기 비슷하게 하는줄알았는데
프로그램 동작 영상 미리보기 비슷하게 하는줄 알았는데 아니네요 신기해서 샀는데
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 교안 요청드립니다.
안녕하세요강의교안 요청드립니다. 이메일 주소는 ji9906090609@gmail.com 입니다.감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
슬라이딩
이미 알거 같지만 한 번 더 질문을 해볼게요 !!슬라이딩 유형은 미리 셋팅이 있어야 하는 것인가요?? 또한 import java.util.*; class Main { private int[] solution(int n, int m, int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); int index = 0, lt = 0; int[] answer = new int[n - m + 1]; while(lt < n - m + 1) { for (int rt = 0; rt < m; rt++) { map.put(arr[lt + rt], 1); } lt++; answer[index++] = map.size(); map.clear(); } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++) { arr[i] = in.nextInt(); } for(int a : T.solution(n, m, arr)) { System.out.print(a + " "); } } } 이렇게 풀면 시간 복잡도가 O(N^2) 이라서 시간 초과가 일어나는 것이죠 !?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성 메서드를 작성하는 클래스의 기준과 클라이언트에서 엔티티 아니라 orderid를 넘기는 이유
안녕하세요 ? 강의를 들으면서 몇가지 질문이 있어 글을 씁니다. 생성 메서드를 사용하는 이유에 대한 다른 질문의 답변의 외부 글을 읽었습니다. 강의의 Order와 OrderItem의 경우엔 생성자를 쓰던 생성 메서드를 쓰던 별 차이가 없는 것 같다고 생각이 듭니다. 혹시 이 두 클래서에서 생성 메서드를 사용했을 때 얻는 이점을 자세히 설명해주실 수 있나요? 특정한 클래스에만 생성 메서드를 쓰는 기준이 궁금합니다. 멤버변수 중에 객체가 있는 경우인가요?주문 삭제의 경우 클라이언트에서 orderId를 넘깁니다. 그럼 영속성 컨텍스트에서 한번 조회하여 order 엔티티를 찾습니다. 클라이언트에도 Order 엔티티 정보가 그대로 있어서 넘기면 바로 쓸 수 있는데 id를 넘기는 이유가 궁금합니다. 제가 생각해본 바로는 영속성 컨텍스트(캐시)에서 조회하는 건 자원이 크게 들지 않고 객체가 큰 경우에는 객체 자체를 넘기는 게 오히려 더 큰 자원이 들 수 있다는 점입니다. 맞을까요?답변 기다리겠습니다. 감사합니다 !