tomcat 인텔리제이에 연동해서 띄우기

섭정이·2025년 4월 7일

macOS에서 Tomcat 설치 및 IntelliJ Jakarta EE 프로젝트 구성

스프링 mvc 를 시작하기 전에 스프링 동작하는 서블렛 에 대해 공부해 보기로 했다. 일단 서버를 띄우기 위해 톰캣을 설치하고 intellij와 연동하여 8080 서버를 띄워보는것을 목표로 했다.


1. macOS에 Tomcat 설치 (Homebrew 사용)

macOS에서는 Homebrew 패키지 매니저를 통해 간편하게 Tomcat을 설치할 수 있다. 버전은 안정적으로 9버전을 사용해보겠다.

# Tomcat 9 설치
brew install tomcat@9

설치가 완료되면 다음 경로에 설치된다.

/opt/homebrew/opt/tomcat@9/libexec

해당 디렉토리에는 Tomcat의 실행 파일들이 포함되어 있으며, 아래 명령어로 서버를 실행하거나 종료할 수 있습니다:

# Tomcat 실행
/opt/homebrew/opt/tomcat@9/libexec/bin/startup.sh

# Tomcat 종료
/opt/homebrew/opt/tomcat@9/libexec/bin/shutdown.sh

2. IntelliJ에서 Jakarta EE 프로젝트 생성

  1. New Project → Jakarta EE 선택
  2. Build System: Gradle 선택, 톰캣 경로 입력
  3. Language: Java
  4. JDK 설정: 로컬에 설치된 JDK 선택
  5. 프로젝트 생성 후:
    IntelliJ 오른쪽 상단 메뉴 → Project Structure → SDK 설정 확인

Gradle 의존성 설정

build.gradle 파일에 다음과 같이 추가합니다:

dependencies {
    implementation 'jakarta.servlet:jakarta.servlet-api:5.0.0'
}

3. HttpServlet 클래스 구조 및 동작 방식

개요

HttpServletHTTP 요청을 처리하고 응답을 생성하는 서블릿 개발의 핵심 클래스입니다.
클래스를 상속받아 doGet(), doPost() 등을 오버라이딩하면 클라이언트의 요청을 처리할 수 있습니다.


상속 구조

java.lang.Object
 └─ jakarta.servlet.GenericServlet
     └─ jakarta.servlet.http.HttpServlet
  • GenericServlet: 서블릿의 기본 기능 제공 (HTTP 외 프로토콜도 처리 가능)
  • HttpServlet: HTTP 요청에 특화된 기능 제공

주요 메서드 설명

메서드설명
doGet(HttpServletRequest req, HttpServletResponse resp)GET 요청 처리
doPost(HttpServletRequest req, HttpServletResponse resp)POST 요청 처리
service(HttpServletRequest req, HttpServletResponse resp)요청 메서드에 따라 doGet() 또는 doPost()로 분기 처리

동작 흐름 요약

  1. 사용자가 브라우저에 URL 입력
  2. Tomcat이 요청을 감지
  3. URL 패턴과 매핑된 서블릿 실행
  4. HttpServlet.service() 메서드 호출
  5. 내부적으로 요청 메서드(GET/POST 등)에 따라 doGet() 또는 doPost() 호출
  6. 처리 결과를 응답 객체를 통해 브라우저에 반환

예제 코드: 간단한 서블릿

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setContentType("text/plain");
        resp.getWriter().write("Hello, Jakarta EE!");
    }
}
  • @WebServlet("/hello"): 이 서블릿은 /hello 경로로 들어온 요청을 처리
  • doGet()은 GET 요청 처리
  • HttpServletResponse 객체를 통해 응답 본문을 클라이언트에 전달

정리

구성 요소역할
GenericServlet서블릿 기본 구조 제공 (비HTTP도 지원)
HttpServletHTTP 요청에 특화된 서블릿
doGet() / doPost()HTTP 요청에 대한 처리 메서드
@WebServletURL과 서블릿 매핑
Tomcat서블릿 실행 환경 (컨테이너)

결과 확인

8080 에서 확인!

profile
우직하게

0개의 댓글