개발/Project

문화재 조회 서비스 프로젝트(3)

꾸럭 2021. 4. 25. 00:46
 

kimhongyeon/make-heritage-data

문화재청 API로 데이터를 수집하여 RDMBS용으로 테이블을 설계해 데이터를 가공한 뒤 테이블 단위로 json 저장 - kimhongyeon/make-heritage-data

github.com

출퇴근하면서, 자기 전에 10분, 20분 시간을 내어 드디어 완성했다.

 

100% TypeScript로 작성이 되었다.

// ~/src/app.ts
import dataMake from "./dataMake";
import heritage from "./heritage";

heritage.run();
dataMake.run();

app.ts 파일이 실행 파일이다.

 

heritage.run()은 문화재청 API를 가지고 문화재 목록정보, 상세정보, 이미지정보, 동영상정보의 XML데이터를 가지고 온 후 JSON으로 변환하여 저장한다.

 

dataMake.run()은 heritage.run()을 통해 가져와서 변환한 JSON 데이터를 바탕으로 DB용 데이터를 만든다.

 

그래도 백엔드, 프론트엔드 통합 프로젝트인데 DB 테이블간 조인도 하고 그래야 하지 않나.

 

그래서 원데이터를 좀 가공해서 문화재 상세정보 기준으로 이미지 테이블, 동영상 테이블 등을 만들었다.

 

~/src/dataMake.ts.파일엔 여러 클래스들이 있는데 음... 좀 파일을 나눌걸 그랬나보다.

 

나중에 시간되면 수정해야겠다.

 

클래스들은 모두.DataMake 클래스를 상속받아 쓰며, DataMake 클래스를 나름 잘 만들어놓았다.

 

어쨌든 이걸로 데이터베이스에 밀어넣기 위한 데이터 준비가 끝났다.

 

한편 이 프로젝트를 진행하면서 가장 시간이 오래걸린 까다로운 문제가 있었는데...

// ~/src/helpers.ts
const xmlToJSON = (xml: string): any => {
    return parser.parse(xml, {
        parseNodeValue: false,
    });
};

바로 문화재청 API를 통해 가져온 XML 데이터를 JSON으로 변환하는 이 코드 4줄이다.

 

이에 대해선 따로 포스트를 하고 포스트가 완료되면 여기에도 링크를 달아놓겠다.

 

 

문화재 조회 서비스 프로젝트(1)

퇴사를 준비하면서 그동안 관심있었으나 제대로 써보지 못했던 기술들을 쓰면서 익히려고 프로젝트를 시작했다. 하고 싶은 건 Kotlin/Spring, TypeScript/NestJS, React.js/Next.js 일단 데이터베이스는 MySQL

think-dev.tistory.com

 

문화재 조회 서비스 프로젝트(2)

데이터 테스트 기본적으로 페이징 기반으로 목록을 가져오는 게 있고, 그 목록의 각종 아이디값을 이용하고 상세정보, 이미지정보, 동영상정보, 나레이션 음성정보가 있었다. 음 근데 API 키나

think-dev.tistory.com

 

728x90

'개발 > Project' 카테고리의 다른 글

문화재 조회 서비스 프로젝트(2)  (0) 2021.04.23
문화재 조회 서비스 프로젝트(1)  (0) 2021.04.22