공부하고 기록하는, 경제학과 출신 개발자의 노트

아키텍처 5

우아콘 2023 - 대규모 트랜잭션을 처리하는 배민 주문시스템 규모에 따른 진화

https://youtu.be/704qQs6KoUk  강홍구: 푸드주문서버개발팀   배민 주문시스템 장바구니 / 주문하기 / 주문내역 쪽 BE 담당.일반적인 커머스와는 달리, 점심 / 저녁에 트래픽 폭증하는 구조. 가게, 메뉴, 주문, 결제, 배달 등 다양한 서비스의 결합으로 이루어져 있음.한쪽의 장애가 다른 쪽으로 전파되지 않는 '느슨한 결합'이 중요하다.일평균 300만건의 주문 + 수년간의 데이터 저장 / 관리.방대한 데이터 저장, 조회 성능 필요순간적으로 몰리는 대규모 트랜잭션의 안정적인 처리방법MSA와 '느슨한 결합' 구조를 위해 이벤트 기반 통신이벤트 유실 시 재소비 방법이벤트 흐름을 가시적으로 확인할 수 있는 방법성장하는 주문 시스템 2018년만 해도 일 100만 건이 안 됐음. 지금은 일 3..

AWS re:Invent 2021 - Amazon IVS로 11번가 라이브커머스 플랫폼 구축

강연자: AWS 솔루션 아키텍트 이승민 님, 11번가 플랫폼 엔지니어 조현수 님.  AWS IVS?완전관리형 interactive 라이브 영상 서비스. 트위치와 동일한 기술 기반 - 10년에 걸쳐 구축한 라이브 스트리밍 기술이 활용되고 있다고 함AWS IVS로 라이브 스트리밍을 전송하고, SDK로 플레이어를 구현하면 된다.방송 송출 / 플레이어 사이의 모든 작업을 담당하는 것.Interactive의 의미란? 라이브 스트리밍의 사용자 경험은 크게 두 가지로 나뉜다.Lean back: 콘텐츠 시청이 전부임. 따라서 콘텐츠의 품질이 사용자 경험의 중요한 가치.Lean forward: 스마트폰 등의 디바이스로 콘텐츠에 적극적으로 참여하는 것. Interactive을 의미함.예시의 경우 참가자들와 점수를 공유하는..

Knative로 배포한 애플리케이션의 동작과정

외부의 요청이 External Load balancer로 들어온다. 해당 요청은 Ingress Gateway (Istio)로 포워딩된다. istio gateway의 목적은 'destination Service'로 요청을 전달하는 것. k8s에서 애플리케이션을 실행하려면 몇 가지 리소스가 필요하다. Deployment -> it creates a ReplicaSet that creates pods. Horizontal Pod Scaler -> ensure the correct number of Replicas is running. Service -> other pod에서 Access하기 위한 통로. Ingress Gateway to Service -> 클러스터 외부에서 접근하기 위한 경로. kn servi..

삼성SDS Techtonic 2021 - MSA Reference Platform

발표자: 삼성SDS DT아키텍처그룹 임지훈 프로. Cloud Native 환경으로 서비스를 개발하거나, 클라우드 환경으로 서비스를 이전하려고 할 때삼성SDS에서 개발해 제시하는 전체적인 프로세스 / 아키텍처를 설명해주었던 강연.MSA Reference Platform  Monolitic'모듈' 이라는 구성요소. 실행 시 프로세스에 Link되는 구조.모듈 간 결합도가 높은 편이며, Centralized된 DB에 모든 데이터 저장 / 수정.일정 규모 이상이 되면 구조를 바꾸거나 변화를 만들어내기 쉽지 않다.MicroService'서비스' 라는 단위로 구성되어 있으며, 각 서비스는 API로 통신.각각의 서비스는 독립적으로 배포 가능한 단위를 의미함Loosely Coupled.Cloud Native Applic..

화상 모의면접 연습 플랫폼 개발 프로젝트 (1) - 채팅 DB 아키텍처 고민하기

Yapp 동아리의 개발 프로젝트였던 화상 모의면접 연습 플랫폼 "위더뷰" 개발에 백엔드 개발자로 중도 합류했다. github.com/witherview/witherview_backend witherview/witherview_backend 🎯 위더뷰 Backend. Contribute to witherview/witherview_backend development by creating an account on GitHub. github.com 기본적으로는 자바 스프링부트를 사용하지만, WebRTC의 경우 Node JS를 사용하는 구조다. 프론트는 React 기반이다. 중도에 합류해서 기존 코드와 구조를 어떻게 분석했는지 / 어떻게 개선방안을 찾아갔는지 생각을 정리하는 용도의 포스트. 처음 프로젝트에 합류..