

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# FAQ
<a name="faq"></a>

이 섹션에서는 마이크로서비스의 데이터 지속성 활성화와 관련하여 자주 제기되는 질문에 대한 답변을 제공합니다.

## 현대화 여정의 일환으로 모놀리스 데이터베이스를 언제 현대화할 수 있습니까?
<a name="q1"></a>

모놀리스 애플리케이션을 마이크로서비스로 분해하기 시작할 때는 모놀리스 데이터베이스를 현대화하는 데 집중해야 합니다. 데이터베이스를 애플리케이션에 맞게 조정되는 여러 개의 작은 데이터베이스로 분할하는 전략을 세워야 합니다.

## 여러 마이크로서비스를 위한 레거시 모놀리스 데이터베이스를 유지할 수 있습니까?
<a name="q2"></a>

여러 마이크로서비스에 대한 공유 모놀리스 데이터베이스를 유지하면 밀결합이 이루어지므로 변경 사항을 마이크로서비스에 독립적으로 배포할 수 없으며 모든 스키마 변경 사항은 마이크로서비스 간에 조정되어야 합니다. 관계형 데이터 저장소를 모놀리스 데이터베이스로 사용할 수 있지만 일부 마이크로서비스에는 NoSQL 데이터베이스가 더 적합할 수 있습니다.

## 마이크로서비스 아키텍처용 데이터베이스를 설계할 때 고려해야 할 사항은 무엇입니까?
<a name="q3"></a>

애플리케이션 기능에 맞는 도메인을 기반으로 애플리케이션을 설계해야 합니다. 애플리케이션의 기능을 평가하고 관계형 데이터베이스 스키마가 필요한지 여부를 결정해야 합니다. 요구 사항에 맞으면 NoSQL 데이터베이스 사용도 고려해야 합니다.

## 다양한 마이크로서비스 전반에서 데이터 일관성을 유지하기 위한 일반적인 패턴은 무엇입니까?
<a name="q4"></a>

가장 일반적인 패턴은 [이벤트 기반 아키텍처](https://aws.amazon.com//event-driven-architecture/)를 사용하는 것입니다.

## 트랜잭션 자동화를 유지하려면 어떻게 해야 합니까?
<a name="q5"></a>

마이크로서비스 아키텍처에서 트랜잭션은 서로 다른 마이크로서비스가 처리하는 여러 로컬 트랜잭션으로 구성됩니다. 로컬 트랜잭션이 실패할 경우 이전에 완료된 성공적인 트랜잭션을 롤백해야 합니다. 이런 상황을 피하려면 [Saga pattern](saga-pattern.md)을(를) 사용하면 됩니다.

## 각 마이크로서비스에 대해 별도의 데이터베이스를 사용해야 하나요?
<a name="q6"></a>

마이크로서비스 아키텍처의 주요 장점은 느슨한 결합입니다. 각 마이크로서비스의 영구 데이터는 비공개로 유지되어야 하며 마이크로서비스의 API를 통해서만 액세스할 수 있어야 합니다. 마이크로서비스가 동일한 데이터베이스를 공유하는 경우 데이터 스키마의 변경 사항을 신중하게 평가해야 합니다.

## 마이크로서비스가 모두 단일 데이터베이스를 공유하는 경우 마이크로서비스의 영구 데이터를 비공개로 유지하려면 어떻게 해야 합니까?
<a name="q7"></a>

마이크로서비스가 관계형 데이터베이스를 공유하는 경우 각 마이크로서비스에 대한 개인 테이블이 있는지 확인하세요. 개별 마이크로서비스 전용의 개별 스키마를 만들 수도 있습니다.