# msa
MSA
회사에서 개발을 할 때 우리의 개발은 MSA로 진행이 된다. 입사 초반에는 MSA가 뭔지, 왜 굳이 이렇게 나눈건지 신경쓸 일 없이 얼른 코드를 짜서 배포하느라 바빴다.이번에 개발을하고, 서버팀 규모도 커지면서 공통적인 코드가 많아진 느낌이라 오히려 MSA가 독인 거

[MSA구축] Spring Cloud API-Gateway 의 인증인가처리
Spring Cloud API Gateway를 MSA에서 도입하는 이유는 여러 가지가 있다. 먼저, API Gateway는 요청을 중앙 집중화하여 처리함으로써 마이크로서비스 간 통신을 단순화한다. 또한, 라우팅, 로드 밸런싱, 인증 및 인가와 같은 공통 기능을 한 곳에

Catalogs & Orders Microservice
APIs | 기능 | 마이크로서비스 |URI | HTTP Method | | - | - | - | - | |상품 목록 조회 | Catalogs Microservice | /catalog-service/catalogs | GET | | 사용자 별 상품 주문| Orders

Users Microservice (3)
전체 사용자 조회 & 사용자 정보, 주문 내역 조회 기능 전에 만들었던 Api-gateway server를 사용한다. 게이트웨이 서버에 routes 주소를 위와 같이 작성한다. /user-service/** 요청이 들어오면 유레카 서버에서 USER-SERVICE를

MSA 완벽 정복?!
하나의 큰 서비스를 작은 단위로 쪼개서 원하는 서비스를 조합하는 아키텍처MSA는 여러개의 작고, 독립적인 서비스들을 조합하여 복잡한 application을 만드는 Architecture이다.각각의 독립적인 서비스는 MSA에 유연성을 부여하고 이 유연성은 개발 및 운영
[Kafka] Kafka 활용 01
MSA 프로젝트를 연습해보면서 kafka를 적용하는 강의를 들었다. sink connect 역할 topic에 전달된 데이터를 사용

Users Microservice (2)
사용자 서비스 첫 번째 기능인 신규 회원 등록이다.사용자가 회원가입 요청 시 RequstBody Json 형태로 값을 보낼 것이다.사용자가 /users로 body값에 회원가입 정보와 함께 요청을 한다.@RequestBody 어노테이션을 사용하여 vo에 값을 넣어준다.M

Users Microservice (1)
사용자(회원)에 관한 기능들을 모아둔 서비스이다.비즈니스 로직은 Spring Boot와 Spring Cloud를 사용할 예정이다.데이터베이스는 내장 데이터베이스인 H2를 사용할 예정이다.신규 회원 등록회원 로그인상세 정보 확인회원 정보 수정/삭제상품 주문주문 내역 확인

간단한 MSA 이커머스 프로젝트 (1)
간단한 이커머스 프로젝트를 진행한다.Spring Cloud와 MSA를 사용할 예정이다.Git Repository : 마이크로서비스 소스 관리 및 프로파일 관리Config Server : Git 저장소에 등록된 프로파일 정보 및 설정 정보Eureka Server : 마이
[Infra] SOA vs MSA
서비스 공유 지향점 : 재사용을 통한 비용 절감기술 방식 : 공통의 서비스를 ESB에 모아 사업 측면에서 공통 서비스 형식으로 서비스 제공서비스 공유 지향점 : 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응기술 방식 : 각 독립된 서비스가 노출된 REST API를
[Infra] Monolithic vs Microservice
모든 업무 로직이 하나의 어플리케이션 형태로 패키지 되어 서비스어플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태시스템 하나만 수정해도 어플리케이션 전체를 다시 빌드, 배포해야함함께 작동하는 여러가지의 작은 서비스서비스를 컨테이너로 하나씩 분리하여

MSA 전환시, 세션 유지를 위한 방법들..
Monolithic → MSA 전환 회사에서 프로젝트를 진행하면서, Monolithic 구조로 되어있는 시스템을 MSA 구조로 전환하는 프로젝트를 진행하였습니다. 기존의 시스템은 오랫동안 운영/유지보수 되고있던 대형 프로젝트였고, 복잡한 비즈니스 로직과 서비스들간

Spring Cloud + MSA (4)
전에 작성했던 코드들과 설명을 기반으로 로드 밸런서를 간단하게 해볼것이다.사용자가 gateway 도메인으로 요청을 보낸다.ex: localhost:8000/first service/welcomegateway는 discovery service를 해주는 Eureka Ser

[MSA] CQRS 이런거였어?
QUOTE THE DAY“ 에러 없는 프로그램을 만드는 데는 두가지 방법이 있다. 그런데 세번째 것만 작동한다. ”\- Alan J. Perlis (앨런 J. 펄리스)📝직역하자면 명령과 쿼리의 역할을 구분한다는 것이다. Create-Insert, Update, Del

Spring Cloud + MSA (3)
Custom Filter 이번엔 커스텀 필터를 만들어 적용함. 전에 했던건 주석 처리하고 커스텀 필터 파일 작성. AbstractGatewayFilterFactory 상속 받고 데이터 타입을 커스텀 필터.config로 함. 생성자 만들어주고 apply 오버라이딩

Spring Cloud + MSA (2)
앞서 작성한 파일을 가지고 진행한다. application.yml 파일에 라우트 정보를 주석 처리 후 자바 코드로 필터를 적용해보자.위 코드는 위에서 주석처리한 것을 자바코드로 나타낸 것이다.필터 설정파일을 하나 생성하고 RouteLocator 빈을 하나 등록한다.매개

Spring Cloud + MSA (1)
MSA구성을 지원하는 Springboot기반 Framework이다.간단한 예제로 사용법을 알아보자.Spring Boot version : 2.7.9Dependency - gatewayspring-cloud-starter-gatewayspring-cloud-starter