Giter VIP home page Giter VIP logo

excelmanager's Introduction

공공데이터포털에서 사용하면 유용할 Excel파일들이 있어, 데이터를 추출해서 DB에 저장하면 유용할거 같아서 개발하기 시작했다.

image

Reference: https://www.data.go.kr/index.do

Spring @ConfigurationProperties을 이용해서 apllication.properties 설정 정보 가져오기

image

의미
url DB connection을 위한 옵션
username DB connection을 위한 옵션
password DB connection을 위한 옵션
driverClassName DB connection을 위한 옵션
의미 기본값
attributeKey DB테이블의 column 이름을 순서대로 작성 NULL
attributeValue Excel파일에서 읽어올 column 이름(Excel은 A~Z넘을 수 있다.) 테이블 명과 일치하게 작성 NULL
attributeType DB colums에 데이터 타입으로 JPA에 명시할 때 사용하는 데이터 타입으로 작성(대소문자 구별X) NULL
path Excel파일 경로 NULL
fileName Excel파일 이름 NULL
databaseTableName DB connection을 위한 옵션 NULL
mode 테이블이 없을 경우 생성해주거나 반대로 삭제하는 옵션(대소문자 구별X) NONE

실행 결과 image image

  • 위에 Excel파일 사진과, application.properties 사진을 참고해서 보면 이해가 될 것이다. 추가로 select 가능하게 추가 했다.

복수개 field를 받고 싶은 경우 RequestParam으로 List로 받게된다.

image

사용하더라도 pk랑 사용하지 단일 field 검색은 사용하지 않을거 같아서 따로 뺐다.

image

주의점

image

application.properties에서 mode를 create로 설정시 database-table-name 정보를 확인 후 해당 테이블이 있으면 DROP TABLE 이후 CREATE TABLE 쿼리가 실행된다.

yml에서 한글 데이터가 깨진다면 밑에 사진을 참고하자

우측하단에 Transparent native-to-ascii conversion 클릭해주자

개선 요구사항

MySQL을 기준으로 만들었는데 쿼리가 별로 없긴한데 다양한 DBMS에서 사용가능하게 추가해주기

excelmanager's People

Contributors

uhanuu avatar

Watchers

 avatar

excelmanager's Issues

DB Connection 처리

이슈 내용

기존 서비스는 springboot에서 자동설정 시점에 application.yml 파일에서 DB Connection 정보를 뽑아와서 처리를 했다.
HTTP 통신을 통해서 정보를 받아와 처리를 하려고 한다.

상세 내용

HTTP 통신을 통해서 정보를 받아와 처리를 한다는 것은 사용자의 URL,Username,password가 들어오기 때문에 보안적으로 어떻게 처리할 것인지 결정하고 적용하려고 한다.

우선 순위

높음

참고 사항

중복데이터 문제

이슈 내용

db에 저장할 때 unique 옵션이 없으면 중복으로 데이터가 추가되는 문제가 발생한다.

상세 내용

application.properties에 create로 mode를 설정할 경우 직접 table을 작성한다.
sb.append("id bigint PRIMARY KEY AUTO_INCREMENT,"); 이문장을 추가해 DB자체 에서 pk를 만들 수 있도록 설정해서 중복을 제거한다.

--문제 발생--
사용자가 직접 DB를 작성할 경우 중복 데이터가 발생할 수 있다.
사용자가 만약 이러한 중복데이터를 방지하기 위해서 옵션을 추가하면 Alter 문을 이용해서 수정해 줄 수 있도록하자.

우선 순위

높음

참고 사항

Connection 성능 문제

이슈 내용

�지금 서비스는 사용자의 요청이 올때 DB Connection 정보를 받아 처리한다.
따라서 커넥션 풀을 사용하지 못하며 TCP/IP 통신이 발생해 성능 개선을 필요로 한다.

상세 내용

사용자의 connection 정보를 서버 DB를 이용해서 보관하고 처리하는 방식을 사용하려고 한다.

우선 순위

높음

참고 사항

DB서버 관리

이슈 내용

DB 서버를 2개로 나눈다.

  1. USER Database
  2. Excel Database

상세 내용

user정보에 Excel DB에 있는 개인용 table을 매핑해줘야 된다.
이 부분을 MyBatis,QueryDSL,JPA,JDBCtemplate로 어떻게 처리할지 고민하고 설정한다.

우선 순위

높음

참고 사항

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.