오랜만에 프로젝트의 구성을 돌아보려고 프로그램을 켰는데 파일 내에 존재하던 JSP 파일 내에서 아래의 코드 첫 단락부터 에러가 발생했다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
The superclass "jakarta.servlet.http.HttpServlet" was not found on the Java Build Path
Build Path에서 "jakarta.servlet.http.HttpServlet"을 못 찾겠다는 말로 이해하고 필요한 라이브러리가 없나보다.. 하고 생각했다.
이 문제는 학원을 다니면서도 발생했던 문제인데 그때도 라이브러리를 막 넣고 지우면서 어찌저찌 오류를 수정했었는데 이렇게 지나고 또 기억이 안나는걸 보니 그때 제대로 짚고 넘어가지 않아서 기억이 안나는 것 같다..
구글링을 했을 때는 다들 이클립스를 이용해서 톰캣 서버를 추가로 설정하거나 라이브러리를 설정하던데 나는 sts4를 사용했기 때문에 톰캣을 추가로 설정 할 필요가 없기 때문에 기억을 되돌아보면서 프로퍼티를 확인했다.

뭐지.. 여기서 그냥 Modulepath에 jar 라이브러리를 apply 시켜주니까 자동으로 빌드하면서 에러가 다 사라진것..
pom.xml에 들어가서 jakarta.servlet-api 라이브러리를 주석 처리한 후 실행시켜 보았다.
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
아무 오류 없이 잘 실행이 된다.. 뭐지..? 이유를 gpt에게 물어 보았다.
jakarta.servlet을 포함하고 있기 때문이다.Spring-Boot-starter-web 의존성을 사용하면, 기본적으로 Tomcat이 내장되어 있는데, 이 내장 Tomcat에는 이미 서블릿 API(jakarta.servlet 포함)가 포함되어 있어서 따로 추가 할 필요가 없는 것이다.즉, 직접 api 라이브러리를 추가하지 않아도 내장 Tomcat 덕분에 자동으로 제공된다.
jakarta.servlet.http.HttpServlet을 찾지 못했던 것Propterties > Apply 를 하면서 클래스 경로(classpath)가 정상적으로 재설정됐고, 내장 Tomcat의 서블릿 API를 올바르게 찾을 수 있게 된 것이다.결론은 단순히 classpath가 꼬여서 생긴 문제였던 것,,,