# README

## 1. Monolithic to Microservice

* Monolithic 구조에서 Microservice 구조로 바뀜   &#x20;
* 사용자가 모든 서비스로 개별 접속 할수는 없음 &#x20;
* [Netflix 사례](https://github.com/SDSACT/coe-guide/blob/master/README2.md#1-netflix-oss)

![](/files/-LGYyKdLMWT4afd52syP)

## 2. Service Discovery

* Service를 eureka에 등록 하여 id 기반으로 endpoint 탐색이 가능하게 함 &#x20;
* Auto scaling에 유연하게 대처할 수 있음 &#x20;
* [Eureka 동작 방식](https://github.com/SDSACT/coe-guide/blob/master/Service%20Discovery/Eureka_2.md#eureka기능)

![](/files/-LGYyKdRltmFrCBIxEcQ)

## 3. Client Load Balancing

* 여러 instances에 대해 loadbalancing이 가능 &#x20;
* [Ribbon](https://github.com/SDSACT/coe-guide/blob/master/README2.md#4-ribbon)

![](/files/-LGYyKdXg8SVUxqbl_3Q)

## 4. Gateway

* Zuul을 gateway로 사용하여 하나의 인입점을 만듦
* Zuul이 모든 요청을 관련 서비스에게 routing 함   &#x20;
* [Zuul](https://github.com/SDSACT/coe-guide/blob/master/Gateway/Zuul_2.md#zuul-이란)

![](/files/-LGYyKdPWVV4BVLtS4na)

## 5. Inner Service Call

* Feign을 사용하여 다른 서비스 호출을 쉽게 할 수 있음 &#x20;
* [Feign](https://github.com/SDSACT/coe-guide/blob/master/Etc/Feign.md#client-api-call)

![](/files/-LGYyKdTvWoC8YT0OgRL)

## 6. Circuit Breaker

* 하위 서비스 장애 상황시 장애가 상위로 전파되는것을 방지 함 &#x20;
* Fallback을 통해 장애시 미리 정의된 값으로 처리 할 수 있음 &#x20;
* [Hystrix](https://github.com/SDSACT/coe-guide/blob/master/Circuit%20Breaker/Hystrix.md#hystrix란)
* [Hystrix 동작 방식](https://github.com/SDSACT/coe-guide/blob/master/README2.md#53-회로-차단기-circuit-breaker)

![](/files/-LGYyKdZ3OFfAh8zdm1X)

## 7. Distributed Log Tracking

* Sleuth를 사용하여 분산 환경에서 로그 추적을 쉽게 할 수 있음    &#x20;
* [Sleuth](https://github.com/SDSACT/coe-guide/blob/master/Log/Sleuth.md#sleuth-란)

![](/files/-LGYyKdVGS1EHt-Op4zj)

## 8. Ribbon and Hystrix on Zuul

* Ribbon, Hystrix는 zuul에도 적용 가능   &#x20;

![](/files/-LGYyKdaEYbKqGCxcCws)

## 9. Config Server

* 서비스들의 config를 통합 관리할 수 있음
* Config 변경 내용 무중단 반영 가능 &#x20;

![](/files/-LGYyKdcFq52zVl9PLHN)

## Circuit Breaker

* Hystrix

## Config

* SpringCloudConfig

## Gateway

* Zuul

## Load Balancing

* Ribbon

## Log

* Sleuth
* EFK

## Messaging

* RabbitMQ
* Kafka

## Monitoring

* Spring Boot Admin

## Service Discovery

* Eureka

## Sidecar Pattern

* SpringCloudNetflixSidecar

## Tracing

* Pinpoint
* Elastic APM

## Etc

* Feign


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coe.gitbook.io/guide/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
