이 문서에서는 마이크로서비스 아키텍처를 디자인하는 방법을 여러 사례를 들어서 살펴볼 것이다. 먼저 일반적인 패턴을 소개하고 AWS에서 어떻게 구축할지를 살펴보도록 하겠다.이 문서를 통해서 얻고자 하는 것은 다음과 같다. 초당 수천/수만건의 데이터를 처리하기 위한 시스템을 만들기 위한 아이디어 고가용성, 높은 확장성, 짧은 대기시간(latency), 복원력을...
Uber System Design. Design Ride-Hailing Application 영상에 대한 분석이다. 영상내용을 기반으로 좀 더 깊이 들어가보려 한다. 1. Uber의 Ride-Haling Application을 개발하기 위한 요구사항 분석 1. 하이레벨에서 컴포넌트 다이어그램 작성 1. 각 컴포넌트의 시퀀스 다이어그램 작성 1. 잠재적인 ...
헤드리스 이커머스를 다루기 전에 헤드리스 아키텍처(Headless architcture)를 살펴봐야 할 것 같다.헤드리스 아키텍처라고 하면 낯설게 들리겠지만, 오래전에 존재해왔다. 헤드리스 아키텍처라는 것은 모든 비지니스 로직과 기능을 API 세트로 만들어서 제공하는 것을 의미한다. 이 API는 전문화된 백앤드 서버에스 구동되며, 고객이 원하는 모든 경험을...
Go 언어를 이용해서 백앤드 애플리케이션을 개발한다. 이 애플리케이션은 유저정보를 저장하고, 조회하는 2개의 REST API를 제공한다. 이 애플리케이션을 구조적으로 견고하고 확장가능한 형태로 만들어보려 한다. 아이디어는 에서 가져왔다. 이 문서에서는 클린 아키텍처의 제약 조건을 아래와 같이 설정하고 있다. 1. 프레임워크와 무관하다. 아키텍처는 특정 소...
애플리케이션에 대한 아이디어를 실현하는 가장 좋은 방법은 MVP(Minimum Viable Product)로 시작하는 것이다.인터넷은 수백 수천개의 회사가 경쟁하는 열린 공간이다. 이 공간에서 성공하는 것은 쉽지 않다. 성공을 하기 위해서는 고객이 원하는 것이 무엇인지를 찾아서 가능한 빨리 시장에 내놓아야 한다. MVP(Minimum Viable Produ...
클라우드 시스템은 위임이다. 컴퓨팅, 메모리, 디스크와 같은 하드웨어 외에도 로드밸런서, 메시지큐, 로깅, 모니터링, 배포, 확장, 데이터 수집 등을 IaaS, PaaS, SaaS 형태로 비즈니스로직으로 부터 분리하여 위임하는 시스템이다. 따라서 개발조직은 다른 것들에 신경쓰지 않고 서비스 개발에만 집중 할 수 있다. 클라우드에 대한 다양한 관점이 있겠는데...
주식회사 joinc는 다양한 패션용품을 판매하는 인터넷 전자 상거래 서비스를 운영하고 있다. 이 회사의 CTO는 전자 상거래 시장이 격화되면서, 서비스 경쟁력을 확보하는게 중요한 과제가 됐다.CTO는 우선 과제로 개인화된 상품추천 서비스를 개발하기로 했다. 상품추천의 요구사항은 아래와 같다. 1. 사용자의 활동(Activity)를 저장하고 분석할 수 있는 ...
joinc는 AWS를 이용해서 도매 상품 중개/판매 서비스를 운영하고 있다. 초기 쇼핑몰을 빠르게 전개하는데 중점을 뒀기 때문에 백오피스에 기술부채를 가지고 있다. CTO는 기술 부채를 없애기를 원한다. CTO는 솔류션 아키텍트에게 빌링 시스템의 개선을 요구했다. 주요 요구 사항은 아래와 같다. 1. 비용 효율적이어야 한다. 1. 운영 인력이 충분하지 않...
요즘 그래프데이터베이스를 지겨보고 있다. AWS 넵튠(Neptune)와 Neo4j를 주로 살펴보고 있는데, 오랜 역사와 전통을 자랑하는 Neo4j를 우선 살펴볼 생각이다.그래프 데이터베이스(GDB)는 노드(node)와 에지(edge) 형태로 표현 할 수 있는 데이터를 저장하기 위해 특화된 데이터베이스다. 이 시스템의 핵심 개념은 데이터 항목을 노드로 표현하...
원문 "최고의 품질을 짧은 시간에 지속 적으로 달성하는" Lean의 목표를 달성하기 위해서는 프로젝트의 경제성(economic)를 이해해야 한다. 그것 없이는 기술적으로 괜찮은 시스템이라 하더라도 개발에 너무 많은 비용이 들거나 제공하는데 너무 많은 시간이 걸리거나 엄청난 운영 비용이 발생할 수 있다. 이것이 리더십, 관리 및 지식 근로자의 전체 체인 관점...
48 POSTS HERE
Monolithic에서 Microservice Architecture로
이 문서에서는 마이크로서비스 아키텍처를 디자인하는 방법을 여러 사례를 들어서 살펴볼 것이다. 먼저 일반적인 패턴을 소개하고 AWS에서 어떻게 구축할지를 살펴보도록 하겠다.이 문서를 통해서 얻고자 하는 것은 다음과 같다. 초당 수천/수만건의 데이터를 처리하기 위한 시스템을 만들기 위한 아이디어 고가용성, 높은 확장성, 짧은 대기시간(latency), 복원력을...
Uber System Design 분석
Uber System Design. Design Ride-Hailing Application 영상에 대한 분석이다. 영상내용을 기반으로 좀 더 깊이 들어가보려 한다. 1. Uber의 Ride-Haling Application을 개발하기 위한 요구사항 분석 1. 하이레벨에서 컴포넌트 다이어그램 작성 1. 각 컴포넌트의 시퀀스 다이어그램 작성 1. 잠재적인 ...
Headless ECommerce
헤드리스 이커머스를 다루기 전에 헤드리스 아키텍처(Headless architcture)를 살펴봐야 할 것 같다.헤드리스 아키텍처라고 하면 낯설게 들리겠지만, 오래전에 존재해왔다. 헤드리스 아키텍처라는 것은 모든 비지니스 로직과 기능을 API 세트로 만들어서 제공하는 것을 의미한다. 이 API는 전문화된 백앤드 서버에스 구동되며, 고객이 원하는 모든 경험을...
견고하고 확장가능한 Go 애플리케이션 구축 방법
Go 언어를 이용해서 백앤드 애플리케이션을 개발한다. 이 애플리케이션은 유저정보를 저장하고, 조회하는 2개의 REST API를 제공한다. 이 애플리케이션을 구조적으로 견고하고 확장가능한 형태로 만들어보려 한다. 아이디어는 에서 가져왔다. 이 문서에서는 클린 아키텍처의 제약 조건을 아래와 같이 설정하고 있다. 1. 프레임워크와 무관하다. 아키텍처는 특정 소...
MVP로 비즈니스 계획을 구현하기
애플리케이션에 대한 아이디어를 실현하는 가장 좋은 방법은 MVP(Minimum Viable Product)로 시작하는 것이다.인터넷은 수백 수천개의 회사가 경쟁하는 열린 공간이다. 이 공간에서 성공하는 것은 쉽지 않다. 성공을 하기 위해서는 고객이 원하는 것이 무엇인지를 찾아서 가능한 빨리 시장에 내놓아야 한다. MVP(Minimum Viable Produ...
AWS에서의 중앙 집중식 로깅 시스템 구축
클라우드 시스템은 위임이다. 컴퓨팅, 메모리, 디스크와 같은 하드웨어 외에도 로드밸런서, 메시지큐, 로깅, 모니터링, 배포, 확장, 데이터 수집 등을 IaaS, PaaS, SaaS 형태로 비즈니스로직으로 부터 분리하여 위임하는 시스템이다. 따라서 개발조직은 다른 것들에 신경쓰지 않고 서비스 개발에만 집중 할 수 있다. 클라우드에 대한 다양한 관점이 있겠는데...
AWS 기반 추천 시스템 아키텍처
주식회사 joinc는 다양한 패션용품을 판매하는 인터넷 전자 상거래 서비스를 운영하고 있다. 이 회사의 CTO는 전자 상거래 시장이 격화되면서, 서비스 경쟁력을 확보하는게 중요한 과제가 됐다.CTO는 우선 과제로 개인화된 상품추천 서비스를 개발하기로 했다. 상품추천의 요구사항은 아래와 같다. 1. 사용자의 활동(Activity)를 저장하고 분석할 수 있는 ...
AWS 기반 Billing 서비스 아키텍처 - ServerLess
joinc는 AWS를 이용해서 도매 상품 중개/판매 서비스를 운영하고 있다. 초기 쇼핑몰을 빠르게 전개하는데 중점을 뒀기 때문에 백오피스에 기술부채를 가지고 있다. CTO는 기술 부채를 없애기를 원한다. CTO는 솔류션 아키텍트에게 빌링 시스템의 개선을 요구했다. 주요 요구 사항은 아래와 같다. 1. 비용 효율적이어야 한다. 1. 운영 인력이 충분하지 않...
neo4j 소개
요즘 그래프데이터베이스를 지겨보고 있다. AWS 넵튠(Neptune)와 Neo4j를 주로 살펴보고 있는데, 오랜 역사와 전통을 자랑하는 Neo4j를 우선 살펴볼 생각이다.그래프 데이터베이스(GDB)는 노드(node)와 에지(edge) 형태로 표현 할 수 있는 데이터를 저장하기 위해 특화된 데이터베이스다. 이 시스템의 핵심 개념은 데이터 항목을 노드로 표현하...
SAFE Principle 1 - Take an economic view
원문 "최고의 품질을 짧은 시간에 지속 적으로 달성하는" Lean의 목표를 달성하기 위해서는 프로젝트의 경제성(economic)를 이해해야 한다. 그것 없이는 기술적으로 괜찮은 시스템이라 하더라도 개발에 너무 많은 비용이 들거나 제공하는데 너무 많은 시간이 걸리거나 엄청난 운영 비용이 발생할 수 있다. 이것이 리더십, 관리 및 지식 근로자의 전체 체인 관점...