이해할 때까지 설명하는 개발자
close
프로필 배경
프로필 로고

이해할 때까지 설명하는 개발자

  • 전체 (176) N
    • 경험담(經驗) 경험담(輕險) (0)
    • 독서 (37) N
      • 소프트웨어 장인 (0)
      • tidy first (13)
      • extreme programming (23) N
      • 객체지향의 사실과 오해 (0)
    • 회고 (3)
    • 단편 (30)
      • Java (22)
      • js (2)
      • scratch (4)
      • tistory (2)
    • 시리즈 (105)
      • 나 혼자 떠드는 자바 (9)
      • Go (29)
      • Java online live study S01 (15)
      • Kubernetes (15)
      • Spring Security (22)
      • Spring Web MVC (15)
    • Archive (1)
  • portfolio
  • tech-blog
  • linked-in
  • naver-blog
3.3 핸들러 메소드 (execute & using handler method) (작성중)

3.3 핸들러 메소드 (execute & using handler method) (작성중)

이번에는 handler method 에서 사용할 수 있는 다양한 argument 에 대해 정리한다. 여러 포스트로 나누어 정리하지 않고 이번에 자주 사용하는 방법 위주로 이곳에 정리할 예정이다. spring framework document 의 Method Arguments 와 강의 내용을 참고하여 정리했다. 정리 내용 - @PathVariable 과 @MatrixVariable @PathVariable 과 @MatrixVariable PathVariable api 문서를 보면 @RequestMapping annotation 이 붙은 handler method 에서 사용할 수 있는 URI template 변수에 바인딩 되는 parameter 에 사용할 수 있다고 되어 있다. @PathVariable 을 ..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 15.
  • textsms
3.2 핸들러 메소드 : argument & return value (overview, 처리 구현체 자동 등록)

3.2 핸들러 메소드 : argument & return value (overview, 처리 구현체 자동 등록)

@RequestMapping 으로 HTTP request 에 대한 handler 를 매핑하면 이 handler 를 사용할 때 다양한 매개변수와 반환 값을 유연하게 사용할 수 있다. 다음은 공식 문서를 참고해 작성한 handler method 에서 사용할 수 있는 매개변수들과 반환 값의 목록이다. Controller method argument (handler method argument) : WebRequest : NativeWebRequest : javax.servlet.ServletRequest : javax.servlet.ServletResponse : javax.servlet.http.HttpSession : javax.servlet.http.PushBuilder : java.security.Pr..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 12.
  • textsms
3.1 요청 매핑하기 (handler method)

3.1 요청 매핑하기 (handler method)

이번에 정리 할 내용은 HTTP 요청을 handler method 에 매핑하는 방법이다. 정리에 앞서 본 내용과 무관한 코드를 정리했다. MyHelloController 를 제외한 Person, PersonFormatter, GreetingInterceptor, AnotherInterceptor 를 삭제하고 WebConfig 의 Interceptor, ResourceHandler, Jaxb 설정도 삭제했다. MyHelloControllerTest 클래스의 내용도 모두 삭제 했다. MyHelloController 에 다음과 같이 handler method 를 하나 등록 하였다. package me.nimkoes; import org.springframework.stereotype.Controller; im..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 11.
  • textsms
2.6 HTTP 메시지 컨버터 (JSON, XML)

2.6 HTTP 메시지 컨버터 (JSON, XML)

HTTP 메시지 컨버터 (이하 메시지 컨버터) 에 대해 정리한다. 메시지 컨버터 역시 WebMvcConfigurer 를 통해 설정할 수 있다. 우선 메시지 컨버터는 HTTP request body 또는 response body 에 담긴 데이터를 원하는 형태로 변환하여 사용할 수 있는 기능이다. MVC 에서 Controller 역할을 하는 handler method 가 요청 정보를 읽을 때는 @RequestBody annotation 을 사용하고, 응답 정보를 보낼 때는 @ResponseBody annotation 을 사용한다. 앞서 만들었던 MyHelloController 에 HTTP Get 요청을 처리할 수 있는 handler method 를 하나 추가했다. package me.nimkoes; impo..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 9.
  • textsms
2.5 리소스 핸들러 (default Servlet)

2.5 리소스 핸들러 (default Servlet)

리소스 핸들러는 HTML, CSS, Javascript, image 등 정적인 자원을 처리해주는 핸들러 이다. 정적 자원을 static resource, 동적 자원을 dynamic resource 라고도 부른다. 이 둘은 HTTP 요청에 따라 응답해주는 자원의 형태가 바뀔 수 있는지에 따라 구분할 수 있다. 웹 애플리케이션을 개발할 때 리소스를 요청하는 쪽을 클라이언트, 제공하는 쪽을 서버라고 한다. 이 때 일반적으로 생각하는 웹 요청을 처리하는 서버는 크게 두가지로 구분할 수 있다. 하나는 웹 서버로 정적인 자원 처리를 전담하고, 다른 하나는 웹 애플리케이션 서버로 동적인 자원 처리를 전담한다. 그럼 정적인 자원과 동적인 자원을 처리하는 서버를 구분하는 이유는 무엇일까. 쉽게 얘기하면 닭잡는 칼로 소를..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 8.
  • textsms
