웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션(Web Application) 웹 서버 기능 포함 + (정적 리소스제공가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적HTML, JSON 서블릿, JSP, 스프링 MVC WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다. 예) 톰캣, Jetty, Undertow 웹 시스템 - WEB, WAS, DB 정적 리소스는 웹 서버가 처리 웹 서버는 애플리케이션 로직같은 동적인 처리가필요하면 WAS에 요청을 위임 WAS는 중요한 애플리케이션 로직 처리 전담 서블릿 (서블릿 컨테이너) urlPatterns(/hel..
1. JSON.stringify() Object to JSON 클라이언트에서 정보를 처리할 때는 객체를 사용한다. 객체를 JSON 형식으로 저장하거나, JSON형식을 요구하는 서버로 넘기려면 -> 객체를 JSON 형식으로 변환해야 하는데 이것을 직렬화(stringify)라 한다. JavaScript 값이나 객체를 JSON 문자열로 변환 replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다. Object를 JSON으로 변환 const arr = new Array(); arr.push('11'); arr.push('22'); arr.push('33');` const obj = new Object(); obj.name = 'kyhslam'; ..
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..
| Filter 적용해보기 > 1. Java 방식 2. 설정파일(application.yml) Predicate: 조건 분기, 요청오면 어떤 조건인지 확인하는 부분 Pre Filter Post Filter 참고 URL : https://wonit.tistory.com/500 application.yml server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service # cloud: # gateway: # routes: # - id: firs..
비동기 서비스가 가능하다. zull은 동기방식 이였다. apigateway Server server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service uri: http://localhost:8081/ predicates: - Path=/first-service/** - id: second-service uri: http://localhost:8082/ predi..
🔗 역할 인증 및 권한 부여 서비스 검색 통합 응답 캐싱 정책, 회로 차단기 및 Qos 다시 시도 속도제한 부하 분산 로깅, 추적, 상관관계 헤더, 쿼리 문자열 및 청구 변환 IP허용 목록에 추가 🔗 Spring Cloud에서의 MSA간 통신 방법 RestTemplate Feign Client 아래 사이트 공부하기 https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3API-Gateway-nvk2kf0zbj MSA 제대로 이해하기 -(3)API Gateway 지난 포스팅에서 MSA를 구성하는 아키텍처 요소에 대해 살펴보았습니다. Inner Architecture와 Outer Archite..
Monolithic 모든 업무로직이 하나의 애플리케이션 형태로 패키지 되어 서비스 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스 되는 형태 MSA HTTP RESOURCE API 각 서비스에 맞게 다른 프로그래밍 언어와 데이터베이스를 선택적으로 사용할 수 있다.(- Martin Fowler) | MSA 아키텍처 예시 참고 url : https://velog.io/@minsuk/MSA-Springboot
Filter 테스트 includedFilters : 컴포넌트 스캔 대상을 추가로 지정 excludeFilters : 컴포넌트 스캔에서 제외할 대상을 지정 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyExcludeComponent { } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyIncludeComponent { } @MyIncludeComponent public class BeanA { } @MyExcludeComponent public class BeanB ..
지속적인 통합, CI(Continuous Integration) 통합서버, 소스관리(SCM), 빌드도구, 테스트 도구 ex)Jenkins, Team CI, Travis CI 지속적인 배포 Continuous Delivery Continuous Deployment Pipe line 12 Factors(https://12factor.net) : 서비스 시 고려해야할 12가지 항목 Monolithic 모든 업무로직이 하나의 애플리케이션 형태로 패키지 되어 서비스 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태 일부 기능만 수정해도 전체 애플리케이션 빌드, 배포를 다시 해줘야 한다. MSA (Microservice) There is a bare minimum of centralized m..