프로젝트 경험기/MSA 프로젝트 경험기 7

[MSA 경험기] 모아 구독 (7) 메일 서비스 비동기 전환 (by. FastAPI, Celery, Rabbitmq)

지난 글 이전 글에서는 검색 히스토리 서비스를 구현하며, DB 선택 과정과 Singleton 패턴을 적용한 경험에 대해 작성하였다. https://yubi5050.tistory.com/225 [MSA 경험기] 모아 구독 (6) 검색 히스토리 서비스 (by. NoSQL, Singleton) 지난 글 이전 글 에서는 Query Profiling을 통한 Query 시간 최적화에 대해 작성하였었다. https://yubi5050.tistory.com/223 [MSA 경험기] 모아 구독 (5) Query Profiling을 통한 최적화 지난 글 이전 글 에서는 조회수 yubi5050.tistory.com 이번 글 에서는 기존에 동기로 이루어지던 메일 서비스를 비동기로 전환하면서 고민하였던 부분들과 과정에 대해 작..

[MSA 경험기] 모아 구독 (6) 검색 히스토리 서비스 (by. NoSQL, Singleton)

지난 글 이전 글 에서는 Query Profiling을 통한 Query 시간 최적화에 대해 작성하였었다. https://yubi5050.tistory.com/223 [MSA 경험기] 모아 구독 (5) Query Profiling을 통한 최적화 지난 글 이전 글 에서는 조회수 구현시 동일 유저의 반복 접근 이슈를 쿠키를 활용하여 해결 방법에 대해 작성하였다. https://yubi5050.tistory.com/222 [MSA 경험기] 모아 구독 (4) 조회수 구현 2 (by. 쿠키 yubi5050.tistory.com 이번 글 에서는 '검색 히스토리 서비스 - 최근 검색어, 추천 검색어'를 구현하면서 고민하였던 부분들에 대해 작성해 보려고 한다. BE에서는 검색 결과에 대한 구독 상품 조회 API와 검색 ..

[MSA 경험기] 모아 구독 (5) Query Profiling을 통한 최적화

지난 글 이전 글 에서는 조회수 구현시 동일 유저의 반복 접근 이슈를 쿠키를 활용하여 해결 방법에 대해 작성하였다. https://yubi5050.tistory.com/222 [MSA 경험기] 모아 구독 (4) 조회수 구현 2 (by. 쿠키와 동시성) 지난 글 이전 글 에서 사실 조회수 구현에 대해 쿠키와 동시성을 같이 설명하려고 했으나, 동시성을 설명하는 과정이 길어져, 두 편에 나눠서 쓰게 되었다. (사실 조회수 기능을 구현했던 시간 yubi5050.tistory.com 이번 글에서는 프로젝트를 진행하면서 Query Profiling을 통해 수행 시간을 줄인 경험에 대해 작성해보려고 한다. Query Profiling 도구 - Django debug toolbar Profiling Tool로는 일전에..

[MSA 경험기] 모아 구독 (4) 조회수 구현 2 (by. 쿠키와 동시성)

지난 글 이전 글 에서 사실 조회수 구현에 대해 쿠키와 동시성을 같이 설명하려고 했으나, 동시성을 설명하는 과정이 길어져, 두 편에 나눠서 쓰게 되었다. (사실 조회수 기능을 구현했던 시간 보다 글로 정리하는 시간이 더 길어진 것 같은..) 여튼 이전 글에서는 조회수를 구현하기 위한 동시성 이슈를 해결하기 위해, F객체의 사용으로 Python 메모리에 로딩 없이 DB직접 반영하는 것과, Transaction 격리 수준 까지 알아보았다. https://yubi5050.tistory.com/221 [MSA 경험기] 모아 구독 (3) 조회수 구현 1 (by. 쿠키와 동시성) 지난 글 이전 글 에서는 페이지 네이션, 캐싱을 적용한 상품 리스트 조회를 구현하면서 고민했던 부분에 대해 적어보았었다. https://..

[MSA 경험기] 모아 구독 (3) 조회수 구현 1 (by. 쿠키와 동시성)

지난 글 이전 글 에서는 페이지 네이션, 캐싱을 적용한 상품 리스트 조회를 구현하면서 고민했던 부분에 대해 적어보았었다. https://yubi5050.tistory.com/220 [MSA 경험기] 모아 구독 (2) 페이지 네이션, 캐싱을 적용한 상품 조회 지난 글 이전 글 에서는 MSA 프로젝트를 시작한 계기와 프로젝트 기획 및 설계에 대해 작성했었다. https://yubi5050.tistory.com/218 [MSA 경험기] 모아 구독 (1) 프로젝트 기획 및 설계 MSA 프로젝트 시작 계 yubi5050.tistory.com 이번 글 에서는 '조회 서비스 - 구독 상품 상세 조회'의 조회수를 구현하면서 이슈가 되었던 부분과 해결 방법에 대해 이야기 해보려고 한다. (해당 글에서는 첫번째 이슈에 대..

[MSA 경험기] 모아 구독 (2) 페이지 네이션, 캐싱을 적용한 상품 조회

지난 글 이전 글 에서는 MSA 프로젝트를 시작한 계기와 프로젝트 기획 및 설계에 대해 작성했었다. https://yubi5050.tistory.com/218 [MSA 경험기] 모아 구독 (1) 프로젝트 기획 및 설계 MSA 프로젝트 시작 계기 최근 몇달 전 부터 MSA라는 단어와 우연히? 마주치는 빈도가 많아졌었다. MSA에 대해서는 일전에 모놀리식과의 장단점을 비교해보았던 적이 있었고, MSA 가 가진 장점에 많 yubi5050.tistory.com 이번 글 에서는 '조회 서비스 - 구독 상품 조회'를 구현하면서 고민하였던 부분, 관련하여 사용한 기술들을 중심으로 이야기 해보려고 한다. 주제는 크게 아래 두가지 이다. 다수의 구독 상품 목록 조회시 Pagination 적용 고정적으로 Reponse되는..

[MSA 경험기] 모아 구독 (1) 프로젝트 기획 및 설계

MSA 프로젝트 시작 계기 최근 몇달 전 부터 MSA라는 단어와 우연히? 마주치는 빈도가 많아졌었다. MSA에 대해서는 일전에 모놀리식과의 장단점을 비교해보았던 적이 있었고, MSA 가 가진 장점에 많은 이점에 공감했기에, 이번에 모인 팀원들과 함께 사이드로 프로젝트를 경험해보려고 하였다. https://yubi5050.tistory.com/155 [SW 개발] MSA vs 모놀리식 Monolithic Architecture (모놀리식 아키텍쳐) 장점 서비스의 개발 환경이 동일해 복잡하지 않다. End-to-End 테스트와 개발 및 관리가 용이 단점 프로젝트의 규모가 커지면 작은 부분을 수정하더라도 전 yubi5050.tistory.com 프로젝트 구조 및 설계 📌 프로젝트 주제 모아 구독 : MSA 기..