Design Pattern
-
[Resilience4j] 외부 서비스 호출 로직에 서킷 브레이커 패턴 적용하기Design Pattern 2024. 2. 18. 17:32
들어가며 외부 서비스에 장애가 발생하더라도 연속적인 서비스를 제공하려면 어떻게 해야할까요? 트래픽 폭증 등의 이유로 외부 서비스가 당장 복구되기 어려울 때, 계속해서 외부 서비스에 데이터를 요청한다면 해당 서버에 부하를 가하게 되고 사용자에게도 지속적으로 장애 상황이 전파될 것입니다. 이런 경우, '서킷 브레이커' 패턴을 사용함으로써 외부 서비스 호출 실패가 전체 시스템에 영향을 미치는 것을 방지할 수 있습니다. 그럼 도대체 서킷 브레이커가 무엇인지, 서킷 브레이커가 어떻게 서비스 안정성과 고가용성을 위한 디자인 패턴으로서 기능하는지 살펴보겠습니다. 참고로 저는 재시도(retry)와 서킷 브레이커(circuit breaker)를 조합해서 사용했습니다. 목차1. 서킷 브레이커 패턴이란?(feat. 고가..
-
[객체지향 프로그래밍] 「객체지향의 사실과 오해」를 읽고 업무 프로세스 개선하기Design Pattern 2023. 7. 2. 02:52
개발을 하며 가장 어려운 부분은 기능 구현보다도 단순하고 유지보수가 쉬운 코드를 만드는 것 같습니다. 처음 일을 시작했을 때에는 하나의 모듈이 클래스들과 그 클래스를 구성하고 있는 함수들로만 보였습니다. 단편적인 시각에서 코드 한줄 한줄을 바라봤고 기능 구현에 초점이 맞춰져 있었기 때문에 하나의 엔진을 '유기체'로 보는 것이 너무나도 어려웠습니다. 그래서 6개월 전 쯤 「객체지향의 사실과 오해」라는 책을 사서 읽기 시작했습니다. 이 책을 관통하고 있는 "객체지향은 내부와 외부를 명확하게 구분하는 객체들로 구성된 협력 공동체다. 메시지를 수신한 객체는 자율성을 가지고 자신의 역할을 수행할 책임을 가지고 있다."라는 개념이 너무 추상적이고 멀게만 느껴졌습니다. '객체가 사람도 아니고 어떻게 자율성을 가진..