# IOTDOOR Spring Boot 마이그레이션 계획

## 목표

- 레거시 `eGovFrame + Spring MVC` 구조를 `Spring Boot 3.x + Java 17` 기반으로 전환
- 기존 공개 사이트 디자인은 최대한 유지
- 관리자 영역은 운영성과 보안성을 우선으로 재설계
- 불필요한 레거시 자산과 연결되지 않은 화면은 점진적으로 제외

## 현재 1차 이행 범위

- Spring Boot 3 / Java 17 신규 모듈 생성
- 공개 메인 페이지 이식
- 연락처 페이지 이식
- 포트폴리오 페이지를 정적/큐레이션 방식으로 재구성
- 관리자 로그인/로그아웃 이식
- 관리자 대시보드 신규 구성
- 문의 접수를 서버 검증 API 기반으로 교체

## 이번 단계에서 의도적으로 보류한 범위

- 게시판 CRUD
- 회원가입 및 사용자 상세 프로필
- 메시지/알림
- 설문
- 관리자 CMS 전체
- 운영 로그 및 통계
- Hypermeta 연동
- DB 기반 메뉴/권한 시스템

## 설계 원칙

1. 레거시와 직접 충돌하지 않도록 신규 모듈 `iotdoor-boot/` 에서 시작한다.
2. URL은 가능한 한 기존 `.do` 패턴을 유지한다.
3. 화면은 기존 Thymeleaf 템플릿과 정적 리소스를 재사용한다.
4. 인증은 Spring Security 6 표준 구성으로 재작성한다.
5. 보안 취약점으로 보였던 항목은 기본값부터 개선한다.

## 우선순위 제안

### 2차

- 공통 레이아웃/메뉴를 DB 비의존 구조로 정리
- 게시판 읽기 전용 목록/상세 먼저 이식
- 파일 업로드/다운로드 서비스 재구성

### 3차

- 관리자 게시판/공지 관리
- 회원 조회 및 권한 관리
- 사이트 정보/배너/팝업 관리

### 4차

- 메시지, 설문, 통계, 로그 이식
- MyBatis 매퍼 재정비 및 DB 스키마 문서화
- 외부 연동(Hypermeta) 재적용

## 보안 개선 기준

- CSRF 기본 활성화
- BCrypt 비밀번호 사용
- 관리자 계정은 환경변수로 주입
- 클라이언트 직접 메일 발송 제거
- 운영 민감정보의 템플릿/JS 하드코딩 최소화

