- Language: Kotlin
- Framework: Spring Boot
- Database: MySQL, JPA
- Infra: Docker, Nginx, Github Actions, AWS EC2, AWS S3, FCM
- Others: Caffeine Cache
/.github/workflows/pull-request-workflow.yml
- develop 브랜치에 PR이 올라오면 build 실행
/.github/workflows/deploy-workflow.yml
- develop 브랜치에 merge 되면 실행
- 도커 이미지 build 및 도커 허브에 이미지 push (api, batch 이미지)
- docker-compose.yml 및 배포 스크립트 서버에 복사
- application.yml에 사용되는 환경 변수를 github secret에서 가져와서 EC2 서버에 저장
- deploy.sh 실행 -> docker image pull 한 뒤 docker-compose.yml을 가지고 docker-compose 실행 (.env 파일에서 환경변수를 읽음)
통신을 위한 모듈 (controller 레이어)
- 로컬 실행 방법
cd api/build/libs
java -jar api-0.0.1-SNAPSHOT.jar --spring.profiles.active=local --server.port=8080
도메인 및 도메인 로직을 위한 모듈 (domain, repository, service 레이어)
배치 작업을 위한 모듈
- 로컬 실행 방법
cd batch/build/libs
java -jar batch-0.0.1-SNAPSHOT.jar --spring.profiles.active=local --server.port=8081
- swagger: http://localhost:8080/swagger-ui
vm options: -Duser.timezone=Asia/Seoul