본문 바로가기

Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술20

HTTP 메시지 컨버터 어떻게 JSON 데이터를 HTTP 메시지 바디에서 읽거나 쓸 수 있을까요? 안녕하세요. 오늘은 어떻게 JSON 데이터를 HTTP 메시지 바디에서 읽거나 쓸 수 있는지 알아보겠습니다. @RequestBody로 HTTP 요청 메시지 바디의 JSON 데이터를 객체로 받을 수 있고, @ResponseBody로 객체를 HTTP 응답 메시지 바디에 데이터로 전송할 수 있습니다. 이것이 어떻게 가능할까요? 바로 HTTP 메시지 컨버터 덕분인데요. @ResponseBody의 사용 원리를 봅시다. 스프링은 @ResponseBody 어노테이션이 있으면 HttpMessageConverter를 호출합니다. HttpMessageConverter에는 JsonConverter, StringConverter 등이 있고 데이터에 따라.. 2022. 2. 2.
스프링 MVC - HTTP 응답 데이터 만들기 스프링 MVC에서 HTTP 응답 데이터는 어떻게 만들까요? 안녕하세요. 오늘은 스프링 MVC에서 HTTP 응답 데이터를 만드는 방법을 알아보겠습니다. 앞서 스프링 MVC를 도입하지 않고 서블릿의 HttpServletResponse 객체로 응답 메시지를 만드는 방법을 알아보았습니다. 궁금하신 분은 아래 게시글을 참고해주세요. HTML 삽입 미리보기할 수 없는 소스 서버에서 응답 데이터를 만드는 방법은 크게 3가지가 있습니다. 정적 리소스, 뷰 템플릿, HTTP 메시지입니다. 세 가지를 하나씩 알아봅시다. 정적 리소스 웹 브라우저에 정적인 HTML, css, js 파일을 제공하는 것입니다. source/main/resources/static 경로에 파일을 넣어두면 정적 리소스를 제공할 수 있습니다. 예를 들.. 2022. 2. 1.
스프링 MVC - HTTP 요청 메시지(헤더, 데이터) 조회 정리 스프링 MVC에서는 HTTP 요청 메시지를 어떻게 조회하나요? 안녕하세요. 오늘은 스프링 MVC로 HTTP 요청 메시지의 헤더와 데이터를 조회하는 방법을 알아보겠습니다. 앞서 스프링 MVC를 도입하지 않고 서블릿의 HttpServletRequest로 요청 메시지를 조회하는 방법을 알아보았습니다. 궁금하신 분은 아래 게시글을 참고해주세요. HTML 삽입 미리보기할 수 없는 소스 어노테이션 기반의 스프링 MVC는 더욱 편리한 요청 메시지 조회 기능을 제공합니다. 먼저 헤더를 어떻게 조회하는지 알아봅시다. 헤더 조회 헤더를 조회하는 코드를 봅시다. @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") p.. 2022. 1. 31.
스프링 MVC 요청 매핑 스프링 MVC는 요청이 들어오면 어떤 컨트롤러에 매핑하나요? 안녕하세요. 스프링 MVC에서 요청이 왔을 때, 어떤 컨트롤러가 매핑되는지 알아봅시다. 요청 매핑 http://localhost:8080/mapping 으로 들어온 요청을 처리하는 컨트롤러는 아래 코드처럼 만듭니다. @Slf4j @RestController public class MappingController { @RequestMapping("/mapping") public String mapping(){ log.info("mapping"); return "ok"; } } 첫 번째 줄의 @Slf4j는 로그를 찍기 위한 어노테이션으로, 요청 매핑과는 무관합니다. 두 번째 줄의 @RestController와 다섯 번째 줄의 @RequestMapp.. 2022. 1. 30.
스프링 MVC를 이용해서 회원 관리 웹 만들기 스프링 MVC를 이용해서 어떻게 웹을 만들까요? 안녕하세요. 오늘은 스프링 MVC를 이용해서 간단한 회원 관리 웹을 만들어보겠습니다. 회원 등록 폼을 보여주고, 회원을 저장하고, 회원 목록을 조회하는 웹입니다. 앞서 회원 관리 웹을 서블릿, JSP, MVC 패턴을 적용해서 만들어보았습니다. 관심 있으신 분은 아래 게시글을 참고해주세요! 함께 코드를 작성하실 분은 가장 위의 게시글 '서블릿으로 회원 관리 웹 만들기'에서 '회원 도메인, 회원 저장소 만들기'를 먼저 수행해주세요! HTML 삽입 미리보기할 수 없는 소스 V1 - 시작하기 스프링은 어노테이션 기반 컨트롤러를 제공하기 때문에 정말 간편합니다. @Controller : 컨트롤러 메소드가 있는 클래스에 @Controller 어노테이션을 붙여서 스프링.. 2022. 1. 28.
핸들러 매핑, 핸들러 어댑터, 뷰 리졸버 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버에는 어떤 것들이 있고 어떻게 사용될까요? 안녕하세요. 오늘은 스프링 MVC 구조 중에서 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버를 자세히 알아보겠습니다. 지난 게시글에서 스프링 MVC의 전체적인 구조를 알아보았는데요, 궁금하신 분은 아래 게시글을 참고해주세요. https://passionate.tistory.com/43 스프링 MVC 구조 스프링 MVC는 어떤 구조로 이루어져 있을까요? 안녕하세요! 오늘은 스프링 MVC의 구조를 알아보겠습니다. 앞서 MVC 프레임워크를 점진적으로 만들어보았습니다. 관심 있으신 분들은 아래 링크를 passionate.tistory.com 스프링 MVC의 구조는 아래와 같습니다. 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버를 자세히 알아.. 2022. 1. 27.
스프링 MVC 구조 스프링 MVC는 어떤 구조로 이루어져 있을까요? 안녕하세요! 오늘은 스프링 MVC의 구조를 알아보겠습니다. 앞서 MVC 프레임워크를 점진적으로 만들어보았습니다. 관심 있으신 분들은 아래 링크를 참고 해주세요. HTML 삽입 미리보기할 수 없는 소스 스프링 MVC 구조 최종적으로 만든 MVC 프레임워크의 구조는 아래 사진과 같습니다. 직접 만든 MVC 프레임워크는 스프링 MVC와 매우 유사합니다. 스프링 MVC 구조를 봅시다. 객체의 이름만 다르고 작동 과정은 거의 유사합니다. 1. 요청이 들어오면 DispatcherServlet으로 들어가고, 핸들러 매핑 객체를 불러서 핸들러를 조회합니다. 2. 핸들러 어댑터 목록에서 핸들러를 처리할 수 있는 핸들러 어댑터를 찾습니다. 3. 핸들러 어댑터를 실행합니다. .. 2022. 1. 26.
MVC 프레임워크 만들기 3 - 유연한 컨트롤러 여러 종류의 컨트롤러를 사용하고 싶다면 어떻게 할까요? 안녕하세요! 오늘은 유연한 컨트롤러를 도입한 MVC 프레임워크를 만들어 보겠습니다. 지금까지 MVC 프레임워크를 두 단계로 발전시켜왔습니다. 첫 번째로 프론트 컨트롤러 패턴을 적용하였고, 두 번째로 모델을 추가하고 실용적인 컨트롤러를 만들었습니다. 관심 있으신 분은 아래 게시글을 참고해주세요. https://passionate.tistory.com/40 MVC 프레임워크 만들기 1 - 프론트 컨트롤러 안녕하세요! 오늘은 MVC 패턴을 따르는 프레임워크를 만들어보겠습니다. 지난 시간에 MVC 패턴을 적용해서 회원 관리 웹을 만들어보았습니다. 관심 있으신 분은 참고해주세요! https://passionate.tistor passionate.tistory.. 2022. 1. 24.