데이터 테스트
기본적으로 페이징 기반으로 목록을 가져오는 게 있고, 그 목록의 각종 아이디값을 이용하고 상세정보, 이미지정보, 동영상정보, 나레이션 음성정보가 있었다.
음 근데 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
'개발 > Project' 카테고리의 다른 글
문화재 조회 서비스 프로젝트(3) (0) | 2021.04.25 |
---|---|
문화재 조회 서비스 프로젝트(1) (0) | 2021.04.22 |