묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
Annotation 순서
Annotation의 순서에 따라 실행 결과가 바뀌진 않겠지만 실무에서 관행으로 쓰이는 순서가 있을까요?중요도에 따라 혹은 포괄적인 것을 상위 배치하는 등 선호되는 배치 순서가 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.gradlew build 라고 안치고gradlew만 입력했을때 BUILD SUCCESSFUL 이라고 나왔습니다이 문구 뜨고 gradlew build 입력하면위와 같은 에러가 뜹니다..이 에러가 뜨긴 했는데 디렉토리는 생성이 되었고 java -jar () 하면위처럼 잘 빌드된것처럼 spring이 나옵니다..그냥 계속 실습 진행해도 괜찮은걸까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
namespace 칸이 없습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.가장 egov 4.2버전으로 처음부터 다시 하고있는데namespace 항목이 없습니다.어노테이션에러 해결어떻게 해야할까요..현재 pom.xml에 아래 디펜던시 추가해봣는데도 안됩니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)계속 빌드 오류가 나서 아래처럼 뜹니다.. 프로젝트를 지웠다가 다시 생성해봐도 똑같이 뜨는데 어떻게 해결할수있을까요ㅜStarting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details> Task :testHelloSpringApplicationTests > contextLoads() FAILEDjava.lang.IllegalStateException at PluginLoader.java:85Caused by: java.lang.IllegalStateException at DefaultMockitoPlugins.java:105Caused by: java.lang.reflect.InvocationTargetException at Constructor.java:499Caused by: org.mockito.exceptions.base.MockitoInitializationException at InlineDelegateByteBuddyMockMaker.java:260Caused by: java.lang.IllegalArgumentException at InstrumentationImpl.java:-21 test completed, 1 failed> Task :test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/Users/%EB%AC%B8%EC%9D%B4%ED%98%84/Desktop/study/hello-spring/build/reports/tests/test/index.html* Try:> Run with --scan to get full insights.BUILD FAILED in 55s7 actionable tasks: 7 executed//////////////////////////참고로 자바 버전은 17입니다인텔리제이 내에서 자바 버전도 17로 동일하고gradle 설정도 인텔리제이로 다 맞춰놨습니다
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
프로젝트 의존성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle 에서 implementation 'org.springframework.boot:spring-boot-starter-web' 를 넣고 실행 했을 때는 오류가 나고 지우고 실행하니깐 정상적으로 작동하는데 그 이유가 뭔가요?
-
미해결스프링 부트 - 핵심 원리와 활용
exploded 배포시 경로
인텔리제이에서 exploded로 war를 배포하면톰캣의 webapps에 배포가 되는게 아니라 , 프로젝트의 target 이라는 폴더를 톰캣이 바라보는거 같은데톰캣 설정파일 어디에 target이 명시되는걸까요?ㅠㅠ
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
postman에서 rest login role 테스트 하는 방법?
rest api 비동기 로그인을 프로젝트를 따라하며 공부하고 있는데요, postman에서 로그인된 회원에 대한 api를 테스트하고 싶은데 로그인 정보?를 어디에 넣어 줘야 테스트가 가능할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 jdbc h2Database와 연동
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Wrong user name or password에러가 뜨는데 어떻게 해야되나요?org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]이 오류가 떠요
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
런타임 예외를 사용해야 하는 이유에 대해
체크예외보다는 런타임 예외를 사용해야 하는 이유에 대해 다음과 같이 정리해봤는데, 잘 이해하고 있는 게 맞을까요?체크예외든, 언체크예외든 대부분의 예외는 컨트롤러나 서비스 계층에서 복구가 불가능한 예외이다.하지만 이 중에서 언체크예외를 사용한다면, 컨트롤러와 서비스 계층에서 디테일한 예외까지 의존하고 알 필요가 없어진다. 이러한 한 가지의 이유로 언체크예외를 사용하는 것이 더 좋다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
로그 관련 질문
예외와 관련된 로그를 찍는데 로그 레벨을 log.error가 아닌 info로 두는 이유가 있나요?System.out.print()보다 log를 남기는 방법이 더 선호되는 이유가 있나요?에러라는 표현과 예외라는 표현은 같다고 봐도 무방할까요?감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2Database 로컬 호스트에서 거부
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이렇게 해서 접속을 했는데거부합니다.홈화면에 test.mv.db까지 완성한 단계입니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빌드하고 실행하기 부분에서 명령프롬프터를 사용하신것 같은데 윈도우 파워쉘로 사용해도 되나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원목록 번호
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원을 등록하고 조회하면 1 ~2 ~ 이렇게 번호가 매겨지는 게 어떻게 되는 건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메세지 설정 파일 라이브러리 아이디어 질문
메세지 국제화 수업을 들으며 생각한 것이 있습니다. 만약 messages_en.properties를 작성한다면 간편한 설정으로 하여금 기준 메세지 설정 파일을 기준으로 messages_ko 등 messages_XxXx.properties를 자동으로 만들어주는 라이브러리같은 것이 있을까요? 직접 구현하려면 매우 어려운 작업일까요?지금 생각으로는 구글 번역기 API 정도를 활용해서 (번역이 완벽히 정확하진 않겠지만) 내가 원하는 messages_XxXx.properties를 자동 생성해주는 라이브러리를 만들기를 시도해볼까 생각입니다. 이미 있는 기능일까봐요. 검색도 해보고 chatGPT에도 물어봤는데 있는 것 같지는 않더라구요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문 콘솔 warn 표시
MVC와 템플릿 엔진 강의 06:51실행하여도 INFO문만 찍히고 강의와 달리 WARN은 발생하지 않습니다. 콘솔에 찍힌 값은 다음과 같습니다.2024-07-30T10:30:55.095+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : Starting HelloSpringApplication using Java 17.0.11 with PID 33580 (C:\Users\user\IdeaProjects\hello-spring\build\classes\java\main started by user in C:\Users\user\IdeaProjects\hello-spring)2024-07-30T10:30:55.115+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default"2024-07-30T10:30:57.606+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)2024-07-30T10:30:57.631+09:00 INFO 33580 --- [hello-spring] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2024-07-30T10:30:57.631+09:00 INFO 33580 --- [hello-spring] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.26]2024-07-30T10:30:57.775+09:00 INFO 33580 --- [hello-spring] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2024-07-30T10:30:57.776+09:00 INFO 33580 --- [hello-spring] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2539 ms2024-07-30T10:30:58.049+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]2024-07-30T10:30:58.643+09:00 INFO 33580 --- [hello-spring] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/'2024-07-30T10:30:58.663+09:00 INFO 33580 --- [hello-spring] [ main] h.hello_spring.HelloSpringApplication : Started HelloSpringApplication in 4.99 seconds (process running for 7.892)2024-07-30T10:31:29.971+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'2024-07-30T10:31:29.972+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2024-07-30T10:31:29.975+09:00 INFO 33580 --- [hello-spring] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms제 코드는 다음과 같습니다.package hello.hello_spring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hell-mvc") public String hellmvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } }
-
미해결견고한 결제 시스템 구축
'더 견고해지기 위해 남은 작업' 수업자료
안녕하세요.다운로드한 수업자료에 '더 견고해지기 위해 남은 작업' 과 관련된 pdf 파일이 존재하지 않습니다 ㅠㅠ다른 질문글을 봤을땐 notion URL 를 제공했다고 하는데, 혹시 notion URL를 안내해주는 챕터가 어디일까요?더이상 Notion URL을 제공하지 않는다면 강의자료에 첨부해주실 수 있을까요?강의 잘 들었습니다. 감사합니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
H2 v2.2.4와 실행모드 관련 질문
안녕하세요현재 강의 한참 초반부라고 할 수 있는 "데이터베이스 연결"부분을 보고 있는데요,강사님께서 사용하는 H2 모드가 임베디드 모드인가요 서버모드인가요?강의 1:09초 즈음 노출되는 화면을 보면 모드는 임베디드 모드이고, JDBC URL은 jdbc:h2:tcp://localhost/~/test 로 보이는데요저는 h2 버전 2.2.4를 이용 중인데 서버 모드일 때는 JDBC URL이 jdbc:h2:tcp://localhost/~/test 형태이지만, 임베디드 모드일 때는 jdbc:h2:~/test 입니다.DBConnectionUtilTest 가 자꾸 실패하여, JDBC URL을 임베디드 모드일 때의 url로 변경하고 서버를 내리면(= ./bin/h2 실행 종료)하면 테스트 코드가 성공하는데요,서버 모드의 url로 변경하면 테스트 코드 실패는 둘째치고 웹 콘솔에서 h2를 실행하려 할 때 아래와 같이 에러가 발생합니다.찾아보니 h2의 임베디드 모드 자체가, 여러 클라이언트가 접근 불가능한 모드이고 하나의 jvm 인스턴스만 접근 가능하다고 되어 있기 때문에, h2 실행파일을 종료하고 테스트코드가 성공하는게 자명하다고 느껴지긴 하는데요.. 영상에서 강사님이 진행하는 과정과 너무 달라지기도 하고, h2 서버모드 실행 시 sonarqube 관련 에러가 발생하는게 의아해서 질문 남깁니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
test 메서드 작성 시 질문
보통 저는 모든 메서드 명에 대해서 camel case로 작성을 합니다. 혹시, 강의 영상에서 테스트 메서드 명에 대해서 snake case로 작성하시는 이유가 있나요? 테스트 메서드 명에 대한 규약인가 싶어서 질문 드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 목록 조회가 안됩니다.
회원가입에서 회원가입 등록후 회원 목록에서 조회가 안됩니다. 콘솔에 찍어보니 회원 등록은 정상적으로 잘 되는 것 같은데 목록 조회가 안됩니다. 파일 첨부하겠습니다! 감사합니다 :)https://drive.google.com/file/d/1W7jN-wppJGC_hbWtQoa4PBvN0LRa41X9/view?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
/api/v2/simple-orders 포스트맨 조회 에러
아무리 찾아봐도 모르겠습니다. findAllByString 에서 에러가 나는 것 같은데 잘모르는 부분이라 도움 요청합니다 org.hibernate.query.UnknownParameterException: Could not locate named parameter [name], expecting one of []at org.hibernate.query.internal.ParameterMetadataImpl.getQueryParameter(ParameterMetadataImpl.java:264) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]at org.hibernate.query.spi.AbstractCommonQueryContract.setParameter(AbstractCommonQueryContract.java:809) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]at org.hibernate.query.spi.AbstractSelectionQuery.setParameter(AbstractSelectionQuery.java:780) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]at org.hibernate.query.sqm.internal.QuerySqmImpl.setParameter(QuerySqmImpl.java:1237) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]at org.hibernate.query.sqm.internal.QuerySqmImpl.setParameter(QuerySqmImpl.java:129) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final]at jpabook.jpashop.repository.OrderRepository.findAllByString(OrderRepository.java:72) ~[main/:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-6.0.13.jar:6.0.13]at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751) ~[spring-aop-6.0.13.jar:6.0.13]at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703) ~[spring-aop-6.0.13.jar:6.0.13]at jpabook.jpashop.repository.OrderRepository$$SpringCGLIB$$0.findAllByString(<generated>) ~[main/:na]at jpabook.jpashop.api.OrderSimpleApiController.orderV2(OrderSimpleApiController.java:43) ~[main/:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-6.0.13.jar:6.0.13]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-6.0.13.jar:6.0.13]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[spring-webmvc-6.0.13.jar:6.0.13]at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.0.13.jar:6.0.13]at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.15.jar:6.0]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.0.13.jar:6.0.13]at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.15.jar:6.0]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.0.13.jar:6.0.13]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.13.jar:6.0.13]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.0.13.jar:6.0.13]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.13.jar:6.0.13]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.0.13.jar:6.0.13]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.13.jar:6.0.13]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.15.jar:10.1.15]at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na] 링크https://drive.google.com/file/d/1D5FmBPgzkSZY52ywuRDkpH27lpMFOviU/view?usp=drive_link