전체 글
-
[Spring] 로깅(Logging) 간단하게 알아보기Back-end/Spring 2022. 3. 21. 12:37
안녕하세요 이번 포스팅은 로깅에 대해서 알아보겠습니다!! 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력합니다. 참고로 로그 관련 라이브러리도 많고, 깊게 들어가면 끝이 없기 때문에, 여기서는 최소한의 사용 방법만 알아봅시다. 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용합니다. 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SL..
-
[Spring] 스프링 MVC - 간단하게 시작해보기Back-end/Spring 2022. 3. 21. 12:13
안녕하세요 이번 포스팅에서는 스프링 MVC를 간단하게 알아보겠습니다 스프링이 제공하는 컨트롤러는 애노테이션 기반으로 동작해서, 매우 유연하고 실용적입니다. 과거에는 자바 언어에 애노테이션이 없기도 했고, 스프링도 처음부터 이런 유연한 컨트롤러를 제공한 것은 아닙니다. @RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었는데 이것이 바로 @RequestMapping 애노테이션을 사용하는 컨트롤러입니다. 다들 한 번쯤 사용해보았을 것입니다. 여담이지만 과거에는 스프링 프레임워크가 MVC 부분이 약해서 스프링을 사용하더라도 MVC 웹 기술은 스트럿츠 같은 다른 프레임워크를 사용했었습니다. 그런데 @RequestMapping 기반의 애노테이션 컨트롤러가 등장하면서,..
-
[Spring] 뷰 리졸버(View Resolver)Back-end/Spring 2022. 3. 21. 11:42
안녕하세요 이번 포스팅은 스프링 내부에 있는 뷰 리졸버에 대해서 알아보겠습니다!! OldController - View 조회할 수 있도록 변경 import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component("/springmvc/old-controller") public class OldController i..
-
[Spring] 핸들러 매핑과 핸들러 어댑터Back-end/Spring 2022. 3. 21. 11:27
안녕하세요! 이번 포스팅은 스프링 내부 구조에 있는 핸들러 매핑과 핸들러 어댑터에 대해서 알아보겠습니다!! 지금은 전혀 사용되지 않지만, 과거에 주로 사용했던 스프링이 제공하는 간단한 컨트롤러로 핸들러 매핑과 어댑터를 이해해보겠습니다 Controller Interface(과거 버전 스프링 컨트롤러) 처음에는 스프링도 이런 딱딱한 형식의 컨트롤러를 제공했습니다. 간단하게 구현해보겠습니다. import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.ht..
-
[Spring] 스프링 MVC - 구조 이해Back-end/Spring 2022. 3. 20. 11:06
안녕하세요 이번 포스팅은 저희 그동안 힘겹게 만들었던 프레임워크와 스프링 MVC를 비교해보겠습니다!! DispatcherServlet 구조 살펴보기 1. 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있습니다. 2. 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿(DispatcherServlet)입니다. 3. 그리고 이 디스패처 서블릿이 바로 스프링 MVC의 핵심입니다. DispatcherServlet 서블릿 등록 DispatcherServlet도 부모 클래스에서 HttpServlet을 상속받아서 사용하고, 서블릿으로 동작합니다. -> DispatcherServlet -> FrameworkServlet -> HttpServletBean -> HttpServlet 스프링 부트는 Dispatche..
-
[Spring] MVC 프레임 워크 만들기 ( 1 ), 프론트 컨트롤러, 어댑터 구조Back-end/Spring 2022. 3. 18. 16:58
안녕하세요 이번 포스팅에서는 기존 MVC패턴에서 컨트롤러의 중복을 제공하는 수문장 역할을 하는 프론트 컨트롤러에 대해 알아보겠습니다!! 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 - 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 - 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 - 입구를 하나로!! - 공통 처리 기능 - 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 스프링 웹 MVC와 프론터 컨트롤러 스프링 웹 MVC의 핵심도 바로 FrontController입니다. 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있습니다. 프론트 컨트롤..
-
[Spring] 서블릿의 기본적인 개요, Request, Response, GET, POST, JSON, HTTP messageBack-end/Spring 2022. 3. 18. 14:54
안녕하세요 이번 포스팅에서는 포스팅 누락으로 서블릿을 간단히 사용하는 방법이랑 여러 HTTP METHOD에 대해서 알아보겠습니다!! 스프링 부트 서블릿 환경 구성 @ServletComponentScan 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원합니다. 다음과 같이 프로젝트를 생성하고 추가합시다. import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComp..
-
[Spring]서블릿의 기본 사용법 예제 ( 2 ), JSP로 회원 웹 애플리케이션 개발 그리고 MVC패턴의 등장, MVC의 한계Back-end/Spring 2022. 3. 18. 13:52
안녕하세요! 이번 포스팅은 지난 포스팅에 이어서 서블릿의 불편함을 해소하고자 템플릿 엔진 중 하나인 JSP를 사용해서 회원 웹 애플리케이션을 만들어보도록 하겠습니다. 우선 인텔리 제이로 JSP를 사용 하려면 먼저 다음 라이브러리를 추가해야 합니다. 라이브러리를 추가하면 다음 버튼을 클릭해서 Gradle을 refresh 해줍니다. 또한 start.spring.io에서 프로젝트를 생성할 때 반드시 war파일로 프로젝트를 생성해야 JSP를 사용할 수 있습니다. 최근에는 대부분 WAS인 톰캣이 내장되어있는 JAR로 생성 하지만 JSP를 사용하기 위해서는 WAR로 생성해줘야 합니다. 회원 등록 폼 JSP 경로 : main/webapp/jsp/members/new-form.jsp username: age: 전송 첫..