본문 바로가기
Develop/Spring

[Spring/MVC] 웹 애플리케이션

by J-rain 2024. 3. 20.

 

정적 리소스

  • 고정된 HTML 파일, CSS, JS, 이미지, 영상등 게종
  • 주로 웹 브라우저

HTML 페이지

  • 동적으로 필요한 HTML 파일을 생성해서 전달
  • 웹 브라우저 : HTML 해석

HTML API

  • HTML이 아니라 데이터를 전달
  • 주로 JSON 형식 사용

SSR (서버 사이드 렌더링)

  • HTML 결과를 서버에서 만들어서 웹 브라우저에 전달
  • 주로 정적인 화면에 사용
  • 관련기술 : JSP, 타임리프 (백엔드)

CSR (클라이언트 사이드 렌더링)

  • HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용
  • 주로 동적인 화면에 사용하고 웹 환경을 앱처럼 필요한 부분부분 변경 가능 ex) 구글 지도, Gmail
  • 관련기술 : React, Vue.js (프론트)

 

 

서블릿

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        System.out.println("HelloServlet.service");
        System.out.println("request = " + request);
        System.out.println("response = " + response);

        String username = request.getParameter("username");
        System.out.println("username = " + username);

        response.setContentType("text/plain");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write("hello " + username);
    }
}
  • @WebServlet 서블릿 애노테이션
    • name: 서블릿 이름
    • urlPatterns: URL 매핑

HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.

protected void service(HttpServletRequest request, HttpServletResponse response)

⇒ 인텔리제이 ctrl + O service에서 잠금모양 (protected)

 

HTTP 요청 메시지 로그로 확인하기

application.properties

logging.level.org.apache.coyote.http11=debug 를 추가한다.

운영서버에 이렇게 모든 요청 정보를 다 남기면 성능저하가 발생할 수 있다.

 

댓글