묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Vue.js + TypeScript 완벽 가이드
코드 스플리팅 방법시 타입스크립트 적용
안녕하세요 캡틴판교님 덕분에 즐겁게 공부하며 개발하고 있는 주니어 개발자입니다. vue 끝장내기 강의에 코드 스플리팅 기법을 적용하여 component: () => import("@/xxx.vue"), 위와 같은 방법으로 라우터를 구성한 뒤에 타입스크립트를 적용하니 리턴타입이 없다고 나오는데요 (각 라우터를 파일분리 후 import하여 사용중입니다.) 아래와 같이 하니 오류없이 되긴하는데, 괜찮은 코드인지 궁금하여 질문 올리게 되었습니다. import { Component } from "vue/types/umd"; type ImportComponentType = Promise<{ default: Component }>; ... component: (): ImportComponentType => import("@/xxx.vue"),
-
해결됨코딩으로 학습하는 GoF의 디자인 패턴
Flyweight Pattern 이론 강의 자료중에 오타인거 같습니다.
Flyweight Pattern 이론 강의 자료 중에 내적인 요소, 외적인 요소의 영어 표현으로 [Intrinsit], [extrinsit] 라는 표현이 있는데 해당 표현들은 [Intrinsic], [extrinsic] 표현인거 같습니다. 혹시 오타이신건가요? 항상 좋은 강의 감사드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
LoginForm 컴포넌트에서 props로 setIsLoggedIn을 받아올 때 질문입니다!
LoginForm 컴포넌트에서 AppLayout 컴포넌트의 props로 setIsLoggedIn을 받아올 때 밑에 빨간 줄이 뜨네요! 위 경고(?) 메시지가 떠서 구글 찾아보면서 propTypes 적용해봤는데setIsLoggedIn이 isLoggedIn의 상태를 바꾸는 함수라 생각하여 아래와 같이 작성해봤는데 맞는지 여쭤보고 싶습니다! 빠르게 보시라고 LoginForm 컴포넌트 내용 전체 올릴게요! import React, { useState, useCallback } from 'react'; import propTypes from 'prop-types'; import { Form, Input, Button } from 'antd'; import Link from 'next/link'; import styled from 'styled-components'; const ButtonWrapper = styled.div ` margin-top: 10px; `; // 백틱 안에는 CSS 적듯이 적으면 됨 // div 태그이면서 css가 적용된 ButtonWrapper 컴포넌트 사용 가능 const LoginForm = ({ setIsLoggedIn }) => { const [id, setId] = useState(''); const [password, setPassword] = useState(''); const onChangeId = useCallback((e) => { setId(e.target.value); }, []); const onChangePassword = useCallback((e) => { setPassword(e.target.value); }, []); // 배열 안에 id, password 작성하지 않으면 초기값을 기억하기 때문에 넣어줘야 함 const onSubmitForm = useCallback(() => { console.log(id, password); setIsLoggedIn(true); }, [id, password]); return ( <Form onFinish={onSubmitForm}> <div> <label htmlFor="user-id">아이디</label> <br /> <Input name="user-id" value={id} onChange={onChangeId} /> </div> <div> <label htmlFor="user-password">비밀번호</label> <Input name="user-password" type="password" value={password} onChange={onChangePassword} required /> </div> <ButtonWrapper> <Button type="primary" htmlType="submit" loading={false}>로그인</Button> <Link href="/signup"><a><Button>회원가입</Button></a></Link> </ButtonWrapper> </Form> ); }; LoginForm.propTypes = { setIsLoggedIn: propTypes.func.isRequired, }; LoginForm.defaultProps = { setIsLoggedIn: () => console.warn('setIsLoggedIn 값이 없습니다') }; export default LoginForm;
-
미해결선형대수학개론
1.8 onto 질문입니다.
onto의 개념은 알았습니다 그런데 example2에서 R4->R3 변환시 R3에 있는 임의의 벡터 b에 대해서 T(x) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재하면 onto라는게 이해가 되지 않습니다. R3에 있는 임의의 벡터 하나에 T(x) = b 를 만족하는 R4스페이스의 x 가 최소한 하나이상 존재한다 하여도 R3에 있는 어떤 벡터에는 T(x) = b가 되지 않는 경우도 있을수 있는거 아닌가요? 예를 들면 onto가 되지 않는 예시를 설명하신 1.8 피피티 8페이지의 그림처럼요. 이 그림이 Rm에 있는 특정 벡터들에는 T(x) = b 를 만족하는 Rn스페이스의 x 가 최소한 하나이상 존재하지만, Rm에 있는 어떤 벡터들에는 T(x) = b가 되지 않아서 not onto인 상황 아닌가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
reinterpret_cast질문이있습니다.
template<typename T> BufferWriter& BufferWriter::operator<<(const T& src) { *reinterpret_cast<T*>(&_buffer[_pos]) = src; _pos += sizeof(T); return *this; } reinterpret_cast c++강의에서 아주 강력한 변환 포인터랑 정수사이도 변환이 가능하고.. 다 가능한 변환 느낌이었는데 앞에*를 붙여주는 이유가 궁금합니다. *reinterpret_cast<T*>(&_buffer[_pos]) = src; =========================== T*로 변환하는데 src가 참조라서 *를 한번 더 붙여주신건가요?
-
미해결스프링 시큐리티
Controller에 Authentication타입 파라미터를 주입하는 HandlerMethodArgumentResolver의 구현체가 무엇인가요?
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 제가 Spring Security로 예제를 만들어보고 있었습니다. 그런데 익명 사용자인 경우 컨트롤러의 Authentication 파라미터로 주입되지 않더라고요. @GetMapping("/authentication")@ResponseBodypublic String authenticationTest(Authentication authentication) 예를 들면 컨트롤러에 이런 함수를 만들면 일반적인 인증 사용자인 경우에는 Authentication 객체가 주입되지만 익명 사용자인 경우에는 Authentication객체가 주입되지 않았습니다. 이유를 찾아보니 표준 서블릿 API 스펙을 따르기 위해서라고 합니다. 다른 응용 프로그램이 spring security의 구현에 의지하지 않도록 하기 위해서고 굳이 익명 사용자인 경우에도Authentication 객체를 주입받고 싶으면 spring security의 getContext().getAuthentication() api를 사용하면 된다고 합니다. 그래서 이유에 대해서는 제가 이렇게 찾아서 궁금한 부분은 아닌데요. https://github.com/spring-projects/spring-security/issues/4011 이 링크에 가보시면 내부적으로 왜 Authentication 객체가 익명 사용자인 경우 컨트롤러에 주입이 안 되는지 나온 부분이 있습니다. SecurityContextHolderAwareRequestWrapper이 객체에 아래와 같은 부분이 있다는 것입니다. private Authentication getAuthentication() { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (!trustResolver.isAnonymous(auth)) { return auth; } return null; } SecurityContextHolderAwareRequestWrapper 객체는 HttpServletRequest가 RequestCacheAwareFilter를 통과하면서 재구성된 request 객체라고 합니다. 그래서 SecurityContextHolderAwareRequestWrapper객체에서 getAuthentication()라는 함수를 호출해서 Controller의 Authentication 타입 파라미터에 주입해주는 Security전용 HandlerMethodArgumentResolver가 있을 것 같은데, 제가 아무리 찾아봐도 정확히 이런 Resolver가 있다는 글을 못 찾겠더라고요.혹시 아신다면 알려주시면 감사하겠습니다.
-
미해결
c로 글자수세기 프로그램을 만드려는데 출력이 안됩니다.
#include <stdio.h> int main(void) { int c, total_byte = 0, line_count = 0; while ((c = getchar()) != EOF) { total_byte++; if (c == '\n') ++line_count; } printf("파일 크기 : %d 바이트\n" , total_byte); printf("파일 줄 수 : %d 행\n" , line_count); return 0; } 소스코드는 이렇게 되어 있구요 실행하면 출력 결과가 안 나오고 그냥 빈화면만 뜨네요 제 생각엔 while문이 무한루프에 빠져서(?) 그런 것 같은데 어떻게 해결해야 할지를 잘 모르겠습니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
궁금해서 적어봅니다.
1. C#에도 순수가상함수 개념이 있나요? 아직까지는 못본거 같아서요. 2. 9:40부터 나오는 Base.(가상함수) 는 어느정도의 부모계층 까지 올라가나요? 최상위 부모계층의 메소드를 쓰게되나요? 3. 자식 클래스에서 쓰이는 메소드가 부모 클래스에서 쓰이는 메소드에 몇가지 추가적인 기능만 붙었다고 가정했을때는 어떤 방식이 효율적일까요 첫번째. 자식클래스 메소드에 부모클래스의 메소드 기능을 복붙한 후에 뒤에 몇가지 기능을 추가하는 방법 아니면 두번째. 부모클래스의 메소드에 sealed를 붙여 자식클래스들이 공용으로 사용하는 기능만 남기고 자식클래스에서 sealed로 묶인 부모클래스의 메소드를 호출한 뒤 자식클래스만의 추가적인 메소드를 만들어 호출하는 방법 이렇게 두가지 생각중인데 다른 방법이 있는지도 궁금합니다.
-
해결됨코딩은 실전이다! - Git알못을 위한 깃린이코스(Git, Github 실습위주)
git clone 명령어 관련 질문 드립니다.
강사님 안녕하세요. git clone 명령어 관련해서 질문드립니다. 만약 리포지토리에 특정 파일의 변경사항이 저장된 커밋이 3가지 있는 상황이라고 가정하면, git clone을 실행했을 때, 가장 마지막으로 push된 커밋 상태의 파일이 로컬로 전송되는 것인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
200, 201, 302상태코드에 대해 질문 있습니다.
졸업프로젝트 진행 중 상태코드에 대한 질문이 있어 남기게 되었습니다. 깃허브가 작동하는 방식을 살펴보았는데, 이슈의 댓글 생성시에 201대신 200코드를 반환하는 것으로 파악했습니다. (https://developer.mozilla.org/ko/docs/Web/API/Location) 200과 201코드의 차이점은 location응답헤더의 유무인 것으로 알고 있는데, 댓글 생성시에는 새로운 자원(댓글)이 만들어지지만 생성된 이후에 페이지 자체는 변하지 않기 때문에 location이 없는 200 상태코드가 오는 것으로 생각했습니다. 이슈가 생성될 때에는 이슈페이지로 이동하게 되지만 201대신 302를 통해서 리다이렉트하는 방식을 사용하고 있더군요. (네이버와 티스토리도 분석해본 결과)결과적으로 페이지를 이동하든, 이동하지 않든 생성시에 201을 사용하는 곳은 아무데도 없었습니다. 이런 사이트들은 어떤 규칙을 지키는지, 201 상태코드가 실제로 사용되는 부분은 어떤 곳인지 궁금합니다!! 감사합니다!!
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
상속
class unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print("{} unit creation complete".format(name)) class AttackUnit(unit): def __init__(self, name, hp, speed, damage): unit.__init__(self, name, hp, speed) self.damage = damage print ("{} 생성 완료.".format(self.name)) print ("HP {0}, Damage {1}".format(self.hp, self.damage)) unit 클래스에서 상속 받을때 __init__(self, name, hp, speed, damage):을 다시 다 적는 이유가 뭔가요? 밑에 줄에 unit.__init__(self, name, hp, speed) 이 있으면 굳이 적을 필요 없다고 생각했는데 지우니까 오류가 뜨네요 왜 그런지 궁금합니다.
-
해결됨MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
s3 , post.js 에서 설정 까지 다 해줬는데 에러가 나서 질문드립니다
판다님 강의처럼 s3 설정 및 post.js에서 경로설정 까지 다 해줬는데 에러가 뜨네여 혹시나 뭔가 잘 못 적었나 싶어서 몇번이나 강의를 보면서 체크 해봤는데 다른 부분은 없었습니다 키부분은 질문 작성한다고 잠시 지웠습니다
-
미해결[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
PinSpawner 스크립트를 추가하는 과정에서 오류가 발생합니다.
PinSpawner 스크립트가 Hierarchy에 있는 PinSpawner에 추가가 안됩니다. 몇 번이고 확인하고 똑같이 따라쳤는데도 오류가 발생합니다.;
-
미해결스프링 시큐리티
마지막에 AuthenticationManager에게 다시 인증처리를 맡기는 이유가 무엇인가요?
remember-me 토큰을 비교해서 user 계정이 존재하면 그것으로 인증처리가 된 것으로 생각되는데 마지막에 RememberMeAuthenticationToken을 AuthenticationManager에게 넘겨서 인증처리를 또 하는 이유가 무엇인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
포트에 관하여
안녕하세요. 강의 정말 잘 듣고있습니다. 강의를 듣다 모르는 것이 생겨 질문을 남기게 되었습니다 ㅎㅎ. ppt 37p에서 클라이언트가 서버한테 요청을 할 때 예를 들어 게임같은 경우는 8090포트를 사용한다 되어있는데, 해당 포트는 랜덤으로 정해지는 건가요? 그리고 서버의 11220포트는 서버 쪽에서 정한 포트 번호인건가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
maxHeight 질문
Upload를 여러개해보니 card들이 이상하게 보여서 maxHeight를 낮춰보니 화면에 제대로 나왔습니다. 이런 px단위 문제는 어떻게 하면 되는지 궁금합니다.!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
제대로 이해한것인지 궁금합니다.
5분대부터 헷갈리고 있습니다. 59번째 줄에 killKnight(knight); 가 남아있어서 그런가? 싶은 생각이 듭니다. 1. 59번째 줄 이후로 knight.hp값이 0이 되있는 상태인데 쓰여진 코드를 보면 knight2.hp는 처음부터 0을 참조하는것이 아닌가 싶어서요 62번째 줄의 knight.hp=0을 쓰신 이유를 모르겠습니다 위 생각과는 상관없이 설명만을 토대로 정리할 겸 써보자면 2. 5분대에 있는 61번째 쓴 줄이 C++ 에서는 Knight& knight2 = knight 라고 표현될수 있는 건가요? 3. new를 써서 메모리 할당을 했는데 해제는 안하나요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
cookie parser 질문드립니다(소스코드 2차 수정했습니다)
강사님 안녕하세요 소스코드를 수정해서 다시 질문드리고 싶습니다(app.js 를 수정했습니다) 아래는 app.js입니다 /** * ch6.1 */ const express = require('express'); const path = require('path'); const { nextTick } = require('process'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const app = express(); app.set('port', process.env.PORT || 3000); //'port' 라는 속성에 포트번호 3000번을 설정합니다. //서버의 포트를 3000번으로 지정하는 것 같습니다. // 이 속성은 아래 19행처럼 가져올 수 있습니다 //app.use(morgan('dev')); app.use(cookieParser()); app.get('/login', (req, res, next) => { if(req.url.startsWith('/login')){ req.cookies // 쿠키 객체화 res.cookie('name', encodeURIComponent(name2),{ expires: new Date(), httpOnly: true, path: '/', }) } else if(true) { next('route'); } else{ next(); } }, (req, res, next)=>{ console.log('실행되지 않음1') next(); },(req,res,next)=>{ console.log('실행되지 않음2') next(); }); app.get('/', (req, res) => { // res.send('Hello, Express'); console.log('실행되지 않음3') res.sendFile(path.join(__dirname, '/cookie2.html')); }); app.use((err,req,res,next)=>{ console.log(err); res.status(200).send('에러났지롱') }) app.listen(3000, () => { console.log(app.get('port'), '번 포트에서 대기 중'); }); 아래는 cookie2.html 입니다 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>쿠키&세션 이해하기</title> </head> <body> <form action="/"> <input id="name" name="name2" placeholder="이름을 입력하세요" /> <button id="login">로그인</button> </form> </body> </html> 이렇게 로그인을 해봤습니다 그런데 name2는 이렇게 cookie2.html에 있는데, 혹시 어디가 문제인지 도와주시면 감사하겠습니다 도저히 모르겠습니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
이미지 출력 에러가 발생합니다
이미지 출력하는 부분에서 에러가 발생합니다. 에러 내용은 이러합니다. 파일 경로에 이미지가 uuid형식으로 저장되는 것은 확인 하였습니다. 어떻게 해결해야하나요 ? 2022-04-28 18:33:16.708 ERROR 18184 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.io.FileNotFoundException: URL [file:C:/Users/gyfls/Desktop/backend/study/file/${imageFile.getStoreFileName()}] cannot be resolved in the file system for checking its content length at org.springframework.core.io.AbstractFileResolvingResource.contentLength(AbstractFileResolvingResource.java:240) ~[spring-core-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:121) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:45) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:260) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:211) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:293) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.19.jar:5.3.19] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.19.jar:5.3.19] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.62.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.19.jar:5.3.19] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.19.jar:5.3.19] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.62.jar:9.0.62] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
handleFilters 질문 ㅠㅠ
newFilters[category] = filters 여기부분이 왜이렇게 되나요? 이 줄이 해당 카테고리에 filters값을 넣는 의미가아닌가요? Filters의 init값이 { continents = [], price=[] } 인데 newFilters.category = filters 이런식으로 대야하는거 아닌가요?? 그리고 setSkip(0)은 왜해주는건가요?? body에 skip:0은 useState Skip이랑 상관없지안나요?