[WEB] Spring MVC와 Servlet Container

군자·2024년 3월 5일
0

BackEnd

목록 보기
2/8
post-thumbnail

출처

[Spring MVC] 스프링 MVC란 무엇인가? - 스프링 MVC 구조 이해
Apache? Tomcat?? 둘이 무슨 차이지?
JSP (JavaServer Pages ) 란 무엇인가?!

모르는거 넘많아서 작성하는 글.
아주 기초적인 개념부터 정리해보자구!


📌 Spring MVC란??

웹 계층에 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이 있는데 이를 스프링 웹 MVC(spring-web-mvc) 또는 스프링 MVC라고 한다.

🔍 Servlet이란?

클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스

  • 서블릿의 라이프 사이클을 위한 세 가지 필수적인 메소드
    ✔︎ init()
    ✔︎ service()
    ✔︎ destory()

우리가 자주 사용하는 아파치 톰캣(Apache Tomcat)은 서블릿들이 웹 어플리케이션으로 실행할 수 있도록 해주는 서블릿 컨테이너(Servlet Container) 중 하나이다.

JSP(JavaServer Pages)

  • HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구
  • JSP 가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행
  • 생성된 데이터를 웹페이지와 함께 클라이언트로 응답
  • 아파치 서버: 정적인 파일을 처리해주는 웹 서버(80 포트)
  • 톰캣: DB처리와 같은 동적인 기능들을 가공하여 HTML파일로 만들어 클라이언트에게 제공(8080포트)

Spring MVC 내부에서는 서블릿을 기반으로 웹 애플리케이션을 동작하며, 스프링 부트는 기본적으로 아파치 톰캣이 내장되어 있다.

🔍 Container란?

동적인 데이터들을 가공하여 정적인 파일로 바꿔주는 모듈

  • 서블릿 컨테이너(Servlet container)
    ✔︎ 서블릿들을 모아 관리
    ✔︎ 새로운 요청이 들어올 때마다 새로운 스레드를 생성
    ✔︎ 작업이 끝난 서블릿 스레드 자동 제거

🔍 그래서 mvc가 뭔데????

애플리케이션의 개발 영역을 MVC(Model, View, Controller)로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식

  • 이를 통해 UI 영역과 도메인 영역(비즈니스 로직)으로 구분되어 서로 영향없이 개발과 유지보수가 가능하게 되었다.

📌 Model

처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터

  • 서비스 계층(Service layer): 클라이언트의 요청 사항을 구체적으로 처리하는 영역
  • 비즈니스 로직(Business Logic): 요청 사항을 처리하기 위해 Java 코드로 구현한 것

📌 View

Model을 이용하여 웹 브라우저와 같은 애플리케이션의 화면에 보이는 리소스(Resource)를 제공하는 역할

📌 Controller

클라이언트 측의 요청을 직접적으로 전달받는 엔트포인트(Endpoint)로써 Model과 View의 중간에서 상호작용을 해주는 역할

  • 클라이언트 측의 요청을 전달받아 비즈니스 로직을 거친 후, Model 데이터가 만들어지면, 해당 Model 데이터를 View로 전달하는 역할을 함.
profile
헬로 아이엠군자. 굿투씨유

0개의 댓글