UUIS(통합 대학 재고 관리 시스템) 설계·테스트·배포·운용 매뉴얼: 팀 4의 COMP5541‑W10 프로젝트 접근법

읽는 시간: 8 분
...

📝 Abstract

This document provides a description of the technical design for Unified University Inventory System - Web Portal. This document’s primary purpose is to describe the technical vision for how business requirements will be realized. This document provides an architectural overview of the system to depict different aspects of the system. This document also functions as a foundational reference point for developers.

💡 Analysis

1. 설계 접근법 및 아키텍처

  • 4계층 아키텍처(Presentation, Domain, Hibernate, Data) 를 채택해 관심사의 분리를 명확히 함으로써 유지보수성과 재사용성을 높였다. 특히 Grails 기반 프레젠테이션 계층과 Hibernate 매핑을 통한 도메인‑데이터 계층의 분리는 현대 웹 애플리케이션에서 권장되는 패턴이다.
  • 인터넷 기반 데이터 흐름Hibernate‑MySQL 조합은 대용량 데이터 캐싱·조회에 적합하지만, 트랜잭션 관리와 세션 스코프에 대한 명시적 설계가 부족해 동시성 문제 발생 가능성이 있다.

2. 주요 기능 모듈 분석

모듈핵심 기능설계 강점잠재적 위험/보완점
자산 관리자산 CRUD, 바코드 자동 생성, CSV 일괄 import/export바코드 연동을 외부 서비스에 의존하지 않고 URL 호출로 구현, CSV 지원으로 초기 데이터 마이그레이션 용이바코드 생성 로직이 외부 웹사이트에 의존 → 서비스 장애 시 대체 방안 필요
위치 관리건물·실·연구실 등 계층적 위치 관리계층 구조를 통한 권한 기반 접근 제어 가능위치 타입·용량 등 메타데이터 정의가 명확히 문서화되지 않음
요청 관리일반 사용자 요청 생성·조회, 관리자 승인·거절워크플로우가 명확히 구분돼 역할 기반 권한 부여에 적합요청 상태 전이 로직이 UI에만 의존할 경우 백엔드 검증 부족
보고서자산·요청·사용자 권한·사용자 현황 보고서, PDF/CSV 출력Grails 서비스 레이어에서 보고서 로직을 캡슐화 → 재사용성 확보PDF 생성 시 성능 이슈(대용량 데이터)와 보안(민감 정보 노출) 고려 필요
사용자 권한4단계 권한(학생, 부서 관리자, 학부 관리자, 대학 관리자)계층형 권한 모델이 대학 조직 구조와 일치권한 변경 시 동기화 로직이 미비 → 권한 상승/하락 시 로그 및 감사 필요

3. UI/UX 설계

  • 와이어프레임을 활용해 기능·내비게이션·콘텐츠를 시각화한 점은 이해관계자와의 커뮤니케이션을 효율화한다.
  • 다만, 실제 UI 구현 시 반응형 디자인접근성(ARIA) 표준 적용 여부가 언급되지 않아, 다양한 디바이스와 장애인 사용자를 고려한 개선이 필요하다.

4. 예외 처리 및 로깅

  • 전역 예외 핸들러Windows Application Event Log 연동은 일관된 오류 관리에 유리하지만, 웹 애플리케이션 특성상 파일 기반 로그(예: Logback)와 중앙 집중식 로그 수집(ELK, Splunk) 도입을 검토하면 운영 단계에서 문제 추적이 용이해진다.

5. 테스트·배포·구성 관리

  • 문서에 테스트 전략(단위·통합·시스템 테스트) 및 CI/CD 파이프라인에 대한 구체적 언급이 없으며, Docker/Kubernetes 기반 컨테이너화가 고려되지 않았다. 향후 배포 자동화와 환경 일관성을 위해 인프라 코드(IaC) 도입을 권고한다.

