Go

Microservices

서비스 아키텍처, discovery, 통신, API gateway, circuit breaker, observability, structured logging, metrics, distributed tracing

24 면접 질문·
Senior
1

모놀리식 아키텍처와 microservices 아키텍처의 주요 차이점은 무엇입니까?

답변

microservices 아키텍처에서는 애플리케이션이 독립적인 서비스로 분해되어 각각 개별적으로 개발, 배포, 확장할 수 있으며, 이는 모든 코드가 단일 프로세스에 있는 모놀리스와 다릅니다. 각 microservice는 자체 데이터베이스를 가지며 API를 통해 통신합니다. 이를 통해 확장성, 회복력, 기술적 유연성이 향상되지만 운영 복잡성이 증가합니다.

2

microservices 아키텍처에서 service discovery의 주요 역할은 무엇입니까?

답변

service discovery는 서비스가 하드코딩된 구성 없이 동적으로 서로를 찾을 수 있게 합니다. 서비스는 IP 주소와 포트를 가지고 registry(Consul, etcd, Eureka)에 등록합니다. 클라이언트는 registry에 질의하여 사용 가능한 인스턴스를 얻습니다. 이는 수평 확장, 지속적 배포, 인스턴스 장애 시 회복력을 용이하게 합니다.

3

microservices 아키텍처에서 ACID 트랜잭션 없이 분산 데이터 일관성을 관리하는 pattern은 무엇입니까?

답변

Saga pattern은 일련의 로컬 트랜잭션을 통해 분산 데이터 일관성을 관리합니다. 각 서비스는 자신의 트랜잭션을 실행하고 이벤트를 발행합니다. 단계가 실패하면 보상 트랜잭션이 이전 변경을 되돌립니다. 구현은 오케스트레이션(중앙 코디네이터) 또는 코레오그래피(pub/sub 이벤트) 방식이 가능합니다. 이는 분산 락 없이 최종 일관성을 보장합니다.

4

Consul로 service discovery를 구현하기 위해 일반적으로 사용되는 Go 라이브러리는 무엇입니까?

5

microservices 간 동기 통신(REST/gRPC)과 비동기 통신(messaging)의 주요 차이점은 무엇입니까?

+21 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기