Skip to content

wooda-ege/lovebird-server

Repository files navigation

Lovebird - 커플 공유 일기 앱

Hits codecov Github Action


Download

Introduction

Introduction

Developers

komment T-Dragon Hyemin





Trouble Shooting

Directory Structure

├── .github
├── lovebird-api
├── lovebird-common
├── lovebird-client 
├── lovebird-domain
├── lovebird-external 
│   ├── fcm
│   └── s3
└── lovebird-infra
    ├── logging
    └── monitoring

Multi Module Structure

image

  • 상위 모듈이 하위 모듈만을 의존하도록 구성

Common

  • 공통 모듈
  • 어떠한 의존 관계도 갖지 않음
  • 공통으로 사용되는 Type, Util 등을 정의

Domain

  • DB와 밀접한 도메인을 다루는 모듈
  • 애플리케이션 비즈니스를 모름
  • 하나의 모듈은 최대 하나의 Infrastructure에 대한 책임을 가짐
  • Entity, Repository, Reader, Writer 정의

Client

  • 비즈니스를 모르지만 외부 API와 통신하는 모듈
  • WebClient를 통해 외부 API와 통신

Api, Batch, External

  • 독립적으로 실행 가능한 모듈

Tech Stack

  • Language

    • zulu-openjdk:19.0.2
    • Kotlin 1.9.10
  • Framework

    • Spring Boot 3.1.5
    • Gradle 8.4.0
  • ORM

    • Spring Data JPA
  • Authorization

    • Spring Security
    • OIDC, OAuth2.0
    • JWT
  • Test

    • Kotest 5.8.0
    • MockK 1.13.8
    • Spring Rest Docs 3.3.2
  • Database

    • PostgreSQL 14
  • AWS

    • EC2 (Ubuntu 20.04)
    • S3
    • RDS (PostgreSQL 14)
    • CodeDeploy
    • Route53
  • ETC

    • Docker
    • Nginx
    • certbot
    • Firebase Cloud Messaging