Skip to content

f-lab-edu/LiveCommerce

Repository files navigation

서비스 설명

LiveCommerce 프로젝트는 오늘의집, 쿠팡과 같은 Modular Monolithic 기반의 E-Commerce 애플리케이션입니다. 사용자가 상품에 대해 주문을 하고 결제가 이루어지면 재고가 차감되는 일반적인 쇼핑몰의 기능을 구현을 했습니다.

팀 프로젝트 기간이 끝나 포크를 하여 따로 개선할 점을 찾아 작업 중 입니다.


사용 기술 스택

  • JAVA 11
  • SpringBoot 2.7.2
  • JPA
  • MyBatis 2.2.2
  • MySQL 8.0.28
  • Redis 7.0.5
  • Flyway 8.5.13
  • Docker

트러블 슈팅 & 기술 선택 과정

[위키에 있는 내용은 더 디테일 하게 작업하여 차근차근 블로그로 링크 첨부 예정]


Testing

Unit Test Command

  • Application layer 의 비즈니스 로직을 테스트 할 수 있습니다.
    $ ./gradlew test

Modular Monolithic 아키텍처이므로, 다음과 같은 모듈들로 구성되어 있습니다.

Modules Description
Server 각 도메인 별 모듈을 통합하고 실행하는 Main 애플리케이션이 있는 모듈입니다.
Common 모든 모듈에서 전역적으로 사용하는 공통 개체가 담긴 모듈입니다.
User-Api 사용자 관리 기능을 담당하는 모듈입니다.
Seller-Api 판매자 관리 기능을 담당하는 모듈입니다.
Order-Api 주문을 생성하고, 주문을 관리 및 처리하는 기능을 담당하는 모듈입니다.
Payment-Api 주문한 상품에 대한 결제 처리를 담당하는 모듈입니다. (현재 Fake로 구현)
Item-Api 상품을 관리하는 기능을 담당하는 모듈입니다.
Inventory-Api 재고를 관리하는 기능을 담당하는 모듈입니다.

각 도메인 모듈은 하위에 아래와 같이 Layered Architecture 형식으로 분리되어 구성됩니다.

예시)

Build Artifacts Description
Order-Presentation 주문 HTTP Api에 대한 요청 및 응답을 제공하는 모듈입니다.
Order-Application 주문 로직에 대한 비즈니스 로직을 정의하며 정상적으로 수행될 수 있도록 도메인, 인프라 계층과 협력하는 모듈입니다.
Order-Domain 실질적인 주문의 정보를 가지며, 주문의 상태를 직접적으로 제어하는 모듈입니다.
Order-Infrastructure DIP를 통한 상위 계층을 지원하는 일반화된 기술적 기능을 제공하는 계층 모듈입니다.

데이터베이스 스키마

데이터베이스스키마

스키마 아이콘의 설명

스크린샷 2023-02-25 오전 12 01 18


공통 응답 객체

필드 타입 필수여부 설명
success Boolean 필수 API 호출 실행 결과입니다.
[true]:성공
[false]: 실패
data Object 필수 API 호출에 따른 결과값입니다.
error{errorCode} String 필수 API 호출 오류 상황을 구분하는 코드입니다.
(API 호출 실패시 제공합니다. 호출 성공시 null)
error{errorMessage} String 필수 API 호출 오류 상세 설명입니다.
(API 호출 실패시 제공합니다. 호출 성공시 null)

Elastic APM Setting

apm-server

docker-compose -f apm-docker-compose.yml up

apm-agent options

-javaagent:./agent/elastic-apm-agent-1.34.0.jar
-Delastic.apm.service_name=Livecommerce
-Delastic.apm.server_url=http://localhost:8200
-Delastic.apm.application_packages=com.flab.*
-Delastic.apm.transaction_sample_rate=1
-Delastic.apm.enable_log_correlation=true
-Delastic.apm.span_frames_min_duration=1ms
-Delastic.apm.span_min_duration=0ms
-Delastic.apm.trace_methods_duration_threshold=1ms
-Delastic.apm.trace_methods=com.flab.*

About

라이브커머스 플랫폼

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published