개발/Project

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

꾸럭 2021. 4. 23. 13:18

데이터 테스트

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

 

음 근데 API 키나 그런 것 없다. 그냥 막 갖다 써도 되는가보다.

 

http://www.cha.go.kr/cha/SearchKindOpenapiList.do 이 주소를 그냥 브라우저에 쳐봤는데 잘 나온다. 그런데 XML이다.

 

뭐 XML을 JSON으로 바꿔주는 오픈소스가 있겠지. 하다보면 될거다.

 

나머지 이미지, 동영상, 나레이션도 잘 된다.

근데 나레이션은 음성파일 URL이 지맘대로 떨어진다. 그냥 얘는 쓰지 말자.

 

기술 스택 구상

내가 실무에서 써본 주력 프레임워크는 Express.js, Vue.js다. 음 근데 백엔드에서는 Nest.js, 프론트엔드에서는 React.js를 쓰는 것이 공부도 될 거고 요구하는 회사들도 많다.

 

Nest.js는 문서도 잘 되어있고 어차피 Express.js 기반이라 별 문제가 없을 것 같다. 다만 TypeScript? 이것도 문서만 보고 그냥 하면 된다. 정적타입 언어부터 시작한 내가 별로 두려울 건 없다.

 

React.js는 전에 공부좀 했었고 그땐 이해가 잘 안갔다. 근데 한참 실무에서 Vue.js를 쓰고 다시 문서와 예제를 보니 Vue.js하고 별로 다를 게 없다. 이것도 그냥 하면 된다. 음 그리고 Next.js를 쓰도록 하자.

 

백엔드에 Nest.js도 좋지만 Spring 진짜 해보고 싶다. 우리나라 특성상 유달리 Spring이 많지만, 뭐 사람이 많아서 쓰는 것도 있겠지만 쓸 만 하니까 쓰는 게 아닌가. 이것도 해보자.

 

일단 Nest.js로 먼저 백엔드를 만들어보고, 그 로직을 그대로 카피해서 Spring에도 적용시켜보자. 참 언어는 Kotlin이다. 아무래도 Java는 내 성향에 안맞다.

 

프론트엔드에서는 API 엔드포인트를 Nest.js쪽과 Spring쪽으로 스위칭할 수 있게 하면 백엔드는 두개 만들어도 프론트엔드는 하나만 만들어도 된다.

 

근데 Spring 프로젝트를 할 땐 이클립스는 정말 쓰기가 싫다. 인텔리제이 쓰고 싶다.

인텔리제이는 돈 든다.... 어 보니까 학생은 무료 라이센스 준다!!

 

바로 라이센스 발급받고 인텔리제이 다운받아서 적용시켜버렸다. M1도 지원한다. 쿨하다.

 

데이터베이스는 대충 로컬에 MySql 올리고 Nest.js용 db와 Spring용 db를 만들어서 가자.

 

데이터 임포트 구상

자 이제 일단 개발을 본격적으로 시작하기 전에 문화재청에서 많은 문화재들을 긁어와야 겠다.

 

데이터셋을 보니까... 음 뭐 그대로 써도 되겠지만 그래도 백엔드를 하는거니 관계형 데이터베이스에 맞게 데이터를 가공해서 데이터베이스에 밀어넣는게 좋겠다.

 

근데 난 DB를 두개 가져갈거고 각각 다른 ORM을 쓸거니까 Raw 데이터는 JSON으로 받아놓는게 좋겠다. 매번 데이터 많이 당겨오면 문화재청이 싫어할 수도 있다. JSON으로 받은 데이터를 백엔드 모델 구성하고 나서 밀어넣으면 될 것 같다.

 

프로젝트 기획

그럼 이제 프로젝트를 어떻게 나눌까? 용도별로 나눠야겠다.

일단 데이터를 가져오는 프로젝트를 만들자.

그리고 백엔드는 두개를 가져갈거니까 각각 만들자.

프론트엔드는 하나만 만들면 되겠다.

그럼 다음과 같이 프로젝트가 구성된다.

 

- make-heritage-data

- nest-heritage + database

- spring-heritage + database

- next-heritage

 

 

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

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

think-dev.tistory.com

 

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

kimhongyeon/make-heritage-data 문화재청 API로 데이터를 수집하여 RDMBS용으로 테이블을 설계해 데이터를 가공한 뒤 테이블 단위로 json 저장 - kimhongyeon/make-heritage-data github.com 출퇴근하면서, 자기..

think-dev.tistory.com

 

728x90

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

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