묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
db 초기화할때, 새로운 인스턴스의 메서드를 사용했는데 기존의 인스턴스가 영향 받을 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]MemberServiceTest 파일을 보면,MemberService 객체 인스턴스 내부에서 MemoryMemberRepository 객체를 생성하여 db로사용하고 있는데,다시 아래에 MemoryMmeberRepository 객체 인스턴스를 생성하면 새로운 db가 또 생기게 되는데서로 다른 db아닌가요?? 왜 아래 MemoryMemberRepository 인스턴스의 내장메서드를 사용하면 MemberService 인스턴스 내부의 db가 초기화 되는지 궁금합니다!! 추가) 뒷 내용을 보면 나중에 db를 합치는데 이 부분은 이해가 됩니다.. 앞 부분에선 뭘 간과한 걸까요..ㅎ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost:8080에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인텔리제이에서 run실행하는것도 잘 되었고이 상태로 localhost:8080을 했을때이렇게 떠서 다른 작성자분께 조언하신데로 crd로 들어가서 똑같이 했는데도이렇게 뜹니다. 스프링부트마크가 없어도 괜찮은 건가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
get body
http method를 GET으로 설정했을 경우 파라미터로만 보내는 것이 일반적인가요? Body에 json 등을 통하여 전달하는 방식은 post method에서 적용하는 게 맞나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의 자료 검증1 13페이지에 오류가 있는 것 같습니다.
여기서 수량이 최대 9,999개 까지 허용되려면 item.getQuantity()가 10000보다 크거나 같을 때 (item.getQuantity() >= 10000)으로 변경되어야 하는 것 아닌가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
3:40 실행 오류
선생님 사양은 이렇습니다. id 'java' id 'war' id 'org.springframework.boot' version '2.7.9' id 'io.spring.dependency-management' version '1.0.15.RELEASEsuper.service()는 지운 상태에서 강의와 똑같이 실행했습니다. 에러가 뜹니다 도와주세요!-에러 메시지-:: Spring Boot :: (v2.7.9)2023-03-07 01:12:02.179 INFO 12604 --- [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 11.0.16 on DESKTOP-FAEKQ27 with PID 12604 (C:\Users\doehyun\Desktop\study\servlet\out\production\classes started by doehyun in C:\Users\doehyun\Desktop\study\servlet)2023-03-07 01:12:02.190 INFO 12604 --- [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2023-03-07 01:12:03.347 WARN 12604 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet2023-03-07 01:12:03.359 INFO 12604 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2023-03-07 01:12:03.400 ERROR 12604 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:196) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.25.jar:5.3.25] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.9.jar:2.7.9] at hello.servlet.ServletApplication.main(ServletApplication.java:14) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:49) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-2.7.9.jar:2.7.9] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1249) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.25.jar:5.3.25] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.25.jar:5.3.25] ... 13 common frames omittedCaused by: java.lang.ClassNotFoundException: javax.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] ... 20 common frames omittedProcess finished with exit code 1
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
왜 오류가 안날까요?
영상 11:00부분 부터, 테스트가 끝날 때마다 초기화되는 AfterEach부분을 적지 않았음에도 불구하고 정상실행 됩니다. findByName()이 왜 오류가 안날까요?스프링이 업그레이드 되면서 자동으로 clear하는 기능이 생겼나 싶어서 찾아보니까 그런내용은 없었는데, 혹시 오류가 안나는 이유를 알 수 있을까요?package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save() { //given Member member = new Member(); member.setName("spring"); //when repository.save(member); //then Member result = repository.findById(member.getId()).get(); assertThat(result).isEqualTo(member); } @Test public void findByName() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when List<Member> result = repository.findAll(); //then assertThat(result.size()).isEqualTo(2); } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
view의 개념
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 1분 정도에 View는 화면을 그리는데 모든 역량을 집중해야 한다고 말씀해주셨는데 아래의 케이스에서는 어느 영역에서 처리하나요?db의 데이터 Y, N 또는 True, False의 데이터가 있을 경우 화면에는 예, 아니오 또는 사용, 미사용 과 같이 처리 할 경우 DB에서 조회 시, Service에서 if 또는 case 문으로 처리 가능하고, Front에서도 처리 가능한데 DB 또는 Service에서 처리 할 경우 해당 값이 변경 되야하면 서버를 재기동하는 부담이 있고, Front에서 할 경우는 단순 파일 배포를 통해 재기동하지 않아도 된다는 장점이 있을 것 같습니다.어느게 정답일 수는 없겠지만 보통은 어떻게 처리하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이 오류는 어떻게 해결해야하나요
뭐가 잘못된걸까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이런식으로 에러가 떠서 실행이 안돼는데 어떻게 고쳐야 하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.spring.io에 들어가서 프로젝트를 선택할때 Gradle이 Kotlin하고 Groovy두개로 나뉘는데 어떤걸 선택해서 만들어야 하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Autowired 와 MessageSource
[질문 내용]MessageSource 를 스프링 빈으로 등록하지 않고, 스프링 부트와 관련된 별도의 설정을 하지 않으면 messages 라는 이름으로 기본 등록된다고 전 강의에서 배웠습니다. 지금 application.properties에는 messages 라는 이름으로 기본 등록됐으니 MessageSource를 스프링 빈으로 등록하지 않았을텐데 어떻게 @Autowired로 주입된건지 궁금합니다..!!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
WAS 흐름 질문입니다
다른분 질문 답변에서 WAS는 Web Server + Web Container(Sevlet Container)라는 것을 알았습니다.여기서 WAS안에 WAS + 서블릿 컨테이너가 있는데1) WAS 안에 Web Server + Web Container(Sevlet Container)라고 생각하면 될까요?2) 그럼 request, response 객체는 웹 서버 부분에서 생성된다고 이해하면 될까요??3) 웹서버부분에서 request,response 객체를 파라미터로 helloServlst(서블릿 객체)에 넘기는 것은 웹서버가 애플리케이션 로직같은 동적인 처리가 필요하니까 서블릿 컨테이너(WAS)에 요청을 위임한 것이다 라고 이해하면 될까요?? 답변주시면 정말 감사하겠습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
처음부터 모르겠어요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]cmd에 아무리쳐도 다 안되는데 어떻게하나요..?강의영상 시작부터 막히네요..강사님이 cd study라고 치시는데 이거 의미도모르겟구..
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
view환경설정 부분에서 th:text 부분이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]p태그에 th:text가 없다면 안녕하세요.손님이게 뜨는거잖아요?인텔리제이안에서 크롬으로 튼 화면이거든요.그러면 p태그안에 쓴 안녕하세요.손님이 나와요근데 강사님처럼 직접 localhost:8080/hello 에 들어가면안녕하세요 hello가 나와요컨트롤러에서 model.attribute에 name,value 넣어서 그런건 알고있는데 <p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p><p>안녕하세요. 손님</p>저 html 보이는게 두개가왜 다른지도 궁금하고언제 th:text를 쓰고 p태그를 쓰는지가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
setId getId 에러
복붙하고 수정했는데 setId 그리고 getId에서 에러가 납니다. 도와주세요 ㅜㅜ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThrow()오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. assertThrow()부분에서 오류나는데 인터넷 보고 해봐도 해결이 안되네요assertThrows()함수와 try catch 부분에서 fail 이 오류가 납니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
implement methods를 하면 강의처럼 네 개가 아닌 세 개밖에 안나와요
findByName이 안 나오는 것 같아요.. 어떻게 다시 고치면 될까요..?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error Page 오류 해결 방법 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.질문 내용을 다 읽어 본 뒤에 질문 드립니다.h2연결이 안되어서 회원목록이 h2와 연결이 전혀 안 됩니다. 구글 드라이브에 업로드해서 질문드립니다 .ㅠㅠ https://drive.google.com/file/d/1VXf9yrQWtOnXcDB2imbcf0QRGPIp7OGH/view?usp=sharing
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 시 에러 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]동일한 에러 메세지 질문이 없어서 남깁니다!버전만 다르고 강의와 동일하게 진행했는데아래와 같은 에러가 발생합니다.External Libraries를 보면 4개밖에 없는데, 라이브러리를 가져오지 못해서 발생한 문제일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
404..오류... new-form.jsp,, save-result.jsp등등..
안녕하세요..jsp까지 잘 되다가, mvc에서 계속 404가 떠서 질문 드립니다..영한님 코드 복붙까지 해봤는데도 안돼서요..폴더구조, 파일명 모두 대조해봤는데 문제가 없음을 확인했습니다."mvc패턴 적용" 강의 코드가 적용이 되지 않습니다..대체..뭐가 문제일까요? MvcMemberFormServlet.class new-form.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!-- 주의 상대경로 사용, [현재 URL이 속한 계층 경로 + /save] ex ) servlet-mvc/members/save --> <form action="save" method="post"> username: <input type="text" name="username" /> age: <input type="text" name="age" /> <button type="submit">전송</button> </form> </body> </html> 404 ServletApplication.classbuild.gradleplugins { id 'java' id 'war' id 'org.springframework.boot' version '3.0.3' id 'io.spring.dependency-management' version '1.1.0' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상 implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' // 스프링부트 3.0 이상 implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상 } tasks.named('test') { useJUnitPlatform() } 답변주시면 감사하겠습니다..