Tech/ReactJS

[React] 그래프 데이터베이스

닝닝깅 2021. 7. 16. 14:35

그래프 데이터베이스는 JSON과 같은 형태기 때문에 데이터 베이스 시스템을 갖고 있지 않는 자바 스크립트에서 쉽게 사용할 수 있다.

 

그래프 DB구조 만들기

- 검색에 대한 속도 최적화를 위해 해시맵 구조를 도입한다

- 해시맵은 데이터의 순서를 따지지 않기 때문에 그래프에 저장되는 데이터 순서를 따로 배열로 저장한다.

 

//SET_COLLECTION 액션 임포트
import { SET_COLLECTION } from '../actions/collectionActions01'; 

//빈 그래프 DB 구성
const initState = {
  ids: [],
  entities: {},
};

export default (state = initState, action) => {
  const { type, payload } = action;

  switch (type) {
    case SET_COLLECTION: {
      //map()함수를 이용하여 배열객체의 id값 추출
      const ids = payload.map(entity => entity['id']);
      //reduce()함수를 이용하여 객체 배열을 해시맵 형태의 객체로 변환
      const entities = payload.reduce(
        (finalEntities, entity) => ({
          ...finalEntities,
          [entity['id']]: entity,
        }),
        {},
      );
      return { ...state, ids, entities };
    }
    default:
      return state;
  }
};

실제 데이터는 reduce()함수를 사용하여 객체로 변환한 다음 entities에 저장하며, 객체의 키로 entitiy['id]을 사용한다

 

여러개의 리듀서를 하나처럼 동작시키기 위해 만든 index.js파일에 추가하고 리듀서를 실행시켜 작동을 확인한다.

 

그래프 DB 읽어 들이기

 

그래프 DB 수정하기