Skip to content

Try-two-sungbull/BE

Repository files navigation

AI-Human 협업 기반 환경업무 혁신 서비스 (Backend)

본 프로젝트는 AI-Human 협업 기반 환경업무 혁신을 주제로 한 해커톤에서
환경 공공기관의 반복적이고 복잡한 행정 업무를
AI 에이전트 + 인간 검증 구조로 개선하기 위해 개발된 서비스의 백엔드 서버입니다.

본 레포지토리는 Spring Boot 기반 API 서버로,
프론트엔드 및 Python 기반 AI 에이전트(FastAPI) 사이의 중앙 서빙 및 보안 레이어 역할을 수행합니다.


🏗️ 시스템 역할

  • 모든 클라이언트 요청은 Spring 서버를 통해서만 처리
  • AI 에이전트(FastAPI)는 외부에 직접 노출하지 않고 내부 통신으로만 사용
  • 인증, 권한 관리, 데이터 가공, 보안 정책을 Spring 서버에서 담당

✨ 주요 기능

  • 환경 업무 관련 요청을 처리하는 REST API 제공
  • Python 기반 AI 에이전트와 연동하여 결과 생성
  • 공공 API 연동 및 데이터 정제 후 프론트엔드에 제공
  • 관리자 전용 인증 기반 서비스 접근 제어
  • 프론트엔드와의 안정적인 통신을 위한 CORS 정책 설정

🔐 인증 및 보안 설계

  • 토큰 기반 인증 로직 직접 구현
  • 인증 토큰을 Cookie에 저장하여 관리
  • 관리자 계정 단일 구조로 운영
    • 회원가입 기능 없이 로그인만 허용
    • 관리자 계정 정보는 DB에 비밀번호 해시값으로 저장
  • 프론트엔드는 Spring 서버만 호출 가능
  • AI 에이전트(FastAPI)는 외부 접근 차단

🔁 API 설계 특징

  • AI 에이전트의 단일 POST API를 그대로 노출하지 않고, Spring 서버에서 다음과 같이 분리 처리
    • 파일 업로드: POST
    • 처리 결과 조회: GET
  • 프론트엔드 사용성을 고려한 API 구조 설계

⚙️ 기술 스택

Backend

  • Java 17
  • Spring Boot
  • Spring Web
  • Spring Security (커스텀 인증 로직)

AI 연동

  • Python FastAPI (내부 통신)
  • AI Agent 결과를 Spring 서버에서 가공 후 제공

Infra / DevOps

  • Docker
  • Coolify
  • GitHub Actions (CI/CD)
  • Nginx (Reverse Proxy)

Database

  • MySQL

🚀 배포 및 CI/CD

  • Coolify 기반 배포 환경 구성
  • GitHub Actions를 활용한 CI/CD 파이프라인 구축
  • main 브랜치 기준 자동 빌드 및 배포
  • 환경 변수 기반 설정 분리

🧠 설계 의도

  • AI 기능보다 서비스 안정성과 보안 구조에 집중
  • AI는 “결과를 제안하는 역할”, 최종 판단은 사람이 수행
  • 백엔드 서버를 중심으로 책임을 명확히 분리한 구조

📌 개발 범위

  • Spring 기반 API 서버 단독 개발
  • 인증 / 보안 / API / 배포 / CI/CD 전반 담당
  • 프론트엔드, AI 에이전트와의 연동 구조 설계

📝 참고

본 프로젝트는 해커톤 제출용으로 개발되었으며,
실제 운영 환경을 가정한 구조 설계와 배포 경험을 목표로 진행되었습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors