Language&Framework
- Java11/Spring Framework (Spring Boot 2.7.13)
- Spring Data JPA, QueryDsl
- Spring Batch
- Swagger
Database
- MySQL
- Redis
Infra
- AWS Elastic Beanstalk, EC2, AWS RDS, AWS LB, Nginx, AWS S3
- GCP GCE, ALB, GCS, Cloud SQL
- Git, Github Actions
ETC
- Slack
- Sentry
- JWT
- Nave SENS API, CoolSMS
- FCM, Jasypt
- 스프링 배치를 활용한 매일 오전 9시 지정 알림 발송: 금일의 수업 여부를 알려주기 위해, 스프링 배치를 활용하여 매일 오전 9시 대상 사용자에 한해 FCM 알림 발송
- Bulk Insert를 활용한 API 성능 개선: JPA의 saveAll의 기존 코드를 JdbcTemplate의 Bulk Insert로 실행 시간 60% 감소 (최대 3초 -> 최대 1.2초)
- 비동기 설정을 통해 FCM 전송 성능 개선: FCM 알림 발송 로직 비동기 처리를 통해 실행 시간 25% 감소 (최대 2초 -> 최대 1.5초)
- 2시간 주기의 Active Health Check Github Actions, Slack을 활용하여 2시간 주기마다 서버 헬스체크 진행
- Sentry를 활용한 슬로우 쿼리, 에러 모니터링 AOP를 활용한 슬로우 쿼리 측정 및 서버 에러 발생 시, Sentry 이벤트와 Slack 알림 발송 설정
- 사용자별 테마 적용을 위한 데이터베이스 설계 사용자가 클래스별 테마를 설정할 수 있도록 참조 테이블을 활용하여 이름/색상 정보 관리
- 운영 환경과 개발 환경 분리 구성(AWS 활용)
- 서버 비용 최소화를 위한 AWS에서 GCP로의 인프라 전환 (다운타임 최소화)
- Naver SENS API의 개인 대상 서비스 종료로 인한, CoolSMS 전환