6. 보안 고려사항

  • 인증·인가는 외부 시스템에서 사용자 정보를 가져오는 것으로 가정하지만, OAuth2, SAML, JWT 등 현대적인 인증 메커니즘과 역할 기반 접근 제어(RBAC) 구현이 명시되지 않았다.
  • 바코드 생성 URL 호출 시 HTTPS 사용 여부와 API 키 관리가 필요하다.

7. 문서 및 유지보수성

  • Grails의 동적 메서드(예: save, delete)가 클래스 다이어그램에 표시되지 않아 설계 가시성이 떨어진다. UML에 스테레오타입이나 주석을 추가해 동적 메서드 사용을 명시하면 신규 개발자 온보딩이 쉬워진다.

8. 종합 평가

  • 강점: 명확한 4계층 구조, Hibernate와 Grails를 활용한 빠른 프로토타이핑, 기능별 모듈화 및 보고서/CSV 지원 등 실무 적용 가능성이 높다.
  • 약점: 테스트·배포 전략 부재, 보안·성능·확장성에 대한 구체적 설계 미비, 외부 서비스 의존성 관리 부족.
  • 추천 개선 방향
    1. CI/CD 파이프라인 구축 및 Docker 기반 컨테이너화.
    2. OAuth2/JWT 기반 인증·인가 구현 및 감사 로그 강화.
    3. 전역 로깅을 ELK 스택 등 중앙 집중식으로 전환.
    4. UI에 반응형·접근성 표준 적용.
    5. 테스트 계획서(테스트 케이스, 자동화 스크립트) 작성 및 코드 커버리지 목표 설정.

📄 Content

시스템 아키텍처 문서 개요
본 서문은 통합 대학 재고 관리 시스템(Unified University Inventory System, 이하 UUIS)의 시스템 아키텍처 문서에 대한 개요를 제공합니다. 여기에는 문서의 목적, 범위, 대상 독자, 설계 접근 방식, 주요 구성 요소 설계 및 시스템 전반에 걸친 고수준 설계 고려 사항이 포함됩니다.

기술 설계 설명
이 문서는 UUIS‑Web Portal에 대한 기술 설계를 서술합니다. 본 문서의 주된 목적은 비즈니스 요구 사항이 어떻게 구현될 것인지에 대한 기술적 비전을 제시하는 데 있습니다. 시스템의 다양한 측면을 보여 주기 위해 아키텍처 개요를 제공하며, 개발자들에게 기본적인 참고 자료 역할도 수행합니다.

주의: 본 문서는 초기 기준 문서이며, 개발 진행에 따라 업데이트될 수 있습니다.

대상 독자
본 문서는 (하지만 이에 국한되지 않는) 기술 이해관계자를 대상으로 합니다. 독자는 소프트웨어 설계 및 개발에 대한 기술적 배경을 가지고 있다고 가정합니다.


설계 접근 방식

  1. 데이터 흐름
    UUIS의 데이터 흐름은 인터넷 기반이며, Hibernate 기술을 활용해 MySQL 데이터베이스로부터 데이터를 조회·캐시하고 이를 웹 포털 UI에 표시합니다. 또한 Hibernate를 이용해 필요한 경우 데이터를 업데이트할 수 있습니다.

  2. 4계층 아키텍처
    고객 지원 시스템 애플리케이션은 Four Layer Architecture(프레젠테이션, 도메인, 하이버네이트, 데이터) 를 따릅니다. 이를 통해 시스템 전체의 객체를 관심사별로 명확히 분리하고, 재사용 및 배포를 용이하게 합니다. 주요 장점은 애플리케이션 개발자가 보는 컴포넌트의 안정성이 상대적으로 높아진다는 점이며, 구현부가 성능 향상이나 아키텍처 변경에 따라 크게 바뀌더라도 애플리케이션 로직에는 큰 영향을 주지 않습니다.

  3. 와이어프레임
    UI 설계에는 와이어프레임을 사용합니다. 와이어프레임은 애플리케이션 또는 웹 사이트의 기능, 내비게이션, 콘텐츠를 수집·제시하는 효과적인 도구이며, 각 요소·위젯에 달린 주석이나 메모를 통해 구체적인 동작을 전달합니다.


