정지용
프로젝트 목록
백엔드Java

AI SDK 라이선스·모델 배포 관리 백엔드

AI 모델과 SDK 라이선스를 암호화·배포하고, 조직별 인증 이력을 추적하는 Spring Boot 기반 관리 API 서버

deploy-server-backend최근 업데이트 2026년 7월 27일

개요

이 프로젝트는 사내 AI SDK와 모델 파일을 고객사에 안전하게 배포하기 위한 백엔드 시스템입니다. 라이선스를 AES/SEED 암호화로 생성·다운로드하고, 모델 파일을 S3에 저장하며, 인증 이력을 PostgreSQL에 기록합니다. Spring Security와 JWT로 관리자 인증을 처리하고, Flyway로 스키마 마이그레이션을 관리하며, 라이선스 만료 알림을 SMTP로 발송합니다. Docker Compose로 로컬 개발 환경을 구성하고, GitHub Actions 자체 호스팅 러너를 통해 테스트·빌드·배포 파이프라인을 자동화했습니다.

담당 역할

Spring Boot 기반 레이어드 아키텍처 설계 및 구현, AES/SEED 커스텀 암호화 모듈 개발, Flyway 마이그레이션 스크립트 작성, GitHub Actions CI/CD 파이프라인 구축을 담당했습니다.

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

전체 시스템 아키텍처

관리자가 웹 콘솔을 통해 라이선스·모델을 등록하고, 고객사가 API로 다운로드·인증하는 전체 흐름을 보여줍니다.

다이어그램을 그리는 중…
시퀀스

라이선스 발급·인증 흐름

관리자가 라이선스를 생성하면 AES/SEED로 암호화해 S3에 저장하고, 고객사가 다운로드할 때마다 인증 이력을 DB에 기록하는 시퀀스입니다.

다이어그램을 그리는 중…
데이터 모델

주요 엔티티 관계

라이선스, 모델, SDK, 조직, 사용자, 딜 엔티티와 각각의 이력 테이블 간 관계를 ERD로 표현합니다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • JavaJDK 17 기반 백엔드 로직 구현

프레임워크

  • Spring BootWeb, Security, Data JPA, Mail 모듈을 활용한 REST API 서버 구축

데이터베이스

  • PostgreSQL라이선스, 모델, 조직, 인증 이력 등 메타데이터 저장

백엔드

  • Flyway데이터베이스 스키마 버전 관리 및 마이그레이션
  • Spring SecurityJWT 기반 관리자 인증 및 권한 검증

인프라

  • AWS S3모델 파일(최대 10GB) 업로드 및 스토리지

DevOps

  • Docker멀티스테이지 빌드와 로컬 PostgreSQL 컨테이너 환경 구성
  • GitHub Actions자체 호스팅 러너를 이용한 테스트·빌드·배포 자동화

도구

  • Gradle의존성 관리 및 빌드 자동화
  • Swaggerspringdoc-openapi 기반 REST API 문서 자동 생성

핵심 포인트

  • AES/SEED 대칭키 암호화로 라이선스 파일을 생성하고, 다운로드·인증 이력을 별도 테이블에 기록해 추적성 확보
  • Flyway 마이그레이션 스크립트 20개 이상을 작성해 스키마 변경 이력을 버전 관리하고 안전한 배포 지원
  • 최대 10GB 모델 파일 업로드를 위해 MultipartJackson2HttpMessageConverter 커스텀 설정 적용
  • GitHub Actions 자체 호스팅 러너에서 application-private.properties를 시크릿으로 주입해 민감 정보 분리
  • 라이선스, 모델, SDK 각각에 대한 이력(History) 엔티티를 별도로 설계해 변경 추적 및 감사 로그 제공

문제와 해결

문제대용량 모델 파일 업로드 시 기본 HTTP 메시지 컨버터 용량 제한 초과

해결MultipartJackson2HttpMessageConverter를 커스텀 설정해 최대 10GB까지 처리하도록 확장

문제라이선스 암호화 알고리즘이 AES와 SEED 두 가지 버전으로 공존

해결LicenseUtil과 LicenseV2 클래스를 분리하고, 파일 확장자로 버전을 구분해 레거시 호환성 유지

문제배포 시 민감한 설정(DB 접속 정보, AWS 키 등)을 소스코드에서 분리 필요

해결application-private.properties를 GitHub Actions 시크릿으로 관리하고 CI 단계에서 주입하는 파이프라인 구축

레포지토리 정보

생성
2026년 7월 27일
최근 커밋
2026년 7월 27일
크기
9,397 KB
라이선스
없음

언어 구성

  • Java95.3%
  • PLpgSQL4.5%
  • Shell0.1%

이 문서는 2026년 7월 28일 에 자동 분석으로 생성되었습니다.