Spring
-
[김영한 스프링] 24. 스프링 MVC 기본 기능 - HTTP 요청 파라미터Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 14. 02:24
HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 데이터 조회 - 개요 클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 ..
-
[김영한 스프링] 23. 스프링 MVC 기본 기능 - HTTP 요청 기본, 헤더 조회Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 14. 00:33
HTTP 요청 - 기본, 헤더 조회 애노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 지원한다. RequestHeaderController main/java/hello/springmvc/basic/request/RequestHeaderController 생성 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpMethod; import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework...
-
[김영한 스프링] 22. 스프링 MVC 기본 기능 - 요청 매핑Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 12. 02:33
요청 매핑 MappingControlle package hello.springmvc.basic.requestmapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public ..
-
[김영한 스프링] 21. 스프링 MVC 기본 기능 - 로깅 간단히 알아보기Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 11. 22:31
로깅 간단히 알아보기 운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 참고로 로그 관련 라이브러리도 많고, 깊게 들어가면 끝이 없기 때문에, 여기서는 최소한의 사용 방법만 알아본다. 로깅 라이브러리 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리(spring-boot-starter-logging)가 함께 포함된다. 스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다. 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다. 쉽게 이야기해서 SLF4..
-
[김영한 스프링] 20. 스프링 MVC 기본 기능 - 프로젝트 생성 & 세팅Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 6. 21:58
프로젝트 생성 https://start.spring.io 프로젝트 선택 Project : Gradle-Groovy Language : Java Spring Boot : SNAPSHOT이 아닌 버전에서 2.x Project Metadata Group : hello Artifact : springmvc Name : springmvc Package name : hello.springmvc Packaging : Jar(주의) Java : 11 Dependencies : Spring Web, Thymeleaf, Lombok 주의! Packaging는 War가 아니라 Jar를 선택해주세요. JSP를 사용하지 않기 때문에 Jar를 사용하는 것이 좋습니다. 앞으로 스프링 부트를 사용하면 이 방식을 주로 사용하게 됩니다..
-
[김영한 스프링] 19. 스프링 MVC 구조 이해 - 시작하기 & 컨트롤러 통합 & 실용적인 방식Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 6. 04:13
스프링 MVC - 시작하기 스프링이 제공하는 컨트롤러는 애노테이션 기반으로 동작해서, 매우 유연하고 실용적이다. 과거에는 자바 언어에 애노테이션이 없기도 했고, 스프링도 처음부터 이런 유연한 컨트롤러를 제공한 것은 아니다. @RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었는데 이것이 바로 @RequestMapping 애노테이션을 사용하는 컨트롤러이다. 과거에는 스프링 프레임워크가 MVC 부분이 약해서 스프링을 사용하더라도 MVC 웹 기술은 스트럿츠 같은 다른 프레임워크를 사용했었다. 그런데 @RequestMapping 기반의 애노테이션 컨트롤러가 등장하면서, MVC 부분도 스프링의 완승으로 끝이 났다. RequestMappingHandlerMapping ..
-
[김영한 스프링] 18. 스프링 MVC 구조 이해 - 전체 구조 & 핸들러 매핑과 핸들러 어댑터 & 뷰 리졸버Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 4. 04:40
스프링 MVC 전체 구조 직접 만든 MVC 프레임워크 구조 SpringMVC 구조 직접 만든 프레임워크 스프링 MVC 비교 FrontController DispatcherServlet handlerMappingMap HandlerMapping MyHandlerAdapter HandlerAdapter ModelView ModelAndView viewResolver ViewResolver MyView View DispatcherServlet 구조 살펴보기 org.springframework.web.servlet.DispatcherServlet 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다. 스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿(DispatcherServlet)이다. 그리고 이 디스..
-
[김영한 스프링] 17. MVC 프레임워크 만들기 - 유연한 컨트롤러Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 2023. 7. 1. 04:01
유연한 컨트롤러1 - v5 만약 어떤 개발자는 ControllerV3 방식으로 개발하고 싶고, 어떤 개발자는 ControllerV4 방식으로 개발하고 싶다면 어떻게 해야 할까? public interface ControllerV3 { ModelView process(Map paramMap); } public interface ControllerV4 { String process(Map paramMap, Map model); } 어댑터 패턴 지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다. ControllerV3, ControllerV4는 완전히 다른 인터페이스이다. 따라서 호환이 불가능하다. 마치 v3는 110v이고, v4는 220v 전기 콘센트 같은 것이다...