객체‑지향 시스템 설계

UUIS는 인터넷 기반 아키텍처를 전제로 하며, 4계층 구조에 따라 애플리케이션 클래스를 다음과 같이 구분합니다.

계층역할 및 내용
프레젠테이션 계층물리적인 윈도우·위젯 객체가 존재하는 계층이며, 전통적인 MVC의 Controller 클래스도 포함합니다. 새 UI 위젯은 모두 이 계층에 배치되며, 대부분 Grails 안에서 구현됩니다.
도메인 모델(Domain Model) 계층객체‑지향 분석·설계 단계에서 도출된 대부분의 객체가 위치합니다. 이 계층의 객체는 애플리케이션에 독립적인 경우가 많으며, 일반적인 객체를 활용해 객체‑지향 프로그래밍의 이점을 취합니다.
Hibernate 계층도메인 모델을 Hibernate와 매핑합니다. 이를 통해 Grails 도메인 클래스를 레거시 시스템 전반에 매핑하고, 데이터베이스 스키마 생성 시 유연성을 확보합니다.
데이터 계층MySQL이 데이터를 관리합니다. Audit_Logging 플러그인을 사용해 감사 로그 모듈을 손쉽게 구현합니다.

웹 사이트 디렉터리 구조

  • Root Directory : 사용자 기능과 관련된 모든 웹 페이지를 포함합니다.
  • Images Directory : 시스템에서 사용하는 이미지 파일을 보관합니다.
  • Reports Directory : CSV 형식으로 내보낼 수 있는 로컬 보고서를 저장합니다.

예외 처리

예외를 체계적으로 관리하기 위해 애플리케이션 수준 예외 핸들러를 구현합니다. 이를 통해 로깅·알림 로직을 한 곳에 집중시킬 수 있습니다.

  • 글로벌 예외 핸들러는 UUIS 코드에서 직접 잡은 특정 예외와, 처리되지 않은 일반 예외 모두를 처리합니다.
  • 예외 처리 후 사용자는 “친절한 오류 페이지”로 이동하게 되며, 오류 발생 원인과 대처 방법을 안내받습니다.
  • 모든 미처리 예외는 Windows Application Event Log 혹은 로그 파일에 상세히 기록됩니다.

검색 기능

  1. 일반 검색
    사용자가 지정한 검색 조건에 따라 데이터베이스에서 레코드를 조회합니다. 화면에 표시되는 데이터뿐 아니라, 기타 컬렉션도 검색 대상에 포함될 수 있습니다.

  2. 고급 검색
    시스템의 유연성을 유지하기 위해 고급 검색 모듈은 구현 세부 사항을 애플리케이션으로부터 분리하도록 설계되었습니다. 제한된 API만 외부에 노출되며, 설정에 따라 별도 프로그래머 개입 없이 필요한 검색 클래스를 자동으로 적용할 수 있습니다. 새로운 데이터 유형에 대한 검색 로직도 최소한의 노력으로 추가 가능합니다.


자산(Asset) 관리

  • 자산 종류 : 컴퓨터, 책상, 사무용품, 소프트웨어 등 다양한 자산을 관리합니다.
  • 권한 : 부여된 사용자는 자신의 권한 범위 내에서 자산을 추가·편집·삭제할 수 있습니다.
  • 바코드 : 새 자산을 생성하면 고유 바코드가 자동 생성됩니다. 필요 시 http://www.barcodesinc.com/generator/index.php 의 바코드 생성기를 활용해 바코드를 만들 수 있습니다. (바코드 속성은 선택 사항)

위치(Location) 관리

  • 위치 종류 : 건물, 사무실, 교육 실험실, 연구실 등 다양한 물리적 위치를 관리합니다.
  • 권한 : 부여된 사용자는 자신의 권한 범위 내에서 위치를 추가·편집·삭제할 수 있으며, 위치 유형·수용 인원·설명·속성 등을 수정할 수 있습니다.

