Skip to content

masiljangajji/My-Music-Note

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 

Repository files navigation

🎶 My-Music-Note

My-Music-Note는 일기와 음악을 통한 나만의 AI친구 서비스입니다.

개발 환경

  • 개발도구: Intellij IDEA - Ultimate
  • 언어: Java 17 LTS
  • 빌드도구: Gradle
  • 개발
    • Spring Boot: 3.3.4
    • Spring Data JPA
  • 테스트
    • Junit5
    • AssertJ
    • Mockito
    • SonarCloud
  • AWS Infra
    • VPC
    • EC2
    • ALB
    • ASG
    • NAT Gateway
  • CI/CD
    • AWS S3
    • AWS CodeDeploy
    • GitHub Actions
    • Docker
  • 데이터베이스
    • AWS RDS PostgreSQL 16.3
  • ERD
    • ERDCloud
  • ETC
    • Post Man

사용 기술

Java Gradle JWT
Spring Boot React
PostgreSQL JPA Hibernate
GitHub Actions AWS S3 AWS CodeDeploy AWS Docker
Git GitHub IntelliJ IDEA DataGrip SonarCloud

AWS Infra

My-Music-Note

CI/CD

CI:CD

  1. 인프라 관리비용 최소화를 위해 Jenkins 대신 Github Ations 사용
  2. S3CodeDeploy가 실행시킬 Script를 저장
  3. CodeDeploy를 사용하는 목적은 Blue/Green 배포 + ASG로 생성된 EC2배포 자동화의 목적
  4. Docker를 사용함으로서 동일한 환경을 제공

테스트 커버리지

SonarCloud

기여 내용

  • 백엔드 개발
    • 유저, 일기, GPT 관련 RESTful API 구현
  • 고가용성 아키텍처 설계
    • Auto Scaling Group과 Load Balancer를 활용한 고가용성 아키텍처 구축
    • AWS CodeDeploy를 통한 Blue/Green 배포로 무중단 서비스 제공
  • Artillery를 활용한 성능 테스트
    • 단일 EC2
      • 타임아웃 오류: 전체 요청의 37.6%(14,766건)
      • 작업 실패율: 가상 사용자의 54.7%(14,766명)
    • My-Music-Note
      • 타임아웃 오류: 0%
      • 작업 실패율: 0%
      • 99% 요청에 대해 레이턴시 25.8ms
  • GitHub Actions 기반 CI/CD 파이프라인 구축
    • Gradle 및 Npm 캐싱 적용으로 CI/CD 빌드 시간 30% 이상 단축
    • Amazon Machine Image 활용으로 배포 속도 개선 및 비용 절감
  • 보안 및 네트워크 강화
    • Systems Manager 도입으로 SSH 없이 EC2 접근, Bastion Host 비용 제거 및 외부 노출 차단
    • 보안 그룹 및 ALB-ASG 연동으로 Frontend와 Backend 계층 보안 강화
  • 코드 품질 관리
    • SonarCloud ,JaCoCo 연동으로 PR 단계에서 코드 품질 개선
    • 백엔드 서버 Test Coverage 68.7%

프로젝트 고민 및 트러블 슈팅

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published