HttpEntity HTTP header, body 정보를 편리하게 조회 메시지 바디 정보를 직접 조회 요청 파라미터를 조회하는 기능과 관계 없음(@RequestParam X , @ModelAttirbute X) package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; import org.springframew..
| 목표: @ModelAttribute의 사용 방법 URL의 파라미터로 username, age 값 요청이 왔을 경우. @ResponseBody @RequestMapping("/model-attribute-v1") public String modelAttributeV1(@RequestParam String username, @RequestParam int age) { HelloData helloData = new HelloData(); helloData.setUsername(username); helloData.setAge(age); log.info("username={}, age={}", helloData.getUsername(), helloData.getAge()); log.info("helloDat..
목표 : 요청 파라미터 > @RequestParam 사용방법 및 활용 예제 package hello.springmvc.basic.request; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; im..
consumes는 클라이언트가 서버에게 보내는 데이터 타입을 명시한다 produces는 서버가 클라이언트에게 반환하는 데이터 타입을 명시한다
📚 객체지향의 특징 - 추상화 , 캡슐화, 상속, 다형성 📚 SOLID 로버트 마틴(클린코드 저자)의 객체 지향 설계의 5가지 원칙 SRP : 단일 책임 원칙(single responsibility principle) OCP : 개방-폐쇄 원칙 (Open/closed principle) LSP : 리스코프 치환 원칙 (Liskov substitution principle) ISP : 인터페이스 분리 원칙 (Interface segregation principle) DIP : 의존관계 역전 원칙(Dependency inversion principle) 1.SRP : 단일 책임 원칙 (single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 ..
목표 : Servlet으로 HTTP 응답데이터를 JSON으로 뿌리는 방법 package hello.servlet.basic.response; import com.fasterxml.jackson.databind.ObjectMapper; import hello.servlet.basic.HelloData; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io..
목표 : 서블릿으로 JSON의 데이터를 객체화해서 받아오기 JSON 결과를 파싱해서 사용할 수 있는 자바 객체로 변환하려면 Jackson, Gson 같은 JSON 변환 라이브러리를 추가해서 사용해야 한다. 스프링 부트로 Spring MVC를 선택하면 기본으로 Jackson 라이브러리( ObjectMapper )를 함께 제공한다. package hello.servlet.basic; import lombok.Data; @Data public class HelloData { private String username; private int age; } package hello.servlet.basic.request; import com.fasterxml.jackson.databind.ObjectMapper; ..
웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션(Web Application) 웹 서버 기능 포함 + (정적 리소스제공가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적HTML, JSON 서블릿, JSP, 스프링 MVC WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다. 예) 톰캣, Jetty, Undertow 웹 시스템 - WEB, WAS, DB 정적 리소스는 웹 서버가 처리 웹 서버는 애플리케이션 로직같은 동적인 처리가필요하면 WAS에 요청을 위임 WAS는 중요한 애플리케이션 로직 처리 전담 서블릿 (서블릿 컨테이너) urlPatterns(/hel..
Eureka Flow 먼저 apigateway와 first-service , second-service의 pom.xml에 org.springframework.cloud spring-cloud-starter-netflix-eureka-client 가 추가되어 있어야 한다. 그리고 apigateway와 first-service , second-service의 application.yml에 eureka를 등록해 준다. eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka 그리고 apigateway에는 application.yml에 uri를 수정해준다. ..
| Logging Filter 참고: https://mangchhe.github.io/springcloud/2021/04/18/SpringCloudGateway/ [Spring Cloud] Gateway로 Filter, LoadBalancer 구현 Spring Cloud Gateway를 구현하는 방법부터 여러 종류의 필터들과 로드밸런싱 적용에 대해서 알아보자 mangchhe.github.io LoggingFilter.java package com.kyhslam.apigatewayservice.filter; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFil..
| 모든 라우터에 공통으로 적용할수 있는 Global Filter 학습 모든 필터에 공통으로 적용할 수 있다. 모든 필터의 가장 첫번째와 마지막에 실행된다. GlobalFilter.java package com.kyhslam.apigatewayservice.filter; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.server.reac..
| Custom Filter Custom Filter를 적용하기 위해서는 AbstractGatewayFilterFactory를 상속받아 사용해야한다. JWT - json web token CustomFilter.java package com.kyhslam.apigatewayservice.filter; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.server.reactiv..