2.4 핸들러 인터셉터 (HandlerInterceptor interface)

2.4 핸들러 인터셉터 (HandlerInterceptor interface)

HandlerInterceptor 에 대해 정리 한다. HandlerInterceptor 는 HandlerMapping 에 적용할 수 있다. HandlerMapping 은 요청을 처리 할 handler method 를 찾아주는 역할을 한다. HandlerInterceptor 에 정의한 기능들은 HandlerMapping 이 찾아 준 handler method 에 적용 된다. 실습을 해보기에 앞서 HandlerInterceptor 에 대한 api 문서를 먼저 보자. 문서에 따르면 handler method 의 구현 내용을 수정하지 않고 공통으로 처리 할 작업들을 정의할 수 있다고 되어 있다. 이 인터페이스는 세가지 default method 를 가지고 있는 것으로 보아 굳이 구현하지 않아도 괜찮아 보인다...

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 7.
  • textsms
2.3 Spring Web MVC 의 Formatter (Spring Boot 자동 설정)

2.3 Spring Web MVC 의 Formatter (Spring Boot 자동 설정)

이번에는 Spring Web MVC 에서 Formatter 를 설정하는 방법에 대해 정리 한다. Formatter 인터페이스에 대한 api 문서를 보면 크게 두 가지 인터페이스를 상속 받고 있다. Printer 는 T 타입 객체를 문자열로 출력하는 방법에 대해, Parser 는 문자열을 T 타입 객체로 출력하는 방법에 대한 것이다. 프로젝트에서 정리에 사용 할 내용만 남기고 다른 내용은 삭제 했다. package me.nimkoes; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class My..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 6.
  • textsms
2.2 Spring Boot 의 Spring MVC 설정 (war 배포)

2.2 Spring Boot 의 Spring MVC 설정 (war 배포)

Spring Boot 의 Web MVC 설정 방법에 대해 정리 한다. 환경이 바뀌었으니 새로운 프로젝트를 만드는 것도 좋겠지만 정리에 사용중인 프로젝트를 수정하려고 한다. 우선 POM.xml 파일을 수정해서 Spring Boot 를 사용할 수 있도록 수정한다. 4.0.0 me.nimkoes SpringWebMVCSandbox 1.0-SNAPSHOT war SpringWebMVCSandbox Maven Webapp UTF-8 1.8 1.8 javax.servlet javax.servlet-api 4.0.1 provided org.springframework spring-webmvc 5.1.3.RELEASE maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 ma..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 5.
  • textsms
2.1 Spring Web MVC 설정 @EnableWebMvc, WebMvcConfigurer

2.1 Spring Web MVC 설정 @EnableWebMvc, WebMvcConfigurer

framework 와 library 는 명확한 차이가 있다. library 는 사용자가 능동적으로 어떤 도구를 사용할지 고르고 골라 필요한걸 선택해서 사용한다. framework 는 이미 구조가 짜여져 있고, 고정된 틀과 흐름이 있고 사용자는 그 흐름에 맞춰 원하는 결과가 나올 수 있도록 재료들을 제공해줘야 한다. 좀 더 쉽게 정리하면 library 는 사용자가 골라서 사용하는 거고, framework 는 사용자가 맞춰줘야 한다. 갑자기 library 와 framework 의 차이를 정리한 이유는 Spring 은 library 가 아니고 framework 이기 때문이다. 즉, framework 의 생명주기(lifecycle)에 대해 알고 언제 무슨 일이 일어나며 그 일이 일어날 때 사용자가 무엇을 제공해..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 4.
  • textsms
1.5 Spring MVC 동작 원리 마무리

1.5 Spring MVC 동작 원리 마무리

Spring Web MVC 를 사용할 때 Front Controller 로 사용하는 Servlet WebApplicationContext 를 생성하는 DispatcherServlet 클래스가 사용하는 interface 에 대해 전체적으로 훑어보며 간략하게 정리한다. DispatcherServlet 클래스는 이 servlet 이 초기화 되는 과정에서 자신이 사용 할 전략들을 등록 하는 작업을 한다. /** * Initialize the strategy objects that this servlet uses. * May be overridden in subclasses in order to initialize further strategy objects. */ protected void initStrateg..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 6. 28.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
  • 블로그 개편 안내: 더 깊이 있는 기술 글은 GitHub 블로그에서 만나보세요
전체 카테고리
  • 전체 (176) N
    • 경험담(經驗) 경험담(輕險) (0)
    • 독서 (37) N
      • 소프트웨어 장인 (0)
      • tidy first (13)
      • extreme programming (23) N
      • 객체지향의 사실과 오해 (0)
    • 회고 (3)
    • 단편 (30)
      • Java (22)
      • js (2)
      • scratch (4)
      • tistory (2)
    • 시리즈 (105)
      • 나 혼자 떠드는 자바 (9)
      • Go (29)
      • Java online live study S01 (15)
      • Kubernetes (15)
      • Spring Security (22)
      • Spring Web MVC (15)
    • Archive (1)
최근 글
인기 글
태그
  • #자바
  • #스프링
  • #java
  • #language
  • #스프링시큐리티
  • #spring security
  • #시큐리티
  • #Spring
  • #xp
  • #go
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바