MSA5 K-L1VERSE의 EDD 도입기 K-L1VERSE의 EDD 도입 이야기안녕하세요, K-L1VERSE의 Aiden입니다. K-L1VERSE에 큰 변곡점이 생겼서 다시 블로그로 찾아오게 되었습니다. 몇 가지 마일스톤을 헤쳐나갔는데요. 오늘은 크게 세 가지 골자에서 포스팅을 남겨볼까 합니다.1. EDD블로그를 구독하신 분이라면 몇 달 전 올라왔던 우아한 형제들의 기술블로그 스터디 포스팅을 기억하실 겁니다.이유도 없이 해당 포스팅을 준비한 것은 아니었습니다. K-L1VERSE에 EDD를 도입하기 위한 사전 공부느낌이었는데, 그래서 그런지 우아한 형제들의 포스팅과 유사한 내용이 많이 섞여 있습니다.2. AWS SQS & SNS우아한 형제들이 MQ로 활용했던 AWS의 클라우딩 서비스, SQS와 SNS도 K-L1VERSE에 도입하기에 좋은 장치였습.. K-L1VERSE 2024. 12. 13. 우아한 형제들의 회원시스템 이벤트기반 아키텍처 구축하기 2 본 포스팅은 아무런 상업적 이익과 금전적 수입에 연관되어 있지 않습니다. 문제 시 삭제 조치하겠습니다. 블로그 프로필의 이메일이나 lion0077v@gmail.com으로 메일 주시기 바랍니다. 이전 포스팅에서는 물리적인 시스템 분리와 비동기 HTTP 통신, 올바른 이벤트 발행 방식까지 살펴보며 의존 관계의 본질이 무엇인지 확인했다. 메시징 시스템을 사용해 물리적인 의존을 제거하는 방법과 “메시지가 담는 의도”에 따라 전혀 다른 결과를 얻는다는 것을 알 수 있었다.예시 상황처럼 ‘가족관계를 탈퇴하라’ 라는 달성 목적이 아닌 본인인증을 해제했다는 이벤트를 발송해야 한다. 즉, 우리가 발행해야 하는 이벤트는 도메인 이벤트로 인해 달성할 목적이 아닌 도메인 이벤트 그 자체가 되어야 한다.도메인이란 해결하고자 하.. 기술블로그 2024. 10. 23. 결합도를 낮추고 응집도를 높히자. “Spring Event” 객체 지향 프로그래밍의 5가지 설계 원칙을 다시 되새겨보자. 오늘의 주제 Spring Event도 이 5원칙에서 출발한다.1. SRP(Single Responsibility Principle) 단일 책임 원칙2. OCP(Open-Closed Principle) 개방 폐쇄 원칙3. ISP(Interface Segregation Principle) 인터페이스 분리 원칙4. LSP(Liscov Substitution Principle) 리스코프 치환 원칙5. DIP(Dependency Inversion Principle) 의존 역전 원칙흔히 말하는 SOLID 원칙(https://dev-ignuy.tistory.com/14)에 의해 객체지향은 계속 발전해왔다. 이 중에서도 SRP는 “하나의 메서드나 클래스는 한.. 개발일기/Spring 2024. 9. 23. DDD(Domain Driven Development, 도메인 주도 개발)를 활용한 MSA 설계 안녕하세요. 케이리버스의 PM, Aiden입니다. 프로젝트가 끝난 지 약 3개월 만에 첫 회고를 작성해 보네요. 애정 있던 프로젝트였고 개발에도 적극적으로 참여했던 프로젝트를 다시 시작하게 될 예정이라 기대감으로 가슴이 불타고 있습니다. 🔥🔥 그런 의미로 더 특별해진 제 첫 회고는 바로 케이리버스의 시작이었던 설계입니다.요구사항 분석국내 K-리그의 흥행을 위해 기획된 K-리그 커뮤니티 SNS 서비스 K-L1VERSE는 기존 케이리그 팬덤과 새로운 유입층을 아우르는 서비스로 개발되고자 하였습니다. 설정한 페르소나를 바탕으로 요구사항을 수집하였고 아래와 같이 다양한 기능적 요구사항들을 정의하였습니다.* 사용자 기능 - 소셜로그인 - 포인트 제도 - 응원팀 뱃지* SNS 커뮤니티 기능* 팀 추천 유저 성향.. K-L1VERSE 2024. 9. 12. 네이버 메인 페이지의 트래픽 처리 - 마무리 지금까지 네이버가 메인 페이지에서 발생하는 트래픽을 어떻게 처리하는지 총 서론, 본편 1, 본편 2로 나누어 살펴보았다. 서비스 아키텍처 모식도를 다시 한번 살펴보며 정리하자. 🔔 서비스 요구사항 🔔 ❗어떤 서버로 접속해도 동일한 내용을 보여 주어야 하며, 특정 상탯값(사용자의 로그인 여부 등)에 의존하지 말아야 한다. ❗ 무슨 일이 있어도 사용자에게 서비스가 제공되어져야 한다. => 브라우저에 빈 페이지가 나타나선 안된다. => 메인 페이지에서 연동하는 외부 시스템은 늘 접속 불안정을 가정하고 빠른 실패 전략을 실행한다. ❗ 트래픽 증가에 탄력적으로 대처할 수 있어야 한다. => 트래픽이 폭주할 때 서버 증설만으로도 대응할 수 있어야 한다. => 각 컴포넌트(Web server, WAS)의 효율성을 극.. 기술블로그 2023. 7. 13. 이전 1 다음