# spring mvc

[스프링 MVC 1편] 서블릿
김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술(유료강의)을 보면서 공부한 내용입니다. 💻 프로젝트 생성 스프링 프로젝트를 생성하기 위해 스프링 부트 스타터에서 다음과 같이 설정한다. > 💡 jar가 아닌 war로 설정하는 이유? > → war로 해

[스프링 MVC 1편] 웹 애플리케이션 이해
김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술(유료강의)을 보면서 공부한 내용입니다.웹 서버(Web Server)HTTP 기반으로 동작정적 리소스 제공, 기타 부가기능정적(파일) HTML, CSS, JS, 이미지, 영상ex) APACHE웹 애플리케이션 서

Query Param과 Form Data를 같이 사용하면 어떻게 될까?
@ModelAndView, @RequestParam을 사용하면 사용자 요청에 있는 값을 Dto나 변수에 자동 할당해준다. 그런데 PostMan을 사용 중 실수로 Query param과 Form data를 같이 사용했고, 원했던 입력값 검증결과가 나오지 않았다.(Arti

MVC의 @RequestMapping은 어떻게 데이터를 원하는 형태로 전달받을까?
개요 애노테이션을 활용한 스프링 MVC의 컨트롤러를 작성하게되면, 다음과 같은 @RequestMapping 애노테이션만으로 HTTP 리퀘스트를 원하는 URL로 받고, 과 @RequestBody를 통해 HTTP body 값을 원하는 객체로 매핑해준다. 이게 어떻게 가능한 이유는, 스프링에서 내부적으로 URL에 따라 해당 요청을 처리하는 메서드를 찾고, 파...

Spring MVC의 DispatcherServlet
개요 스프링 MVC로 사용자의 HTTP 요청을 처리하게 하려면 아래처럼 간단한 컨트롤러를 작성해서 만들 수 있다. 이게 가능한 이유는 복잡한 구현을 Spring이 프레임워크 차원에서 숨겨두고 있기 때문인데, 내부에서 어떤 과정을 거쳐서 처리되는지 알아보자. DispatcherServlet 스프링 MVC는 HTTP 프로토콜을 통해 들어오는 모든 요청...
Spring MVC Request처리 방법
1. 공부배경 사이드 프로젝트 중 스프링의 리퀘스트 처리 방법 관련 헷갈릴 때가 있어 정리하였다. 2. 공부내용 스프링 MVC에서는 총 5가지 방법을 이용해 HTTP Request를 처리할 수 있다. 5가지 방법은 아래와 같다. a. HttpServletReq

파일 업로드
HTTP를 이용하여 통신을 할 때, 보통의 경우 문자 데이터를 보내는 경우가 많다.만약, 문자 데이터가 아니라 파일 형태의 데이터를 보내고자한다면 어떻게 해야할까? 일반적으로 문자 데이터를 HTTP를 통해 보내는 방법으로는 쿼리 파라미터 형식의 GET 요청으로 요청 U
스프링 타입 컨버터
스프링 MVC 컨트롤러에서는 메서드의 파라미터로 다양한 타입의 데이터를 받을 수 있다. 이게 가능했던 이유는 스프링의 ArgumentResolver가 메서드에 필요한 파라미터 값을 만들어서 넣어주기 때문이었는데, 그 때의 기억을 되살려보자. HTTP 요청 메시지로 넘어

API 예외처리
HTML 페이지의 경우, 예외가 발생했을 때 사용자에게 볼 수 있는 오류 페이지가 있으면 대부분의 문제를 해결할 수 있었다. 그런데 API의 경우에는 어떻게 해야할까? API는 사용자에게 직접 보여지는 HTML 페이지를 반환하는 것이 아니라, JSON 형태의 데이터를
Spring MVC(4) @ExceptionHandler과 @ControllerAdvice를 이용한 API 예외처리
1. @ExceptionHandler 2. @ControllerAdvice
예외 처리와 오류 페이지
웹 서비스에서는 잘못된 요청이 서버로 들어왔을 때, 서비스를 사용하는 사용자에게 요청이 잘못되었다는 것을 알려야한다. 하지만, 요청이 잘못되었다는 것을 어떤 방식으로 알려야할까?스프링이 없는 순수 서블릿 컨테이너, 즉 아파치 톰캣같은 WAS는 서블릿을 이용하기 때문에,
Spring MVC(3) Request Handler : 응답 데이터를 만드는 방법
예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다.예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다.HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 J
Spring MVC(2) Request Handler : 요청 데이터를 읽는 방법
Spring MVC가 받은 요청을 처리하는 방식에 대해 알아보자.

[Section 3] JDBC 기반 데이터 액세스 계층(1)
사진은 마레 지구 가려고 보면 늘 마주하는 어느 부자 댁.. 호텔인듯? JDBC와 JPA가 무엇인지 어떤 차이가 있는지.. 그리고 기본 설정 방법을 배웠다. 괜찮긴 했는데 혼자 할 자신은 없어서 여러번 해봐야 될 것 같다
Spring MVC - 데이터 액세스 계층
개발자는 SQL문으로 데이터베이스에 접속해서 기능을 이용할 수 있지만 클라이언트의 유저는 UI로 요청을 보내므로 프로그램은 요청에 맞는 쿼리문을 만들고 DB API를 통해 데이터베이스에 대한 접근 권한을 얻고, 데이터를 검색, 추가, 수정, 삭제 등의 작업을 수행할 수

인터셉터
스프링 인터셉터도 서블릿 필터와 같이 웹과 관련된 공통 관심사를 효과적으로 해결할 수 있는 기술이다. 서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링 MVC가 제공하는 기술이다. 둘다 웹과 관련된 공통 관심사를 처리하지만, 적용되는 순서와 범위,