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)를 이해해야 한다. 그것 없이는 기술적으로 괜찮은 시스템이라 하더라도 개발에 너무 많은 비용이 들거나 제공하는데 너무 많은 시간이 걸리거나 엄청난 운영 비용이 발생할 수 있다. 이것이 리더십, 관리 및 지식 근로자의 전체 체인 관점...

System Thinking 

System thinking은 시스템의 구성요소들의 상호연동하는 방식과 시간이 지남에 따른 시스템에 미치는 영향등 단위 구성요소가 아닌 시스템의 맥락에서 작동하는 방식에 촛점을 맞춘 전체론적 분석방법이다. System thinking에서의 접근 방식은 시스템을 구성요소별로 분류하여서 연구하는 기존 분석 방법과 다른 입장을 취한다. System thinkin...

Enterprise - Scaled Agile Framework 

기업에서의 애자일 적용을 위한 스터디를 진행한다. 다양한 애자일 프레임워크가 있는데, 그 중 SAFe를 선택했다. 학습의 결과물로 자격증을 생각하고 있다.2020.11.26일 SAFe 5 Agile Software Engineer 인증서를 획득했다.완전히 내재화하는 것을 목표로 Agile Software Engineer에 대한 복습겸 학습을 시작한다.SAF...

PAYCO 쇼핑 마이크로서비스 아키텍처 전환기 

위 동영상을 분석해서 정리한다. 영상에서 PAYCON 쇼핑 플랫폼은 NHN TOAST 클라우드를 기반으로 하고 있다. 나는 AWS를 사용하고 있기 때문에 클라우드를 기반으로 새로운 아키텍처를 제안하려 한다. TOAST에 비해서 AWS에서 제공하는 서비스가 훨씬 다양하기 때문에 더 많은 부분이 클라우드 서비스로 대체되는 그림이 나올 것이다.당연하지만 나는 P...

Circuit Breaker 패턴 

대부분의 소프트웨어들은 다른 프로세스를 호출하기 마련이다. 내부에 있는 프로세스를 (IPC를 이용해서) 호출하는 경우도 있겠지만, 특히 MSA, OpenAPI가 일반화된 요즘에는 다른 네트워크에서 실행 중인 프로세스 원격으로 호출하는 경우가 많다.IPC 통신과 원격 통신하는 소프트웨어의 가장 큰 차이점은 "상황을 완전히 통제 할 수 없다는 점"이다. 요청이...

Taming big data with apache spark hands-on : What's new in Spark 3 

Spark의 최신 버전은 "Spark 3"다. Spark의 역사를 대략 정리했다.Spark는 2009년 UC Berkeley AMPLab에서 빅 데이터 분석을 위한 시스템 개발을 목표로 시작했다. 2014년 Spark 1.0 이 릴리즈 되고 같은해 탑-레벨 아파치프로젝트가 된다. 들을 둘러보자. 기술을 선택하는데 큰 도움이 될 것이다. 2018년 Spark...

Taming big data with apache spark hands-on : Getting Started 

Apache Spark 개발 환경을 세팅한다. 나는 우분투 리눅스를 사용하고 있다. 모든 내용은 우분투 리눅스를 기준으로 한다. 우분투 리눅스 19.04를 사용하고 있다.# cat /etc/issueUbuntu 19.04 \n \l# uname -aLinux yundream 5.0.0-40-generic #44-Ubuntu SMP Wed Jan 15 02S...