묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨두고두고 써먹는 유니티 VR
자료 다운 묹;
미리 만들어주신 여러 패키지 포함한 자료를 다운받으려고 하는데, 어떤 파일로 열어야 할까요? 다운은되는데 열리지가 않아서 에셋에 추가를 못했습니다.
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
SELECT * FROM emp;
dbeaver 처음 테스트해볼때 SELECT * FROM emp; 해도 전 불려오는 데이터가 없습니다.. 당연하죠 테이블을 넣은적이 없으니..ㅠㅠ 테이블은 SQL 기초때껄 사용하면 되나요?? 이런것에 대한 설명 보완이 필요합니다.SQL Error [942] [42000]: ORA-00942: table or view does not existError position: line: 1 pos: 14
-
미해결[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
톡방이나 스터디가 있나요?
전산직 공기업 준비하는 분들과 같이 공부하고 싶습니다. 현재 진행 중인 모임이 있나요?없으시면 진행하실 계획은 있으신가요?
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
글자색상이 선생님처럼 안나옵니다
저는 그냥 하얀색으로만 나오네요 모든글자가선생님처럼 프린트가 노랑색으로안나와요?
-
미해결
vagrant up실행시 처음부터 에러 ㅠㅠ
vagrant up으로 Vagrantfile 다운받아 SHELL부분 모두 주석처리하고 우선 vm만 띄울려고 하는데에러나네요.. 해당 로그파일 내용은 다음과 같습니다. dr6=0000000000000000 dr7=0000000000000000 vcr=0000000000000000 dcr=0000000000000000 lbt=0000000000000000 lbf=0000000000000000 lxt=0000000000000000 lxf=000000000000000072a4.6420: supR3HardenedWinSetupChildInit: Start child.72a4.6420: supR3HardNtChildWaitFor: Found expected request 0 (PurifyChildAndCloseHandles) after 1 ms.72a4.6420: supR3HardNtChildPurify: Startup delay kludge #1/0: 261 ms, 17 sleeps72a4.6420: supHardNtVpScanVirtualMemory: enmKind=CHILD_PURIFICATION72a4.6420: *0000000000000000-000000007ffdffff 0x0001/0x0000 0x000000072a4.6420: *000000007ffe0000-000000007ffe0fff 0x0002/0x0002 0x002000072a4.6420: 000000007ffe1000-000000007ffebfff 0x0001/0x0000 0x000000072a4.6420: *000000007ffec000-000000007ffecfff 0x0002/0x0002 0x002000072a4.6420: 000000007ffed000-00000070bebfffff 0x0001/0x0000 0x000000072a4.6420: *00000070bec00000-00000070bed20fff 0x0000/0x0004 0x002000072a4.6420: 00000070bed21000-00000070bed23fff 0x0004/0x0004 0x002000072a4.6420: 00000070bed24000-00000070bedfffff 0x0000/0x0004 0x002000072a4.6420: *00000070bee00000-00000070beefafff 0x0000/0x0004 0x002000072a4.6420: 00000070beefb000-00000070beefdfff 0x0104/0x0004 0x002000072a4.6420: 00000070beefe000-00000070beefffff 0x0004/0x0004 0x002000072a4.6420: 00000070bef00000-000002558c67ffff 0x0001/0x0000 0x000000072a4.6420: *000002558c680000-000002558c69ffff 0x0004/0x0004 0x002000072a4.6420: *000002558c6a0000-000002558c6bffff 0x0002/0x0002 0x004000072a4.6420: *000002558c6c0000-000002558c6c3fff 0x0002/0x0002 0x004000072a4.6420: 000002558c6c4000-000002558c6cffff 0x0001/0x0000 0x000000072a4.6420: *000002558c6d0000-000002558c6d0fff 0x0002/0x0002 0x004000072a4.6420: 000002558c6d1000-000002558c6dffff 0x0001/0x0000 0x000000072a4.6420: *000002558c6e0000-000002558c6e1fff 0x0004/0x0004 0x002000072a4.6420: 000002558c6e2000-00007df51ffcffff 0x0001/0x0000 0x000000072a4.6420: *00007df51ffd0000-00007df5215aafff 0x0000/0x0001 0x004000072a4.6420: 00007df5215ab000-00007df521955fff 0x0001/0x0001 0x004000072a4.6420: 00007df521956000-00007df521d91fff 0x0000/0x0001 0x004000072a4.6420: 00007df521d92000-00007df521d92fff 0x0001/0x0001 0x004000072a4.6420: 00007df521d93000-00007ff4ffb6cfff 0x0000/0x0001 0x004000072a4.6420: 00007ff4ffb6d000-00007ff4ffb71fff 0x0002/0x0001 0x004000072a4.6420: 00007ff4ffb72000-00007ff50e594fff 0x0000/0x0001 0x004000072a4.6420: 00007ff50e595000-00007ff511cfffff 0x0001/0x0001 0x004000072a4.6420: 00007ff511d00000-00007ff511d0afff 0x0002/0x0001 0x004000072a4.6420: 00007ff511d0b000-00007ff51ffcffff 0x0000/0x0001 0x004000072a4.6420: 00007ff51ffd0000-00007ff52fcbffff 0x0001/0x0000 0x000000072a4.6420: *00007ff52fcc0000-00007ff52fcc0fff 0x0002/0x0002 0x004000072a4.6420: 00007ff52fcc1000-00007ff7ee74ffff 0x0001/0x0000 0x000000072a4.6420: *00007ff7ee750000-00007ff7ee750fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee751000-00007ff7ee7bafff 0x0020/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee7bb000-00007ff7ee7bbfff 0x0080/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee7bc000-00007ff7ee80efff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee80f000-00007ff7ee80ffff 0x0004/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee810000-00007ff7ee810fff 0x0008/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee811000-00007ff7ee815fff 0x0004/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee816000-00007ff7ee81bfff 0x0008/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee81c000-00007ff7ee863fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe72a4.6420: 00007ff7ee864000-00007ffc74c1ffff 0x0001/0x0000 0x000000072a4.6420: *00007ffc74c20000-00007ffc74c20fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74c21000-00007ffc74d90fff 0x0020/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74d91000-00007ffc74de9fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74dea000-00007ffc74df2fff 0x0008/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74df3000-00007ffc74e03fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e04000-00007ffc74e06fff 0x0008/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e07000-00007ffc74e07fff 0x0004/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e08000-00007ffc74e82fff 0x0002/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e83000-00007ffc74e83fff 0x0020/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e84000-00007ffc74e85fff 0x0000/0x0080 0x1000000 \Device\HarddiskVolume3\Windows\System32\ntdll.dll72a4.6420: 00007ffc74e86000-00007ffffffeffff 0x0001/0x0000 0x000000072a4.6420: VBoxHeadless.exe: Differences in section #8 (.rsrc) between file and memory:72a4.6420: 00007ff7ee8625f8 / 0x01125f8: 00 != 5072a4.6420: 00007ff7ee8625f9 / 0x01125f9: 00 != 4172a4.6420: 00007ff7ee8625fa / 0x01125fa: 00 != 4472a4.6420: 00007ff7ee8625fb / 0x01125fb: 00 != 4472a4.6420: 00007ff7ee8625fc / 0x01125fc: 00 != 4972a4.6420: 00007ff7ee8625fd / 0x01125fd: 00 != 4e72a4.6420: 00007ff7ee8625fe / 0x01125fe: 00 != 4772a4.6420: 00007ff7ee8625ff / 0x01125ff: 00 != 5872a4.6420: Restored 0xa08 bytes of original file content at 00007ff7ee8625f872a4.6420: Error (rc=-5607):72a4.6420: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)72a4.6420: Error (rc=-5607):72a4.6420: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)72a4.6420: Error -5607 in supR3HardNtChildPurify! (enmWhat=5)72a4.6420: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]안녕하세요. 영한쌤께서 실무에서는 컨트롤 리소스를 사용하는 경우가 많다고 하셨는데, html form 형태 전송시 post나 get밖에 처리가 안되더라도 이벤트를 prevent한 다음 ajax를 통해서 patch, put, delete하면 되지 않나요? 이벤트 핸들러를 만드는 등의 추가 코드 작업을 해줘야하는 번거로움 때문에 컨트롤 리소스를 사용하는것인지 궁금합니다. 아니면 다른 이유가 있는걸까요?
-
해결됨자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
instance.getMyField()의 값이 왜 다른가요?
AtomicIntegerFieldUpdater 기본 구현 페이지의 코드에서마지막 System.out.println() 부분을 보면은 new value라고 하고 instance.getMyFiled()를 하고Updated value에도 instance.getMyFiled()를 합니다그런데 옆에 주석에 new value는 42, updated value는 43으로 나오는데 실제로 실행해보니 저는 둘 다 43으로 나오더라구요 표기 오류가 맞는거겠죠?
-
미해결RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
faiss-gpu 설치법 질문입니다.
pip install faiss-gpu 커맨드 입력하면 아래와 같은 오류가 뜹니다. (langchain) <username>:~/projects/langchain$ pip install faiss-gpuERROR: Could not find a version that satisfies the requirement faiss-gpu (from versions: none)ERROR: No matching distribution found for faiss-gpu
-
미해결모두를 위한 대규모 언어 모델 LLM Part 3 - 구글 제미나이(Google Gemini) API, OpenAI API와 젬마(Gemma)로 AI 어플리케이션 만들기
에러 발생
이러한 에러가 발생합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
개발자도구에서 Ctrl+F를 사용하는 경우
예를 들어 '.title'을 붙여 넣기 하여 20개가 나오는 경우선생님 강의에서는 위아래로 움직이는 경우 개발자도구에서만 아니라 실제 페이지에서 title가 가리키는 부분도 함께 표시가 됩니다. 그런데 내가 하는 경우는 그렇지 않네요. 어떤 차이가 있는 것인지 알고 싶습니다.
-
해결됨실리콘밸리 엔지니어와 함께하는 Docker
저만 안 되는 것인가요? ㅠㅠ
동영상 강의에서 하신대로 my-first-docker 실행해서 docker run -p 5001:5000 my-first-docker를 실행하였습니다. 실행 되었다는 log를 보고, 영상에서와 같이 0.0.0.0:5001로 연결시도를 했는데, Address Invalid라고 나오네요..127.0.0.1:5001로 연결해 보니, "Welcome to the Docker Lecture App Thank you"가 나오네요..강의에서는 0.0.0.0으로 입력 되었는데.. 왜 전 안되는 걸까요?
-
미해결C# TCP/IP 소켓 프로그래밍
EAP강의에서 어떻게 여러개 클라이언트를 띄우는지 궁금합니다
제목과 내용이 같습니다.코드를 따라하며 진행중인데, 시연해주실때마다 클라이언트를 여러개 키는 모습을 보여주셨는데, 어떻게 하셨는지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안드로이드 애뮬레이터 실행 안됨.
안녕하세요 코팩님. 제가 프로젝트를 하나 만들고 아무것도 수정 안하고 만들어진 원래 기본 상태 그대로 안드로이드 애뮬레이터를 실행하는데 FAILURE: Build completed with 2 failures.1: Task failed with an exception.-----------* Where:Settings file '/Users/gang-wonbin/Documents/code_factory/example/chool-check6/android/settings.gradle.kts' line: 19* What went wrong:Error resolving plugin [id: 'dev.flutter.flutter-plugin-loader', version: '1.0.0']> A problem occurred configuring project ':gradle'. > Could not read workspace metadata from /Users/gang-wonbin/.gradle/caches/8.10.2/kotlin-dsl/accessors/51cb1b7e6548e94a53d11ed05bbd33cc/metadata.bin* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.==============================================================================2: Task failed with an exception.-----------* What went wrong:Failed to query the value of property 'buildFlowServiceProperty'.> Could not isolate value org.jetbrains.kotlin.gradle.plugin.statistics.BuildFlowService$Parameters_Decorated@4a1da2e7 of type BuildFlowService.Parameters > A problem occurred configuring project ':gradle'. > Could not read workspace metadata from /Users/gang-wonbin/.gradle/caches/8.10.2/kotlin-dsl/accessors/51cb1b7e6548e94a53d11ed05bbd33cc/metadata.bin* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.==============================================================================BUILD FAILED in 888msError: Gradle task assembleDebug failed with exit code 1에러가 뜹니다.ㅠ 구글링해보니 gradle 관련 문제인거 같은데 아무리 해도 해결이 안됩니다ㅜ 손도 데지 않은 기본 프로젝트인데도 왜 이럴까요ㅜㅜ 참고로 저는 m2칩 맥북을 사용 중이고, ios 시뮬레이터는 실행이 됩니다! 도와주세요ㅠ
-
해결됨리눅스 시스템 프로그래밍 - 이론과 실습
inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...
제가 아래의 코드로 생성 혹은 삭제된 파일의 이름에 대한 길이를 출력해보도록 했습니다. 그런데, 파일 이름이 달라도 해당 값(event->len)이 동일하게 나오는데, 제가 코드를 잘못 짠 건가요? #include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/inotify.h> int main(){ int fd; int wd1, wd2; char buf[1024]; struct inotify_event *event; // Create inotify object fd = inotify_init(); // Add watch wd1 = inotify_add_watch(fd, ".", IN_CREATE | IN_DELETE); wd2 = inotify_add_watch(fd, "..", IN_CREATE | IN_DELETE); while(1) { printf("I'm waiting for something to happen...\n"); int ret = read(fd, buf, sizeof(buf)); event = (struct inotify_event *)&buf[0]; while (ret > 0) { if (event->mask & IN_CREATE) { printf("File[%s](len: %d) is created!\n", event->name, event->len); } else if (event->mask & IN_DELETE) { printf("File[%s](len: %d) is deleted!\n", event->name, event->len); } int realSize = sizeof(struct inotify_event) + event->len; ret -= realSize; event = (struct inotify_event )((char )event + realSize); } } // close close(wd1); close(wd2); close(fd); return 0;}
-
미해결[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
node_modules에서 export 오류
수업과 같이 npm에 배포하고 제가 만든 ui를 다운받아 import하는 과정에서해당 이미지와 같이 node_modules에서 export가 나타납니다.1) lib파일과 index.ts파일을 myapp 폴더로 직접 import했을때는 정상적으로 작동하였습니다.2) 해당 수업에서 codecamp-ui가 npm 사이트에 아직 배포중이기에 그것도 시험삼아 다운받아서 import하였지만 똑같은 오류가 나타났습니다.3) node_modules 파일 삭제하고 다시 yarn install로 다운받았지만 같은 오류가 나타났습니다.그 전 수업까지는 동일하게 오류없이 진행했습니다. 무엇이 문제일까요?
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
케이블 하나 없어요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.고추건조기랑 st link 관련 제품을 구입했는데 실험 과정 중 st link랑 usb랑 연결하는 케이블 이 하나가 없습니다. 왜 없는지랑 어떻게 구입하는지 설명해주시면 감사하겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문드립니다.
안녕하세요, 큰돌님이 강의에서 설명해주신 코드에서 한가지 사소한 질문이 생겨 글 남기게 됐습니다.같은 글자가 연속으로 나오면 안되는 조건을 위해서 큰돌님께서 prev를 -1로 초기화 하기 i가 0일 때 제외하고 prev와 현재 idx를 비교해서 같으면 flag = 1 이 되도록 하셨는데요.처음에 코드를 봤을 때 prev를 s[0]이 아니라 일부러 -1로 두신 이유를 저는 i >= 1 조건을 생략하기 위해서 혹시라도 i가 0 일때의 idx와 prev가 같은 경우가 생기지 않도록 해서 i = 0일 때 조건을 확인해도 어차피 prev == idx가 거짓이 되도록 한걸로 이해했거든요.(저도 비슷하게 prev를 'a'-1로 초기화하고 for문에서 i=0을 skip하지 않고 다 확인하도록 했습니다. http://boj.kr/8e848001c5b443cd85c5a78d65af69c7)하지만 강의에서 말씀하신 건 첫번째 i=0일때 비교를 피하기 위해서 i>=1을 넣었다고 하셔서 prev를 s의 첫번째 원소가 아닌 -1을 초기화 하는 부분과 i = 0 일 때 prev와 idx를 비교하는 걸 넘어가는 부분이 상충되는 부분이 있어 질문드렸습니다.
-
해결됨TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
질문 있습니다.
안녕하세요 싱글턴 강의 내용 중 매개변수로 빼거나 클래스라면 this를 사용하면 된다. 면 된다 하셨는데 this를 아래 코드처럼 운용 하는건 말하는 걸까요?? class Singleton<T> { private static instance: Singleton<any>; protected data: T; protected constructor(data: T) { this.data = data; } public static getInstance<T>(data: T): Singleton<T> { if (!this.instance) { this.instance = new this(data); } return this.instance; } public getData(): T { return this.data; } } export default Singleton; 감사합니다!!
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
Item_Holder 대해 질문 드립니다.
ItemDB 강의를 듣고 있는 중입니다. Data_Mng에 item_holder를 Dictionary로 만드셧는데 초기화 하는 부분이 어디인지 모르겠습니다. Character_Holder는 데이터 초기화 하는 부분 Holder s_holder = new Holder();if(Character_Holder.ContainsKey(data.m_Character_Name)){s_holder=Character_Holder[data.m_Character_Name];}else{ Character_Holder.Add(data.m_Character_Name, s_holder);}이 존재 해서 데이터 잘나오고 있는데요 item_holder 는 어디서 초기화를 진행하는지 모르겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링부트의 톰캣과 스프링 컨테이너 구조에 대한 질문입니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 핵심 원리를 듣고, 이제 스프링 MVC 강의에서 서블릿 컨테이너에 대한 강의를 들었는데요.제가 지금까지의 내용을 종합했을 때 이해한 게 맞는지 궁금해서 질문 올립니다~많이 미흡하지만ㅠㅠ 위와같이 그림을 그려봤는데요.스프링 프레임워크 내부에 내장 톰캣 서버인 WAS와 스프링 컨테이너(IoC 컨테이너) 이렇게 크게 2가지로 구성되어있다고 이해했는데 맞을까요? 그리고 위의 그림처럼 WAS인 내장 톰캣 서버 내부에 서블릿 컨테이너가 있는게 맞을까요?그래서, 하나의 Request가 왔을 때 > WAS인 톰캣에서 Request와 Response 객체를 생성하고 > 그 객체들을 서블릿 컨테이너에 있는 서블릿 객체에 전달하고 > 스프링 컨테이너에 빈으로 등록된 Controller 객체에 넘겨서 비즈니스 로직을 진행하고 > 리턴을 다시 서블릿 컨테이너로 넘겨서 HTTP 응답까지 내보낸다고 이해하면 될까요? 그리고, 최초 로딩 시점에 서블릿 객체가 생성되는 기준이 /hello 이렇게 path 별로 생성이 되는걸까요? 그렇다면 만약 HelloController에 3개의 다른 path 메서드가 있다면 > 3개의 서블릿 객체가 생성되나요?