Skip to content

tech stack Tech Stack

Kimgyuilli edited this page Dec 31, 2025 · 3 revisions

언어 및 런타임

Java 21

  • JDK: Temurin 21
  • 빌드 도구: Gradle

선택 이유

  • 최신 기능 지원: 레코드, 패턴 매칭, 가상 스레드 등 최신 Java 기능 활용
  • 성능 향상: 최신 JDK의 성능 최적화 및 메모리 관리 개선
  • 장기 지원(LTS): 안정적인 운영 환경 제공
  • 미래 대비: Spring Boot 4.x 이상에서 Java 21을 기본 지원하므로, 향후 기술 변화에 유연하게 대응 가능

백엔드 프레임워크

Spring Boot 3.5.9

주요 스타터 모듈:

  • spring-boot-starter-web: RESTful API 개발
  • spring-boot-starter-data-jpa: ORM 및 데이터 영속성
  • spring-boot-starter-validation: 데이터 검증

선택 이유

  • 안정성: Spring Boot 4에 비해 충분히 검증된 안정화 버전
  • 호환성: Spring AI와의 호환성 이슈가 없음
  • 리스크 최소화: 프로덕션 환경에서 검증된 버전 사용

데이터베이스

PostgreSQL 17

운영 환경 메인 데이터베이스

선택 이유

  • 확장성: pgvector 등 벡터 검색 확장 기능으로 AI 챗봇 도입 시 유리
  • 성능: 복잡한 쿼리 처리 및 대용량 데이터 관리에 최적화
  • 생태계: 풍부한 관리 도구 및 커뮤니티 지원

H2 Database

테스트 환경 인메모리 데이터베이스

인프라

  • Docker: 애플리케이션 컨테이너화
  • Docker Compose: 로컬 개발 환경 구성
  • GitHub Actions: CI/CD 자동화

코드 품질 및 테스트

  • JUnit Platform: 테스트 프레임워크
  • Spring Boot Test: 통합 테스트
  • Checkstyle 12.3.0: 코드 스타일 검사
  • JaCoCo 0.8.12: 코드 커버리지 측정
  • CodeRabbit: AI 기반 자동 코드 리뷰

API 문서화

SpringDoc OpenAPI 2.8.14

Swagger UI 기반 API 문서 자동 생성

선택 이유

  • Spring Boot 3.5.x 공식 권장 호환 버전

주요 라이브러리

  • Lombok: 보일러플레이트 코드 자동 생성
  • Spring Validation: Bean Validation API 구현체

추후 도입 고려 중인 기술

  • pgvector: PostgreSQL 벡터 검색 확장 (AI 챗봇용 임베딩 저장)
  • Spring AI: AI 기능 통합을 위한 Spring 모듈
  • Redis: 캐싱 및 세션 관리
  • Prometheus & Grafana: 애플리케이션 모니터링 및 메트릭 시각화
  • QueryDSL: 타입 안전 동적 쿼리 생성

Clone this wiki locally