Backend
마이크로서비스의 독립적인 서비스들은 각각 자체 데이터 스토어를 가지며 서로 통신하여 전체 시스템을 구성한다. 데이터 동기화는 이러한 독립적인 마이크로서비스 간에 데이터 일관성을 유지하고 서로의 상태를 동기화하기 위해 중요한 측면을 띄고 있다. E-Commerce 어플리케이션에서 예를 들면 주문 관리 서비스와 재고 관리 서비스가 각각의 데이터베이스를 가질 때, 주문이 발생하면 재고를 감소시켜야 한다. 이 때, 이벤트 기반의 Message Broker, 혹은 Message Queueing Service는 이런 데이터의 동기화에 유용하게 사용될 수 있다. 위 사례에서, Order-service가 주문을 처리함과 동시에 Message Broker에게 이벤트를 Produce하면서, Catalog-service는 ..
이번 포스팅에서는 Kafka Connector를 설치하고, 데이터베이스와 같은 Source들 사이에서 데이터 이동을 Kafka Connect를 연결하여 수행해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Connect Connect를 통해 Source System(특정 데이터 소스, 스토..
해당 포스팅에서는 Kafka를 설치하고, CLI를 통해 Publisher, Consumer 간의 메시지 교환을 확인해보려고 한다. Kafka에 대한 대략적인 개념은 해당 포스팅에 작성하였으므로 참고하면 좋을 것 같다. https://sjh9708.tistory.com/151 [Apache Kafka] Kafka의 주요 개념과 구성 요소 Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되 sjh9708.tistory.com Kafka Server 설치 https://kafka.apache.org/downloads Apache Kafka Apache Kafka..
Apache Kafka는 데이터의 실시간 스트리밍 및 이벤트 처리에 유용한 도구로서 활용된다. Kafka는 대규모 분산 시스템에서 안정적이고 확장 가능한 메시지 큐와 이벤트 스트리밍 플랫폼으로 사용되어, 데이터의 실시간 처리 및 분석에 사용된다. 여러 대의 Application의 로그 및 데이터를 수집하여 집계하거나, 서버들 간의 데이터 동기화를 위한 메세지 교환을 위해서 Kafka는 매우 유용한 수단이 될 수 있다. Kafka의 주요 특징 Event-Oriented : Kafka는 이벤트 스트리밍 플랫폼으로서, 발생하는 이벤트가 중심이 되어 시스템이 구성된다. 이벤트를 실시간으로 수집하고 처리한다. Publish-Subscribe 모델 Consumer(메시지를 받는 주체)가 어느 Topic(카테고리라..
이전 포스팅에서는 Microservice들의 설정을 일괄적으로 할 수 있는 Config Server를 구축해 보았었다. 이번에는 분산된 Microsevice들 간의 통신에 대해서 다루어 보려고 한다. MSA 간의 통신의 필요성 다음 마이크로서비스의 경우를 생각해보자. 만약 User를 ID를 기반으로 조회할 때, 해당 유저가 주문한 주문내역을 함께 응답으로 주고 싶다고 생각해보자. 이럴 경우, Order Service와의 통신이 이루어져야 한다. 전통적인 Monolithic 아키텍쳐는 단일 데이터베이스 아래에서 외래키 참조와 Join을 통해 다른 도메인의 데이터를 가져오곤 했었다. 그렇지만 MSA라는 개념이 도입된 이후로, 같은 서비스 내에서 참조 가능한 데이터는 외래키와 Join을 통해서 가져오면 되지만..
이번 포스팅에서는 스프링의 프레임워크로서의 핵심 작동 원리인 의존성 주입(DI) 및 제어의 역전(IoC) 및 Bean에 대해서 살펴볼 것이다. 다룰 내용은 아래와 같다. 의존성 주입 (DI), 제어의 역전(IoC)의 개념 Spring Boot에서 Bean을 등록하는 방법 2-1. Configuration + Bean 2-2. Component Spring Boot에서 의존성 주입(DI)을 수행하는 방법들 Autowired 생성자 주입 RequiredArgsConstructor Qualifier와 Primary 1. 의존성 주입 (DI), 제어의 역전(IoC)의 개념 DI (Dependency Injection, 의존성 주입) 객체가 의존하는 다른 객체를 직접 생성하는 것이 아닌 외부로부터 받는 것을 뜻한..
여름에 Django Project를 진행한 이후, 한동안 사용할 일이 없었다가 더 생각나지 않기 전에 지금까지의 장고 프로젝트 생성부터, MVT 구조, Model, View, Template을 비롯한 Single Web Application을 만드는 전반적인 내용들을 요약하여 작성하고자 한다. 내가 생각하기에 Django Framework의 장점은 관리자 기능이나, 로그인 등 많이 사용할 법한 인터페이스들이 Django App 모듈로 지원되기 때문에 가져다 쓸 수 있다는 것이 가장 큰 장점인 것 같다. 만약에 내가 나중에 급하게 관리자 페이지를 만들어야 하는 일이 생긴다면 장고를 택할 확률도 높을 것이라고 생각한다. 나중에 Django를 사용할 일이 있을 때, 해당 포스팅을 보면서 기억을 더듬을 수 있었..
이전 포스팅에서는 Spring Configuration Server를 구축하여, Microservice들의 설정들을 중앙에서 효율적으로 관리할 수 있도록 만들어 보았었다. 해당 내용과 이어지는 내용이므로, 앞의 포스팅을 보지 못했다면 보고 오는 것을 권장한다. https://sjh9708.tistory.com/123 [Spring Cloud] Microservice(MSA) 구축 : (4) Spring Cloud Config Server 구축 이전 포스팅에서는 여러개의 Microservice를 만들고, Spring Cloud Gateway와 Registry Server를 구축하여보았었다. 이번 포스팅에서는 Spring Configuration Server를 구축하여, Microservice들의 설정들을 ..
이전 포스팅에서는 여러개의 Microservice를 만들고, Spring Cloud Gateway와 Registry Server를 구축하여보았었다. 이번 포스팅에서는 Spring Configuration Server를 구축하여, Microservice들의 설정들을 중앙에서 효율적으로 관리할 수 있도록 만들어 보려고 한다. Spring Cloud MSA 구조를 다시 보면.. Spring Cloud는 분산 시스템과 MSA를 쉽게 개발하고 구축하기 위한 Spring 기반의 프레임워크 모음이다. Spring Cloud는 다양한 분산 시스템 문제에 대한 해결책을 제공하며, 여러 서비스로 구성된 복잡한 시스템을 쉽게 관리하고 확장할 수 있도록 지원한다 Spring Cloud API Gateway 마이크로서비스 아키..