- 프로젝트 주제 상 배포를 하지 않았으며, 프로젝트 영상 첨부로 이를 대신합니다.
- 영상 보러가기
- 예를 들어 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 통신을 효율적으로 관리하기 위해 사용했습다.
- 등록: 회원 정보 등록 기능
- 수정: 회원 정보 수정 기능
- 탈퇴: 사용자 이력 삭제
- 로그인/로그아웃: 세션 처리
- 아이디/비밀번호 찾기: 아이디 및 비밀번호 찾기 기능
- 조회: 사용자가 입력한 데이터에 맞는 표준 용어 목록 출력
- 변경: 사용자가 표준 용어 목록을 확인하고 변경
- 생성: 표준 용어 지침에 따른 테이블 생성문 작성
- 쿼리문 조회: 표준 용어 지침에 따른 테이블 쿼리문 출력
- 수정: 표준 용어 지침에 따른 테이블 수정 쿼리문 출력
- 삭제: 테이블 삭제
- 그래프 조회: 카테고리별 히트맵 방식 조회, 사용자가 입력한 데이터와 유사한 데이터 맵 조회
- 조회: 사용자 표준 이력 조회
- 등록/수정/삭제: 표준 용어 및 커스텀 표준 용어 등록, 수정, 삭제 기능
- GET /v1/user: USER TABLE 전체 조회
- POST /v1/user/signup: 회원가입
- POST /v1/user/user/authentication/send: 이메일 인증 요청
- POST /v1/user/login: 로그인
- POST /v1/user/modify: 유저 정보 수정
- POST /v1/user/logout: 로그아웃
- DELETE /v1/user/delete: 회원 탈퇴
- POST /v1/user/check: 토큰과 email, 비밀번호를 대조하여 유저 검사
- GET /v1/user/specific: 토큰으로 유저 정보 가져오기
- POST /v1/user/findId: 회원 아이디 찾기
- POST /v1/user/findPwd: 회원 비밀번호 찾기
- POST /v1/user/duplicationCheck: 아이디(이메일) 중복 확인
- GET /v1/table: DB에 있는 TABLE 전체 조회
- POST /v1/table/create: 쿼리를 받아 table 생성
- GET /v1/table/physicalJoin: 물리적 이름으로 사용자가 생성한 테이블 조회
- GET /v1/table/logicalJoin: 논리적 이름으로 사용자가 생성한 테이블 조회
- GET /v1/domain/inputData: 백엔드에서 데이터 넣기(백 구현 시 사용)
- GET /v1/domain: 전체 공통 표준 데이터 값 조회
- GET /v1/terminology/inputData: 공통 표준 용어 데이터 넣기(백에서만 사용)
- GET /v1/terminology: 공통 표준 용어 데이터 전체 가져오기
- POST /v1/terminology/add: 커스텀 표준 용어 추가
- GET /v1/history: 전체 회원의 테이블 생성 이력 가져오기
- GET /v1/history/join: 특정 회원의 테이블 생성 이력을 이메일로 조회하기
공통표준도메인 | 공통표준용어 |
---|---|
엑셀값 | json값 |
NO | no |
제정차수 | degree |
공통표준도메인그룹명 | groupName |
공통표준도메인분류명 | classificationName |
공통표준도메인명 | name |
공통표준도메인설명 | description |
데이터타입 | dataType |
데이터길이 | dataLength |
데이터소수점길이 | decimalPointLength |
저장형식 | saveFormat |
표현형식 | expressionForm |
단위 | unit |
허용값 | tolerance |
- 데이터베이스 테이블을 생성할 때, 속성 명을 표준 용어 중에서 선택할 수 있도록 표준 용어 검색 기능과 설명을 사용자에게 제공한다.
- 표준 용어 DB에 존재하지 않는 용어를 등록하는 커스텀 표준 용어 등록을 제공한다.
- 테이블 속성 명에 대한 표준화 작업을 완료했다면, 테이블을 등록하기 전 SQL DDL 쿼리문을 제공한다.
- 테이블의 메타데이터인 논리 명, 물리 명, 테이블 번호, 데이터 수, 테이블 용량과 함께 속성 명으로 사용된 용어에 대한 설명을 볼 수 있는 페이지를 제공한다.
- 사용자가 조회 권한이 있는 테이블, 테이블의 속성 명으로 사용된 표준 용어 목록을 제공한다.
- 테이블과 용어 목록에서 선택된 테이블이나 용어를 기준으로 하는 데이터 맵을 제공하여, 사용자인 데이터 관리자가 데이터 연관 관계를 빠르게 파악할 수 있다.
- 앞으로 비 관계형 데이터베이스에도 적용할 수 있도록 시스템 개선이 필요하다.
- 테이블 및 용어 데이터 맵 생성 전 분포도 표시 기능
- 막대그래프, 선 그래프와 같은 다양한 시각화 데이터 기능