반응형

[IT]/MSA 3

[MSA] REST Web Service 성숙도 모델 (REST Maturity Model)

성숙도 모델을 통한 REST Web Service의 성숙도 판단하기 Leonard Richardson이 REST 서비스 성숙도 모델을 고안함. 레벨 0 : 단일 URI와 단일 동사로부터 레벨 3 : HATEOAS까지 총 네 단계로 구성되어 있음. 레벨 2 부터 진정한 RESTful 서비스 수준에 도달했다고 말할 수 있음. 성숙도 모델 레벨 별 요약 Level 3 : HATEOAS 클라이언트 요청에 따른 응답에 하이퍼미디어 컨트롤을 포함하고 있어서 클라이언트가 다음에 어떤 액션을 할 지 안내한다. 리소스를 표현하는 것 이상의 정보를 갖고 있어서 RESTful에 대한 논쟁이 있다. Level 2 : HTTP Verbs POST와 더불어 GET, HEAD, DELETE, PUT을 사용하며, 진정한 REST 서..

[IT]/MSA 2022.05.09

[MSA] SAGA 패턴 이해하기 : 개념, 정의

SAGA 패턴이란? : 분산 어플리케이션(Ex. MSA)의 일관성을 유지하고 여러 마이크로 서비스 간의 트랜잭션을 조정하여 데이터 일관성을 유지하는 데 도움이 되는 장애 관리 패턴이다. 더보기 기존의 모놀리식(Monolithic) 환경에서는 DBMS가 기본적으로 제공해주는 트랜잭션 기능을 통해서 데이터 Commit / Rollback을 통해서 일관성있게 관리되었다. 하지만, 점차 DB나 어플리케이션이 분산되면서 해당 트랜잭션 처리를 단일 DBMS에서 제공하는 기능으로는 해결할 수 없어졌다. 이에 따라, 데이터 일관성을 유지하는 데 도움을 주는 여러 패턴이 나왔다. SAGA 패턴을 알기 전에 - Two-Phase Commit Two-Phase Commit은 여러 서비스 간에 트랜잭션 처리 중 데이터 일관성..

[IT]/MSA 2022.04.05

[MSA] CQRS 패턴 이해하기 (명령과 조회의 책임 분리) : 정의, 사용목적, 적용예제

CQRS (Command and Query Responsibility Segregation)_명령과 조회의 책임 분리 : 명령 (시스템 데이터 변경-CREATE, UPDATE, DELETE)역할을 수행하는 구성요소와 쿼리(시스템 데이터 조회-READ) 역할을 수행하는 구성요소를 나누는 것. 즉, 시스템 데이터를 변경하는 코드와 시스템 데이터를 조회하는 코드를 따로 만드를 것이다. 구현방식이나 시스템 규모에 따라서 DB를 나누거나, 프로세스를 나누기도 한다. 명령과 조회는 왜 분리할까? 일반적으로 어플리케이션은 데이터를 한 Model로써 관리하며 한 모델에서 생성(CREATE), 조회(READ), 수정(UPDATE), 삭제(DELETE)한다. 이럴 경우, 속성(컬럼) 하나 혹은 여러개가 추가되면 어떨까? ..

[IT]/MSA 2022.04.04