Spring

    Spring Cloud 로 MSA 개발에 필요한 다양한 컴포넌트들에 대해 알아보자! - 2

    Spring Cloud를 통해 MSA 프로젝트를 진행해 보면서 전체적인 프로세스 및 컴포넌트들에 대해 정리가 필요할 것 같아 해당 글을 작성하게 되었습니다. 이전 포스팅에서는 Service Discovery, API Gateway, Spring Cloud Config, Spring Cloud Bus에 대해 알아보았습니다. 이번 포스팅에서는 MicroService 간 통신 및 데이터 동기화에 필요한 컴포넌트들에 대해 알아보겠습니다. Microservcie 간 통신 모놀리스 방식과 달리 마이크로 서비스 방식에서는 물리적으로 분산된 서비스들 간의 통신이 필수입니다. 이러한 서비스들 간에 통신을 위한 방법에는 RestTemplate 방식과 FeignClient 방식이 있습니다. 클라이언트에서 사용자의 정보를 요..

    Spring Cloud 로 MSA 개발에 필요한 다양한 컴포넌트들에 대해 알아보자! - 1

    Spring Cloud를 통해 MSA 프로젝트를 진행해 보면서 전체적인 프로세스 및 컴포넌트들에 대해 정리가 필요할 것 같아 해당 글을 작성하게 되었습니다. Spring Cloud Spring Cloud는 분산 시스템에 필요한 여러 서비스들(configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state) 등을 제공함으로써 개발자들이 빠르게 애플리케이션을 개발할 수 있도록 합니다. Service Discovery Ser..

    Controller Layer 의 유효성 검사 대해 알아보자!

    이번 포스팅에서는 Controller Layer에서 유효성 검사를 해야 하는 이유와 어떤 식으로 유효성 검사를 하는지에 대해 알아보고, 추가적으로 유효성 코드 검사 시 발생한 중복코드를 어떻게 처리할 수 있는지 알아보도록 하겠습니다. Controller Layer에서 유효성 검사를 해야 하는 이유? Member를 등록하는 간단한 API를 동작시켰을 때 다음과 같은 에러가 발생한다면 어느 단계에서 발생한 에러일까요? 에러 코드를 확인해 봤을 때 4번에서 발생한 에러임을 확인할 수 있습니다. 그렇다면 문제는 Repository에서 호출한 쿼리가 잘못됐다고 판단할 수 있을까요? mybatis를 사용했다면 쿼리를 확인해 볼 필요가 있고, JPA의 save를 사용했다면 쿼리를 의심해 볼 순 없을 것 같습니다. 사..

    Reactive Streams 에 대해 알아보자!

    Spring Webflux 공식 문서에서 Reactive Streams에 대해 자주 언급됩니다. 그 이유는 Spring Webflux에서 Reactive Streams의 구현체인 Reactor라는 reactive library를 사용하기 때문입니다. Webflux의 동작 구조를 이해하기 위해 Reactive Streams에 대해 알아보고자 합니다. Reactive Streams? Reactive Streams는 공식 홈페이지인 reactive-streams.org에서 다음과 같이 정의하고 있습니다. Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pr..