Skip to content

erldang/MDMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

MDMS: 데이터 대동여지도

프로젝트 개발 기간 : 2023.10.25 ~ 2023.11.24

프로젝트 배포

  • 프로젝트 주제 상 배포를 하지 않았으며, 프로젝트 영상 첨부로 이를 대신합니다.
  • 영상 보러가기

프로젝트 배경

개발자나 데이터베이스 관리자가 2개 이상의 데이터베이스 테이블에 대해 관리하거나 테이블을 통합할 때 데이터 속성 명이나 데이터 형식이 다른 경우 자원이 비효율적으로 소모된다.

  • 예를 들어 A 쇼핑몰과 B 쇼핑몰의 데이터베이스 테이블을 통합하고자 할 때, 속성 명이 다른 경우 하나하나 매칭시켜줘야 하므로 각 속성 명을 연결해주는 시간과 비용이 들고 통합시 데이터베이스 성능이 저하된다.

회사나 기업의 데이터 관리자가 기존의 데이터 관리나 시각화 서비스를 사용하여 데이터를 파악하고자 할 때 빠른 파악에 어려움을 느낀다.

  • 기존 데이터 시각화 서비스는 메타 데이터가 아니라 데이터에 초점을 맞추어 제공하는 서비스이기 때문에 전반적인 데이터 파악을 하는 데 불필요한 작업에 시간을 소모한다.
  • 불필요한 작업에 시간을 소모하기 때문에 데이터 상태 변화를 빠르게 파악하지 못하여 신속한 대응에 어려움을 느낀다.
  • 신속한 대응과 효율적인 데이터 관리가 가능한 시스템이 요구된다.

프로젝트 설명

MDMS는 행정안전부 표준 용어 및 단어에 맞춘 데이터베이스 테이블 생성 보조 및 메타 데이터 맵 출력 사이트입니다. 이 프로젝트는 데이터 정원사 팀에 의해 개발되었으며, 사용자가 공통 표준 용어를 활용하여 데이터베이스 테이블을 생성, 수정, 조회할 수 있는 기능을 제공합니다. 또한, 데이터 맵을 시각화하여 사용자가 데이터를 효율적으로 관리하고 이해할 수 있도록 도와줍니다.

팀 구성

  • 팀장: Recyclingbottle

    • 역할: 기획 관리 및 일정 관리, 팀원 관리, 문서 작성 및 멘토링 관리, FE 리드로 전반적인 페이지 코드 작성 및 구조 관리
    • 기술 스택: Front-End
  • 팀원 1: lixixi131

    • 역할: API 서버, 백엔드 Spring Boot 애플리케이션, DB 설정 및 스키마 작성
    • 기술 스택: Back-End
  • 팀원 2: erldang

    • 역할: 데이터 맵 생성 페이지 개발, 프로젝트 리포지토리 및 브랜치 관리
    • 기술 스택: Front-End

기술 스택 및 채용 이유

서버

  • Spring Boot: Java 기반의 프레임워크로, 빠른 애플리케이션 개발과 설정의 용이성을 제공하며, 대규모 시스템에서도 안정적으로 운영될 수 있기에 채택하였습니다..
  • Java: 안정성과 성능이 뛰어나며, Spring Boot와 함께 사용하여 강력한 백엔드 시스템을 구축하기 위해서 사용했습니다.
  • MariaDB: 오픈 소스 관계형 데이터베이스로, MySQL과 호환되며, 뛰어난 성능과 안정성을 제공하기에 사용했습니다.

클라이언트

  • Vue.js: 현대적인 JavaScript 프레임워크로, 빠르고 효율적인 SPA 개발이 가능하며, 컴포넌트 기반의 구조로 코드의 재사용성과 유지보수성이 뛰어나기에 채택하였습니다.
  • Node.js: 서버 사이드 JavaScript 실행 환경으로, 비동기 I/O를 활용한 높은 성능을 제공하며, Vue.js와의 통합을 용이하게 하기에 사용하였습니다.
  • JavaScript: 웹 개발의 기본 언어로, Vue.js와 함께 사용하여 동적인 웹 페이지를 구현하기 위해 사용하였습니다.
  • CSS: 웹 페이지의 스타일을 정의하며, 라이브러리를 사용하지 않으므로써 가벼운 랜더링만으로 웹 디자인을 구현했습니다.
  • JQuery: 간단하고 직관적인 API 호출을 위해 사용했습니다.
  • Axios: HTTP 클라이언트 라이브러리로, 비동기 HTTP 요청을 처리하며, Vue.js와 함께 API 통신을 효율적으로 관리하기 위해 사용했습다.

프로젝트 기능 설계

회원 관리

  • 등록: 회원 정보 등록 기능
  • 수정: 회원 정보 수정 기능
  • 탈퇴: 사용자 이력 삭제
  • 로그인/로그아웃: 세션 처리
  • 아이디/비밀번호 찾기: 아이디 및 비밀번호 찾기 기능

표준 용어 관리

  • 조회: 사용자가 입력한 데이터에 맞는 표준 용어 목록 출력
  • 변경: 사용자가 표준 용어 목록을 확인하고 변경

