묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Boot를 활용하여 채팅 플랫폼 만들어보기
springdoc이 무슨 설정인가요??
springdoc이 무슨 설정인가요??Swagger를 사용했을 때의 어떤 기본 설정같은건가요??
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
figma 관련 질문
figma ai - first draft 가 기능이 현재 안되던데 다른 ai 툴로 이용할 수 있는게 있을까요??
-
미해결장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
create view
안녕하세요 선생님. Create 구문을 작성했는데 선생님 자료와 달리 0row affected. 라고 나오며 데이터 결과가 없는 걸로 나옵니다. create에 커서를 대면 create is not vaild at this position, expection EOF, ";"라고 나오는데 이것과 관계가 있을까요? 아니면 제가 어떤 구문을 잘못 작성한 것일까요? 확인 부탁드리겠습니다.
-
미해결
[긴급] 수강확인서 발급 요청
수강확인서 발급 요청드리고자 메일을 남기게 되었습니다.인프런팀 휴가, 고객센터 마비로 메일로 요청드리게 되었습니다.수강증이 아닌 진도율, 교육기간 등이 포함된 수강확인서가 필요합니다이름 : 정인호이메일 : dlsgh251@naver.com강의 : AI 에이전트로 구현하는 RAG 시스템(w. LangGraph) 수신 이메일 : dlsgh251@naver.com
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
검색엔진에 대해서...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]검색 엔진이라는 용어를 잘 이해를 못 하겠습니다. 일시적인 리다이렉션 부분에서 "검색 엔진 등에서 URL을 변경하면 안됨"이라는 글이 있는데 구체적 예시를 들어서 이 문장을 설명해 주실 수 있을까요??
-
미해결Next + React Query로 SNS 서비스 만들기
vanilla extract는 UI 기능들이 없는거같은데
예를들어 부트스트랩처럼 모달이나 반응형 디자인 같은거를 편리하게 해주는 기능들이요 그냥 다 직접 만들어야 하나요?같이 쓸수있는게 있나요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
질 좋은 답변을 생성하는 방법이 있을까요?
안녕하세요. 강의 잘 듣고 있습니다. 듣던 차에 궁금한 부분이 있어 질문 남깁니다. (현재 섹션3 강의는 다 들은 상태입니다.)저는 NLP나 RAG 관련해서 전공 공부한 적이 없고 모르는 개념은 강의를 들으면서 그때그때 검색해서 공부하고 있습니다! 저희 질문이 "연봉 5천만원인 직장인의 소득세는?" 인데, 질문을 할 때마다 답변이 다르게 나오는 건 알겠지만1400초과 ~ 5000만원 이하 과세표준으로 계산함1의 과세표준으로 계산했지만 계산 결과가 틀림1의 과세표준으로 계산했고 계산 결과가 맞지만 후에 부가적으로 기본공제, 지방소득세 등 이상한 내용이 들어가서 결과적인 직장인의 소득세가 매우 상이하게 나옴5000초과~ 8800만원 이하 과세표준으로 계산등 여러번 돌려보니까 다양한 결과가 나오더라구요. (LLM이니깐 매번 돌릴 때마다 결과가 다른 건 알고 있습니다!)현재 query 수정 (회사원 -> 거주자), markdown으로 표 수정은 이미 다 한 상태입니다.LLM은 외부 API를 (저는 Upstage로 하고 있습니다) 사용하기 때문에 LLM은 아예 저의 소관이 아니라고 생각하고, 저는 최대한 잘 자르고 유사도 검색을 잘 해서 prompt를 잘 쓰는 것까지 저의 일이라고 생각합니다. 아무튼 이러한 경우에는 제가 양질의 답변을 얻기 위해서는 추가적으로 어떤 걸 해야할까요? ㅠㅠ제가 생각했을 땐초과, 이하의 개념을 프롬포트로 제공한다retriever_docs를 검색할 때 추가적인 정보가 많이 제공되지 않게끔 k를 조절한다. 정도 생각하고 있습니다!
-
미해결
수강기한 연장
안녕하세요, 업무와 육아 병행하다 보니 수업을 다 듣지 못했는데요.좋은 강의 듣고 시험 합격을 위해 수강 기한 연장 부탁드립니다.강의를 끝까지 꼭 듣고 싶습니다.감사합니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
JSON Viewer 확장 프로그램
강의에 나오는 JSON 데이터를 한 눈에 보기 힘드신 분들은 아래 확장 프로그램을 통해 JSON 데이터를 시각적으로 구조화해서 좀 더 보기 좋게 확인하실 수 있습니다. JSON Viewerhttps://chromewebstore.google.com/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh
-
미해결
"최신 딥러닝 기술과 객체인식 " 강의 프레임워크
최근 딥러닝 기술과 객체인식 강의 프레임워크로 파이토치 활용하실까요~?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
index.css 와 App.css에 대해 질문있습니다.
안녕하세요 공부를 하다가 index.css 파일과 App.css 이 두개가 조금 헷갈리더라구요. 예를 들어 App.css도 폰트를 적용하면 전부다 적용이 되고 index.css도 똑같이 되는데 그럼 index.css는 어떤부분일때 작성이 되고 App.css는 어떤부분일 때 작성이 되는것인지 궁금합니다
-
미해결스프링 핵심 원리 - 기본편
테스트 코드 수행 시 메세지 목록 내용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테스트코드를 수행하였을때 Creating shared instance of singleton bean xxx 이런 메세지가 나오지 않습니다. 어떻게해야 이 메세지를 확인할 수 있는지 환경 설정과 같은 설정 내용을 안내해 주실 수 있을까요
-
미해결
main.c 가 나오지 않습니다
main.c가 나오지 않습니다. 어떤게 문제인가요?2024.09.12 일자에 작성된 내용과 동일한 증상인 것 같습니다.강사님께서 "압축을 해제한 폴더에 필요한 파일들이 다 있는 건지 한번 확인 해보실래요?"라는 댓글을 주셔서 위 내용으로 진행하면 해결이 됩니다.하지만 최종 코딩된 전체 소스코드가 포함된 것이 나옵니다.초기 셋팅이 되도록 main.c가 나오게 하는 방법은 무엇인가요~!
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
독립형 프로그램으로 추출 후 오류 발생
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요, 오랜만입니다.저번에도 한번 여쭤본 적이 있는데, 해결 못하고 방치해두고 있다가 다시 시간이 나서 재도전중인 문제입니다. 제가 만든 코드는 pyhwpx를 이용해 페이지를 자동으로 매기는 프로그램입니다.코드 자체는 정상적으로 작동하는 것을 확인했습니다.문제는 제가 이걸 회사 사람들과 공유해서 쓰기 위해 별도의 독립형 프로그램으로 추출할 때 생깁니다.제 목표는 컴퓨터에 파이썬도, pyhwpx도 설치되어 있지 않은 그런 사람들의 컴퓨터에서 실행을 해도 정상 작동하는 것인데요. 그런데 그런 사람의 컴퓨터에서 실행을 하면 아래와 같은 오류가 뜨고오류를 구체적으로 확인해보려 해도 파이썬이 없는 컴퓨터라 확인할 수가 없네요.chatGPT한테 물어보니 다른 사람 컴퓨터에서 pyhwpx가 한글 파일을 찾지 못하는 문제라고 하는데제가 Hwp.exe의 경로를 찾아서 넣어주기까지 했는데도 같은 오류가 발생하네요.뭐가 문제인지 알 수 있을까요?꼭 좀 부탁드립니다 ㅠㅠ. 제가 작성한 코드는 다음과 같습니다.import tkinter as tk from tkinter import filedialog, messagebox from pyhwpx import Hwp import os # 한글 경로 탐색 함수 def find_hwp_path(): # 명시적인 경로 설정 possible_paths = [ r"C:\\Program Files (x86)\\Hnc\\Office 2022\\HOffice120\\Bin\\Hwp.exe", # Office 2022 기본 경로 r"C:\\Program Files\\Hnc\\Office 2020\\Hwp.exe", # Office 2020 r"C:\\Program Files (x86)\\Hancom\\Office 2018\\Hwp.exe", # Office 2018 r"C:\\Program Files (x86)\\HWP\\Bin\\Hwp.exe" # 과거 한글 ] # 경로 확인 for path in possible_paths: if os.path.exists(path): return path # 경로를 찾지 못하면 None 반환 return None # 한글 연동 함수 def set_page_numbers(file_paths, odd_files): try: hwp_path = find_hwp_path() if not hwp_path: messagebox.showerror("오류", "한글 경로를 찾을 수 없습니다.") return # 한글 프로그램 객체 생성 hwp = Hwp(hwp_path) hwp.XHwpWindows.Item(0).Visible = False # 한글 창 숨기기 j = 1 # 페이지 번호 초기값 for file_path in file_paths: hwp.Open(file_path) # 첫 페이지 이동 hwp.HAction.Run("MoveTopLevelBegin") # 홀수 페이지로 시작하지 않는 파일 처리 if file_path in odd_files: hwp.PageNumPos(j) else: if j % 2 == 0: # 기본적으로 홀수 페이지 시작 j += 1 hwp.PageNumPos(j) # 페이지 수 증가 (현재 문서 페이지 수만큼 더함) j += hwp.PageCount hwp.Clear(2) hwp.XHwpWindows.Item(0).Visible = True # 작업 후 한글 창 보이기 hwp.Clear(3) hwp.Quit() messagebox.showinfo("완료", "페이지 번호 작업이 완료되었습니다!") except Exception as e: import traceback error_message = traceback.format_exc() messagebox.showerror("오류", f"작업 중 오류가 발생했습니다:\n{error_message}") # 파일 이동 함수 def move_up(listbox): selected_items = listbox.curselection() if not selected_items: return for index in selected_items: if index > 0: # 첫 번째 항목이 아닌 경우에만 이동 가능 value = listbox.get(index) listbox.delete(index) listbox.insert(index - 1, value) listbox.selection_set(index - 1) def move_down(listbox): selected_items = listbox.curselection() if not selected_items: return for index in reversed(selected_items): if index < listbox.size() - 1: # 마지막 항목이 아닌 경우에만 이동 가능 value = listbox.get(index) listbox.delete(index) listbox.insert(index + 1, value) listbox.selection_set(index + 1) # 파일 추가 및 제거 함수 def add_file_to_list(listbox): files = filedialog.askopenfilenames( title="파일을 선택하세요", filetypes=[("HWP/HWPX 파일", "*.hwp;*.hwpx"), ("HWP 파일", "*.hwp"), ("HWPX 파일", "*.hwpx"), ("모든 파일", "*.*")] ) for file in files: listbox.insert(tk.END, file) def remove_selected_file(listbox): selected_items = listbox.curselection() for item in reversed(selected_items): listbox.delete(item) # 실행 함수 def execute_task(): all_files = list(listbox_all_files.get(0, tk.END)) odd_files = list(listbox_odd_files.get(0, tk.END)) if not all_files: messagebox.showerror("오류", "전체 파일 목록이 비어 있습니다.") return set_page_numbers(all_files, odd_files) # GUI 설정 root = tk.Tk() root.title("페이지 번호 매기기 프로그램") root.geometry("800x650") root.resizable(False, False) # 전체 파일 프레임 frame_all_files = tk.Frame(root, relief="solid", bd=1) frame_all_files.place(x=10, y=10, width=600, height=250) label_all_files = tk.Label(frame_all_files, text="전체 파일", font=("맑은 고딕", 12, "bold")) label_all_files.pack(anchor="nw", padx=5, pady=5) listbox_all_files = tk.Listbox(frame_all_files, selectmode="extended") listbox_all_files.pack(fill="both", expand=True, padx=5, pady=5) btn_frame_all_files = tk.Frame(root) btn_frame_all_files.place(x=620, y=10, width=160, height=250) btn_add_file = tk.Button(btn_frame_all_files, text="파일 추가", command=lambda: add_file_to_list(listbox_all_files)) btn_add_file.pack(fill="x", padx=5, pady=5) btn_remove_file = tk.Button(btn_frame_all_files, text="선택파일 삭제", command=lambda: remove_selected_file(listbox_all_files)) btn_remove_file.pack(fill="x", padx=5, pady=5) btn_move_up = tk.Button(btn_frame_all_files, text="위로 이동", command=lambda: move_up(listbox_all_files)) btn_move_up.pack(fill="x", padx=5, pady=5) btn_move_down = tk.Button(btn_frame_all_files, text="아래로 이동", command=lambda: move_down(listbox_all_files)) btn_move_down.pack(fill="x", padx=5, pady=5) # 홀수 페이지로 시작하지 않는 파일 프레임 frame_odd_files = tk.Frame(root, relief="solid", bd=1) frame_odd_files.place(x=10, y=280, width=600, height=250) label_odd_files = tk.Label(frame_odd_files, text="홀수 페이지로 시작하지 않는 파일", font=("맑은 고딕", 12, "bold")) label_odd_files.pack(anchor="nw", padx=5, pady=5) listbox_odd_files = tk.Listbox(frame_odd_files, selectmode="extended") listbox_odd_files.pack(fill="both", expand=True, padx=5, pady=5) btn_frame_odd_files = tk.Frame(root) btn_frame_odd_files.place(x=620, y=280, width=160, height=250) btn_add_odd_file = tk.Button(btn_frame_odd_files, text="파일 추가", command=lambda: add_file_to_list(listbox_odd_files)) btn_add_odd_file.pack(fill="x", padx=5, pady=5) btn_remove_odd_file = tk.Button(btn_frame_odd_files, text="선택파일 삭제", command=lambda: remove_selected_file(listbox_odd_files)) btn_remove_odd_file.pack(fill="x", padx=5, pady=5) btn_move_up_odd = tk.Button(btn_frame_odd_files, text="위로 이동", command=lambda: move_up(listbox_odd_files)) btn_move_up_odd.pack(fill="x", padx=5, pady=5) btn_move_down_odd = tk.Button(btn_frame_odd_files, text="아래로 이동", command=lambda: move_down(listbox_odd_files)) btn_move_down_odd.pack(fill="x", padx=5, pady=5) # 실행 버튼 btn_execute = tk.Button(root, text="실행", command=execute_task, font=("맑은 고딕", 14, "bold"), bg="#00484D", fg="white") btn_execute.place(x=10, y=550, width=770, height=40) root.mainloop() 그리고 제가 추출하는데 사용한 것은pyinstaller --onefile --noconsole --icon="C:\\Users\\user\\Desktop\\@공유\\JINA\\0__exe\\페이지 자동 맞춤 프로그램\\icon.ico" --hidden-import=pyhwpx --hidden-import=subprocess page_numbering_v2.py이거에요. 뭐가 문제일까요? 따뜻한 연말 되시기 바라며,감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
백엔드도 '완벽한' 시리즈 코스가 나오나요?
백엔드도 나온다면 완벽한 시리즈로 듣고 싶어서요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
EC2에서 쿠버네티스로 백엔드(Spring Boot) 서버 띄우기
EC2에서 쿠버네티스로 백엔드(Spring Boot) 서버 띄우기 강의에서kubectl get deployment를 실행하면 ImagePullBackOff 가뜨고 이미지를 가져오지 못하는 데 외 그럴까요 .이틀 밥새도 해결 못해서 문의 들여 봅니다.
-
해결됨주말에 끝내는 ITQ 한글 자격증
수업재생안됌
수업재생이 안되고 관리자에게 문의라고 뜨요
-
해결됨SwiftUI의 Property Wrapper(@State, @Binding...)
@Environment 질문 있습니다.
Environment 값 가져올때 역슬래시 하고 점으로 접금 하고 있는데 역슬래시는 어떤 의미를 갖고 있나요?
-
해결됨세상에서 제일 쉬운 러스트 프로그래밍
러스트로 파이썬 패키지 만들기 실습을 해보면 에러가 발생합니다
pipenv shell 환경에서 maturin develop 을 하면 아래와 같이 오류가 뜹니다(pyo3-9vp6XEz5) D:\D\Work\study\Rust\inflean\easy-rust\pyo3>maturin develop🔗 Found pyo3 bindings🐍 Found CPython 3.12 at C:\Users\INNO-A-1328\.virtualenvs\pyo3-9vp6XEz5\Scripts\python.exe📡 Using build options features from pyproject.tomlCompiling once_cell v1.20.2Compiling unindent v0.2.3Compiling cfg-if v1.0.0Compiling libc v0.2.169Compiling pyo3-build-config v0.23.3Compiling memoffset v0.9.1Compiling pyo3-ffi v0.23.3Compiling pyo3-macros-backend v0.23.3Compiling pyo3 v0.23.3Compiling pyo3-macros v0.23.3Compiling fibonacci v0.1.0 (D:\D\Work\study\Rust\inflean\easy-rust\pyo3)error[E0599]: no method named add_function found for reference &pyo3::types::PyModule in the current scope--> src\lib.rs:17:7|17 | m.add_function(wrap_pyfunction!(run, m)?)?;| ^^^^^^^^^^^^ method not found in &PyModuleerror[E0277]: the trait bound &pyo3::types::PyModule: WrapPyFunctionArg<'_, _> is not satisfied--> src\lib.rs:17:42|17 | m.add_function(wrap_pyfunction!(run, m)?)?;| ----------------------^-| | || | the trait WrapPyFunctionArg<'_, _> is not implemented for &pyo3::types::PyModule| required by a bound introduced by this call|= help: the following other types implement trait WrapPyFunctionArg<'py, T>:&pyo3::Borrowed<'_, 'py, pyo3::types::PyModule>&pyo3::Bound<'py, pyo3::types::PyModule>pyo3::Borrowed<'_, 'py, pyo3::types::PyModule>pyo3::Bound<'py, pyo3::types::PyModule>pyo3::Python<'py>error[E0277]: the trait bound &pyo3::types::PyModule: From<BoundRef<'_, '_, pyo3::types::PyModule>> is not satisfied--> src\lib.rs:15:1|15 | #[pymodule]| ^^^^^^^^^^^ the trait From<BoundRef<'_, '_, pyo3::types::PyModule>> is not implemented for &pyo3::types::PyModule, which is required by BoundRef<'_, '_, pyo3::types::PyModule>: Into<_>|= note: required for BoundRef<'_, '_, pyo3::types::PyModule> to implement Into<&pyo3::types::PyModule>= note: this error originates in the attribute macro pymodule (in Nightly builds, run with -Z macro-backtrace for more info)Some errors have detailed explanations: E0277, E0599.For more information about an error, try rustc --explain E0277.error: could not compile fibonacci (lib) due to 3 previous errors💥 maturin failed #[pymodule] 이하 부분을 주석처리하면 아래 에러는 해결되나 python main.py 실행하면 fibonacci 를 찾을 수 없다는 에러가 발생합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
오류발생 NoClassDefFoundError: jakarta/servlet/annotation/WebServlet
[질문 내용]아래와 같은 오류가 발생합니다. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-12-26T08:17:35.759+09:00 ERROR 30104 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1239) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:288) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609) ~[spring-context-6.2.0.jar:6.2.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.0.jar:3.4.0] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:60) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.4.0.jar:3.4.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1273) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:981) ~[spring-beans-6.2.0.jar:6.2.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1233) ~[spring-beans-6.2.0.jar:6.2.0] ... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na] ... 22 common frames omittedProcess finished with exit code 1