Server/Spring MVC
-
[Spring] MVC 동작 방식 디버깅을 통해 알아보기Server/Spring MVC 2021. 10. 23. 12:08
Spring MVC 프레임워크 동작 방식 Spring Boot, Spring MVC가 엄청난 설정들을 대신 해주기에 편리하게 사용할 수 있는 것인데요. Spring MVC를 구성하는 주요 요소가 무엇이고 각 구성 요소들이 서로 어떻게 연결되는지 정도는 이해하면 좋을 것 같아서 이번 글에서 정리해보려 합니다. Spring MVC 핵심 구성 요소 위의 그림에서 이라고 되어 있는 것들은 Spring Bean으로 등록해야 하는 것을 의미합니다. 그리고 분홍색으로 칠해져 있는 것은 개발자가 직접 Spring Bean으로 등록해야 하는 것을 의미합니다. 예를들어, @Controller를 통해서 직접 Controller Class를 만든 후에 @Controller로 Bean으로 등록하는 것을 의미합니다. @Contr..
-
[Spring] MVC HttpSession, Interceptor, Cookie 정리하기Server/Spring MVC 2021. 10. 20. 01:19
Spring MVC : 세션, 인터셉터, 쿠키 로그인을 구현하는 방법에는 크게 JWT, Session-Cookie 방식 두 가지가 존재합니다. 저는 지금까지 두 가지 중에 항상 JWT를 사용해서 로그인을 구현해왔는데요. 그래서 Session-Cookie를 사용했을 때 어떤 장단점이 있는지 직접 개발하면서 체감 해보진 못하고 이론적으로만 공부해보았습니다. JWT는 직접 개발하면서 느낀 결과 여러가지 장점이 있지만, 토큰이 탈취 당할 수 있다는 것이 가장 큰 단점이라고 많이 느꼈습니다. 그래서 이번 글에서는 JWT 대신 세션에 대해서 알아보고 추가적으로 인터셉터, 쿠키에 대해서도 살~짝 정리해보겠습니다. HttpSession 사용하기 Controller에서 HttpSession을 사용하려면 아래의 두 가지 ..
-
[Spring] @Valid를 이용해 @RequestBody DTO 검증하기Server/Spring MVC 2021. 10. 12. 02:34
Spring Valid 사용하여 @RequestBody 검증하기 클라이언트로부터 서버로 받아오는 값들을 검증하지 않고 로직을 실행하면 문제가 발생할 수도 있기에 검증이 필요한데요. 그래서 이번 글에서는 Spring 에서 @Valid를 사용해서 @RequestBody를 통해서 들어오는 DTO 값들을 검증하는 법에 대해서 정리해보겠습니다. 그리고 프로젝트는 Spring Boot gradle 기반으로 만들어서 해보겠습니다. implementation 'org.springframework.boot:spring-boot-starter-validation' 먼저 @Valid를 사용하기 위해서 build.gradle에 위의 의존성을 추가하겠습니다. Valid 적용하기 @RequestMapping("/api/v1/te..
-
[Spring] MVC 기본 어노테이션과 Lombok 정리하기Server/Spring MVC 2021. 10. 7. 21:59
Spring 기본적인 어노테이션 정리하기 이번 글에서는 Spring Boot에서 MVC를 사용할 때 자주 사용하는 어노테이션과 Lombok 어노테이션에 대해서 간단하게 알아보겠습니다. 위의 사진은 먼저 Spring Boot로 프로젝트를 만들었을 때 프로젝트 구조에 대한 정리입니다. 보통 view 와 관련된 파일들을 resources 디렉토리 아래에 작업을 하는데요. 대표적으로 jsp가 존재합니다. Spring Boot에서 jsp를 사용하는 법 은 여기를 확인하시면 됩니다. 대략 프로젝트 구조에 대해서 정리가 되었다 가정하고 바로 어노테이션들의 특징에 대해서 알아보겠습니다. @RequestMapping RequestMapping은 URI를 Controller의 메소드와 맵핑을 할 때 사용하는 스프링 프레임..
-
[Spring] 스프링 웹 계층이란?Server/Spring MVC 2020. 8. 26. 10:44
이번 글에서는 스프링은 어떤 계층이 존재하는지와 계층의 역할을 무엇인지, 프로젝트시 패키지를 어떻게 나누는 것이 좋은지에 대해 정리해보려 한다. 스프링의 계층은 Presentation Layer, Business, Layer, Data Access Layer 크게 3개로 나눌 수 있다. 프레젠테이션 계층 - 브라우저상의 웹 클라이언트의 요청 및 응답을 처리 - 서비스계층, 데이터 엑세스 계층에서 발생하는 Exception을 처리 - @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함 서비스 계층 - 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증 - 트랜잭션 관리 - 프레젠테이션 계층과 데이터 엑세스 계층 사이를 연결하는 역할로서 ..
-
[Spring] @MVC와 DispatcherServlet에 대해서Server/Spring MVC 2020. 7. 25. 01:45
DispatcherServlet란? 스프링 MVC는 DispatcherServlet의 등장으로 web.xml의 역할이 엄청나게 축소되었다. 예전에는 서블릿을 URL로 활용하기 위해서는 반드시 web.xml에 등록하여 사용했지만 이제는 DispatcherServlet이 해당 어플리케이션으로 들어오는 요청을 모두 핸들링해준다. 기존 방식은 요청 URL당 Serlvet을 생성하고 그에맞는 Controller에게 맵핑이 되어 요청을 보내주는 코드를 하나하나 작성해야 했다. DispatcherServlet은 하나의 Servlet에서 모든 요청을 받아들여 그에 맞는 Controller로 보내주는 역할을 한다. 그리고 @MVC에서 DispatcherServlet가 담당하는 역할이 무엇인지 정리해보자. ① 클라이언트가..