묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
코드 저장 시 address already in use :::3000에러가 발생합니다
안녕하세요! 강의 잘 듣고 있습니다 코드를 작성하고 저장을 하면 address already in use 에러가 뜹니다. 맨 처음 실행할때는 문제없이 실행이 되는데, 코드를 작성하고 저장하면 3030포트를 사용하고 있다는 에러가 뜹니다. lsof -i :포트번호 로 열려진 파일 목록을 보면 아래 사진처럼 실행중인 프로세스가 확인이 됩니다. sudo lsof -i :3030 kill -9 PID 인터넷에 쳐보니 해당 프로세스를 죽이는 법은 나오는데 반복적으로 이런 현상이 나오는것에 대해서는 해결방법을 아직 못찾았습니다. 어떻게 하면 이런 현상을 해결할 수 있을까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
인코딩 수행 질문드립니다.
descriptor_df.iloc[:, :-4].head() 1. 위와 같은 데이터에서 첫 번째 컬럼을 인코딩하려고합니다. smiles = descriptor_df[['SMILES']] pd.get_dummies(smiles_df) >>> get_dummies를 이용해서 인코딩을 수행하였습니다. 2. PCA 변환을 수행하기위해 정규화를 진행하려고 했지만 인코딩 오류가 발생했습니다. descriptor_scaled = StandardScaler().fit_transform(descriptor_df.iloc[:, 0:-4]) 제 생각으로는 인코딩을 수행한 값이 원본 데이터 값에 적용이 안 된것 같은데 혹시 어떻게 수정해야 할지 알 수 있을까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
가로 세로 따로 판별해도 괜찮을까요??
def solution() : board = [list(map(int, input().split())) for _ in range(7)] cnt = 0 # row for i in range(7) : for j in range(3) : if board[i][j:j+5] == board[i][j:j+5][::-1] : cnt += 1 #column for i in range(7) : for j in range(3) : tmp = [] for k in range(5) : tmp.append(board[j+k][i]) if tmp == tmp[::-1] : cnt += 1 print(cnt) solution() 선생님처럼 for문 한번에 가로 세로 전부 확인하지 않고 가로, 세로 나눠서 판단하는 코드를 작성하였는데 for문을 최대한 줄여서 한번에 해결하는 것이 훨씬 더 좋은 코드인가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
백엔드서버 500 에러 발생
안녕하세요 제로초님! 강의 잘 수강하고 있습니다. 밑에 다른 분과 같은 에러가 발생하여 질문 남깁니다. 프론트, 백엔드 서버는 작동이 되긴 하는데 프론트 회원가입 페이지에서 가입하기 버튼 누를 시 이러한 에러가 발생합니다. 밑 글에서 제로초님이 답글 달아주신 것처럼 우선, mysql 비밀번호는 정확하게 입력한 상태이며 우분투 back 경로에서 vim .env 하였을때 DB 패스워드도 일치하였습니다. 터미널에서 다시 mysql 비밀번호가 맞는지 확인 후, 로컬 back 경로에서 npx sequelize db:create 를 실행하고, 서버 새로고침을 하였는데도 같은 현상이 발생합니다. 혹시 제가 시도했던 방법 중 틀린 부분이나 추가로 확인 및 진행해봐야할 부분이 있을까요?
-
미해결[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
지그재그 타일생성 질문있습니다.
플레이어가 지나가고 타일을 떨구는 부분에서 StartCoroutine으로 호출하는 부분이 동작을 안하는것 같아서 질문드려요. 코드는 똑같이 따라 쓴것 같은데 어떤 부분을 확인 해야 할까요? 타일 설정이나 플레이어 태그도 추가 한 상태입니다 ㅜㅜ private void OnCollisionExit(Collision collision) { Debug.Log(collision.transform.tag.Equals("Player")); if( collision.transform.tag.Equals("Player") ) { StartCoroutine("FallDownAndRespawnTile"); } } private IEnumerable FallDownAndRespawnTile() { yield return new WaitForSeconds(0.1f); rigidbody.isKinematic = false; yield return new WaitForSeconds(falldownTime); rigidbody.isKinematic = true; if(tileSpawner != null){ tileSpawner.SpawnTile(this.transform); } else { gameObject.SetActive(false); } }
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
외래키 속성 사용질문
위 코드 처럼 Test2에서 Test1을 외래키 참조 하였습니다. 이때 Test2에서 a변수를 Test1 a 변수와 동일하게 사용하고 싶은데, 어떻게 Test1의 a 변수 값을 할당 할 수 있나요?
-
미해결스프링부트 시큐리티 & JWT 강의
security context holder에 관해 질문이 있습니다!
안녕하세요, 시큐리티에 대한 강의를 들으면서 구현할 수 있게 되어 많은 도움을 받았습니다. 허나 구현 도중 의문점이 떠올랐는데, 혹시 authentication 객체를 securitycontextholder에 바로 저장 안하고 securitycontext에 저장하는지 알 수 있을까요?? 좋은 강의 감사합니다.
-
미해결배달앱 클론코딩 [with React Native]
회원 가입시 빨간 에러 발생할 경우 해결 방법 (mac 사용자)
회원 가입시 빨간 에러 발생할 경우 step2 를 해주시면 됩니다 step1: npm i react-native-config step2: (cd ios; pod install
-
미해결운영체제 공룡책 강의
2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류
2강에서 예시문제를 터미널에 실행하면 .. 강사님과 같은 화면이 출력이 안됩니다. 혹시 어떤게 문제인지 알 수 있을까요?
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
클라우드 관련 질문
안녕하세요 데이먼님! 유익한 강의 재밌게 잘 듣고 있습니다. 1) xeicon과 iphone X Lite rp파일 수업자료를 사용한 rp 파일을 클라우드에 업로드 한 후, 다른 기기에서도 수업자료를 다운받은 후 클라우드에서 해당 rp파일을 다운로드 받아 열었는데 xeicon들이 네모 박스로 뜹니다. ㅠㅠ 무엇이 문제일까요? 2) 그리고, 액슈어 작업 시 프리뷰할 땐 하단에 잘 고정되어있던 것이, 클라우드 업로드 파일에서 프리뷰하면 화면에서 살짝 떠있게 나옵니다. 제가 뭘 잘못 설정한걸까요? (이미지 첨부합니다)
-
해결됨(UPDATED) Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
화면이 안나오는데 정상인가요?
안녕하세요 아래 캡처처럼 화면이 안나오는데 제가 원래 이런건지 궁금합니다.
-
미해결자바스크립트 : 기초부터 실전까지 올인원
여기서 왜 map함수가 실행이 안될까요??
const getLatestnews= async()=>{ let url=new URL( `https://api.newscatcherapi.com/v2/latest_headlines?countries=kr&topic=business&page_size=10`) let header=new Headers({'x-api-key':'d8h9038rFoacHi1tlRVr5p0r0_F2AF2PHOcaR4mb24Y'}) let response= await fetch(url,{headers:header}) let data=await response.json() news=data.articles render() } getLatestnews() let render=()=>{ let newsHtml=""; newsHtml=news.map(news=>{ return `<div class="row"> <div class="col-lg-4"> <img class="newsimg" src="https://static01.nyt.com/images/2022/06/14/world/15buffalo-shooting-header-copy/merlin_206877762_554fdf7d-d257-41e6-a289-b60f54708738-jumbo.jpg?quality=75&auto=webp"> </div> <div class="col-lg-6" > <h2>경찰이 출동을 하였다</h2> <p> 무장강도가 침입을 하여 경찰이 출동을 하였다 </p> <div> 2021-05-16일 </div> </div> </div>` }) document.getElementById("newscontainer").innerHtml=newsHtml
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DB없이 데이터 저장이 어떻게 가능한지 궁금합니다.
ㄱ학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.안1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 강사님, 안녕하세요. 강의 정말 잘 듣고 있습니다. 스프링 서버만 구현하여서 데이터가 저장되는데, 이것이 어떻게 가능한지 궁금합니다. 답변 부탁드립니다. 감사합니다.
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
텍스트 링크 질문
안녕하세요 강의 정말 잘듣고 있습니다 텍스트 링크 인터랙션을 삭제하면, 인터랙션 넣기 전으로 돌아가지 않고 글자에 스타일이 적용된채로 남아있는데요(파란글씨에 볼드) 원래대로 돌리려면 글씨 스타일에서 일일히 다시 검정 폰트와 볼드 없는 상태로 바꾸어주어야 하나요? 제가 인터랙션을 잘못 제거해서 그런것인지, 쉽게 원래대로 돌릴 수 있는 방법은 없는지 궁금합니다
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
환경변수를 통한 API HOST 지정 후 생기는 에러 관련 질문드립니다.
강사님 안녕하세요.. 좋은 강의를 제공해주심에 감사드립니다. 다름이 아니라, 섹션 11의 환경변수를 통한 API HOST 지정 강의를 따라하며 기존 localhost:8000 의 주소들을 .env 파일을 만들어 REACT_APP_API_HOST="http://localhost:8000" 를 설정해주고 api.js , Constants.js 로 빼내어서 지정하고 개발 서버를 다시 실행했는데요.. 그 뒤로 이렇게 웹 화면이 뜨지 않는 상황이 발생했습니다. (네트워크 탭에서 api 들이 200 상태로 뜨는데 크기가 0B로 나타나는 것을 보게 되었습니다.) 어떤 점이 오류일 지 ... 고쳐야 하는 부분의 감이 잘 안잡히는 것 같습니다. 답변주시면 대단히 감사하겠습니다...!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
난이도 질문
안녕하세요. 이 강의들 모두 수강해서 소화하면 백준 실버 ~ 골드 하위 문제는 충분히 풀 수 있는정도의 실력이 될까요?
-
미해결실무에서 바로 쓰는 영어 이메일
강의자료 요청드립니다.
강의 감사합니다. 강의 자료 공유 부탁드려요 lifelongchris@gmail.com
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서버 재기동 시 데이터 출력에 관해 질문 있습니다.
제가 테스트로 등록한 데이터는 재기동시 날아가는데 itemA와 itemB는 어떻게 그대로 출력되는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링부트와 mockito 연동 문의
안녕하세요 과정과 관련이 많진 않지만, 검색으로 해결책을 찾지 못해서 문의 드립니다ㅠ spring boot 2.4.13을 사용 중인데, mockito의 static mock을 사용하기 위해서 mockito-inline을 추가하면 잘 작동하던 @SpringBootTest에서 아래와 같은 오류가 발생합니다. gradle을 사용하고 , 아래와 같이 추가하였습니다. testImplementation 'org.mockito:mockito-inline:3.10.0' 아래는 에러 코드 입니다. java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider could not be instantiated 2022/05/16 10:02:28.565 main WARN o.s.t.c.TestContextManager.logException(550) :: Caught exception while invoking 'beforeTestMethod' callback on TestExecutionListener [org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@10cf09e8] for test method [void com.abc.test()] and test instance [abc.test@326451bf] java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at com.sun.proxy.$Proxy302.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:110) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:82) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:70) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:57) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:293) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:174) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachCallbacks$2(TestMethodTestDescriptor.java:163) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:199) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:199) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachCallbacks(TestMethodTestDescriptor.java:162) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:129) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.lang.IllegalStateException: Failed to load interface org.mockito.plugins.MockMaker implementation declared in sun.misc.CompoundEnumeration@3dd4d6e6 at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:57) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:65) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:26) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:20) at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:28) ... 60 common frames omitted Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:52) ... 65 common frames omitted Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 1.8 JVM vendor name : Azul Systems, Inc. JVM vendor version : 25.212-b04 JVM name : OpenJDK 64-Bit Server VM JVM version : 1.8.0_212-b04 JVM info : mixed mode OS name : Windows 10 OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:246) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:25) ... 70 common frames omitted Caused by: java.lang.IllegalStateException: Error during attachment using: net.bytebuddy.agent.ByteBuddyAgent$AttachmentProvider$Compound@49df0145 at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:613) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:586) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:538) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:515) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:117) ... 71 common frames omitted Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at net.bytebuddy.agent.Attacher.install(Attacher.java:106) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:608) ... 75 common frames omitted Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:203) ... 81 common frames omitted
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ControllerAdvice 적용시에 404 에러의 경우
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강의 내용중에 궁금한게 있어서 질문드립니다. @ControllerAdvice 적용시에 다른 Exception은 잘 적용되는데 URL을 잘 못 입력해서 발생하는 404(NoHandlerFoundException)의 경우에는 처리가 안되어서 구글링을 해서 아래와 같이 적용 처리 하였습니다. 이때 @EnableWebMvc를 넣지 않으면 처리가 안 되는데 @EnableWebMvc가 왜 필요한건지 궁금해서 질문 남깁니다. * 저의 가설은 - 스프링부트가 부팅될때 DispatherServlet이 필요한 설정들을 자동구성하는데 이때 자동구성된 설정에서 수동구성 설정이 추가되면서(=> setThrowExceptionIfNoHandlerFound(true)) 다시 설정이 적용되어야 하고 그때 @EnableWebMvc가 그 역할을 한다. @Configuration@RequiredArgsConstructor@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer { private final AccessInterceptor accessInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(accessInterceptor) .order(1) .addPathPatterns("/**") .excludePathPatterns("/error"); } /** * 적절한 URL을 못 찾으면(Not Found Handler) Exception 으로 던진다. * + EnableWebMvc * @return */ @Bean DispatcherServlet dispatcherServlet() { DispatcherServlet dispatcherServlet = new DispatcherServlet(); dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); return dispatcherServlet; }}