Hello 서블릿!

김원종·2023년 12월 5일

스프링 부트 환경에서 서블릿을 등록하고 사용해보자!

참고
서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고,그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음 , 톰캣 서버를 실행하면 된다. 하지만 이 과정은 매우 번거롭다. 스프링 부트는 톰캣 서버를 내장하고 있으므로 , 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다.

스프링 부트 서블릿 환경 구성
@ServletComponetScan
스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponetScan을 지원한다.

  • @WebServlet 서블릿 애너테이션
    • name : 서블릿 이름
    • urlPatterns : URL 매핑

HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.
protected void service(HttpServletRequest request , HttpServletResponse response)

application.properties 에
logging.level.org.apache.coyote.http11=debug
이 옵션을 넣으면 서버가 받은 HTTP 요청 메시지를 출력하는걸 확인 할수 있다!

참고
운영서버에 이렇게 모든 요청 정보를 다 남기면 성능저하가 발생할 수 있다. 개발 단계에서만 사용하자!!

서블릿 컨테이너 동작 방식

내장 톰캣 서버 생성

HTTP 요청,HTTP 응답 메시지

웹 애플리케이션 서버의 요청 응답 구조

참고
HTTP응답에서 Content-Length 는 웹 애플리케이션 서버가 자동으로 생성해준다.

단축키&단축어 정리
soutm: soutm은 IntelliJ IDEA에서 제공하는 단축어 중 하나로, 현재 메소드의 이름을 출력하는 코드를 자동으로 작성해줍니다. 이를 통해 어떤 메소드가 실행되고 있는지 쉽게 확인할 수 있게 됩니다. 예를 들어, 'main' 메소드에서 soutm을 사용하면 'System.out.println("main");'이라는 코드가 생성됩니다.
soutv: soutv 역시 IntelliJ IDEA에서 사용되는 단축어로, 마지막으로 사용한 변수의 값을 출력하는 코드를 작성해줍니다. 이를 통해 변수의 현재 값을 빠르게 확인할 수 있습니다. 예를 들어, 'int a = 5;'라는 코드 이후에 soutv를 사용하면 'System.out.println("a = " + a);'라는 코드가 생성됩니다.
Ctrl+Alt+v: 이 단축키는 'Extract Variable'라는 리팩토링 기능을 실행합니다. 이 기능은 선택한 표현식의 결과를 새로운 변수에 저장하는 코드를 자동으로 작성해줍니다. 이를 통해 코드의 가독성을 높이고, 오류 가능성을 줄일 수 있습니다. 예를 들어, 'int result = 2 5;'라는 코드에서 '2 5'를 선택하고 Ctrl+Alt+v를 누르면 'int i = 2 * 5; int result = i;'라는 코드로 변경됩니다.
이상으로 IntelliJ IDEA에서 제공하는 유용한 단축키에 대해 알아보았습니다. 이러한 단축키들은 코드를 더 빠르고 효과적으로 작성하도록 돕는 도구이므로, 적절히 활용하면 개발 과정이 훨씬 수월해질 것입니다. 다음 포스트에서는 또 다른 유용한 단축키들을 알아보도록 하겠습니다. 감사합니다.

profile
개린이

0개의 댓글