테이블 생성

  • 생성: 표준 용어 지침에 따른 테이블 생성문 작성
  • 쿼리문 조회: 표준 용어 지침에 따른 테이블 쿼리문 출력
  • 수정: 표준 용어 지침에 따른 테이블 수정 쿼리문 출력
  • 삭제: 테이블 삭제

데이터맵

  • 그래프 조회: 카테고리별 히트맵 방식 조회, 사용자가 입력한 데이터와 유사한 데이터 맵 조회

사용자 표준 진단 이력 조회

  • 조회: 사용자 표준 이력 조회
  • 등록/수정/삭제: 표준 용어 및 커스텀 표준 용어 등록, 수정, 삭제 기능

API 명세서

  1. GET /v1/user: USER TABLE 전체 조회
  2. POST /v1/user/signup: 회원가입
  3. POST /v1/user/user/authentication/send: 이메일 인증 요청
  4. POST /v1/user/login: 로그인
  5. POST /v1/user/modify: 유저 정보 수정
  6. POST /v1/user/logout: 로그아웃
  7. DELETE /v1/user/delete: 회원 탈퇴
  8. POST /v1/user/check: 토큰과 email, 비밀번호를 대조하여 유저 검사
  9. GET /v1/user/specific: 토큰으로 유저 정보 가져오기
  10. POST /v1/user/findId: 회원 아이디 찾기
  11. POST /v1/user/findPwd: 회원 비밀번호 찾기
  12. POST /v1/user/duplicationCheck: 아이디(이메일) 중복 확인
  13. GET /v1/table: DB에 있는 TABLE 전체 조회
  14. POST /v1/table/create: 쿼리를 받아 table 생성
  15. GET /v1/table/physicalJoin: 물리적 이름으로 사용자가 생성한 테이블 조회
  16. GET /v1/table/logicalJoin: 논리적 이름으로 사용자가 생성한 테이블 조회
  17. GET /v1/domain/inputData: 백엔드에서 데이터 넣기(백 구현 시 사용)
  18. GET /v1/domain: 전체 공통 표준 데이터 값 조회
  19. GET /v1/terminology/inputData: 공통 표준 용어 데이터 넣기(백에서만 사용)
  20. GET /v1/terminology: 공통 표준 용어 데이터 전체 가져오기
  21. POST /v1/terminology/add: 커스텀 표준 용어 추가
  22. GET /v1/history: 전체 회원의 테이블 생성 이력 가져오기
  23. GET /v1/history/join: 특정 회원의 테이블 생성 이력을 이메일로 조회하기

데이터베이스 설계

E-R 다이어그램

행정안전부 표준 용어 및 단어 JSON 데이터 파싱 문서

공통표준도메인 공통표준용어
엑셀값 json값
NO no
제정차수 degree
공통표준도메인그룹명 groupName
공통표준도메인분류명 classificationName
공통표준도메인명 name
공통표준도메인설명 description
데이터타입 dataType
데이터길이 dataLength
데이터소수점길이 decimalPointLength
저장형식 saveFormat
표현형식 expressionForm
단위 unit
허용값 tolerance

프로젝트 실행 화면

  1. 메인 화면
    image

  2. 테이블 등록 페이지
    image

  3. 표준 용어 DB 검색 및 컬럼명 선택
    image

  4. 등록 테이블 SQL DDL 쿼리 생성
    image

  5. 테이블 메타 데이터 확인, 테이블 상세 정보 페이지
    image

  6. 데이터 맵 생성 화면
    image

프로젝트 결과

행정안전부 표준 용어, 표준 도메인, 커스텀 표준 용어를 이용한 데이터베이스 표준화를 제공한다.

  • 데이터베이스 테이블을 생성할 때, 속성 명을 표준 용어 중에서 선택할 수 있도록 표준 용어 검색 기능과 설명을 사용자에게 제공한다.
  • 표준 용어 DB에 존재하지 않는 용어를 등록하는 커스텀 표준 용어 등록을 제공한다.
  • 테이블 속성 명에 대한 표준화 작업을 완료했다면, 테이블을 등록하기 전 SQL DDL 쿼리문을 제공한다.

테이블 메타데이터를 파악하는 페이지와 메타데이터를 기준으로 데이터 맵 생성을 제공한다.

  • 테이블의 메타데이터인 논리 명, 물리 명, 테이블 번호, 데이터 수, 테이블 용량과 함께 속성 명으로 사용된 용어에 대한 설명을 볼 수 있는 페이지를 제공한다.
  • 사용자가 조회 권한이 있는 테이블, 테이블의 속성 명으로 사용된 표준 용어 목록을 제공한다.
  • 테이블과 용어 목록에서 선택된 테이블이나 용어를 기준으로 하는 데이터 맵을 제공하여, 사용자인 데이터 관리자가 데이터 연관 관계를 빠르게 파악할 수 있다.

문제점 및 향후 개선 방향

관계형 데이터베이스를 기반으로 하여 구축했기 때문에 비 관계형 데이터베이스에 사용 불가능하다.

  • 앞으로 비 관계형 데이터베이스에도 적용할 수 있도록 시스템 개선이 필요하다.

개발 기간 제한으로 사용자에게 다양한 시각화 기능 구현을 하기에 어려움이 있었다.

  • 테이블 및 용어 데이터 맵 생성 전 분포도 표시 기능
  • 막대그래프, 선 그래프와 같은 다양한 시각화 데이터 기능

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •