본 프로젝트는 AI-Human 협업 기반 환경업무 혁신을 주제로 한 해커톤에서
환경 공공기관의 반복적이고 복잡한 행정 업무를
AI 에이전트 + 인간 검증 구조로 개선하기 위해 개발된 서비스의 백엔드 서버입니다.
본 레포지토리는 Spring Boot 기반 API 서버로,
프론트엔드 및 Python 기반 AI 에이전트(FastAPI) 사이의 중앙 서빙 및 보안 레이어 역할을 수행합니다.
- 모든 클라이언트 요청은 Spring 서버를 통해서만 처리
- AI 에이전트(FastAPI)는 외부에 직접 노출하지 않고 내부 통신으로만 사용
- 인증, 권한 관리, 데이터 가공, 보안 정책을 Spring 서버에서 담당
- 환경 업무 관련 요청을 처리하는 REST API 제공
- Python 기반 AI 에이전트와 연동하여 결과 생성
- 공공 API 연동 및 데이터 정제 후 프론트엔드에 제공
- 관리자 전용 인증 기반 서비스 접근 제어
- 프론트엔드와의 안정적인 통신을 위한 CORS 정책 설정
- 토큰 기반 인증 로직 직접 구현
- 인증 토큰을 Cookie에 저장하여 관리
- 관리자 계정 단일 구조로 운영
- 회원가입 기능 없이 로그인만 허용
- 관리자 계정 정보는 DB에 비밀번호 해시값으로 저장
- 프론트엔드는 Spring 서버만 호출 가능
- AI 에이전트(FastAPI)는 외부 접근 차단
- AI 에이전트의 단일 POST API를 그대로 노출하지 않고,
Spring 서버에서 다음과 같이 분리 처리
- 파일 업로드:
POST - 처리 결과 조회:
GET
- 파일 업로드:
- 프론트엔드 사용성을 고려한 API 구조 설계
- Java 17
- Spring Boot
- Spring Web
- Spring Security (커스텀 인증 로직)
- Python FastAPI (내부 통신)
- AI Agent 결과를 Spring 서버에서 가공 후 제공
- Docker
- Coolify
- GitHub Actions (CI/CD)
- Nginx (Reverse Proxy)
- MySQL
- Coolify 기반 배포 환경 구성
- GitHub Actions를 활용한 CI/CD 파이프라인 구축
- main 브랜치 기준 자동 빌드 및 배포
- 환경 변수 기반 설정 분리
- AI 기능보다 서비스 안정성과 보안 구조에 집중
- AI는 “결과를 제안하는 역할”, 최종 판단은 사람이 수행
- 백엔드 서버를 중심으로 책임을 명확히 분리한 구조
- Spring 기반 API 서버 단독 개발
- 인증 / 보안 / API / 배포 / CI/CD 전반 담당
- 프론트엔드, AI 에이전트와의 연동 구조 설계
본 프로젝트는 해커톤 제출용으로 개발되었으며,
실제 운영 환경을 가정한 구조 설계와 배포 경험을 목표로 진행되었습니다.