Skip to content

Dsys1129/challenge-About

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 

Repository files navigation

이커머스 플랫폼, MaybeZone

목차

프로젝트 개요

프로젝트 목표 및 설계

기술스택

서비스 아키텍처 및 기술적 의사결정

트러블슈팅

프로젝트 결과

팀원 및 역할


1. 프로젝트 개요

MaybeZone

  • 팀원 : 김동현, 신윤상, 김광일, 유시환

  • 기간 : 2022년 07월 30일 ~ 09월 07일, 6주 간 진행

  • '이커머스 플랫폼'을 주제로 한 프로젝트입니다.

  • 백엔드 4명으로 구성된 팀입니다.

  • MSA 적용, 대규모 트래픽 처리 및 동시성 제어, 소프트웨어 아키텍처 변화 등을 목표로 프로젝트를 진행했습니다.

  • 시연 영상


2. 프로젝트 목표 및 설계

프로젝트 목표

  • MSA 전환

    • DDD(도메인 주도 설계)를 바탕으로 분리된 서비스
    • 이벤트 스토밍 전략으로 바운딩 컨텍스트를 나누는 설계 전략
    • OpenFeign, Kafka를 이용한 동기, 비동기 통신
  • 인프라, 플랫폼, 애플리케이션 차원에서 필요한 기술 도입

    • 변경에 유연한 아키텍처 전환
    • Zipkin, Micrometer를 활용한 분산 추적 시스템
    • Prometheus, Grafana를 이용한 모니터링 시스템
    • Github Action, Docker를 활용한 CI/CD 환경 구축
  • 약 1000만건의 대량의 제품 데이터에서 특정 검색 조건으로 빠르게 해당 제품 데이터에 접근

    • 카테고리로 접근할 수 있는 상품 조회
    • 특정 단어가 포함된 검색어를 이용한 유연한 상품 조회
  • 각 도메인에서 발생할 수 있는 동시성 제어

    • 비관적 락
    • Redisson 분산 락
  • 대용량 트래픽에도 견딜 수 있는 내구성 있는 서버

    • ScaleUp, ScaleOut
    • 대기열 기능

프로젝트 설계


3. 기술스택


4. 서비스 아키텍처 및 기술적 의사결정

image


5. 트러블 슈팅


6. 프로젝트 결과


7. 팀원 및 역할

이름 담당 역할
김동현(팀장) 상품 도메인 개발
https://github.com/princeton-d 상품 검색, 조회, 필터, 페이징 성능 개선
상품 서버 구현 / CI/CD 배포 환경 구성
모놀리스 초기 디렉토리 구조 설정
모놀리스에서 상품 검색 및 조회 기능 구현
Junit, Mockito를 활용한 테스트 구현
상품 도메인 조회 검색, 필터 기능 구현
상품 데이터 수집
Front-End MVP 구현
Front-End 상품 검색, 조회 구현
- -
신윤상 상품 데이터 수집
https://github.com/Dsys1129 모놀리스에서 회원 기능 구현
모놀리스에서 Junit, Mockito를 활용한 Test 코드 작성
초기 MSA 구조 설계
APIGatewayServer 구현
이벤트 도메인 설계
Redis 및 Kafka 사용하여 이벤트 대기열 서버 및 스케줄러 서버 구현
이벤트 쿠폰 발급 서버 구현
회원 서버 구현 / CI/CD 배포 환경 구성
Jmeter nGrinder를 사용한 테스트
- -
김광일 상품 데이터 수집
https://github.com/kki4504 모놀리스에서 경매 조회 기능 구현
모놀리스에서 주문 결제 기능 구현
모놀리스에서 Junit, Mockito를 활용한 Test 코드 작성
Jmeter, nGrinder를 활용한 동시성 테스트 / 테스트 모니터링
Prometheus, Grafana 모니터링 서버 구현
결제 서버 구현 / CI/CD 배포 환경 구성
이벤트 도메인 설계
이벤트 쿠폰 발급 서버 구현
Redisson 분산 락 사용하여, 이벤트 대기열 서버 구현
Docker-compose 활용 Kafka 서버 구축
로그인, 포인트 조회, 포인트 충전, 결제 Front-End 구현
- -
유시환 상품 데이터 수집
https://github.com/Goonerd17 모놀리스에서 로깅, Dto, 경매 입찰 기능 구현
모놀리스에서 Junit, Mockito를 활용한 Test 코드 작성
전반적인 MSA 및 도메인 주도 설계 수립
Jmeter를 활용한 동시성 테스트
경매 도메인 조회/입찰/낙찰 기능 구현
스프링 AOP를 활용한 로깅 구현
Zipkin, Micrometer를 활용한 분산추적 기능 구현 및 배포
Resilience4j를 활용한 CircuitBreaker 패턴 구현
소프트웨어 아키텍처 변경
경매, 상품의 카프카 메세지 Producer, Consumer 구현
상품 상세 조회 Front-End 구현
경매 조회/낙찰 Front-End 구현
Readme, Wiki 작성

About

MSA 기반의 이커머스 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors