[React]창업 아이템 개발#5

이명환·2021년 6월 1일
0

MAAS

목록 보기
5/5

저번에 NoSQL으로 데이터베이스를 연동한다고 하였는데, 계획을 급변경하여 MongoDB로 데이터베이스 연결을 하기로 했다. 수직, 수평확장에 용이하고 데이터를 읽어오는 속도가 빠르다고 해서 바꾸었다. 또 예전에 잠깐이나 연결해서 써보기도 했다!

MongoDB 연결

nodejs 환경에서의 몽고 DB연결은 아주 간단하다.

npm install mongodb

mongodb 라이브러리를 깔아주고

const { MongoClient } = require("mongodb");

const client = new MongoClient("mongodb://localhost:27017'", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

async function run(req,res) {
  try {
    // Connect the client to the server
    await client.connect();
    // Establish and verify connection
    await client.db("local").command({ ping: 1 });
    console.log("Connected successfully to server");
    });

  } 
  finally {
    // Ensures that the client will close when you finish/error
    await client.close();
    console.log("db disconnet")
  }
}

이렇게 코드를 짜서 몽고DB와 연결해주었다. 여기서 db와 db안 collection과의 연결은 다음과 같이 코드를 추가해주면 가능하다.

    const database = client.db("YourDBName");
    const data = database.collection("YourCollectionName");

그런데 나는 클라이언트에서 요청을 받아 몽고DB에 연결하고 원하는 데이터를 다시 클라이언트로 넘겨줬는데, 한번 더 클라이언트에서 요청을 보내면 오류가 뜬다.

MongoError: Topology is closed, please connect

이런 에러가 뜨는데

  finally {
    // Ensures that the client will close when you finish/error
    await client.close();
    console.log("db disconnet")
  }

여기서 client.close()로 아예 몽고db 연결을 끊어버려서 생기는 문제였다. 이 구문을 지워주니 정상작동하였다.


서비스 프로토타입 개발 진행사항

현재 서비스의 프로토타입 개발이 60-70% 정도 개발이 완료 되었다. 데이터 베이스와 연결하여 원하는 데이터를 받아서 클라이언트에게 보여주는 것 까지 완료되었고. 이제 남은건 다른 필요한 데이터들도 데이터베이스에 구축해서 가져오면 된다.

그런데 이 데이터들이 돈이 들거나 다른 업체와 제휴를 해서 가져와야해서 조금 문제이다. 그냥 더미데이터로 기능이 제대로 작동하는지 테스트하는게 가장 최선의 방법일 것 같다.

서비스 개발은 코딩도 중요하지만 여러가지 필요한 리소스를 구축하는 것도 굉장히 중요하다고 느겼다.



내용이 별로없는데 인터페이스 부분과 데이터부분을 많이 건드려서..조금 시간이 걸렸다.(사실 구현한지 좀 시간이 지났는데 귀찮아서 글쓰는 것을 미루었다.)


다음개발

이제 개발이 필요한 주요한 기능은 데이터 요소들로 데이터 시각화 하는 기능이다. 이건 내가 전에 어떤 친구가 해놓은 것을 봐둔것이 있어서 물어보면 금방 구현할 수 있지 않을까 생각한다.

profile
Si vales bene, valeo

0개의 댓글