Skip to content

Coffee-Street/strada

Repository files navigation

Strada api server

Build Test Pipeline FOSSA Status

Quick Start

# quick start strada coffee api server
git clone https://github.com/wnsgml972/strada.git
docker-compose up

Server Structure

Architecture

Client

Goals

  • 카페에서 사용할 수 있는 모바일 어플리케이션과 API 서버를 개발하여 상품 조회, 주문, 결제 등의 서비스를 제공한다.
  • JPA를 깊게 이해하고 사용하여 비효율적인 IO를 발생시키지 않으며, 효율적인 쿼리가 동작하도록 구현한다.
  • Container 가상화, DB 이중화를 통해 고가용성을 구현한다.
  • 단위테스트, Tech Spec 문서화, Code Review를 통해 높은 퀄리티의 소프트웨어를 구현한다.

Key Issues

Done

  • 버전관리
  • 문서화
  • Unit Test, Integration Test 작성
  • Github Action 활용한 CI 구축
    • 빌드/테스트
    • GitGuardian 을 활용한 자동화된 Security Check
    • FOSSA 활용한 자동화된 Open Source License Check
    • PR Template, 오래된 PR Check
    • AI를 활용한 자동 코드 리뷰
  • Github Secrets 활용한 Secret 구현
  • Docker 이용한 CD 구축
  • MySQL Replication Primary / Secondary 로 데이터베이스 이중화
  • RDB Transcation이 보장된 상품, 메뉴, 주문, 유저 관리, 배너 API 구현
  • JWT 활용한 인증/인가 구현
  • 스레드 풀 관리, @Async, Spring Application Event 활용하여 특정 도메인의 역할과 책임을 명확히 분리한 Event Driven 구현
  • kakaopay, webclient 활용한 일관성 보장된 상품 구매 구현
  • Observability 확보를 위한 Metrics 방출
    1. spring actuator exporter(web endpoint) →
    2. promethous server scrap →
    3. grafana web ui

Purchase Product Flow (feat. kakaopay)

DB ERD

ERD

License

MIT LICENSE

Security

Secret Security

GitGuardian scan

Open Source License

FOSSA Status