BACKEND

한국예술종합학교 K-Arts 누리 레거시 포털 고도화

노후화된 학사·행정 포털을 전자정부 표준프레임워크로 전환. iBatis → MyBatis 문법 치환 자동화로 공수 2개월 단축, DB 기반 동적 메뉴 도입.

한국예술종합학교(K-Arts)의 노후화된 학사·행정 포털을 전자정부 표준프레임워크 기반으로 전환한 레거시 고도화 프로젝트입니다.

전자정부 표준프레임워크 패키지 적용, 의존성 정리, iBatis → MyBatis 문법 치환 등 프레임워크 전환의 공통 작업을 자동화하여 공수를 단축했습니다. 이후 하드코딩된 정적 메뉴 구조를 사용자 권한 기반의 동적 레이아웃으로 전환했습니다.

내 역할: 전자정부프레임워크 적용 및 의존성 해소, iBatis→MyBatis 치환 자동화 스크립트 개발, iframe 제거, DB 기반 동적 메뉴 시스템 설계 및 구현.

  • Java / Spring — 학사·행정 시스템 백엔드 - Oracle / MyBatis / iBatis — 데이터 처리 및 레거시 쿼리 마이그레이션 - 전자정부 표준프레임워크 — 공공기관 표준 개발 환경 - MyBuilder — 기존 iframe 기반 학사 리포트 뷰어
Troubleshooting
Problem
iBatis로 작성된 쿼리를 MyBatis 문법으로 전환해야 하는 상황에서, 수작업 처리 시 공수가 납기를 초과할 것으로 예상됨
Cause
전자정부 표준프레임워크 적용 과정에서 패키지 의존성 변경, iBatis→MyBatis 문법 차이(네임스페이스 방식, parameterClass→parameterType 등) 등 반복적이지만 건수가 많은 치환 작업이 대량 발생
Alternatives
1) 쿼리 파일 전체 수작업 수정 2) 파일 단위로 담당자 분배 후 병렬 처리 3) 문법 패턴을 분석해 치환 스크립트 자동화
Decision
iBatis와 MyBatis 간 문법 차이 패턴을 분석하여 치환 스크립트를 작성. 전자정부프레임워크 공통 의존성 추가 및 패키지 충돌 해소도 스크립트 범위에 포함. 단, MyBatis에서 지원하지 않는 프로시저 호출 쿼리는 자동화 대상에서 제외하고 UPDATE 또는 SELECT 문으로 별도 수작업 재작성.

자동화로 처리 가능한 쿼리 대부분을 일괄 변환하여 전환 공수 2개월 이상 단축. 프로시저 쿼리는 수작업으로 별도 처리 완료.

Troubleshooting
Problem
정적으로 하드코딩된 메뉴 구조로 인해 사용자 역할별 접근 제어가 불가능하고, 메뉴 추가·변경 시마다 배포가 필요한 구조
Cause
메뉴 트리가 JSP 템플릿에 직접 기술되어 있어 권한 조건 분기가 코드 레벨에서만 가능하고, 비개발 운영자가 메뉴를 수정할 수 없음
Alternatives
1) 현행 유지 후 요청 시마다 배포 2) 메뉴만 별도 설정 파일로 분리 3) DB 기반 동적 메뉴로 완전 전환
Decision
메뉴 데이터를 DB 테이블로 이관하고, 사용자 권한(role)과 메뉴 노출 여부를 조인하여 동적으로 렌더링하는 레이아웃 구조로 전환. 운영자가 배포 없이 메뉴를 직접 관리 가능하도록 어드민 기능 추가.

권한 기반 동적 메뉴 적용으로 배포 없는 메뉴 관리 가능. 역할별 접근 제어 완성.

  • iBatis → MyBatis 치환 자동화로 전환 공수 2개월 이상 단축
  • 전자정부 표준프레임워크 패키지 적용 및 의존성 충돌 해소
  • MyBatis 미지원 프로시저 쿼리 UPDATE/SELECT로 수작업 재작성 완료
  • iframe 제거 및 내부 뷰어 페이지를 일반 웹 페이지로 전환 완료
  • 정적 메뉴 → DB 기반 동적 레이아웃 전환으로 배포 없는 메뉴 관리 실현
  • 사용자 권한 기반 접근 제어 구조 완성

회고: 레거시 시스템은 '이해'에 시간이 걸리고, 자동화는 그 이해가 충분히 쌓인 뒤에야 가능합니다. 처음에는 수작업이 빠를 것 같았지만, 패턴을 파악하고 자동화한 결과가 훨씬 컸습니다. 반복 작업이 보이면 먼저 자동화 가능성을 따져보는 습관이 이 프로젝트에서 생겼습니다.

← Portfolio 목록으로