AIMS 프로젝트 개발 착수 - 아키텍처 및 개발 환경 정리

📌 오늘 진행 내용

오늘은 프로젝트의 실제 개발을 시작하기 위한 구조 설계와 개발 환경 정리를 진행하였다.

그동안 프로젝트 기획과 요구사항 정의에 집중했다면, 이제는 실제 구현 단계로 넘어가기 위해 서비스 구조와 저장소 전략, 데이터베이스 접근 방식 등을 구체화하는 시간을 가졌다.


🏗 서비스 구조 확정

AIMS는 기능별 독립 서비스를 기반으로 한 구조로 개발을 진행하기로 결정하였다.

Backend Repository

backend
├─ assembly-service
├─ quality-service
└─ ai-service

각 서비스는 담당 기능을 독립적으로 개발할 수 있도록 분리하며, 향후 서비스 확장과 유지보수성을 고려한 구조를 목표로 한다.

주요 역할

Assembly Service

자동차 제조 공정 및 생산 라인 관련 데이터 관리

Quality Service

품질 검사 및 불량 데이터 관리

AI Service

AI 분석 기능 담당

  • 병목 현상 분석
  • 불량 전이 분석
  • 원인 분석
  • LLM 기반 대응 지원

🤖 AI Service 구조 설계

AI Service는 FastAPI 기반으로 개발을 진행하며 아래와 같은 계층 구조를 사용한다.

Core Layer

core/

공통 설정, 로깅, 예외 처리 담당

Router Layer

routers/

API 엔드포인트 관리

  • Health Check
  • Orchestrator API
  • LLM API
  • 분석 API
  • 머신러닝 API

Service Layer

service/

비즈니스 로직 처리

  • 분석 서비스
  • LLM 서비스
  • 오케스트레이션 서비스

Machine Learning Layer

ml/

AI 모델 생명주기 관리

  • 데이터 로딩
  • 전처리
  • Feature Engineering
  • 학습
  • 평가
  • 추론
  • 모델 버전 관리

프로젝트 초반부터 학습 코드와 서비스 코드를 분리하여 향후 유지보수와 모델 교체가 쉽도록 설계하였다.


🗄 데이터베이스 구조 설계

AIMS는 하나의 RDS 인스턴스 내부에 두 개의 논리 데이터베이스를 운영한다.

RDS
├─ sampledb
└─ maindb

sampledb

원본 데이터 저장

  • 외부 데이터셋
  • 개발용 샘플 데이터
  • 시뮬레이션 데이터

maindb

실제 서비스 데이터 저장

  • 분석 결과
  • 대시보드 데이터
  • 이벤트 데이터
  • 운영 데이터

원본 데이터와 서비스 데이터를 분리함으로써 데이터 정합성과 관리 효율성을 확보할 수 있다.


🔐 보안 고려 사항

RDS는 Private Subnet에 배치한다.

외부에서 직접 접근하지 않고 Bastion Host를 통해 SSH 터널링 방식으로 접속하도록 구성한다.

Developer PC
      ↓
Bastion EC2
      ↓
Private RDS

이를 통해 데이터베이스를 외부에 노출하지 않고 안전하게 운영할 수 있다.

또한 다음 사항을 팀 규칙으로 정하였다.

  • PEM 키 공개 금지
  • DB 비밀번호 공유 금지
  • GitHub 업로드 금지
  • Notion 공개 문서 업로드 금지

🍪 인증 방식 개선

기존 JWT 전달 방식에서 보안성을 높이기 위해

변경 전

URL 또는 LocalStorage 기반 토큰 관리

변경 후

HTTPOnly Cookie 기반 JWT 관리

방식으로 변경하기로 하였다.

이를 통해

  • XSS 공격 위험 감소
  • 토큰 노출 방지
  • 보안성 향상

효과를 기대할 수 있다.


📦 저장소 구조

프로젝트 저장소는 역할별로 분리하여 운영한다.

Infra Repository

infra

Terraform 코드 및 인프라 관리

Backend Repository

backend

Spring Boot 및 AI 서비스 관리

Frontend Repository

frontend

v0 기반 화면을 React + TypeScript 코드로 이전


🔍 코드 품질 관리

팀 협업 품질 향상을 위해

main
 ↕
dev

브랜치 운영 전략을 사용한다.

모든 기능은 Pull Request를 통해 병합하며

  • 코드 리뷰
  • 동작 검증
  • 충돌 확인

과정을 거친 후 반영하도록 하였다.


🎯 앞으로의 계획

현재까지는 프로젝트 기획과 설계가 중심이었다면 이제는 실제 개발 단계에 진입하게 되었다.

다음 목표는 다음과 같다.

  • Spring Boot 서비스 개발
  • AI 분석 서비스 구현
  • 실시간 데이터 처리 구조 설계
  • 대시보드 연동

AIMS 프로젝트가 단순 모니터링 시스템이 아니라 제조 공정 데이터를 통합적으로 분석하고 시각화하는 지능형 관제 시스템으로 발전할 수 있도록 지속적으로 구현해 나갈 예정이다.

profile
SK쉴더스 루키즈 개발 트랙 5기

0개의 댓글