37.png

38.png

Backend

기술 스택 선정 이유
Spring Data JPA 데이터베이스와의 상호작용을 추상화하여 CRUD 기능 및 페이징/정렬 기능을 손쉽게 구현할 수 있도록 함.
Spring Security 특정 역할(USER, MANAGER, ADMIN)만 API를 호출할 수 있도록 권한 관리를 수행.
Swagger 소스 코드 기반으로 자동으로 API 문서를 생성하여 개발 및 유지보수를 용이하게 함.
JWT 토큰 기반 인증 방식을 사용하여 세션 관리 없이 API 인증을 처리할 수 있도록 함.
Redis 로그인 시도 횟수, 토큰 등 빠른 처리가 필요한 일시적 데이터를 관리하며, TTL 지원을 통해 자동 만료 기능 제공.
Querydsl 동적 쿼리 작성이 용이하며, 타입 안정성이 보장됨. BooleanBuilder를 활용하여 유연한 검색 조건 조합 가능.
Flyway 데이터베이스 스키마 버전 관리를 통해 마이그레이션을 안정적으로 수행할 수 있도록 함.
Testcontainers 데이터베이스와의 통합 테스트를 위한 경량 컨테이너 환경을 제공하여 테스트 신뢰성을 향상.
Apache Tika 업로드된 파일의 형식을 검증하여 보안성을 강화하고, 잘못된 형식의 파일을 사전에 차단.

Infra & DB

기술 스택 설명
Github Actions CI/CD 파이프라인 자동화를 통해 코드 푸시 시 빌드, 테스트, 배포 프로세스를 자동으로 수행.
ElasticSearch Aggregation 기능을 활용하여 통계 기능을 쉽게 구현하며, 대량 데이터에 대한 빠른 검색 및 분석 기능 제공.
MySQL 관계형 데이터베이스로, Spring Data JPA와 함께 사용하여 안정적인 데이터 관리를 지원. 대용량 데이터 처리 시 인덱스를 활용하여 성능 최적화.
Docker 컨테이너 기반 환경을 제공하여 애플리케이션 배포 및 실행을 일관되게 유지할 수 있도록 함.