요청(Request) 관리

  • 일반 사용자 : 요청을 생성·제출·조회할 수 있습니다.
  • 관리자 : 자신의 권한 범위 내에서 요청을 승인·거부·조회할 수 있습니다.

보고서 모듈

다양한 보고서를 PDF 형식으로 생성·내보내어 손쉽게 활용할 수 있습니다. UI 목업에 따라 네 가지 주요 보고서가 제공됩니다.

  1. 자산 보고서

    • 건물 및 방 유형을 선택하면 해당 건물 내 컴퓨터, 사물함, 책상 등의 수량을 계산해 보고서를 생성합니다.
  2. 요청 보고서

    • 부서, 요청 상태, 요청 기간을 필터링해 요청 현황을 보고서로 만들고 PDF로 내보냅니다.
  3. 사용자 권한 보고서

    • 부서를 선택하면 해당 부서의 모든 사용자 권한을 한눈에 보여주는 보고서를 생성합니다.
  4. 사용자 보고서

    • 건물 및 방 유형을 선택하면 해당 건물 내 학생, 교수, 직원 수를 계산해 보고서를 생성합니다.

일괄 처리 기능

  • CSV 기반 일괄 import : 자산 정보를 CSV 파일로 한 번에 가져올 수 있습니다.
  • CSV 기반 일괄 수정 : CSV 파일을 이용해 다수의 자산 정보를 동시에 수정할 수 있습니다.

조직 구조 관리

대학, 학부, 학과 등 계층 구조를 관리하고, 필요에 따라 조직 간 관계를 변경할 수 있습니다.


사용자 권한 관리

사용자 권한은 4단계로 구분됩니다.

레벨대상권한 내용
Level 1학생·일반 사용자자신의 요청만 생성·조회 가능
Level 2부서 관리자부서 내 요청 관리, 감사 로그 조회, 부서 자산 검색
Level 3학부 관리자학부 내 요청 관리, 감사 로그 조회, 학부 자산 검색
Level 4IT·재고 담당·대학 관리자전체 대학 범위의 요청 관리, 감사 로그 조회, 전 대학 자산 검색

Grails 특성

Grails의 컨트롤러, 도메인 클래스, 서비스는 동적 메서드와 속성을 제공하지만, 앞서 제시한 클래스 다이어그램에서는 가독성을 위해 표시하지 않았습니다. 예를 들어, 컨트롤러는 render, redirect 메서드로 애플리케이션 흐름을 제어하고, 도메인 클래스는 find, get, save, delete 메서드로 영속성을 처리합니다.


기타 참고 사항

  • 사용자 관리는 실제 서비스에서 외부 시스템으로부터 가져올 예정이며, 테스트 목적의 사용자 생성 기능만 포함되어 있습니다.
  • 고급 검색 시 결과가 없을 경우 다시 검색 버튼을 눌러야 하는 문제는 미해결(minor) 이슈이며, 추후 릴리스에서 개선될 예정입니다.
  • 사용자 생성 시 레벨 지정에 관한 오해가 있었으나, 실제 레벨은 사용자가 어느 조직 구조의 책임자인지에 따라 결정됩니다. 사용자를 조직 구조의 책임자로 지정하면 해당 레벨이 자동 부여됩니다.

화면 목업 (Screen Mockup)

  • 요청 화면 : Figure 1.1
  • 자산 화면 : Figure 1.2
  • 위치 화면 : Figure 1.3
  • 보고서 화면 : Figure 1.4
  • 자산 보고서 화면 : Figure 1.5
  • 요청 보고서 화면 : Figure 1.6
  • 사용자 권한 보고서 화면 : Figure 1.7

(각 Figure는 실제 UI 목업 이미지와 매핑됩니다.)


결론

본 문서는 UUIS‑Web Portal의 전반적인 기술 설계와 아키텍처를 포괄적으로 설명하고, 개발자와 기술 이해관계자가 시스템을 이해하고 효율적으로 구현할 수 있도록 기반을 제공합니다. 개발 진행에 따라 문서는 지속적으로 업데이트될

이 글은 AI가 자동 번역 및 요약한 내용입니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키