본문 바로가기

IT34

chapter 15. 실패와 지연 처리하기 (책. Spring in Action) 15.1 서킷 브레이커 이해하기 서킷 브레이커 패턴 (circuit breaker pattern) 우리가 작성한 코드가 실행에 실패하는 경우 안전하게 처리되도록 한다. 마이크로 서비스의 실패가 다른 마이크로서비스의 연쇄적인 실패로 확산이 되는 걸 방지할 수 있다 어떤 이유로든 메서드의 실행이 실패하면, 서킷 브레이커가 개방되고 실패한 메서드에 대해 더이상 호출이 수행되지 않음. 이때 풀백을 제공해 자체적으로 실패를 처리한다. 서킷브레이커로 보호되고 있는 메서드가 실행에 성공하면(Success) 서킷은 닫힘 상태를 유지한다. 실패할 시 지금 실행되고 있는 실패한 메서드 대신 풀백 메서드가 호출되고 서킷 상태는 열림으로 바뀐다. 때때로 서킷이 절반-열림 상태(half-open)로 바뀌면서 실패했던 메서드의 .. 2022. 3. 25.
REST란? REST API란? REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST란? REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미 1. 자원(resource)의 표현(representation)에 의한 상태 전달 2. 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달 (일반적으로 JSON이나 XML을 통해 데이터를 주고 받음) 3. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 HTTP Method를 통해 해당 자원의 대한 CRUD Operation을 적용 4. REST의 형식을 따른 시스템을 RESTful 이라고 부른다. CRUD Oper.. 2022. 3. 18.
chapter 13. 서비스 탐구하기 (책. Spring in Action) 13.1 마이크로서비스 이해하기 단일 어플리케이션이란? 배포 가능한 하나의 JAR 나 WAR 파일로 개발된 어플리케이션 단일 애플리케이션 문제점 전체를 파악하기 어렵다 : 코드가 점점 더 많아질수록 애플리케이션에 있는 각 컴포넌트의 역할을 알기 어려워진다. 테스트가 더 어렵다 : 애플리케이션이 커지면서 통합과 테스트가 더 복잡해진다. 라이브러리 간의 충돌이 생기기 쉽다 : 애플리케이션의 한 기능에서 필요한 라이브러리 의존성이 다른 기능에서 필요한 라이브러리 의존성과 호환되지 않을 수 있다. 확장 시에 비효율적이다 : 시스템 확장을 목적으로 더 많은 서버에 애플리케이션을 배포해야 할 때는 애플리케이션의 일부가 아닌 전체를 배포해야 한다. 애플리케이션 기능의 일부만 확장하더라도 마찬가지다. 적용할 테크놀로지.. 2022. 3. 12.
chapter 12. 리액티브 데이터 퍼시스턴스 (책. Spring in Action) 12.1 스프링 데이터의 리액티브 개념 이해하기 릴리즈 트레인 kay (2017-10)부터 리액티브 레퍼지터리 지원을 제공하기 시작 리액티브 레퍼지터리는 카산드라, 몽고DB, 카우치베이스, Redis 등을 지원 (RDB나 JPA는 지원하지 않는데, 이는 표준화된 비동기 API를 제공하지 않기 때문이라고.. ) 스프링 데이터 리액티브 개요 리액티브 레퍼지터리는 도메인 타입이나 컬랙션 대신 Mono나 Flux를 인자로 받거나 반환하는 메서드를 갖는다는 것이 핵심 Flux findByType(Ingredient.TYPE type); 위 코드 처럼 findByType() 메서드는 Flux 타입을 반환 간단히 말해, 스프링 데이터의 리액티브 레퍼지터리는 도메인 타입이나 컬렉션 대신 Mono나 Flux를 인자로 받.. 2022. 3. 4.
반응형