목록Spring (78)
빙응의 공부 블로그

📝로그 이제는 운영 시스템에서 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력해야한다. System.out.println의 문제점 출력문은 난잡하게 지정한 것만 출력하여 알아보기 힘들어요! 출력문은 따로 파일에 기록을 해줘야하는 문제가 발생 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리가 함께 포함된다. 로깅 라이브러리는 애플리케이션에서 발생하는 이벤트를 기록하고 추적하는 도구이다. SLF4J Logback 📝SLF4J 로그 라이브러리는 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 SLF4J이다. 그 구현체로 Logback 같은 로그 라이브러리를 선택..

📝@RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었다. 이것이 바로 @RequestMapping이다. @RequestMapping RequestMappingHandlerMapping - 핸들러 매핑 RequestMappingHandlerAdapter - 핸들러 어댑터 @Controller public class SpringMemberFormControllerV1 { @RequestMapping("/springmvc/v1/members/new-form") public ModelAndView process(){ return new ModelAndView("new-form"); } } @Controller 스프링이 자동으로 스프링 빈으로 등록한다. 스프링 MV..

📝MVC 구조의 이해 우리가 만들었던 구조와 실제 스프링 MVC의 구조를 비교해보자! 각각의 기능이 매핑된다. FrontController - DispatcherServlet handlerMappingMap - HandlerMapping ModelView - ModelAndView viewResolver(메소드) - ViewResolver(인터페이스) MyView(객체)-View(인터페이스) DispatcherServlet 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다. 스프링 MVC의 프론트 컨트롤러가 바로 DispatherServlert이다. DispatcherServlet도 부모 클래스에서 HttpServlet을 상속 받아서 사용하며, 서블릿으로 동작한다. 스프링 부트는 Dispatcher..

📝프론트 컨트롤러 패턴 MVC 패턴의 중복 코딩이나 공통 작업 문제를 해결하기 위한 프론트 컨트롤러 패턴이다. 프론트 컨트롤러 도입 전 도입 전 MVC 패턴은 위 사진처럼 각 컨트롤러에 공통 로직 + 개인 로직을 가지고 있었다. 그렇기에 중복 코드가 있고 공통 작업에 비효율적이였다. 프론트 컨트롤러 도입 후 프론트 컨트롤러 패턴 도입 후 프론트 컨트롤러 서블릿 하나로 클라이언트 요청을 받아 요청에 맞는 컨트롤러를 호출해 준다. 공통 처리는 당연히 가능하며 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용 안해도 된다. 스프링 웹 MVC의 핵심도 FrontController이다. 📝프론트 컨트롤러 도입 - V1 V1의 목표는 여러 컨트롤러를 하나의 프론트 컨트롤러가 효율적으로 관리하고 중앙 집중적인..

📝서블릿과 JSP 서블릿 @WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save") public class MemberSaveServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("MemberSaveServlet.service"..

📝웹 애플리케이션 웹 서버 HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적 HTML, CSS, JS, 이미지, 영상 웹 애플리케이션 서버 HTTP 기반으로 동작 웹 서버 기능 포함 + 정적 리소스 제공 가능하다 프로그램 코드를 실행해서 애플케이션 로직을 수행할 수 있다. 동적 HTML, HTTP API(JSON) 예) 톰캣 Jetty, Undertow 웹 서버와 웹 애플리케이션 차이 웹 서버는 정적 리소스, WAS는 애플리케이션 로직 사실은 둘의 경계도 모호함 WAS는 애플리케이션 특화 서버라 생각하면 된다. 📝웹 시스템 구성 WAS + DB WAS가 너무 많은 역할을 담당하여 서버 과부하 우려가 있음 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다. WAS + W..