스프링/스프링 MVC 패턴
-
서블릿을 이용한 회원가입 만들기스프링/스프링 MVC 패턴 2023. 2. 10. 15:55
서블릿을 이용해서 회원가입을 해볼 것이다. new-form @WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType..
-
서블릿 HTTP 응답 데이터스프링/스프링 MVC 패턴 2023. 2. 10. 14:41
@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // [status-line] response.setStatus(HttpServletResponse.SC_BAD_REQUEST); // [response-header] response.setHeader("Content-type", "tex..
-
서블릿 HTTP 요청 데이터스프링/스프링 MVC 패턴 2023. 2. 10. 13:12
HTTP에 원하는 값을 요청해서 웹 사이트에 데이터를 보내는 방법이 있다. 1. GET 쿼리 파라미터 @WebServlet(name = "requestParamServlet", urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("[전체 파라미터 조회] - start"); request.getParameterNames().asIterator..
-
HTML, HTTP API, CSR, SSR스프링/스프링 MVC 패턴 2023. 2. 7. 16:39
정적 리소스 - 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 - 주로 웹 브라우저 HTML 페이지 - 동적으로 필요한 HTML 파일을 생성해서 전달 - 웹 브라우저 : HTML 해석 HTTP API - HTML이 아니라 데이터를 전달 - 주로 JSON 형식 사용 - 다양한 시스템에서 호출 - UI 클라이언트 접점 앱 클라이언트(아이폰, 안드로이드 등) 웹 브라우저에서 자바스크립트를 통한 HTTP API 호출 React, Vue.js 같은 웹 클라이언트 SSR - 서버 사이드 렌더링 (필수) - 서버에서 최종 HTML을 생성해서 클라이언트에 전달 HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달 주로 정적인 화면에 사용 관련기술: JSP, Tymeleaf -> 주로 백엔드 개발..
-
동시 요청 - 멀티 쓰레드 (쓰레드 풀)스프링/스프링 MVC 패턴 2023. 2. 7. 16:13
쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행하면 main이라는 이름인 쓰레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행 불가능 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 쓰레드가 하나면 하나의 쓰레로 여러명이 사용을 해야하기 때문에 첫 번째 클라이언트가 쓰레드를 사용하다 오류가 나면 계속해서 밀리게 된다. 해결하는 방안은 요청마다 쓰레드를 생성해주면 된다. 클라이언트의 요청이 있을 때마다 쓰레드를 새로 만들어주면 고유의 쓰레드를 만들고 요청이 끝나면 쓰레드를 없애면 된다. 요청마다 쓰레드 생성의 장단점 장점 동시 요청 처리 가능 리소스가(CPU, 메모리)가 허용될 때까지 처리가능 하나의 쓰레드가 지연 되어도..
-
서블릿스프링/스프링 MVC 패턴 2023. 2. 7. 15:47
서버에서 처리해야 하는 업무는 굉장히 많다. 서버 TCP/IP 대기, 소켓 연결 Content Type 확인 비즈니스 로직 실행 HTTP 응답 메시지 생성 등 여러 업무를 해야한다. 서블릿에서 지원하는 WAS를 사용하면 비즈니스 로직 실행을 제외한 모든 기능들을 지원해준다. @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) { // 애플리케이션 로직 } } - urlPatterns(/hello)의 URL이..
-
웹 서버와 웹 애플리케이션 서버스프링/스프링 MVC 패턴 2023. 2. 7. 15:17
웹 서버 - HTTP 기반으로 동작 - 정적 리소스 제공, 기타 부가 기능 - 정적 HTML, CSS, JS, 이미지, 영상 - 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) - HTTP 기반으로 동작 - 웹 서버 기능 포함+ (정적 리소스 제공 가능) - 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow 웹 서버, 웹 애플리케이션 서버(WAS) 차이 - 웹 서버는 리소스(파일), WAS는 애플리케이션 로직 - 하지만 경계가 모호하고 웹 서버도 프로그램 실행하는 기능을 포함하기도 하며 웹 애플리케이션 서버도 웹 서버의 기..