묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 고급편
ThreadLocal이 내부적으로 map을 구현한것이라면 쓰레드 삭제시 grabage collector가 작동하나요?
ThreadPool을 사용하지 않고 임시 thread를 만들어서 async하게 작동하도록 만든다고 가정할시, 임시 thread가 종료되면 ThreadPool에서 해당 value도 삭제되는지 궁금합니다. remove코드를 놓칠시 메모리누수의 원인이 되는지가 궁금합니다.
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
로그인 로그아웃 관련 새로고침 이슈
한가지 더 해결못한 이슈가 있습니다.새로고침 후 /직전에 구동 잘 되는 걸 확인했던 author 정보의displayName을 읽어올수없다는 TypeError가 뜨네요,그리고 로그인 후 리덕스에서 읽어오는 과정에서 뭔가문제가 있는지 자꾸 react_devtools_backend.js:3973 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. at Login (http://localhost:3000/static/js/bundle.js:924:76)이 오류가 뜨네요, 무시해도 되는 것인지 아니면 이번 문제와 연관이 있는지 모르겠습니다. 헷갈리는건 리덕스를 포스트 리스트 페이지에 연동하기 전까지는 무리 없이 잘 됐다가 갑자기 페이지를 새로고침 하니까로그인 관련 이슈가 생겼다는 점입니다.!!제가서버를 구동시킨 상태에서 디테일 컴포넌트에 추가했던 author 정보의 displayName 받아오는 코드를 다시 지웠더니 문제가 사라졌다가 지웠던 코드를 똑같이 다시 쓰니 디테일 페이지가 문제 없이 작성자 정보를 보여주었습니다. <h3>writer:{postInfo.author.displayName}</h3> 그런데 새로고침을 누르자 마자 위의 타입에러가 뜨면서 디테일페이지가 로딩이 1초간 됐다가 흰 화면이 되며 콘솔창에 아래 오류가 뜨는 것입니다. 콘솔창에 문제를 추적하기 위해 제가 아래 디테일 코드에 콘솔로그를 몇군데에 찍어봤는데 로그인 문제와 연관이있는지 서버와 연결은 되지만 위 첨부 콘솔창과 같이 빈 데이터가 넘어오는것 같습니다. 혹시나 해서 다시 "/" 으로 돌아가 로그아웃을 강제로 하고재로그인을 해서 리스트가 있는 페이지로 들어와봤습니다.그랬더니 author 정보는 잘 받아오는데 다음과 같은 콘솔창 오류가 추가되었습니다.일단 저 오류를 무시하고 리스트에 있는 목록을 하나 클릭해 들어가니 역시나 빈 배열이 받아지는 오류가 반복됩니다.분명 새로고침과 관련한 문제인 것 같은데....이상한건 새로고침을 하면 자동 로그아웃이 되어버리는건가 하고 의심해서 "/" 으로 돌아와보면토큰이 넘어와 로그인 상태가 유지중이었습니다.그래도 의심되는건 바로 로그인상태가 표시되는게 아니라 조금 뜸들이다가 로그인이 되었음이 표시되긴 합니다. 판다선생님이라면 어떤 부분을 살펴보실 것 같은가요어떤 부분을 살펴보면 좋을지 알려주시면 확인 후 조치해보고 코드를 첨부해보겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
정적 멤버의 상속 질문
클래스 상속시 가반 클래스에 정적 멤버가 있을 경우 해당 멤버의 상속이 가능한 건가요? 제가 찾아보아도 무언가 애매모호한 해설들만 있어서 질문 드립니다. 답변 부탁드립니다.
-
미해결자바스크립트+jQuery 기초부터 실무까지 : 중급 Part.1
$(selectedItem)의 의미
function addMenu() { // 텍스트 입력 값 구하기 var menuName = $menuName.val(); // 신규 메뉴 아이템 문자열 만들기 var newMenuItem = "<li>" + menuName + "</li>"; // 선택 메뉴 아이템이 있는 경우 신규 메뉴 아이템을 선택 메뉴 아이템 아래에 추가 if ($selectedItem) { $selectedItem.after(newMenuItem); } else { // 메뉴에 신규 메뉴 아이템 추가 $menu.append(newMenuItem); } } if문이 이해가 가지 않습니다. $selectedItem 은 널값인데,,,
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원목록 조회시 Whitelabel error
회원가입 후 홈화면으로 잘나오는데 회원 목록을 조회 하게 되면 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Mar 18 14:36:06 KST 2022 There was an unexpected error (type=Not Found, status=404). No message available 이런식으로 에러 화면이 뜹니다 계층적으로 문제가 있다는데 해결방법알려주시면 감사하겠습니다.
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
cats.module.ts에서 MongooseModule.forFeature 질문 드립니다
안녕하세요 강사님 cats.module.ts 파일에서 import: [MongooseModule.forFeature([{ name: Cat.name, schema: CatSchema }]),이부분에서 빨갛게 해논부분에 왜 Cat.name , name이 붙어있는 이유가 뭔지 알고싶습니다. 저기서 name에 할당한 값으로 Service에서 생성자 주입 받을때? Cat.name 으로 @InjectModel(Cat.name) 하는걸로 보이는데 왜 ".name" 이 붙은건가요?..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러페이지 인코딩 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 문제점 : main메소드를 실행하고 localhost:8080에 접속하니 글자가 깨져서 나옵니다. 스프링부트 글자깨짐 오류를 구글링하여 설정을 utf-8로 변경했는데 계속 저렇게 나옵니다.
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
axure 내에 animation gif 삽입
안녕하세요. 강의 너무 잘 듣고 있습니다.^^ 작업 중 궁금한 점 여쭙습니다. animation gif파일은 삽입할 수 없는 게 맞나요? 넣어보니 투명의 배경은 블랙으로 바뀌고 그냥 멈춘 이미지로 밖에 안보이네요. 알려주시면 감사하겠습니다~~
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
find 시 테이블. JOIN 을 제외할 시에..
이번 장에서 설명해주신 FIND 기능에 대해서 질문 사항이 있습니다. 강의내용중에 member / team 간에 관계를 갖고 있다는 전체로. find 를 사용시에 JOIN 이 강제적으로 발생하는듯 한데.. member 에 대한 기본 정보만 조회를 하고 싶을때( team 정보는 필요없다. ) 는 어떻 방법을 사용할가요?
-
미해결워드프레스 속성 마스터 클래스
웹사이트 제작시 사용한 테마가 범용/유료 테마가 아닌, 개발자가 직접 만든 테마일 경우.
다른 사람이 만든 웹사이트의 외관을 바꾸는 일을 해야 하는데, 그 웹사이트가 워드프레스로 만들어진 것이기는 하나 자체적으로 만든 테마를 쓰고 있더라고요. 이 경우, 꼭 php/css 등을 이용해서 내용을 바꿔주는 것이 아니라 손쉽게 외관을 바꿀 수는 없을까요? elementor 등의 플러그인이 아직 설치되어 있지 않고 기존에 사용되지도 않았다 할지라도, 페이지 빌더를 이용해서 쉽게 작성하는 방법이 가능할까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Exercise_A 질문입니다.
위 사진의 46번째 줄 delete[] arrows; 처럼 Arrow* 배열을 해제시켜주는 것은 불가능한가요? 생각나는 안되는 이유로는 1. 기본 타입이 아니어서 안된다. 2. Arrow 클래스 소멸자 부분을 수정해줘야 한다. 이정도네요. 정확한 이유가 뭔가요?!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
onetomany에서는 왜 joincolumn이 필요가 없나요?
12:10화면을 보면 onetomany라는 어노테이션만 있고 joincolumn어노테이션은 없어서요 왜 필요가 없는건가요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker create 질문드립니다
안녕하세요, 2:10초 즈움에 docker create 명령어를 실행하면 이미지에 있는 파일 스냅샷이 컨테이너의 하드 디스크로 넣어진다고 말씀하셨습니다. 이 과정을 좀 더 자세히 볼 수 있는 방법이 있을까요? 예를 들어 파일 이미지의 어떤 파일 스냅샷을 docker create 명령어 후 출력된 컨테이너 ID에서 확인하는 등 좀 구체적으로 확인할 수 있는지 궁금해서 문의드립니다. 항상 자세한 설명 감사드립니다ㅣ!
-
미해결
수료증 미발급 과정 수료증
안녕하세요 인프런에서 라이노3d기초/개념 이해 수료증이 미발급 된 과정을 무료로 수강했던 학생 입니다. 제가 과제로 제출해야 해서 수강확인증이 아닌 수료증이 꼭 필요한데 발급 할 수 있는 방법이 없을까요? 비용이 들어도 괜찮습니다 그리고 혹시 수료증이 발급이 안된다면 로그인 , 로그아웃 했던 시간이 나오게 강의 시간을 확인 할 수 없는지도 문의드립니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
설계절차에 대해 질문이 있습니다
일반적으로 탑 다운 방식의 설계를 할 때 상위 수준의 언어로 원하는 동작, 알고리즘을 설계한 후, (C언어 같은 것이 될까요?) RTL 수준의 Verilog 등으로 설계한다면 맛비님께서도 먼저 Vitis상에서 돌릴 c언어 코드를 먼저 기술하신 뒤에 verilog 모듈을 만드신 건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
_app.js 관련 질문입니다.
안녕하십니까 강의를 다 듣고 리뷰를 하는 도중 궁금한 점이 있어 질문 드립니다 ! 1. next.js docs 나 구글에 검색한 대부분의 경우 app.js에서 props로 Component와 함께 {...pageProps}를 같이 받아오는데 이는 _app.js에서 getInitialProps를 사용하거나 SSR 적용시 swr에서 필요한 props를 받아오는 경우가 아닌이상 사용할 필요가 없어서 이번 강의에는 사용하지 않으신건지 궁금합니다. 2. getInitialProps를 _document.js 에서는 적용해주셨는데 이는 모든 페이지에 getInitialProps를 적용하기 위함이라고 생각하면 될까요? (모든 페이지에 styled-components(CSS)를 SSR 하기 위함일까요?)
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
user의 athor 정보 서버 작업 후 포스팅 400 오류 ㅜ
안녕하세요, 강의 잘 듣고 있습니다. 빠르고 효율적인 강의 감사합니다. 이번 강의에서 로그인 로그아웃을 구현하고게시글에 유저의 정보를 넘겨주는 코드까지 따라 작성하니갑자기 게시글 등록시 오류가 생깁니다.동시에 "/" 에서 로그인 시 콘솔창에 빨간경고가 뜨기 시작했습니다. 아직까지 원인을 제대로 찾지 못했습니다. 아래는 포스팅 오류 서버/ 포스트 라우터의 submit api 클라이언트 경고와서버의 유저모델/ 포스트모델
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ScriptAssert lang = javascript
안녕하세요 김영한 개발자님! 강의 잘 보고 있습니다. 다름이 아니라, 오브젝트 오류에서 @ScriptAssert(lang = "javascript" ....)를 등록하고 가격 1000원 수량 1개를 입력하면 에러가 발생하는데, 어디서 오류가 난지 잘 모르겠어서 질문남깁니다ㅠㅠ 항상 감사합니다! [오류 메세지] org.hibernate.validator.spi.scripting.ScriptEvaluatorNotFoundException: HV000232: No JSR 223 script engine found for language "javascript". at org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory.createNewScriptEvaluator(DefaultScriptEvaluatorFactory.java:66) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[na:na] at org.hibernate.validator.spi.scripting.AbstractCachingScriptEvaluatorFactory.getScriptEvaluatorByLanguageName(AbstractCachingScriptEvaluatorFactory.java:41) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.HibernateConstraintValidatorInitializationContextImpl.getScriptEvaluatorForLanguage(HibernateConstraintValidatorInitializationContextImpl.java:50) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.constraintvalidators.hv.AbstractScriptAssertValidator.initialize(AbstractScriptAssertValidator.java:38) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.constraintvalidators.hv.ScriptAssertValidator.initialize(ScriptAssertValidator.java:38) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.AbstractConstraintValidatorManagerImpl.initializeValidator(AbstractConstraintValidatorManagerImpl.java:140) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.AbstractConstraintValidatorManagerImpl.createAndInitializeValidator(AbstractConstraintValidatorManagerImpl.java:90) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManagerImpl.getInitializedValidator(ConstraintValidatorManagerImpl.java:117) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:136) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:54) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172) ~[hibernate-validator-6.1.7.Final.jar:6.1.7.Final] at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:109) ~[spring-context-5.3.5.jar:5.3.5] at org.springframework.boot.autoconfigure.validation.ValidatorAdapter.validate(ValidatorAdapter.java:65) ~[spring-boot-autoconfigure-2.4.4.jar:2.4.4] at org.springframework.validation.DataBinder.validate(DataBinder.java:895) ~[spring-context-5.3.5.jar:5.3.5] at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.validateIfApplicable(ModelAttributeMethodProcessor.java:367) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:168) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:170) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.5.jar:5.3.5] at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.44.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.5.jar:5.3.5] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.44.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.44.jar:9.0.44] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.44.jar:9.0.44] [Item 코드]
-
미해결그림으로 배우는 자바, 파트1: 입문!
결제했는데 ppt개념정리된거? 그런거없나요?
그냥 강의만 볼수 있는건가요? 구름에듀는 강의별로 PPT와 연습코드 도 함께 제공되던데 이건 딱 영상만 볼수 있는건가요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
actions / mutations 에 대하여
안녕하세요. 현업에서 vue를 사용하고 있습니다. 부족한것을 채우려 처음부터 정주행 하고 있습니다. 덕분에 몰랐던것과 여러 팁 얻어가고 있습니다. 감사합니다. 질문이 있습니다. 예를들어 지금까지는 아래와같이 const userStore = { namespaced: true, state: { username: '', }, getters: { GET_USER_NAME: state => state.username, }, mutations: { SET_USER_NAME: (state, payload) => { state.username = payload.username; }, }, actions: { SET_USER_NAME({ commit }, payload) { commit('SET_USER_NAME', payload); }, }, }; export default userStore; this.$store.commit을 사용해 mutations를 직접 건드리는것이 아니라 this.$store.dispatch를 사용하여 actions를 건드려서 mutations 커밋으로 state의 상태 를 변경해왔습니다. - 직접 mutations을 건드리는것의 이점이 있는가? - 대부분 actions를 사용해 mutations 커밋하는것을 권장하던데 이유가 있는가? 에 대해 알고 싶습니다. 단지 비동기 비즈니스 로직을 actions에서 수행할 수 있기에 권장하는것인가 하는 생각도 듭니다. 그렇다면 - 비동기 로직이 없는 string 저장등을 위한 로직은 actions를 거치는것보다 mutations를 바로 건드리는게 더 효율적일까요? 답변 잘부탁드립니다