SpringBoot
Springboot MVC 파헤치기(7) @RequestBody, @ResponseBody
Springboot MVC 파헤치기(7) @RequestBody, @ResponseBody
2022.03.15Controller에서 사용되는 @RequestBody와 @ResponseBody에 대해서 알아보겠습니다. @RequestBody: HTTP Body에 담겨온 정보를 JSON 형식으로 변환하여 객체와 맵핑해주는 역할을 합니다. @ResponseBody: HTTP Body에 정보를 전달하기 전에 객체를 JSON 형식으로 변환하여 보내주는 역할을 합니다. @RequestBody를 사용한 코드를 보겠습니다. { "size": 10, "description": "hi" } 위와 같은 JSON 형식의 데이터를 서버에게 전송했을 때 @RequestBody를 붙인 객체와 맵핑을 진행합니다. (단 JSON과 맵핑되기 위해선 필드명이 같아야 합니다. 다르면 맵핑되지 않습니다.) @GetMapping("/requestBo..
Springboot MVC 파헤치기(6) @ModelAttribute
Springboot MVC 파헤치기(6) @ModelAttribute
2022.03.14Controller에서 사용되는 @ModelAttribute에 대해서 알아보겠습니다. @ModelAttribute는 클라이언트가 전달하는 값을 객체로 맵핑해주는 역할을 합니다. HTTP Body 데이터 혹은 HTTP 파라미터를 주입합니다. 이때 생성자나 Setter로 주입하기 때문에 Setter혹은 생성자가 있어야 합니다. @Target({ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ModelAttribute { @AliasFor("name") String value() default ""; @AliasFor("value") String name() de..
Springboot MVC 파헤치기(4) @PathVarialbe
Springboot MVC 파헤치기(4) @PathVarialbe
2022.03.02Controller에서 사용되는 @PathVariable에 대해서 알아보겠습니다. @RequestMapping의 URI의 경로 변수를 넣어주는 역할을 합니다. @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface PathVariable { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; } @PathVariable name, value 속성 name과 value는 서로 Alias입니다. 따라서 둘 중 하나를 골라서 사..
Springboot MVC 파헤치기(3) @RequstMapping
Springboot MVC 파헤치기(3) @RequstMapping
2022.03.02Controller에서 사용되는 @RequestMapping에 대해서 알아보겠습니다. @RequestMapping RequestHandlerMappingHandler에서 컨트롤러를 선택할 때 사용되는 어노테이션입니다. 메서드 단위까지 세분화하여 적용할 수 있습니다. Get, Post, Put 등 HTTP 메서드와 관계없이 매핑됩니다. @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { String name() default ""; @AliasFor("path") String[] value() default {..
SpringBoot MVC 파헤치기(1)
SpringBoot MVC 파헤치기(1)
2022.02.28Spring MVC을 알아보기 전에 ServletContainer에 대해서 먼저 알아보겠습니다. ServletContainer란? 개발자가 웹서버 애플리케이션을 제작함에 있어서, 통신을 목적으로 소켓을 생성하고, port에 리스닝하는 등의 비즈니스 로직과 무관한 일을 처리해줍니다. 컨테이너는 servlet의 Life Cycle를 관리합니다. ServletContainer는 요청이 들어올 때마다 새로운 자바 스레드를 만듭니다. 이것이 동시에 여러 요청을 처리할 수 있게 되는 기반이 됩니다. Springboot에서는 web 디펜더시 를 추가하면 ServletContainer로 Tomcat이 들어오게 됩니다. Tomcat 같은 WAS는 java 파일을 컴파일해서 Servlet 객체를 만듭니다. Servlet ..
SpringBoot MVC 파헤치기 (2)
SpringBoot MVC 파헤치기 (2)
2022.02.27Spring MVC란? Spring을 활용하여 만든 애플리케이션은 Web 기반인 경우가 많습니다. 이때 Front Controller Pattern을 이용해서 만든 방식이 Spring MVC입니다. MVC는 Model, View, Controller 클래스로 분할하여 유연하고 확장성을 장점으로 갖추었습니다. Model 데이터와 비즈니스 로직을 관리 애플리케이션이 포함해야 할 데이터가 무엇인지를 정의 일반적으로 POJO로 구성 View 레이아웃과 화면을 처리 애플리케이션의 데이터를 보여주는 방식을 정의 Controller VIew와 Model 사이의 인터페이스 역할 애플리케이션 사용자의 입력에 대한 응답으로 Model 및 View를 업데이트하는 로직을 포함 Model/View에 대한 사용자 입력 및 요청을..