본문 바로가기

전체 글103

[MicroService] MSA의 이해(BFF패턴, 인증/인가 패턴, 외부구성 저장소 패턴, 집계 패턴, 모니터링/추적패턴) 3장 ◆ MSA 구성 요소 및 MSA 패턴 ▶ Micro Service 운영과 관리를 위한 플랫폼 패턴 ● BFF 패턴 ⊙ 최근에는 PC뿐만 아니라 다양한 모바일 장비를 사용하기 때문에 다양한 클라이언트를 고려해야 함 ⊙ 이처럼 다양한 클라이언트를 위해서는 특화된 처리를 위한 API 조합이나 처리가 필요한데 이를 위한 해결 방법으로 BFF(Backend for Frontend) 패턴이 있음 ⊙ BFF 패턴은 API 게이트웨이와 같은 진입점을 하나로 두지 않고 Front End의 유형에 따라 각각 두는 패턴 ⊙ Front End를 위한 Back End라는 의미로 BFF(Backend For Frontend)라고 부름 ⊙ 웹을 위한 API 게이트웨이, 모바일을 위한 API 게이트웨이 등 클라이언트 종류에 따라 최.. 2023. 4. 20.
[MicroService] MSA의 이해(컨테이너 오케스트레이션, API 게이트웨이 패턴, 서비스 디스커버리 패턴, 플랫폼패턴) 2장 ◆ MSA 구성 요소 및 MSA 패턴 ▶ 인프라 구성 요소 ● 컨테이너 오케스트레이션 ⊙ 컨테이너 기술을 선택했다면 컨테이너를 관리하기 위한 기술 또한 필요 ⊙ 컨테이너가 많아지면 그에 따라 컨테이너의 자동 배치 및 복제, 장애 복구, 확장 및 축소, 컨테이너 간 통신, 로드 밸런싱 등의 컨테이너 관리를 위한 기능이 필요한데 이러한 기술을 컨테이너 오케스트레이션(Container Orchestration)이라 함 ⊙ 컨테이너 오케스트레이션 도구로는 도커 스윔(Docker Swarm), 아파치 메소스(Apache Mesos) 등이 있으며 최근에는 구글이 자사의 도커 컨테이너 관리 노하우를 CNCF 재단에 제공해서 공개한 쿠버네티스(Kubernetes8가 큰 인기를 끌고 있는데 쿠버네티스를 이용하면 손쉽게 .. 2023. 4. 18.
[MicroService] MSA의 이해(리액티브 선언, MSA 구성요소, MSA 패턴) 1장 ◆ 리액티브 선언: 현대 애플리케이션이 갖춰야 할 바람직한 속성들 ▶ 리액티브 선언의 4가지 요소 ● 응답성(Responsive): 사용자에게 신뢰성 있는 응답을 빠르고 적절하게 제공하는 것을 의미 ● 탄력성(Resilient): 장애가 발생하거나 부분적으로 고장나더라도 시스템 전체가 고장 나지 않고 빠르게 복구하는 능력을 의미 ● 유연성(Elastic): 시스템의 사용량에 변화가 있더라도 균일한 응답성을 제공하는 것을 의미하며 시스템 사용량에 비례해서 자원을 늘리거나 줄이는 능력 ● 메시지 기반(Message Driven): 비동기 메시지 전달을 통해 위치 투명성, 느슨한 결합, 논블로킹 통신을 지향하는 것을 의미 → 4가지 요소는 모두 리액티브 시스템을 만들기 위한 요소이고 각 요소는 상호 보완적 →.. 2023. 4. 18.
[MicroService] 비지니스 민첩성 2장 ◆ Micro Service ▶ 모노리스와 Micro Service ● 모노리스 → 모노리스는 하나의 단위로 개발되는 일체식 애플리케이션 → 보통 3티어라 불리는 사용자 인터페이스와 데이터베이스 그리고 서버 쪽 애플리케이션의 3개 부분으로 구성 → 서버 측 애플리케이션이 일체 즉 논리적인 단일체로서 아무리 작은 변화에도 새로운 버전으로 전체를 빌드해서 배포해야 하고 일체식 애플리케이션은 단일 프로세스에서 실행되기 때문에 확장이 필요할 경우 특정 기능만 확장할 수 없고 반드시 전체 애플리케이션을 동시에 확장해야 하는데 보통 로드 밸런서를 앞에 두고 여러 인스턴스 위에 큰 덩어리를 복제해 수평으로 확장 → 이런 상황에서 변경이 발생하면 모노리스 시스템의 단점이 극대화되는데 여러 개의 모노리스가 수평으로 확장.. 2023. 4. 16.
[MicroService] 비지니스 민첩성 1장 ◆ 성공한 인터넷 기업들과 비지니스 민첩성 ▶ 아마존(Amazon)과 넷플릭스(Netflix), 우버(Uber)를 비롯해 성공한 유니콘 기업들의 공통점 특징은 이미 익숙한 비즈니스에 새로운 비즈니스 개념과 기술을 융합해 자신만의 특화된 서비스를 제공한다는 것 ▶ 자신만의 특화된 서비스를 제공하려는 시도를 누구보다 빨리 실행했고 사용자 피드백을 반영해 끊임없이 서비스를 개선 ▶ 이러한 기업들의 특출난 장점으로 비즈니스 민첩성(Agility)을 꼽고 이것이 기업 성공의 가장 큰 요인으로 판단 ▶ 지금까지 인터넷의 발전과 모바일 환경의 대중화로 이 같은 비즈니스 민첩성에 대한 중요성은 항상 강조돼 왔고 비즈니스 민첩성을 지원하기 위한 시스템 측면의 많은 투자와 시도가 이뤄져 왔으나 성공 사례가 많지 않았지만 .. 2023. 4. 16.
[Block Chain] Go언어의 RESTful API, Gin Framework, Model&Database Layer 1장 ◆ RESTful API ▶ 웹 서비스에서 자원을 요청 및 제어할 때 적용되는 일련의 규칙 ▶ 자원은 보통 HTML 문서(웹 페이지)나 JSON 문서(단순 정보 조회) ▶ JSON이란 JavaScript Object Notation의 약자로 자바스크립트의 객체를 표현하는 방식으로 API에서 가장 많이 쓰이는 데이터 형식 ▶ 대부분의 RESTful API는 HTTP를 사용 ◆ Gin Framework ▶ Gin 프레임워크는 고성능 RESTful API 개발에 많이 사용되는 Go 기반의 오픈 소스 프레임워크 ▶ https://github.com/gin-gonic/gin ▶ Gin 프레임워크는 성능도 높고 실제 RESTful API를 구현하는 데 사용할 수 있는 간단하고 사용하기 쉬운 API를 제공 ◆ Mod.. 2023. 4. 15.